The system of engineering long prided itself on the discipline of doing just enough and never too much. With the increases of resources and the increase of the use of software to “improve” processes, the world has grown more complex. Now this is good for me, I get paid to simplify, but I am measured on the level of “knowledge” I impart to the people I work with. To compete with my peers, I have to write code that simplifies as well as complicates the underlying systems.
Back to engineering processes, software developers don’t worry about resources quite the same way as say an aeronautical engineer where weight, vibration and costs comes in to the design equation. For aircraft complication can lead to death or destruction of expensive equipment. Threading, memory, isn’t the same as physical elements like the momentum of an aircraft landing or a satellite launching.
In the university space, the mechanical engineering, as well as other engineering disciplines have been loudly grumbling that software seems to only grow more complex, not less complex. For designers of physical objects, complex software is a worry.
After discussing this with a few professors, one of the things I am going to be looking for is ways to simplify software.