In last hours of this year I’ve decided to write which are my thoughts, in 2015, about Software Engineering.
Engineering is the science applied to the real world, so a software engineer should solve problems >Tweet related with software. Problems are constrained for many different issues: technical, financial, economical, social, etc. Understanding and applying rational thinking are king to solve them.
People who write code and are passionate about, do not mean (at least for all of them) that they want to write instructions for a machine without any sense of just because somebody dictates them due a destructive bureaucracy.
Software Engineering is about creating good software. Good software is about applying best practices >Tweet which have been proof by identified experience put in practice than only been theories written in books, taught on universities degrees programs or even worse, spread through marketing campaigns, branding and so on.
There is no solution which works well for all the use cases >Tweet . Identifying the problems and limit them than trying to look for a solution for all of them, make the solution stronger and better; solutions which try to solve too many problems are bloated and make them weak.
Experiments are good as long as they are clearly identified >Tweet ; knowing and clearly identifying their trade-offs is a good start point to believe that they have been created with engineering in mind.
Simplicity is hard to achieve >Tweet , it has to be constrained in a scope and can only be created by a group of people who actively participate and provide feedback.
Being specialist in some technology or programming language is fine, as long you have some knowledge of the lower layers; not having them or having the interest in acquiring them, limit the ability of the people to solve the problems which aren’t solved by the specific technology out of the box.
Managers, who don’t work close to the tech, do not design nor build software >Tweet . Having years of experience in software engineering allows people make decisions based on those, however if they do not keep connected with the technology, they should become a non executive feedback providers.
Probably I’ve missed a few more things to say, but they are enough for this year.
Have a good end of this year and good start for the next one.