re: What Are The Best Software Engineering Principles? VIEW POST


Not really a fan of big upfront design. I prefer a "just enough" upfront design approach to get started, and then design as the need to do so arises. A big upfront design has the tendency of making future changes difficult, and "change" is the one constant in software development.

Regarding all the other principles, I have the same opinion as Frank Puffer a few comments above: you should know the principles and adhere to them, but you have to strive for that sweet spot of balance between them.


I find "just enough" design + SOLID leads me to code that does what it needs to, but the abstractions are clean enough that there are enough places for me to expand some part to deal with changes (more likely more details) to the specifications


Zero upfront design here.

Covering following roles does the job.

  • Interface class
  • A Machinery Object (a do'er)
  • A Consumable Object (e.g. input)
  • An InterActor Object (e.g. adapter, handler)

All class properties private, no getter-setter and other magic tricks.

Code of Conduct Report abuse