Skip to content

Posts from the ‘Agile Business Intelligence’ Category

An iterative and incremental approach for BI projects

The un-impressive track record in the development of BI applications led us to conceive an improved approach to reduce the initial investment required to launch a BI project in order to deliver key performance indicators (KPIs) much more quickly and at lower cost.

The incremental development approach we came up with is aligned with the business priorities while allowing business users to further develop the knowledge of their business and better define their expectations.

As opposed to the traditional waterfall approach to building a BI application which is: plan the project, define the requirements, prepare the architecture, develop, test, move to production in a sequential manner, we propose to use an iterative approach during which we build layers of the entire data warehouse through iterations.

For example, instead of spending time in defining in a high level requirements, work with the end users to understand their business and the indicators they use to successfully manage it. Using an iterative approach, the objective of our process is to work backward starting with the required performance indicators back to the source systems.

An Iterative and Incremental Approach for BI Projects

An Iterative and Incremental Approach for BI Projects

As can be seen in the diagram, the intent is not to divide the project into phases where data is extracted from the source systems first, then move to a centralized repository and so forth. Instead of the traditional approach, we use a layer approach where each indicator is developed from source system to the presentation layer.

Although our approach requires a substantial paradigm shift for most people having experienced a traditional waterfall approach for BI
projects, the notions we propose are simple, logical and straightforward. This approach relies on AGILE principles and
more specifically on SCRUM practices that have been demonstrated to be successful in other types of initiatives. Our objective is to present them in a very concise manner in this post.

Our proposed approach to BI development can be summarized by the following principles:

  • Segment the development of components into small iterations of 3 to 4 weeks and frequently deliver key performance indicators at the end of each iterations;
  • Repeat the iterative process and use increments to add components to the BI architecture and infrastructure;
  • Prioritize the development of the key performance indicators that will deliver the highest value to the organization first;
  • Using a top-down approach going from aggregation to granularity, develop each KPI from end-to-end or from source systems to presentation layer;
  • Avoid “analysis-paralysis” forces by using a “good enough” approach in documentation, architecture, modeling, project management
    and other overhead activities;
  • Learn from each of the iteration and adapt the process appropriately to increase efficiency.

Our approach promotes a process that encourages frequent inspection and adaptation, a set of engineering best practices that allow for
rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals. With this
approach, the project delivers in small increments with minimal planning, rather than long-term planning.

Book Review: Agile Data Warehousing

My Rating: 9 / 10

I read Agile Data Warehousing: Delivering World-Class Business Intelligence Systems Using Scrum and XP a few weeks ago and I thought the author did an amazing job at demonstrating how the Agile approach can be used for Data Warehousing projects. A such, I wanted to spend some time providing a more detailed summary of this book.

Agile Data Warehousing (ADW) is the application of two agile development approaches SCRUM and XP (extreme programming) – to the specific challenges of data warehousing and business intelligence.

The new approach is being proposed to address lamentable success rates of waterfall BI projects and as such ADW addresses the following problems:

  • Waterfall software development historically yielded notoriously poor ROI;
  • Customers are increasingly impatient to get BI benefits;
  • BI cannot avoid tackling the unknown;
  • Infrastructure problems cause problems late in the project;
  • Business rules can also appear late in the plan due to changes in the environment;
  • Project often take fatal risk in order to avoid a little rework;
  • Requirements definition and review cycles consume excessive efforts;
  • Documentation has a short shelf life;
  • Standard project-management consumes large portions of the project budget;
  • Complex methods and elaborate plan rarely perform well;
  • BI need more time to acclimate the project;
  • Customers need more time to learn about BI.

If good decisions allow a company to market its products or services more accurately, reduce its production costs or amplify its ability to fill orders, then a software engineering method leading to faster and better development of data warehouse offers much more than cost savings. The proposed approach is based on the following 4 Agile principles:

  1. Individuals and interactions over processes and tools;
  2. Working software over comprehensive documentation;
  3. Customer collaboration over contract negotiation;
  4. Responding to change over following a plan.

The principles behind the agile manifesto are known but they are repeated to ensure a common understanding.

  1. Our highest priority is satisfied customer through early and continuous delivery of valuable software.
  2. Welcome changing requirements even late in development agile processes are changed for the customers competitive advantage.
  3. Deliver working software frequently from a couple of weeks to a couple of months with a preference for the shorter timescale.
  4. Business people and developers must work together daily throughout the project.
  5. Build projects around motivated individuals, defend the environment and supporting to entrust them to get the job done.
  6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  7. Working software is the primary measure of progress.
  8. Agile processes promote sustainable development. The sponsors developers and users should be able to maintain a constant pace indefinitely.
  9. Continuous attention to technical excellence and good design enhances agility.
  10. Simplicity is the art of maximizing the amount of work done is essential.
  11. The best architectures requirements and designs emerge from self organizing teams.
  12. At regular intervals the team reflects on how to become more effective than tunes and adjusts its behavior accordingly.
  13. Even the best approach needs to be cultivated and refined into a step-by-step method that teams can follow.

Naturally, achieving breakthrough performance in the BI development requires some significant changes:

  • The physical environment developers work in.
  • The role of the project manager.
  • The way we do requirements.
  • The way we do estimates.
  • The way we do design.
  • The way we code and tests.
  • The way we document.
  • The way we implement the system.
  • The way we relate to other corporate departments such as information systems.
  • The way we relate to other business stakeholders besides the project sponsor.

The five stages to migrate to an Agile approach are summarized below.

Stage 0: Co-located self organized team

  • Co-locating the team members in a shared workspace surrounded by dry erase board, where they can work closely together, relying on light weight, verbal and diagrammatic communication for collaborative design and coding.
  • Embedding the customer into the team as a product owner so that she can work closely with the developers to build the application the organization needs.
  • Acting team members to organize their work in any way they prefer as long as they can transform a significant portion of the product owner’s request into potentially shippable code every 2 to 4 weeks.
  • The team works in the minimalist environment for a few iterations, with the quality of his work review and approved by the product owner at the end of each iteration of development. The work product during this preliminary phase can be incomplete and lack polish.
  • The customer does become fully involved and the team finds ways to meet pressing the deadline without wasting effort on that to be documentation.

Stage 1 – User epic decomposition and estimation skills

  • This stage introduces the teams guiding product owner to several BI specific architectural notions so that the team begin acquiring a common language and so that many intertwined details of the full business intelligence implementation get addressed in an orderly fashion.
  • The developers learn to estimate their work using the rim of the relative size of requirement. That technique which they will use to scope each development iteration.

Stage 2 – Release planning

  • The team tests the full circle of the desired software release and the number of iteration it will take for it to deliver the remainder of the data warehouse project.

Stage 3 – Reference model and test-led development

Stage 4 – Pipeline deliveries squads

Stage 5 – Continuous integration testing

  • By establishing an integration environment into which every module is integrated. As soon as a developer declared it done.

During the project, the team follow an iterative process to deliver incremental business value.

Planning phase

During the planning phase stakeholders represented in the team work through a list of business needs that might be addressed through new software development and agree upon which of them will be within the scope of the next release of the application.

Requirements gathering

Requirements are called users stories and together they make the release backlog.

Build phase

The build phase of the release cycle involves many iteration or even shorter cycle the multi week development sprint in which the real coding work of the project will be done. The modules produced during each sprint are added to the deliverable of prior sprints until the team feels the entire collection represent an acceptable release which is then deployed.

The build phase of the release cycle consists of multiple development iteration called sprints. The sprints are likely structured time during which the team design and code the software modules needed.

Retrospective

The release cycle concludes with a review process where lessons learned can be identified and used to improve the effectiveness of the next turn of the cycle.

During this retrospective the team quantifies its velocity – the amount of work is successfully delivered within the time off of the sprint just completed. After a few sprints, the team velocity stabilizes into a predictable range allowing project folders to group the story in the release backlog using sprint-sized bracket and thereby forecasts how many time boxes it will take the delivered the entire release.

Dominic launches his blog – Agile Business Intelligence

Dominic has finally decided to blog. After starting a LinkedIn group, he launched his blog called Agile Business Intelligence.

Long life to his new initiative.

The technology has changed but not the approach

Stephen Swoyer published BI: The Year in Review on The Data Warehouse Institute web site today and he does a good job at summarizing the acquisitions – or the lack of acquisitions – that took place this year.

This leads me to the following question: “The BI technology is obviously improving over time but what about the process of building BI”?

I have been involved with BI projects for over 10 years and it is obvious to me that most companies use the same waterfall approach they did back then. Seeing that the success rate of BI projects has pretty much stayed flat with less than 50% of the projects being successful highlights a problem in my opinion.

Although technology has greatly improved, it appears to me that the BI industry is working on the wrong issue -> it’s not about the tools or the people, it’s about the process.

Am I the only one who sees this problem?

As we work on our service offering, a few of us are heavily researching agility in business intelligence projects. There seems to be only one book available on this topic (Agile Data Warehousing: Delivering World-Class Business Intelligence Systems Using Scrum and XP) and very few web sites or blogs available.

Is this because people don’t see the benefits of an Agile approach to Business Intelligence or simply because consulting firms and other companies do not believe it can be done?

We certainly think we can have a positive impact on BI projects.

Follow

Get every new post delivered to your Inbox.