December 26, 2019

Core Design Principles for Software Developers

Youtube Videos


Venkat Subramaniam, Founder of Agile Developer, Inc.


The presentations from Venkat are always interesting to watch. There are several good guidelines to software development in general, but also related to OOP with some principles like polymorphism and open/close as good thing we should also strive for.

Not sure about some peculiarities he seems to pay really attention for, for example, DRY and IDE. However, I need to keep studying these principles because I feel there are some good patterns here to be used in other worlds as well.

I will look for some exercises focusing the SOLID principles. Maybe should be a good idea to go out for my current code and try to find places where I already violate some of these principles.


Software is never written, it is always rewritten

Keep it simple, stupid

Simple keeps you focused

Simple solves only real problem we know about

Worst form of coupling - Inheritance


  1. Subject the design to changes along the way and see how it reacts to it

  2. To create good design first step is let go of the ego

  3. Be unemotional

  4. Take time to review design and code

  5. You Are Not Gonna Neet It - Think YAGNI

  6. Try to see if you can remove coupling

  7. Focus on Single Responsibility Principle

  8. Don’t comment what, instead comment why

Tags: design software