Using Agile Methodologies in Data Science
The pros and cons
Agile is an umbrella term that refers to several methodologies that focus on being iterative and on getting tangible products and features out quickly at the end of what are often called sprints. This framework has been adapted for multiple domains, including programming and design. Similarly, data science has also benefited from taking bits and pieces from Agile concepts.
Agile in Data Science vs. Programming
Data science and software development are two very different fields. Trying to use the Agile methodology in the same way as you would on a software project for a data science project doesn’t really work. When it comes to data science, there tends to be a lot of investigation, exploration, testing, and tuning. In data science, you deal with unknown data which can lead to an unknown result. Software development, on the other hand, has structured data with known results; the programmers already know what they want to build (although their clients may not).
Benefits of Agile Methodology in Data Science
So what’s up with Agile and data science? When it comes to data science, it’s all about extracting useful information from raw data and implementing machine learning models. This process requires a higher amount of creativity and, honestly, failures. This leads to the process being non-linear and involves a high degree of uncertainty. This is the reason why Agile methodologies can be successful and popular among data science teams. Let’s discuss some factors in detail:
1. Planning and prioritization
Beginning from stakeholders’ engagement, Agile methodology allows data scientists the ability to prioritize and create roadmaps based on requirements and goals.
This also allows technical teams to give stakeholders an overview and understanding of the total costs associated with each overarching goal. Thus, the whole process creates better alignment between data scientists and stakeholders by creating constant lines of communication.
2. Aligning data science and engineering
Agile is not just about working on the software and models; it’s also about aligning data scientists with the rest of the organization. At times, a misalignment can stand between engineers and data scientists when the data scientists keep waiting for model deployments while the engineers keep wondering what the scientists are doing with applied research and data analysis.
In this scenario, Agile bridges the gap between both teams to create clearer paths between their goals. The reason is that Agile methodologies cope with unpredictable realities of generating helpful analysis application from the raw data at scale.
3. More research, less development
In contrast to software development, data science projects cannot be prescribed or architected at the outset since it’s challenging to learn about the most effective techniques and methods for the project beforehand. Generally, each data science project requires you to go down different paths and try different techniques. Therefore, these projects tend to be iterative, which is the reason why Agile tends to be the perfect fit for data science projects.
There can be an issue with the constant iterating, where a model might work one day and the next it might break, because not all data science teams use version control. Luckily there are tools like SaturnCloud.io that can be set up automatically to use Git and thus allow you to go back to previous versions of your Jupyter Notebook.
Small improvements like this can drastically help you flow through research rather than be overly strict, like in development.
4. Continuous model deployment
When companies embrace features such as continuous delivery, they push new application functionalities and changes to production quickly. In traditional data models, this deployment is a multi-step process that eventually goes to engineers. The engineers then rewrite and test the data science before rolling it out. This whole process takes months after the original build.
With the passage of time, companies have understood that data scientists are being limited due to the power that local machines hold — and are unable to train models that have to be deployed into production. Using Agile methodologies, leading firms are now building machine learning platforms that partition the training data to retrain it and deploy on models through APIs.
5. Value creation
When it comes to planning and building value from raw data to iterative predictions, data science teams can take help from data value pyramids. It basically provides a conceptual structure for creating reasonable visualization of the project’s progress. Using data value pyramids, data science teams can actually represent their sequential progressions in logical form. This data value pyramid is one of the features the Agile methodology offers. Thus, with each development lifecycle comes a better representation and thus better productivity.
Challenges in Agile Data Science
1. Research and agility
Scrum and Agile implementations may not work well with every data science team. Why? Research is an art and a science and often seems to take a more creative approach vs. the rigor and process of engineering. Research in data science requires creative problem-solving techniques with guidelines vs. strict rules.
There is no right way to perform and manage this research because each project requires a trial of different techniques. In addition, tasks aren’t always as clear-cut. Answering one question may only lead to more questions, which can cause an analysis to go on forever.
2. Model synchronization with user engagement
When validating the outcome of any algorithm, there tend to be many different levels of correctness and or accuracy. For instance, it is often easy to get a model to 70%, 80%, or even 95% accuracy. However, getting that last 5%–25% of accuracy could take weeks or months of tinkering.
Agile methodology prefers tangible solutions. The issue that comes up here is that a data science team might be holding back the Agile development of a software team because they take so long iterating over possible models. The constant tweaking of a model can sometimes keep tangible progress back.
Data science work provides value through the insights and models they are able to put out. In order to do so, it’s essential to allow the teams to work on research collaboratively and iteratively with their stakeholders. Spending too much time trying to get every stakeholder to agree on what the final product is can cause these models to never occur. Thus, we have the Agile methodology.
The Agile methodology has evolved over time to offer best-suited practices for multiple domains. It is not just about streamlining the lifecycle of data science development. It’s about aligning the data science team with their various stakeholders by providing proper feedback to align with business goals.