Years ago, I worked for a company that had a strictly governed bug fixing process. The bugs to be fixed per release were specifically regimented, right down to the amount of hours available to fix each issue. Developers were expected to meet or beat their estimates, and failing to do so meant overtime (since the deadline was immutable). With effectively every working moment spoken for, there was never any free time for innovation, invention or creativity (at least on the schedule). Developers were effectively bug fixing or feature building machines, with no input into the process or product features.
Unfortunately, this seems to be an all too common trend in the development industry. Employers, who love the ability to measure things, disdain the fact that engineering is first and foremost a creative art, that cannot be effectively measured. They attempt to install artificial measures of productivity like tests written, lines of code added, bugs solved, and number of bugs reopened by the quality assurance team. Sadly, these measures all fail to effectively measure the effectiveness of development teams, because the developers themselves see immediately through the schemes, and learn quickly to game the system.
Laura Thomson posed a question on Twitter, asking what do you like most about being an engineer? I spent a good part of the morning thinking about it, and it’s an interesting question to answer. My answer is simple: it’s the fact that engineering is a creative enterprise, one that requires intense imagination and sometimes lots of sweat, blood and tears.
The greatest inventors of the past were creative, intelligent thinkers who imagined solutions. This to me embodies engineering today. As a software engineer, I’m called upon to answer difficult technical problems that involve creating solutions that require innovation and invention. Engineers are modern-day inventors.