Clean Code is useless without Tests
A decade ago, I saw tests as second-class citizens.
When I started my career as a software developer, I only cared about architecture & code. I didn’t care about tests.
Why I ignored tests for years
Previously, I saw tests as something that was at the end, that belonged to QA. It felt boring, like bug reporting.
My main interest was in design & code: is this implementation better than that one, which design patterns should I choose… because I felt like the whole point of development is coding, making beautiful architecture, writing elegant and maintainable code.
Tests felt secondary compared to “real development”. And to be honest, in most companies, software developers are seen as higher than QA engineers.
Architecture & design blocked without tests
What changed for me was more circumstantial than intentional. I enjoyed redesign and refactoring my solution, but it was annoying that I had to re-test everything and would found I broke functionality. I had to do it myself because waiting for the Manual QA Engineer would take weeks.
For example, there was a long method with hundreds of lines, with lots of duplication. I would need to refactor the duplication. But in some parts, I missed some special scenarios, causing regression bugs.
I realized that I need to do automated testing, which caused me to learn more about tests. And then I came across the test maintainability problem, and had to figure out how to solve that as well.
I’m still motivated by elegant design, just in a different way
The part that excites me most now is writing maintainable tests. For example, with acceptance tests, you need to consider the whole architecture, the DSL, the drivers...
Writing maintainable tests actually lets me use the same skills that motivated me before - designing maintainable, elegant code. I’m essentially motivated by architecture and design, but through tests now.
So ten years ago, I was motivated by architecture and maintainable code. Now, I’m still motivated by architecture & maintainability - on the test side.
Tests are more important than code
What I once saw as boring and secondary has become the most rewarding.
I now see tests as the most #1 important thing, whereas I see source code as priority #2. Why?
The top priority is that we deliver software that works
The second priority is that code is easy to change
Writing automated tests is crucial for achieving the top priority. By writing tests in a maintainable way, we reduce test maintenance costs and overall development costs.
The mindset I used to apply to coding elegant systems now applies to building maintainable, high-quality test suites.
Acceptance Tests are the #1 most important tests
In order to have protection against regression bugs, the only way we can achieve it is by writing Acceptance Tests, which verify that software works correctly from the business perspective.
To write Acceptance Tests in a maintainable way, we need to design the Acceptance Test architecture properly: write Acceptance Tests in the business language (DSL), decoupled from our system implementation.
I want to share it with you. That’s why I’m opening limited spots for the 2026 ATDD Accelerator Program. This is designed for Tech Leads and Senior Engineers who want to learn ATDD quickly, without spending years on trial-and-error or in books. You’ll learn how to apply it to your real-life projects.
👉 Reserve Your Spot for the 2026 ATDD Accelerator

