Have you seen this comic or a similar one? It goes a long way to explain the reality of what can easily happen during a project if everyone on the team is not careful to keep working together and keep the end goal in sight. While you can talk at length about how to make sure this doesn’t happen, lets focus on just two of the panels. The roller coaster and the tire swing.
Starting a new software project can be a challenge for many different reasons - you need the right people for the job, you have to know the technology you want to use, and you have to determine whether there are any geographical issues that need to be dealt with (i.e. multiple people in multiple locations).
But one of the most challenging problems can be determining what your client actually needs and filtering out all the stuff that they think they want. And, once you figure that out, keeping everyone on the team – including your client – on track.
Many times when you (as a Project Manager) start a new software project, you will get a long description of all the features required for the new software. And when discussing things further with your client you will find them talking about different screens, interfaces, reports, cool graphics, mobile and the ability to do this and to do that…the list goes on and on and on.
Theses “wants” are what you need to siphon through to get to root of the problem that needs to be solved and to identify any other constraints that will impact the project, like specific technology or architecture limitations. I have to admit, sometimes it is difficult not to get caught up in the ideas of what can be done and how awesome a solution your team can create for your client, but in the end, you have to remember – what you are building is for your client, and you have to figure out what you need to deliver given the amount of money and time your client is willing to invest.
Now that you think you know what your client is looking for – a piece of rope tied to a tree, holding up a used car tire - and understand basically what the problem is and you have formed your project team with the best minds in your organization, and everyone on the team is on board with time and budget and other constraints, and everyone understands what they need to do you can sit back and wait for the final delivery, right? Well, not quite.
Your project team is made up of people. And not just any kind of people – these are intelligent, creative people who have ideas and thoughts of their own about screens, interfaces, reports, cool graphics, mobile and the ability to do this and to do that…the list goes on and on and on. Sound familiar?
It is very easy when working on projects to get caught up in the ‘what we can do’ vs. ‘what we need to do’. In some cases this is just a matter of managing scope creep, but I think there is another level, that is a lot harder to reign in. This is about the implementation. Everyone needs to remind themselves when thinking about implementation that it is easy to start thinking about a roller coaster solution instead of a simple tire swing. The roller coaster solution is awesome, it’s uses current technology, it’s different from what you have been doing, it’s an opportunity to learn…but it’s not a tire swing. If you had an unlimited amount of time and money, and your client actually wanted a roller coaster, it would be possible to build anything that your mind could imagine. The unfortunate reality is that this is rarely ever the case for software development projects.
What would happen if you built a roller coaster when your client only wanted a tire swing? Hopefully you never find yourself in that situation.