Why are we so bad at software engineering?