So you signed up (or were conscripted) for a project and the project manager asks you, "When will you be done? How long is this going to take?"
What do you do now?
In my previous post, I spoke about building a work plan and setting expectations. This post will go hand-in-hand with my last one. In fact, it is actually a subcomponent of the process mentioned. I spoke about selecting the different methods that were most suitable for a given project.
Then I mentioned that based on the size and scale of the endeavor you could develop an idea about how many different sessions one would need for each of the different methods of gathering requirements to be used.
For each method, based on your experience level, knowledge of the situation and other factors (such as your productivity level), you can start to build rough estimates for how long it will take for each session in the requirement gathering process. By this I mean,
- W hours will be spent gathering requirements using a specific methodology.
- X hours will be spent analyzing, revising and ensuring consistency with already captured requirements; Or in other words, preparing solid requirements.
- Y hours will be spent in a review process. This includes the time one spends waiting for clients to open their email and review the documentation as well as any formalized review processes that you have agreed to follow.
- Z hours incorporating any changes, modifications and processing change requests.
Now, W + X + Y + Z = the elapsed time to complete one full session using your chosen methodology. Since you have an estimate about how many different sessions you will need for each method, you can provide a rough estimate for the length of time for the entire process. Note that I am a proponent for adding a little extra contingency time.
I want to avoid providing specific timelines for doing components of the process because it will vary depending on factors such as:
- Experience level of team.
- Familiarity with the subject matter.
- General productivity level of team.
- Level of multi-tasking involved (i.e., how many projects are people assigned to simultaneously.)
As your experience level increases, your estimation skills will improve allowing you to provide better and more reasonable estimates on the whole. This is not to say you will be the perfect estimator (there is a reason it is called an estimate); but all things being equal you will be good at estimating the effort needed for your deliverables.