Managing an IT Project whether it be building a website for a small business or an Enterprise solution for a fortune 500 company can be difficult to deliver according to the expectations of the customer. A lot of the time this results from a lack of understanding regarding the constraints that impact the work you are doing. If you don’t understand these constraints you are also likely not communicating well with your customer regarding what they should expect. The QTC Triangle is one of the most foundational Project Management principles that brings clarity to these constraints and should help you understand better why you might be struggling to accomplish what your customers as asking of you.
In Project Management a constraint is a simple concept, it is anything that impacts the work you are doing which, if you do not manage correctly, could result in failure. It quite literally constrains you from doing what you are trying to do. If you can understand the factors that impact the work you are doing, you might be able to do something about them and end up doing a much better job.
The QTC Triangle represents three of the most influential constraints on projects. Those constraints are Quality, Time and Cost. Here we will briefly examine each of these and then we will examine why compromise is important in managing these 3 constraints when you are trying to work on a project and set customer expectations.
Quality is the Q in QTC. This constraint represents exactly what it says, the level of quality that will be found in the work that is being done. We all like quality to be a characteristic of the work we do and customers expect the work that they are paying to be completed to have the highest standard of quality. It is critical to realize that both the time and cost that is put into building something directly impacts whether the quality of what is being built will be high or low.
Sometimes there are variations of the QTC Triangle in which Quality is replaced by Scope. Scope represents the features that are included in the work being done. Both Quality and Scope work. For example if you want more features, it will increase the time it takes to complete the project and the cost to build in those new features. Imagine the situation where someone is having a house built for them. And half way through the work they decide that they want to add an additional bathroom to the house which is in essence an increase in the scope of the project. Now, you can’t just add a bathroom and expect that the project will be completed in the exact same time as before and at the exact same cost. Both of those constraints will likely increase, if they do not the quality of the work done on that bathroom would be completely unacceptable.
Time is the T in QTC. This constraint represents how much time is put into the work being done. If someone wants something done in 3 days, instead of 3 months, it is likely that the cost will be much higher because it will take a lot more manpower to do something in such a short time or, the final quality of the work being done will be pretty poor at best. We talk more about this in the next section.
Cost is the C in QTC. This constraint represents the amount of resources whether financial or otherwise that are put into the work being done. Here it’s pretty easy to see that if the amount of resources put into a project are low that it will take a lot longer to complete and/or the quality of work being done will be poor at best. Now, it is important to realize that throwing resources, particularly people at a project, particularly one that is late, does not always speed up delivery, on the contrary it can actually increase the amount of time it takes to complete the work. This is commonly referred to as Brooks Law which is an observation about software project management that says when you add resources to a late project it makes it later. This is due to the fact that it takes more overhead to manage more people and this overhead has a great negative impact than any gains you might get from that new person you’ve just added to the team.
There are two areas where it is important to really understand the QTC constraints. First, the management of a software development project. For example, you may be working really hard on building a solution and are surprised when you come to test the solution and there are more bugs than expected. When you take a look, it may be because you’ve had to do this work in a very tight time frame and therefore missed some things in the process that you would have picked up if you were not rushed to complete the tasks at hand. You will better manage the work if you understand QTC.
Second, the management of customer expectations. A customer will work to get as much as they can from you even if it’s not possible for you to give it to them and rightly so. For example, you might have a situation where you are asked to build something for free (which you should try and avoid if possible), the customer needs it in 3 days and the work has extremely high visibility and so nothing can go wrong because it will impact your customers reputation. This is recipe for disaster unless you understand the QTC constraints and can communicate with your customer that you can do the work but they will have to compromise on either the time and/or cost if they want to have the quality they are looking for. This is what is best, not only for you but also the customer because if you were to go ahead with such a project it will likely result in failure anyway except in the rarest of circumstances.
So remember that Quality, Time and Cost are constraints that directly impact the work you are doing. They are inter-related and therefore you can only ever have 2 of the 3. Managing yourself and your customers expectations regarding these constraints through compromise is key to successfully delivering a software development project to your clients. I’d love to hear your thoughts about this and any experiences you’ve had relating to the QTC Triangle in the comments below.