Agile Analytics
Mark DeRosa
2025 FORUM IT100 Award Winner | Data Analytics Evangelist | Innovative Thought Leader | Master Problem Solver | Agile Expert
Introduction
We are quick to consider Agile when we think of front-end development (e.g., web/mobile applications) but less likely when it's data work. After all, the data work is just a necessary part of the front-end development under the covers, right? Well, kind of.
If you have a pure data project with little to no front-end work, then Agile is still relevant (and preferred, in my opinion). You can structure the team and work using Agile principles to get the data work done in an iterative manner just as well as any other software development project. (Keep in mind that data work is another form of software development too. ??)
This article is not intended to be an exhaustive description of all Agile principles, processes, and techniques. That's enough for an entire book (and they already exist). The purpose of this article is to show how Agile is as applicable to data analytics as it is for other software development work. So, let's begin...
What does Agile mean?
You can find a variety of definitions on the Internet, but all those definitions will have the same general theme. And that general theme is that Agile uses iteration to apply the software development lifecycle to smaller, more manageable, chunks of work. Agile methodologies allow teams to deliver increasingly better increments of a working solution that facilitates better feedback loops, refinement, and adjustment. Agile mitigates rework and waste by focusing on several key concepts:
There are a few areas of confusion with these concepts and the following information should help to make things clearer:
How does Agile apply to analytics?
By now, you likely see how Agile applies to analytics for a few reasons. Analytics require software development and Agile Scrum is, in my opinion, the best methodology to develop software. And in cases where analytics solutions are in maintenance mode, Agile Kanban is the best methodology. For the purposes of this article, we will focus on Scrum and not worry about the distinction between Scrum and Kanban because they are both Agile methodologies. Besides, you can find lots of resources that compare and contrast each one elsewhere.
Agile everything, not just the code
Agile can be applied to the early parts of the project, before you even get to the coding part. For example, the requirements and design stages can also benefit from Agile. We can iterate through requirements with increasingly greater levels of detail to gain more clarification on what the client needs. And the same is true for design where we can iterate from sketches to mockups to functional products. The power of iteration is fueled by feedback cycles that keep things calibrated between you and the client. The idea is to close the gap between what is needed and what is built, and that is best accomplished by building, showing, and refining something tangible early and often.
The key to success is breaking down the work into bite-sized chunks that can be worked, and completed, in each Sprint (as much as possible). The less work (and technical debt) that carries over into subsequent Sprints, the better. All too often development begins with very little understanding of what needs to be built in the name of “progress,” and developers start slinging code with vague (or missing) requirements. That leads to bad implementations, poor software/data quality, and re-work that shatters expectations with clients, making it harder to recover much less succeed.
Let's take an example ... building a dashboard
In general, the following steps are needed to execute an Agile analytics project:
You can easily see how these steps also apply to things like data integration, database development, reports, data warehousing, etc. Here are some thoughts when building dashboards as an example:
领英推荐
And keep in mind that although these steps (and dashboard example) are presented as a list in this article, they are done in an iterative fashion. Your team will iterate through each step (1-7) with increasingly more refinement each Sprint, getting closer and closer to what is needed for the prototype/solution with little to no re-work.
The image below is a common graphic depicting the Agile Scrum process and is available at https://www.scrum.org/learning-series/what-is-scrum.
Sprint Cadence
The big question that everyone asks is “How long should a Sprint be?” Well, it depends, but generally anywhere from 1-4 weeks is an acceptable range. Smaller or newer solutions may benefit from 1–2-week Sprints whereas bigger or mature solutions may benefit more from 3–4-week Sprints. The decision depends on the team’s capabilities, Sprint velocity, and client expectations.
For newer projects, I recommend starting with 1-week Sprints to get through the prototyping stage. Once the prototype is built and you are ready to build it out into a fully-functional solution, I recommend using 2-week Sprints. Then after the solution goes live, I would re-evaluate the 2-week Sprints and stick to them if they’re working; otherwise, consider 3-week Sprints. Although 4-week Sprints are acceptable, you start getting into the territory of allowing stories to get too big (vague) and not finishing committed work. Never, ever go longer than 4 weeks for Sprints! (I came across one project that used 6-month Sprints! Yes, you heard me -- 6 months; that’s a very slow walk, not a Sprint. ??)
Scrum Ceremonies
Agile Scrum “ceremonies” include a variety of events that keep the team moving forward. The most common ceremonial events are shown in the table below.
The Sprint Review/Planning/Retrospective can be done on the same day and the time needed will vary depending upon team size, attendees, Sprint readiness, backlog health, and size/complexity of the solution. Generally speaking, you’ll want to carve out up to a half day for these ceremonies. Less time is needed if you regularly complete all work in the Sprints with high confidence and have a well-groomed backlog, more time if you don’t.
Sound Familiar?
After getting this far, you may be thinking, "Wait a minute, that just sounds like Agile for software development." If so, you are correct! Oftentimes, people don't think of applying Agile methodologies to data work but it's equally useful. You can apply Agile methodologies to anything that requires developing solutions to solve business problems, including predictive algorithms and artificial intelligence/machine learning (AI/ML) models.
I've seen, and used, Agile Scrum with great success on many different projects ranging from a single dashboard as a proof of concept (using 1-week Sprints) to a mission-critical data mining project (with no UI/UX work) to a full-scale enterprise reporting and analytics platform with many [complex] integration points (using 3-week Sprints).
Final Thoughts
Some people have mixed feelings about Agile methodologies, especially Scrum. Everyone has a different experience and opinion but from what I’ve seen over the years, a lot of projects say they are using Agile when they are not; they are either using Waterfall or WAgile (i.e., Waterfall/Agile hybrid). And those most critical of Agile are not grooming backlogs, treating daily Scrums as long status meetings, using story points as an absolute measure of time (e.g., hours or days) instead of relative level of effort, and other misuses of Agile principles.
If you've tried Agile Scrum in the past and had a bad experience, I encourage you to learn more and try again. If you haven't used Agile Scrum yet, learn more and try it out on a smaller project with a smaller team. In either case, I recommend having an experienced Scrum Master run your project so you can see what it looks like and how it works.
Helpful Resources
Here are some resources that may help you get you started (or re-started) in the right direction:
Director of Delivery | DS/ML Program Management | BI / Data Visualization | Agile Coaching | Veteran
1 年David Rodriguez, A-CSM, CSPO
Very interesting!