There has been a decades-long argument over whether software development is an art or a science. The “code is poetry” faction believes that code, like any language, can be written lyrically and still achieve its proper function without egregious errors. The more scientifically-minded programmers counter that code is ultimately math, and there is only one right way to balance an equation.
The push and pull between these two sides have produced more than a few myths over the years. If you are a software developer or you work in a technical field, you will likely recognize a few.
Limits Don’t Matter
Giving developers the opportunity to do anything they want or removing all of the limitations on a project is guaranteed to produce chaos. Almost all great innovations are the result of overcoming barriers. One need only look to the history of video games in the 1970s to see what developers were able to accomplish with a molecular-scale fraction of the power they have today.
Software is Canned
When developing any project that relies on evolving technology, thinking of it regarding shipping a can of soup is guaranteed to produce higher costs and lower quality. Software must be maintained, or it rots. While that might sound strange to people who have certain beliefs about the nature of solid-state electronics, the truth is software exists in a world where platforms, users and networks are in a constant state of flux. If the software isn’t in a similar state, it will eventually stop working correctly.
New is Better
Any naval engineer will tell you the truth about new ships. They might have all kinds of advanced capabilities, but everything comes with a price. New skills have tradeoffs in the form of bugs and malfunctions. The crew has to be trained. The ship needs shakedown time. The same is true of any technology. New isn’t always better. On the contrary, new is often risky and complicated and expensive. Better to use reliable techniques with proven track records initially than to bet on innovative hype and end up spending twice the time and three times the money.
Myths are dispelled by experience and knowledge. The successful developer understands the value of working software and does what they must to get their project to a point where the function is the priority.