Valentina (Cupać) Jemuović (@valentinajemuov) 's Twitter Profile
Valentina (Cupać) Jemuović

@valentinajemuov

Technical Coach @ Optivem | TDD | ATDD I Developer Testing | I help Technical Founders to deliver software products faster by minimizing regression bugs

ID: 1481690223029460999

linkhttp://journal.optivem.com calendar_today13-01-2022 18:11:08

1,1K Tweet

1,1K Followers

117 Following

Valentina (Cupać) Jemuović (@valentinajemuov) 's Twitter Profile Photo

How do you know when you’re “done”? 𝐁𝐮𝐢𝐥𝐝 𝐭𝐡𝐞 𝐫𝐢𝐠𝐡𝐭 𝐭𝐡𝐢𝐧𝐠 - What problem are we solving? 𝐁𝐮𝐢𝐥𝐝 𝐭𝐡𝐞 𝐭𝐡𝐢𝐧𝐠 𝐫𝐢𝐠𝐡𝐭 - Define concrete examples of expected behavior - not just "it should work". Join 5,200+ engineers: journal.optivem.com #tdd

How do you know when you’re “done”?

𝐁𝐮𝐢𝐥𝐝 𝐭𝐡𝐞 𝐫𝐢𝐠𝐡𝐭 𝐭𝐡𝐢𝐧𝐠 - What problem are we solving?

𝐁𝐮𝐢𝐥𝐝 𝐭𝐡𝐞 𝐭𝐡𝐢𝐧𝐠 𝐫𝐢𝐠𝐡𝐭 - Define concrete examples of expected behavior - not just "it should work". 

Join 5,200+ engineers: journal.optivem.com

#tdd
Valentina (Cupać) Jemuović (@valentinajemuov) 's Twitter Profile Photo

As developers, we deal with uncertainty all the time. Will this change break something? Will I remember how this logic works in six months? TDD is more than just correctness or speed - it reduces anxiety during programming. Join 5,200+ engineers: journal.optivem.com #tdd

As developers, we deal with uncertainty all the time.

Will this change break something?

Will I remember how this logic works in six months?

TDD is more than just correctness or speed - it reduces anxiety during programming.

Join 5,200+ engineers: journal.optivem.com

#tdd
Valentina (Cupać) Jemuović (@valentinajemuov) 's Twitter Profile Photo

🚫 High coupling: Do NOT write tests as specifications of your implementation. This testing leads to fragile tests. ✅ Low coupling: DO write tests as requirements of the system. Treat implementation as a black-box. Join 5,200+ engineers: journal.optivem.com #tdd

🚫 High coupling: Do NOT write tests as specifications of your implementation.

This testing leads to fragile tests.

✅  Low coupling: DO write tests as requirements of the system.

Treat implementation as a black-box.

Join 5,200+ engineers: journal.optivem.com

#tdd
Jelena Cupać (@cupac_jelena) 's Twitter Profile Photo

“I don’t have time to write tests because I’m too busy writing code. I’m too busy writing code because I’m fixing bugs. I’m fixing bugs because I don’t write tests. And I don’t write tests because I don’t have time.” --- Join 5,200+ engineers: journal.optivem.com #tdd

“I don’t have time to write tests because I’m too busy writing code.
I’m too busy writing code because I’m fixing bugs.
I’m fixing bugs because I don’t write tests.
And I don’t write tests because I don’t have time.”

---
Join 5,200+ engineers: journal.optivem.com

#tdd
Valentina (Cupać) Jemuović (@valentinajemuov) 's Twitter Profile Photo

Do NOT wait weeks to find out you broke something. Most devs: - Code for weeks/months - Release day = even more bugs + hot fixes Continuous Delivery: - Small commits often - Fast feedback - Ship safely -- Join 5,200+ engineers: journal.optivem.com #continuousdelivery #tdd

Do NOT wait weeks to find out you broke something.

Most devs:
- Code for weeks/months
- Release day = even more bugs + hot fixes

Continuous Delivery:
- Small commits often
- Fast feedback
- Ship safely

--
Join 5,200+ engineers: journal.optivem.com

#continuousdelivery #tdd
Valentina (Cupać) Jemuović (@valentinajemuov) 's Twitter Profile Photo

“It’s NOT working!” Dev: 𝘲𝘶𝘪𝘤𝘬 𝘧𝘪𝘹 “It’s broken AGAIN!” Quick fixes feel fast, but they pile up technical debt. Short-term speed without long-term stability is just a trap. ------ Join 5,200+ engineers: journal.optivem.com #tdd

“It’s NOT working!”

Dev: 𝘲𝘶𝘪𝘤𝘬 𝘧𝘪𝘹

“It’s broken AGAIN!”

Quick fixes feel fast, but they pile up technical debt.

Short-term speed without long-term stability is just a trap.

------
Join 5,200+ engineers: journal.optivem.com

#tdd
Valentina (Cupać) Jemuović (@valentinajemuov) 's Twitter Profile Photo

The PROBLEM with LEGACY projects without TDD: code is often UNTESTABLE - you can't even write unit tests. Do this: 1️⃣DEPLOYMENT PIPELINE 2️⃣ACCEPTANCE TESTS 3️⃣COMPONENT TESTS 4️⃣HEXAGONAL/CLEAN ARCHITECTURE 5️⃣UNIT TESTS ---- Join 5,200+ engineers: journal.optivem.com #tdd

The PROBLEM with LEGACY projects without TDD: code is often UNTESTABLE - you can't even write unit tests. 

Do this:

1️⃣DEPLOYMENT PIPELINE
2️⃣ACCEPTANCE TESTS
3️⃣COMPONENT TESTS
4️⃣HEXAGONAL/CLEAN ARCHITECTURE
5️⃣UNIT TESTS

----
Join 5,200+ engineers: journal.optivem.com

#tdd
Valentina (Cupać) Jemuović (@valentinajemuov) 's Twitter Profile Photo

Are you stuck with legacy code? Do you hesitate to change it, spend hours debugging, or can’t add tests? Core problem: 𝐭𝐞𝐬𝐭𝐢𝐧𝐠 𝐥𝐞𝐠𝐚𝐜𝐲 𝐜𝐨𝐝𝐞 𝐢𝐬 𝐡𝐚𝐫𝐝. Join my free live session - limited spots (Wed Sep 17 5:00PM): maven.com/p/f39276/stop-… Maven 🏛 #tdd

Are you stuck with legacy code? 

Do you hesitate to change it, spend hours debugging, or can’t add tests?

Core problem: 𝐭𝐞𝐬𝐭𝐢𝐧𝐠 𝐥𝐞𝐠𝐚𝐜𝐲 𝐜𝐨𝐝𝐞 𝐢𝐬 𝐡𝐚𝐫𝐝.

Join my free live session - limited spots (Wed Sep 17 5:00PM): maven.com/p/f39276/stop-…

<a href="/MavenHQ/">Maven 🏛</a>

#tdd
Jelena Cupać (@cupac_jelena) 's Twitter Profile Photo

The core idea: focus on the domain — the real-world problem your software is solving — rather than getting lost in technical implementation details. Evans emphasizes that complexity doesn’t disappear; it just moves around. Join 5,200+ engineers: journal.optivem.com #ddd

The core idea: focus on the domain — the real-world problem your software is solving — rather than getting lost in technical implementation details.

Evans emphasizes that complexity doesn’t disappear; it just moves around. 

Join 5,200+ engineers: journal.optivem.com

#ddd
Valentina (Cupać) Jemuović (@valentinajemuov) 's Twitter Profile Photo

Don’t write broad integration tests to compensate for everything that unit tests can't do. Broad integration tests are slow & fragile. Join me at the FREE live event “Stop Breaking Production: ATDD in Legacy Code” (Sep 17 at 5:00 PM CET) maven.com/p/f39276/stop-… #tdd

Don’t write broad integration tests to compensate for everything that unit tests can't do.

Broad integration tests are slow &amp; fragile.

Join me at the FREE live event “Stop Breaking Production: ATDD in Legacy Code” (Sep 17 at 5:00 PM CET) maven.com/p/f39276/stop-… 

#tdd
Valentina (Cupać) Jemuović (@valentinajemuov) 's Twitter Profile Photo

🔹 Show business pain: bugs, delays, reputation loss 🔹 Show team pain: slow, risky changes 🔹 Show economics: lower maintenance, faster delivery Join me at the FREE live event “Stop Breaking Production: ATDD in Legacy Code” (Sep 17, 5:00 PM CET) maven.com/p/f39276/stop-… #tdd

🔹 Show business pain: bugs, delays, reputation loss
🔹 Show team pain: slow, risky changes
🔹 Show economics: lower maintenance, faster delivery 

Join me at the FREE live event “Stop Breaking Production: ATDD in Legacy Code” (Sep 17, 5:00 PM CET) maven.com/p/f39276/stop-… 

#tdd
Valentina (Cupać) Jemuović (@valentinajemuov) 's Twitter Profile Photo

Clear thinking is a byproduct of tidy code, not vice versa. The whole point of cleaning up code is to help you understand the problem better. 🚀 Join me at the FREE live event “Stop Breaking Production: ATDD in Legacy Code” (Sep 17, 5:00 PM CET) maven.com/p/f39276/stop-… #tdd

Clear thinking is a byproduct of tidy code, not vice versa.

The whole point of cleaning up code is to help you understand the problem better.

🚀 Join me at the FREE live event “Stop Breaking Production: ATDD in Legacy Code” (Sep 17, 5:00 PM CET) maven.com/p/f39276/stop-… 

#tdd
Valentina (Cupać) Jemuović (@valentinajemuov) 's Twitter Profile Photo

🚫 Superhero culture is NOT sustainable. Nor scalable. What happens when the superhero developer reaches burnout? Someone still has to maintain the system... 🚀 Register for free: “Stop Breaking Production: ATDD in Legacy Code” (Sep 17, 5 PM) - maven.com/p/f39276/stop-… #tdd

🚫 Superhero culture is NOT sustainable. Nor scalable.

What happens when the superhero developer reaches burnout?

Someone still has to maintain the system...

🚀 Register for free: “Stop Breaking Production: ATDD in Legacy Code” (Sep 17, 5 PM) - maven.com/p/f39276/stop-…

#tdd
Valentina (Cupać) Jemuović (@valentinajemuov) 's Twitter Profile Photo

STOP putting off Tests & TBD. No Tests? No TBD? Then no CI either. ------ Register: “Stop Breaking Production: ATDD in Legacy Code” (Sep 17, 5 PM) - maven.com/p/f39276/stop-… #tdd

STOP putting off Tests  &amp; TBD.

No Tests? No TBD? Then no CI either.

------
Register: “Stop Breaking Production: ATDD in Legacy Code” (Sep 17, 5 PM) - maven.com/p/f39276/stop-…

#tdd
Jelena Cupać (@cupac_jelena) 's Twitter Profile Photo

🚫 Do NOT couple your domain to infrastructure ✅ Do decouple your domain from infrastructure This is the core idea behind Hexagonal Architecture (a.k.a. Ports & Adapters) and Clean Architecture. ------ Join 5,200+ engineers: journal.optivem.com #cleanarchitecture

🚫 Do NOT couple your domain to infrastructure

✅ Do decouple your domain from infrastructure

This is the core idea behind Hexagonal Architecture (a.k.a. Ports &amp; Adapters) and Clean Architecture.

------
Join 5,200+ engineers: journal.optivem.com

#cleanarchitecture
Valentina (Cupać) Jemuović (@valentinajemuov) 's Twitter Profile Photo

𝐇𝐞𝐱𝐚𝐠𝐨𝐧𝐚𝐥 𝐀𝐫𝐜𝐡𝐢𝐭𝐞𝐜𝐭𝐮𝐫𝐞 𝐢𝐧 𝟏 𝐦𝐢𝐧𝐮𝐭𝐞 Hexagon → Business Logic Unit Tests → Test Hexagon Narrow Integration Tests → Test Adapters ------ 🚀 Register: “Stop Breaking Production: ATDD in Legacy Code” (Sep 17, 5 PM) - maven.com/p/f39276/stop-… #tdd

𝐇𝐞𝐱𝐚𝐠𝐨𝐧𝐚𝐥 𝐀𝐫𝐜𝐡𝐢𝐭𝐞𝐜𝐭𝐮𝐫𝐞 𝐢𝐧 𝟏 𝐦𝐢𝐧𝐮𝐭𝐞

Hexagon → Business Logic

Unit Tests → Test Hexagon

Narrow Integration Tests → Test Adapters

------
🚀 Register: “Stop Breaking Production: ATDD in Legacy Code” (Sep 17, 5 PM) - maven.com/p/f39276/stop-…

#tdd
Valentina (Cupać) Jemuović (@valentinajemuov) 's Twitter Profile Photo

Sometimes you want to generalize for reuse (choose abstract for flexibility), other times you want concreteness for clarity (choose concrete when flexibility is not needed). Register: “Stop Breaking Production: ATDD in Legacy Code” (Sep 17, 5 PM) - maven.com/p/f39276/stop-… #tdd

Sometimes you want to generalize for reuse (choose abstract for flexibility), other times you want concreteness for clarity (choose concrete when flexibility is not needed).

Register: “Stop Breaking Production: ATDD in Legacy Code” (Sep 17, 5 PM) - maven.com/p/f39276/stop-…

#tdd