triangle of truth

Over the weekend I spent some time looking at the books that I have collected in my professional library. It is clear that Steve McConnell is one of my favourite authors and I have almost all of his books. One of my all time favourite books being the Software Project Survival Guide.

The project I am working is in the early stages of a significant development effort and there are lots of discussions between development and project management over the schedule. When reading the related sections in Rapid Development it struck me how as a supposedly professional profession, we do not learn from previous mistakes and continue to break fundamental rules of development.

I reflected on this at work in a conversation with a colleague. As an example I talked about the Triangle of truth, which is my name for what Steve McConnell talks about as the trade off between schedule, cost and product (page 126 of Rapid Development). Basically all three should be kept in balance and no single role on a project can own all three.

I wish as a profession we could learn fundamental rules like this. So when a project manager comes and demands that "You must deliver function X in one month with two programmers", we can say "OK, but the quality will be very poor as there is not enough time to do a quality job" (unless of course there is enough time:-).