The Love Triangle which every developer should know

different expectations

For all of us who have to do projects for others – either customers or even internal projects for your company, its very important to realize the feasibility or non-feasibility of a project as early in the development process as you can. This can go a long way in making sure that you are not going to put in time and effort in something which is going to end in failure anyway.

There are few things more demoralising than working hard on an application for weeks and then finding out that it wasnt appreciated or it didnt work the way it should have.

Most of the projects which end in failure or end in the recycle bin can always be traced back to communication problems between the stakeholders of the project, mainly the customer and the developer(s). Its very rare that a project fails because of technical/hardware/software reasons.

Human communication is very error-prone and vague as it is, and when applied to software development, the errors and confusion are even more magnified.  What you think of the project and what the customer thinks of the project may be completely different. And if you are going to start work with that situation in place, then it is doomed to failure no matter how much time and effort and skill you put in into it.

different expectations


The Love Triangle is the one thing which will help you know within 5 minutes if the project is going to work or not. Since its a very simple and non-technical diagram, you can use this to explain to the customer, why the project will fail (or not).

developers love triangle
developers love triangle

Every project has three components to it:

  1. Features: The set of features which have to be implemented
  2. Resources: Resources available in terms of manpower/hardware/software/money
  3. Time: The time available to implement the project

In all my years in the software business, I have yet to see a project where all the three components were evenly matched. We dont live in a perfect world so we never get perfect projects.

What happens is that generally the customer falls in love with all the three components i.e he wants to control all the three components as per his liking. For a project to succeed, he must be willing to let the developer fall in love with at least one of the components.


Project X needs 100 features, has to be done in 5 months and will require 5 people.

In the unlikely case that you find the above constraints perfect then you have nothing to worry about. The customer’s love triangle matches yours.

However what will happen is that you will have a problem with at least one of the components:

You – “We cant do this in 5 months, we need at least 7 months”

Customer – “Not possible”

You – “Then if you want it in 5 months, at least increase the number of people to 8”

Customer – “Not possible”

You – “Fine, then if people and time cant be changed, reduce the deliverable features. We can do 65 of the 100 features within these constraints”

Customer – “Not possible”

The above situation is a huge red flag. Because the customer refuses to give you control of any of the three components.

You can use the above diagram and explain to the customer, that if hes not willing to let go of even one corner of the triangle, then the project will never work out.


Simplest thing to remember. You need to have control of at least one corner of the Love Triangle if you want the project to succeed.


  1. Hi Nisha,
    Thanks. Yes I know there is some issue with the sharebar, but somehow since its a WordPress plugin I am not sure whether I should change the WP theme or change the plugin.

Leave a Reply

Your email address will not be published.