Skip to content

Posts tagged ‘ROI’

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.


increased return on investment by using an agile approach

increased return on investment by using an agile approach


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.

Increasing Productivity

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.

Increasing Quality

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.

Improving ROI and Success Rate of your Business Intelligence Project

 It has been a while since I posted on my blog. The reason is that in addtion to taking some time off for a wonderful family vacation, I was finalizing the white paper I had started a few weeks ago. You can find the document call Improving ROI and Success Rate of your Business Intelligence Project on Pyxis’ web site.

Share your thoughts.

Explaining the business value of incremental development

Here is the second of two posts on iterative and incremental software development. My previous post focused on explaining the business value of iterative development while the objective of this one is to explain the value of incremental development.

Incremental Software Development Applied to Business Intelligence

Incremental Software Development Applied to Business Intelligence

Starting with the decision of using an incremental development approach as opposed to a sequential approach for the development of a BI solution results in 3 immediate outcomes:

  • Reduces overhead: Once the development team determines it will be using an incremental approach, this decision allows it to focus on small tasks and build on them. As such, it is no longer required to plan upfront for every component to be built which would be the recommended approach if the team only had one attempt at building the right software. By developing the application in increments, the team can focus its efforts on the tasks at hand within the known context and not worry so much about figuring out all possibilities at the beginning of the project.
  • Allows continuous integration: Building incrementally is a good step in the right direction but if the incremental components are not continuously integrated to make a whole, the development team wouldn’t achieve all the expected benefits. As such, the team would be building many items that could fit into a bigger whole without making sure all the pieces actually fit together. By continuously integrating the components, the development team ensures that throughout the development cycle, an integrated “application” can be tested and possibly demonstrated to the business community.
  • Allows test-driven development: Using TDD as a development practice forces the development team to prepare their test cases before starting their development. In addition, every time news conditions to be tested need to be integrated, the tests are documented before the code is written and then executed once the components become available.

In turn, these 3 elements lead to 3 clear outcomes:

  • Improved software quality: Preparing test cases before starting the development, enhancing the test cases with new possibilities as they occur, and continuously executing the test cases on the incremental components as they continuously get integrated within the global build improve the overall quality of the software being developed.
  • Reduced overall cost of the project: By spending less time on overhead activities and delivering better quality software, the overall cost of the development project is greatly decreased.
  • Increased ROI of the project: Combining the impact of the various outcomes increases the overall ROI of the project.