TDD is not software design

TDD is not software design

Hey everybody! The About Coding newsletter is back with a first edition of 2025.?

Last year, I was really busy creating and doing live training sessions. They were great, it was fun doing them. They also took a lot of effort and time to create. So I won’t be doing them anymore, at least not in that format. So I have more time to write now!?

In this first edition of 2025, I am going to talk about TDD and the many claims on LinkedIn that TDD is a design tool. But TDD has very little to do with general software design. People claiming that TDD will lead to a modular, flexible design or anything related to that are plain wrong.?

You can read the full article here.?

I have thought a lot about this edition and I have tried penning down my thoughts as clearly as possible. Let me know what you think. As usual, I am open to counter arguments. Just keep it polite and respectful.?

Enjoy!?

#softwaredevelopment #softwareengineering #softwaredesign

Georgios Christou, PhD

Transforming custom software development agencies into rockstars

1 个月

Nicholas Ocket that's an interesting way of looking at TDD. I will go a step further though. I believe that TDD is a programming methodology and not a design one. In my understanding design is done on paper, before any line of code comes out of our keyboards. TDD is program-oriented in that it needs to know the inputs and outputs of each call, API, functional, etc, in order for tests to be designed. Therefore is moves into the middle space after design and before implementation. Thoughts?

回复
Gareth Heggie

Senior Software Devloper at Pixel Fusion

1 个月

Interesting take! TDD is often seen as a design philosophy, but in reality, it's more about ensuring functionality rather than shaping the architecture. While it improves code reliability, it doesn’t necessarily drive software design decisions. Curious—how do you see teams balancing TDD with broader architectural concerns?

Not believing TDD helped software design was one of the main reasons I didn't embrace TDD quickly enough. It take me a long time of doubting myself before I was confident enough to trust good design would not just fall out of TDD, although both are very important. I wish I could have articulated it then as well as this article does.

Javier Lopez

Principal Engineer en ThoughtWorks

1 个月

I have a different point of view here, and probably is because when I think about design I'm thinking not in something that happens from time to time but a continuous thing. In this case, design is based on small decisions that you can take and change only if things remain working as they were before. Following this idea, TDD is a design tool apart from a lot of others things. https://www.youtube.com/live/7aEIIonw_dQ?si=825nKw91V_g-9NvK

Vedran B.

Junior DBA and Veteran Full-Stack Developer

1 个月

Tell me that you don't have a clue about software design by telling me that TDD improves your design.

要查看或添加评论,请登录

Nicholas Ocket的更多文章

  • The problem in our industry...

    The problem in our industry...

    Hey everybody! Here is the Februari edition of the About Coding newsletter. We have a problem in our industry.

  • Lean Architecture

    Lean Architecture

    Technology seems to evolve every day, but the way we build software doesn’t seem to evolve at the same rate. On the…

    10 条评论
  • Rich Domain Models

    Rich Domain Models

    Hey everybody! This is the October 2023 edition of my newsletter. In my previous edition, I talked about how an open…

    1 条评论
  • Your own superpower

    Your own superpower

    Hey everybody! This is the September 2023 edition of my newsletter. A bit late again (as it is October already), but I…

    8 条评论
  • Clean Architecture: the essence of the dependency rule

    Clean Architecture: the essence of the dependency rule

    Hey everybody! This is the July 2023 edition of my newsletter. A bit late again, but the work doesn’t stop really.

    5 条评论
  • Change in Clean Architecture

    Change in Clean Architecture

    Hey everybody! This is the June 2023 edition of my newsletter. A bit late, but I had a tremendous amount of work the…

    3 条评论
  • Coupling and cohesion

    Coupling and cohesion

    Hey everybody, Here is the May 2023 edition of my monthly newsletter! In my previous newsletter, I talked about Clean…

    7 条评论
  • Growing towards Clean Architecture: 3 common mistakes

    Growing towards Clean Architecture: 3 common mistakes

    Hey everybody, Here is the April 2023 edition of my monthly newsletter! In my previous newsletter I wrote about a…

  • From problem to code: a simple strategy

    From problem to code: a simple strategy

    Hey everybody. Here is the March 2023 edition of my monthly newsletter! Do you ever find yourself staring at a blank…

    7 条评论
  • Simple problem, Simple design

    Simple problem, Simple design

    Hey everybody! Here I am with the next edition of my monthly newsletter. I am a bit late, at the verge of a new month.

社区洞察

其他会员也浏览了