We have a huge budget and too much time to complete our business intelligence (BI) project
If you agree with the title of this post then you don’t need to read further, either your business intelligence (BI) project will be amongst the very few (less than 40%) that will not end in abandonment / failure or you do not have to worry that your project will drain your huge budget before slowly and gradually failing.
For everyone else, this article that presents the benefits of using an Agile approach to software development. This post is a follow up to my previous article called Nobody is interested in Agile where I wondered why so few articles explained the actual benefits (the WHY) behind Agile.
Why should organizations use an Agile approach for their Business (BI) Intelligence projects?
In clear business terms, using an Agile approach for the development of your BI solution will greatly increase your return on investment (ROI). Before reading further, you need to keep in mind that Agile will not address all of your software development issues but by empowering the people who are directly and indirectly part of your project team and by taking a pragmatic and realistic approach to the software development process, the implementation of Agile principles within your organization will address the most critical problems typically encountered by a software development project.
The following diagram summarizes the 7 key benefits of implementing an Agile approach for your business intelligence project. Each of the benefit is explained further below.
The intent of this post is not to describe the Agile principles nor to explain which practice should be applied in a specific context but to describe in clear business terms the benefits derived from these practices.
The throughput of your development team will greatly increase once you implement agile methods. The associated benefits:
- Streamlined and improved face-to-face communications;
- Continuous performance improvement by retrospecting at the end of each short iteration;
- Progress is not measure by looking at compliance to a project plan but by evaluating by the quality of the output;
- Project management is shared by everyone on the team instead as the team self-manages and becomes fully accountable for the results and reporting mechanisms;
- Use of proven and innovative software engineering practices greatly improves quality;
- Increased ability to estimate efforts and time lines;
- Team productivity can be assessed and monitored over time which provides a predictable rhythm.
Meeting Time Commitments
Project time lines are typically very critical and as such implementing an Agile approach help meet time commitments.
- Reduce the overall scope into small manageable chunks and maintain focus on short term delivery instead of the final end date;
- Make the team’s progress visible to everyone with the use of defined reporting (burn down chart);
- Team has to demo working product at the end of each iteration;
- Estimating and scheduling is a collaborative process shared between the customer and the project team;
- Frequent delivery of software reduces the overhead of moving the application into production;
- End users are involved in defining the time lines instead of leaving the activity to the development team.
Quality is never negotiable so implementing Agile is beneficial to the project team.
- Team has to demo working product at the end of each iteration;
- Early detection and fixing of faulty components;
- Testing is not only done at the end of the project when the cost of fixing issues is much greater;
- Tests may be written before the development cycle begins and must be continuously be run throughout the duration of the project instead of waiting until the end.
Delivering on Requirements
Many projects are delivered without meeting the expectations of the customer. Using an Agile approach helps the team deliver on the requirements.
- Customer is part of the project team, defines the priorities and assesses the end results;
- Obtain continuous feedback throughout the development cycle and not only at the end;
- Team will deliver on the original requirements but if there are requirement changes, the team will provide opportunities for feedback and adapt to meet the changing requirements;
- Analysis and design is done at the beginning of each iteration and not only at the beginning of the project;
- Software should meet the current needs, not the needs that were defined months before.
Delivering Business Value
As opposed to emphasizing tools and processes, Agile focuses on delivering value to the organization.
- Teams work on value added tasks (as opposed to paper work and attending meetings);
- Teams delivers the highest value features first and avoid building components that will never be used by the customer;
- Focus on results (as opposed to process oriented or project plan driven);
- Time boxed to ensure compliance to defined time lines;
- Costs and benefits can be associated directly with the pieces of software being delivered, if the estimated cost for a component is greater than the anticipated value the component may not be developed;
- Reduces or eliminates non-critical activities;
- Raising issues and impediments early in the process reduces the cost of fixing them later on.
Improving Knowledge Sharing
As Agile relies on the concept of the team as opposed to the individual, knowledge sharing is a direct benefit.
- Prevents the fact that a single individual becomes the bottleneck for the project by emphasizing sharing of information and tasks amongst the team members.
Increasing Employee Satisfaction
Although not frequently mentioned, employee satisfaction is an important benefit of implementing Agile.
- Relationship between the project team and the customer are improved by developing trust and sharing knowledge throughout the duration of the project;
- Team self-organization and autonomy greatly improve team members’ morale;
- By inspecting and adapting their work processes, the team members grow their skills and motivation;
- Given the opportunity to play various roles on the development team, individuals increase their satisfaction by developing new skills.
As I mentioned in my previous post, there were very few articles that explained the benefits (the WHY) of implementing an Agile approach for software development project. Hopefully, this post will help you promote agility within your organization.