Big battles are won on small details

Small details matter because you deal with them often. Any enhancement you make thus yields a benefit often, hence a bigger overall benefit. In other words: invest small care, get big return. This is an irresistible proposal!

balance
Every single step matters

Examples of small design-level details that I care about because I have experienced great payback from them:

  1. Using Value Objects rather than naked primitives
  2. One argument instead of two in a method,
  3. Well-thought names for every programming element
  4. Favour side-effect free methods and immutability as much as possible
  5. Keeping the behaviour close to the related data
  6. Investing enough time to deeply distillate each concept of the domain, even the most simple ones

Ivan Moore has an excellent series of blog entries on this approach: programming in the small.

All these details emphasize that code is written once then used many times. The extra care at time of writing pays back at time of using, each time, again and again. Each enhancement that minimises brain effort at time of use is welcome, because software design is a matter of economy.

Other kinds of “details” that I care about involve the human aspects of crafting software: being on site, face-to-face communication rather than electronic media, respect and consideration at all times, always celebrate achievements, etc. Because ultimately, it also boils down to people that feel like building something together.

cyrille

Software development, Domain-Driven Design, patterns and agile principles enthusiast