Software Engineering is very different from any other type of engineering. While in mechanical engineering or electrical engineering there’s a definite “right” and “wrong” way of doing things, in software there just isn’t. At least as far as software design is concerned. 10 software engineers can build the same product with completely different architectures, different programming models and different languages, and nobody will be right or wrong. With that mindset, I’d like to t...