The engineering in software development – trails of design mastery

Whereas software development practice still shows broad range of singularities, spanning from science and engineering to art and craftsmanship preventing a single classification, there is an aspect of software development as an engineering discipline that matters the most: supporting design decisions with measurements.

Measurements are in the essence of the scientific method cycle (the basis for engineering disciplines): Observation, Question, Hypothetic answer, Experiment, Collecting and analyzing data, Conclusion.

A remarkable fact is this process should be followed for any practitioner shaping designs for any no-trivial software, no matter how much she thinks is a well-known prescription that needs no further thinking; particular and in-context factors accumulate more quickly that we are able to concede.

The following quote by Rico Mariani states the above idea quite admirably:

"As an engineer you have a responsibility to quantitatively understand the costs and benefits of your proposed solution. Using our design guidelines to focus and limit your choices to patterns which have historically proven to be good choices is a great way to focus your work and be more effective but it does not discharge your responsibility" -Rico Mariani

His blog entry about the subject matter is entirely appropriate:

Engineering is a quantitative discipline

https://blogs.msdn.com/ricom/archive/2004/06/16/157329.aspx