What is Agile BI?
Agile Business Intelligence (BI) is about delivering the bits and pieces of functionality in
manageable chunks using shorter development cycles rather than implementing the
whole BI functionality at once. Here the focus is on delivering quality product
to meet the changing business needs within quick turnaround time.
Agile Sprint Overview
The Agile sprint starts with Planning
and ends with Review & Retrospective. A brief stand up meeting called daily
scrum is held every day to get an update on the progress.
The Sprint is a continuous process with
one cycle followed by the next cycle without end and it includes the below
elements of Scrum.
User Story: A User Story describes the business need in brief and it is a
clear fine-grained requirement. Every user story gets a unique ID.
Epic: Epic is a large user story and usually span across multiple
sprints. The Epic need to be broken into smaller stories before work on them.
Product Backlog: It houses
all the stories planned for any sprint and is prepared by the product owner and
ordered by priority.
Release Backlog: A release
is a time frame within which all the iterations/sprints are completed. A
release backlog is a subset of Product backlog which contains the user stories
that are planned to be delivered in the coming release. Product owner with help
from team and other stakeholders would select some amount of high priority work
and move them to the release backlog.
Sprint Planning: The work to be performed in the sprint is planned at the sprint
planning and Sprints should be in short iterations with some functionality
delivered.
Scrum Meetings: The Daily scrum is a 15-30 min time boxed event for the
development team to synchronize activities and plan for next 24 hours.
Sprint Retrospective: Retrospective's main aim is to discuss the results and determine
the ways how to improve development process on the next sprint. The Scrum
master hosts this and talks about the accomplishment of team in the last sprint
and lesson learned.
Fig 1. Sprint release flow
Scrum Agile Methodology
Scrum is an agile process that enables
business requirements to be delivered in the short period of time and it allows
the deployment of requirements into production every week or bi - weekly. Scrum
projects make progress via series of "sprints". The roles and responsibilities
in agile scrum process are -
Product
owner: Takes care of the end user's interests and prioritizes the items
based on customer usage.
Scrum
master: Coordinates the whole scrum process and make sure that Scrum is
used in a proper way and also holds the Scrum meetings.
Development
Team: Responsible for the creation and
delivery of BI solutions. This includes data modeling, ETL developing, data
reporting or, testing, and release activities, as well as others.
BI/Data
Architecture: Understand BI tools, processes, architecture and deliverables,
coordinate any architecture integration, design solutions, and provide problem
solving.
BI
Testing: Test the reports, dashboard and ETL programs and validate the data
sufficiency and accuracy.
Best practices for Agile BI Projects
Active
participation of stake holders: The
Active Stakeholder Participation is an essential practice in Agile BI
developments to avoid any gaps and to have the update in business needs if
required.
Break the
User stories into meaningful and smaller chunks: If a User story is an epic, break them down as
1.
Stories for creating new dimensions,
measures
2. Stories to build the reports combining the dimensions and
measures.
Breaking down the deliverable into
multiple and manageable stories helps in assessing the effort accurately.
Use incremental and Iterative approach for DW: Propose Stories such that it increases dimensional and fact
coverage incrementally and results in incremental Data Warehouse expansion.
This would also avoid the rework from story to story.
Use
Planning Poker tool for Story pointing: Agile
teams use Planning Poker for estimating the user stories.
Planning Poker is a technique for story
point estimation using consensus based approach and a deck of cards with values
like 0, 1, 2, 3, 5, 8, 13, and 20 etc., given to each member of the team. Here
the value represents story points. The Product Owner/Scrum master reads the
description of each user story or theme to be estimated and each agile team
member selects a card depending upon the value assigned to it. The process is
repeated until team arrives at a single estimate.
Better
story point estimation: Definition of "Done" should
include both the development and acceptance testing within the same Sprint.
This helps in better story point estimations, as we can compare the stories
better.
Effective Communication: Agile project's success depends on communication, more so in case
of distributed teams. Distributed teams should be provided with facilities such
as video conferencing, screen sharing capabilities in addition to traditional
messenger and conference bridges for better collaboration.
Team structure: Allocate specific
resources of the development team to work on production bugs in order to avoid
distractions that would impact the sprint deliverables. This helps the team to
stay focused which results in better Sprint progress.
Conduct weekly Design Thinking Sessions: This session helps to resolve any
potential design issues for planned user stories in the earlier stages of the
Sprint. Design thinking sessions can be planned every week among agile team to
review the design of deliverables.