Why is delivering good software on a consistent basis hard? There are many existing answers to this question already. This is our version.
A list of things good software should achieve:
Should solve a real problem
Should be shipped and maintained within the budgeted cost and time
Should be easy to use
Update: We’ve now migrated to James Shore’s definition:
“Success is [...]