Wednesday, August 26, 2009

Six Steps to Agile BI


As organizations try to find better ways to meet the business needs of users who seek more actionable and relevant information to help them do their jobs, the adoption of agile development is popping up on more BI dev teams’ radars.

As organizations try to find better ways to meet the business needs of users who seek more actionable and relevant information to help them do their jobs, the adoption of agile development is popping up on more BI dev teams’ radars.

According to Ken Collier, senior consultant in business intelligence and agile product and project management for Cutter Consortium, an IT advisory firm comprised of numerous independent consultants across North America, the main principle behind agile development is an iterative, evolutionary drive toward progress. As an expert in agile BI, Collier encourages many of his consulting clients to progress in baby-steps, producing bite-sized deliverables in rapid-fire, two-week cycles. The idea is to be constantly rolling out new features on the fly, offering a more nimble response to BI users’ needs and wasting less time on features that will never be used.

“It’s not a sequence of things that you must do in order to call yourself agile,” Collier says. “It’s really much more of a set of values, principles, behaviors and attitudes supported by some very well understood practices like test automation that make it possible.”

While the agile philosophy has taken much of the development world by storm, in-house BI dev teams are still taking their time to adopt the mantle of agile for producing intelligence applications. Collier believes agile BI is about where the rest of the software community was four to five years ago in respect to agile adoption.

“My sense is that database folks, and especially the data warehousing folks, don’t believe that the agile methods fit very well for them,” Collier says, “like there is something special about what we do in business intelligence that’s unique and different and harder.”

He disagrees. He believes that BI can benefit greatly from agile adoption and he’s here to explain to Smarter Technologies six essential tips for making it happen.

Involve Users Early and Often

Customer collaboration is one of the most critical elements to making agile a successful strategy.

“If I had to only choose one thing that I would really knuckle down on, it would be getting involvement early from the user community and having them be engaged and involved every week throughout the process,” Collier explains.

As he puts it, under the traditional model of BI system development, the dev team solicits requirements up front from the user community, developers put their heads down for many months of work and then they go back to the user community with features only to hear, "Well, that’s not really what I meant when I said I needed this."

By maintaining a constant stream of communication with the user base, developers can ensure that users get the features they need, the way they need them. Collier realizes that it may be a challenge keeping up this level of collaboration.

“We see that a tension—not an unhealthy one, at that—can develop between asking for involvement and engagement from users while also respecting that they’ve got their own work to do and they’re not full time on this project,” Collier says. “That’s why I say it’s one of the single hardest things to get right.”

In spite of this tension, Collier says that BI teams should not simply depend upon business analysts to act as advising surrogates for the customer team. While analyst input is critical, if you want the entire user community to use the BI systems then you’d better get input from representatives throughout that community.

“If you’re getting weekly acceptance of new features from your business analyst group and then you roll out a system live only to find out that your BA’s aren’t really the accurate voice of the users, that can be a problem,” he says.

Transitioning to agile development will require a definite shift in mentality for those team members who have been working in BI for a long time.

“I often go into companies where the BI team is saying, ‘Well, job No. 1 is to collect all of this data from these different source systems, merge it together, cleanse it and get it all prepared. Then we can start talking about what features we want,’” Collier says. “In my opinion, that is totally backwards.”

Agile development is feature-driven development, he explains. That’s what makes it so effective at meeting users’ needs.

While the quality of data and data models is important, he believes that teams need to work on those after the feature sets have been hammered out.

Prioritize Based on Value

Not only is agile development a product of feature-focused work, it is also about prioritizing the list of deliverables based on the value of those features. Collier explains that part of the communication with users is to get them to not only list their requirements, but to also prioritize them.

Then the team can start with the most important features and work their way down the list. Doing so ensures the system is delivered quickly with all of the features users really need. This is important considering that industry studies have shown that users typically use only about 60 percent of any given software feature set.

“By doing that and by delivering features early, we can converge more quickly on a system that’s ready to go into production,” Collier says. “And the user might be able to say, ‘This is good enough, I don’t need that other 40 percent in there.”

Test Automation

With such short production times between conception of new features and delivery of these functions, testing can become a sticking point if the development team doesn’t do it right.

Unfortunately, many database and BI developers have been manually testing their code for years, Collier says. That simply won’t fly under the agile model.

“If you follow my guideline to work in two-week iterations and you’re trying to manually test these new features, you get pretty quickly buried under the weight of your own testing processes,” he says.

This is why test automation is absolutely critical. Collier suggests teams look into new open-source testing tools for Oracle and IBM databases that have come out of late and to be sure to check out the latest test automation tools in SQL Server 2008 if you’re using that platform.

Encourage Culture of Collaboration Among Developers

In order to meet the fast and furious pace of agile development, Collier believes that teamwork among the developers is essential.

“So, for example, if it’s a data warehouse you’re working on, having your data modelers, your BI developers and your DBAs working face-to-face together in the same room is a very important element,” Collier says.

Getting the team to work well together as a single unit is critical in order to rally around the demands of delivering very discrete and focused features so quickly.

Start Quickly Out of the Gate

Unlike the typical BI projects that can drag on for months or even years before useable functions are placed at users’ fingertips, agile projects require very fast delivery. Which means that the pressure is steady throughout the life of the project, even the beginning.

“One of the great things about working in an iterative, incremental and evolutionary fashion is that you’re busy right from the start,” Collier explains. “So a development team has to get started right now because in two weeks they’re expected to deliver some new feature.”

While this can be intense, it can actually result on less stress in the long run. After all, agile projects are much less likely to face the dreaded 11th-hour death march just before a system goes live.

No comments: