Project estimation is one of the most important steps in project management. Whether a web development project is big or small, a good project estimation can make things easier during the project execution cycle. Many times a project’s success or failure depends on the proper estimation process. A good project estimation will lead to a successful project while a wrong estimation may end up in project failure. We may have to estimate project in response to the RFP (request for proposal) or during the initiation phase of the software development project.
Let’s start up with the understanding of project estimation. What exactly it is and why it’s so important? Before starting any software development project, we need to assess the project in terms of effort/time and cost. Cost part majorly depends on time required to execute the project so depending on time & effort, we can define the cost. So software project estimation is the process of evaluating the project in terms of effort, time and cost.
Now, let’s see why this process is so complex.
Whenever any software development project is started, it starts with an objective which has some defined requirements and functionalities underlying it. One simple example is to develop a website for any organization or business. A complex example could be to develop a securities processing system for a brokerage firm. So in both examples, we have a clear objective to achieve but if we go a bit deep down this objective then we will find more detailed requirements. In case of the website example, besides technical stuff of hosting and domain etc.; we need to define various pages, sections, contents, images and forms etc. On the other hand, in case of securities processing system, more complexities are involved in terms of various stakeholders, technical and functional details, types of securities and stock exchange regulations etc.
So all projects with some objective will have a huge set of clear and unclear requirements. These requirements may be clear at the beginning of the project or will be clear as we progress with the project. The uncertainties about the complete requirement at the beginning of the project makes the project estimation a complex process. Sometimes an unclear objective will also add up to complexity in estimation.
Challenges in Software Development Project Estimation:
There are many challenges in many aspects for project estimation. Below are some of the significant challenges:
- The uncertain gray area –The biggest issue is the uncertainty involved at the beginning of the project. Many times even the client is not clear about the whole complete requirement. If there is no complete clear requirement then how it’s possible to estimate it in term of effort and time?
- Not splitting bigger tasks- If somehow things are clear then many times the estimation is taken keeping in mind the bigger tasks instead of splitting it into smaller tasks for proper estimation. Such estimation will definitely will lead to the overhead tasks at a later stage.
- Idealistic & optimistic estimation-Most of the time, the estimation is done keeping in mind the ideal and optimistic conditions but things like version maintenance, unavailability of some resource and change requests during the project etc. are not considered in project estimation.
- Estimation person- Estimation must be done by the developer or in assistance with the developer. Sometimes the estimation is not done by the developer which may lead to huge mismatch in the estimation.
- Buffer & dependencies – It is always uncertain that how much buffer a PM should take. Usually 15-20% buffer is taken keeping in mind project elaboration as project progresses. But this decision should also consider the things like skillsets, experience of the team and complexity of the project. Dependency of project’s internal as well as external factors are not considered most of the time. It can be in terms of some functionality like payment integration or some license cost for some software etc.
– Below are some of the steps which can help in better project estimation for a successful software development project:
- Asking questions to clarify requirements – This is the most important part. The PM should enquire as much as possible to go deeper to clarify all the requirements. More clarity will always lead to better estimation. Clients will also appreciate this in some way as he will come to know about some aspects which he didn’t even think about till now. He must clarify all functional, non-functional and technical requirements separately for better understanding. PM should clear up all uncertain gray area.
- Tasks Splitting – PM/Developer should split the task up to last mile small sub-tasks which will definitely lead to much better estimation. A Bigger task may have 10 sub-tasks inside it for which the cumulative effort may vary significantly. A method is to create WBS, work breakdown structure, which enlist all the sub-tasks and their efforts in detail for complete effort estimation. Another way is also to split the tasks in MS projects with baseline details. Smaller the tasks better it is.
- Estimation – Should always and always be done by the developer or in close assistance with the developer by defining each milestone of the project. The PM must use his experience also in estimation process. Estimation should be come in range of time frame instead of a particular timeline. E.g. 4 to 5 months is much better than a 4 months estimation. The reasons is- its estimation only not a final deadline for the project. Estimation is always considered as a deadline in most of the cases so the probability of going wrong in case of a single number timeline is quite high.
- Proper buffer – Should be taken considering the things like skillsets, experience of the team and complexity of the software project. All dependencies must be understood well at estimation stage itself.
Though there are many more aspects which can be covered under the umbrella of project estimation but considering the above recommended solution will significantly help the PMs in better software development project estimation.
Good luck for your next estimation!
Check out my other article: My journey with AAPNA Infotech
Other Related Articles You Might Be Interested In
- Software Development Outsourcing: 5 Key Reasons To Outsource
- Benefits of Outsourcing to Smaller Companies
- Significance of DevOps in Business
- Common Myths About the Software Testing World
- Challenges of Outsourcing and How to Overcome Them