Is quality a function of Project Management? or a separate entity in its own right? Theory and practice tell us different things on this subject, which is why i’m finding it very interesting. Take PMBOK and you will find that managing quality comes under the perview of the project manager. Afterall, they are responsible for everything which happens during the project. However, it constitutes a big conflict of interest.
A project manager’s job is essentially to deliver the project a)on time, b)within budget and c)with agreed functionality. The emphasis has gone so much on delivering it that quite a few pm’s have forgone any thoughts on ‘what’ they are delivering. Requirements get misunderstood, developers introduce their own ‘features’ or try to implement the ‘next best thing’ and bugs run rampant. However, as long as the project gets delivered, who cares right? And often, it is quality (reviews, testing and process) that get axed to make up for poor estimation processes, scope creep and the hundreds of other commitments on the project team’s time.
Recently, i was reading an article by Chip Campden, an IT Consultant based in the US on how to charge customers for IT consulting (read coding) services. His response was that he charges highly and based on value delivered and still has great clients who’ve been with him for a long time. So much so, infact, that he hasn’t had to look for new clients in a very long time. He explains this is because he can do what thousands of offshore developers (read us) cant do… yet. He can understand the client’s needs, and effectively transform them into computer code, rather than just belting out thousands poorly designed LOCs that just barely do the job and are horrible to maintain.
If you read the above paragraph carefully, you’ll see almost a road map software companies from our side of the world need to go on to succeed. Infact, quite a few companies i know about have done exactly that and are now behemoths in their own right. Understand your customer and deliver what they want. Such a simple concept, yet one which is quite often slashed in the wake of disastrous coding and project management practices.
So, would you slash time reserved for quality if you knew this could be the last project you would get from that client?