The problem seems to be that the software blindly trusted input from a single sensor. The issue I take with that is that multiple sensor readings are available on the aircraft. Even in non-life-critical applications like video games, software engineers absolutely are responsible for validating inputs from untrusted sources.
Beyond that, a good software engineer would have ensured that the specification made sense, that the integration with the rest of the system made sense, and that a sensible override system was part of the system design.
That said, the bulk of the article focuses on management's failure to ensure that quality was a priority, and to communicate that clearly in the company culture.