How many of you have been told you won a project that someone else thinks is a great idea, but no one actually knows if it is possible? Assessing the feasibility of a software development project before you begin coding may seem like an alternate reality for those managers who “receive their marching orders from on high,” but seriously studying and trying out ideas before committing to a cost and schedule can reduce project risk. It is possible to actually answer some key questions like:
- What would happen if we … ?
- Would it be possible to … ?
- Can we apply XYZ technology to this problem … ?
- Can we actually move this application to the cloud?
Feasibility study process
Contrary to many “financial type executives,” a feasibility study is neither open exploration nor research. Rather, feasibility studies seek to assess if an approach or a tool can solve a customer problem within a realistic cost and time. Just as in routine software development, the first step is to define the requirement. Next, you need to determine if a business case to use the approach or tool can be made, if the feasibility study yields positive results based on need and strategic alignment.
In a feasibility study, you should create a procedure that allows you to test the utility of the approach or tool you are considering. That means establishing measurement criteria and a comparable baseline measure. You will also want a schedule and milestones (we are talking a high level and simple one) to know how you are progressing and to provide progress reports to decision-makers. Now, go to work implementing your feasibility study.
Document the problem and approach. Explain what you did, how it worked and its application to existing and future software development projects. Consider the scalability of your approach when the problem becomes more complex or the number of users grows exponentially. Objectively report the benefits of using the approach you tested in the feasibility analysis and any downsides you foresee. For example, “using tool X increased response time by 50%; however, the performance advantage decreases to zero as the number of users exceeds 100.” Or maybe “Solution Y was preferred by expert users, but considered more difficult to use by beginners.”
Even if the results of your feasibility study were negative, you did not fail. It is often just as important to rule out a tool or an approach as it is to find a solution. (How many trials did Edison have before he found something that would work as a light bulb?) Well perhaps failure is not as good as success, but useful nonetheless.
Benefits of a Feasibility Study
So here are a few benefits to sell doing one:
- Better understanding of requirements
- More realistic basis for cost and schedule estimates
- Chance to try something creative without having the entire success of the project resting on the outcome
- Management makes better decisions in contract negotiations
- Projects doomed to fail can be cancelled early in development rather than after time and budget are exhausted
Risks of doing a Feasibility Study
Yes there are some pitfalls to avoid:
- Premature release – this has happened to me many times. The prototype used to assess the feasibility of a solution all of a sudden becomes the demonstration of a completed product when shown to potential customers. It happened to me with one of the first web applications while I was at Bell Atlantic.
- Falling in love with your approach – you lose objectivity about the downside of a tool or solution because of the investment of time and energy in making it work. The whole purpose of the study is to determine the “feasibility” – not to prove it is a great solution.
- Extrapolating beyond the data – because a solution worked well with knowledgeable testers, you assume that naïve users will be equally successful. Alternatively, the approach works only when using an internal server, not across the cloud with limited connectivity or bandwidth.
If you are in a situation and can get the time and budget, using a feasibility study is a great way to reduce risk and chance of failure. This is generally the right thing to do when the dollars are large or the project is strategic (Or if project failure would result in a major event for your organization).
So have you used a feasibility study before – leave us a comment about it.