Sweet Smell Of Success

July 10, 2007

Everyone has a different definition of what success means and most people have set goals in their own life on when they would say they have neared or achieved success. One question I will ask at some point in every class is

“How do you think you can define a project as success?”
(followed by some feigned look of contemplation)

“When the client pays!”
(followed by some slight looks of amusement from a small minority)

But, when is a project a success? I was reminded what a moving target project success can be when reading this blog entry. One definition is it is a success when a project meets time, cost and scope expectations (triple constraint) set out in the project definition phase. Another can be when the customer signs a project acceptance form signifying the project has met requirements. Another could be when the project has passed a rigorous form of QA and user testing and is running in its production environment.

I have had developers tell me that they worked on projects that were considered a success by their companies or the client but not by them. They didn’t implement the database interface the way they wanted or the user interface could have been implemented with the newest widget to make it look better. The answer to this is; get over it. You delivered software to a client who is happy. He paid for it, you didn’t. His opinion matter more than yours. Besides, the reasons you state the project were not a success have no effect on the world’s view of the projects successfulness. So, the project was a success.

However, being somewhat of a nebulous term and allowing considerable lee way in its definition I think there is not a definite answer. The answer lays in the fact the user and the developer must be on the same page, in almost every step of the project, on what success is and their definitions must be the same or very similar. The exact definition will change, become more refined, and each party must understand and be in agreement with the changes.

This is why I believe agile development really does help in achieving project success. Agile allows the team and client to experience small portions of success on the long road to the ultimate success. It is like passing mile markers on a long road trip.  In Agile we can correct when we stray from the path that leads to achieving that success before it is too late. And finally the user is involved constant providing guidance and feedback on leading to that final goal. Here is another blog post that does well in formulating some of these points.

So success is when the development team, stakeholders and the eventual users worked together to develop a product that met the criteria they worked on together to develop.

Of course if it is on time and within budget it will be a really big success….