The 4 rules of simple design

Simple design: to provide fast development pace, low upfront investment, ease to change

Keep it simple

What this principle intends is to minimize the cost and maximize the benefits during a software project lifetime. The adoption of this principle is only possible basing the development in refactoring iterations, such as TDD. When we talk about design here, we only talk about the software itself, not product design nor strategic design. User or PO requirements should be treated outside this practice.

These four rules of design were first defined by Kent Beck in the late 90’s, since then, these rules have outlined the fundamental concepts of software design. It is part of the core practices of eXtreme Programming (XP), and in the same way, this practice pursues the quality enhancement and to improve the ability to adapt to the changing needs.

The 4 rules of simple design:

The rules are listed in priority order. Working software first of all, maximize the cohesion and minimize the coupling later.

  1. Pass all the tests
    This is the quickest feedback you could get from your system. If you change anything on it, it tells exactly what you broke. That is why is so important to only refactor with passing tests in TDD. Your software should work as it is intended, tests just guarantee that.

Something to keep in mind
Even though we don’t explicitly need to design anything upfront, it requires some experience in design. Simple does not mean trivial. Brilliant designs will not just emerge because you are following the practices, it comes directly from the development team. Design is an ability that comes with the years.

Software engineer as a profession, frustrated musician as a hobby, casual sportsman and social drinker in my free time. My personal blog:

Love podcasts or audiobooks? Learn on the go with our new app.