Share via


The power of simplicity

Coding is design

Good design style and good programming style share common properties. This is so because they are names for the same thing.

Equally important is the observation that such activities are one and the same: design. A reason behind the fact many people see them as separated is the level of detail and strategic vs. tactic nature of design decisions; nevertheless, that is not a good reason to create a “design phase” theoretically where all design decisions take place and eventually this so-called phase is followed by a “programming phase” where no design decisions are taken, just ‘coding’, it is not a good reason mainly because the detailed design level (also knows as coding) affects design decisions taken at a less-detailed design (so-called architecture) that should be reconsidered in order to achieve a good overall design. A conscious job on software development design takes account of that principle of how systems design works in order to be fully finished.

Professionalism is software development – it is always about your decisions, at the personal level

A trait of professional software designers is a good feel for the elements of style and the aesthetics of programming, along with accountability for time, resources and the ability to satisfy stated or implied needs (quality)

You have noticed it, in our software industry there is a lot of hype around new products, new paradigms, new ‘silver bullets’ or magical solutions; in a sense, all these are like a hindrance to the proliferation of master professionals in software development.

I have a somehow incomplete observation that a root cause for such state of immaturity is a combination of basic human attributes, like greed and sluggishness

I like in general the tone of Bertrand Meyer when talking about the skills, concepts and techniques of our trade. See for example:

The power of simplicity by Bertrand Meyer
https://www.eiffel.com/general/monthly_column/2005/May.html