Designing software is hard, and unfortunately, a lot of the people who
call themselves programmers can't really do it.
The simple fact is that if the people on a given project team aren't
very good at what they do, they're going to come into work every day
and yet - behold! -the software won't get created