When beginning a software development project, a lot is thrown at you at once. Defining goals and figuring out how you are going to achieve them can be one of the hardest tasks in a project. Because this is a common experience, many software developers have created project management methods that can help your project get done in an organized matter.
Here is the project management triangle. The amount of time and money you have to complete a project is going to effect the project’s quality. The scope refers to the number of features to be completed. More features will require more time and money, but will increase the quality of the project. If you need to adjust one of the three, you will need to make tradeoffs to keep the same quality.
So where should the team start …
There are many project management methods you can implement for a project. The type of project and the team’s style can help you pick out the best approach. One of the most widely used frameworks for software development is SCRUM.
SCRUM — The Agile Approach
Let’s Meet the Team …
Project Owner: Communicates with stakeholders and determines what features are necessary to shape the project backlog.
Scrum Master: Guides and coaches the team throughout the development process. They lead the scrum meetings and keep the team on track.
Development Team: Completes the tasks on the project backlog. The team is can be composed of software engineers, testers, writers, and anyone else that helps build the product.
A product backlog is composed prioritizing and breaking down every task down. The items on the list are called user stories. Before starting a 1–4 week long sprint, tasks are pulled from the project backlog and assigned to members of the development team.
Results are consistently being delivered to users in incremental stages. It allows for opportunities to readjust the project. The users report their feedback to the project owner, who communicates with stakeholder. The project is able to adapt to change and another sprint cycle occurs. Planning, building, testing, and reviewing occurs every sprint allowing the project to adjust to the market.
Throughout the process, there are different types of scrum meetings. To start a sprint, there is a sprint planning meeting to determine what users stories need to be completed, and an estimate on the time it will take. There are daily stand-up meetings where each person talks about their progress, their roadblocks, and what they are going to complete that day. This gets the conversion flowing as a team and keeps everyone on track. At the end of the sprint, there is a sprint retrospective where the team demonstrates the work to the product owner and there is a sprint review to discuss how the team did during the sprint.
Applying SCRUM to data science projects:
What works …
- Prioritizing user stories with the input of the project owner, stakeholders, and users
- Dividing tasks between team members at the beginning of the sprint
- Retrospective and review meetings to discuss the project’s progress
What doesn’t work …
- Defining tasks and determining duration can be ambiguous
- The direction a project is going can change very quickly
Tasks can be clear for a data science project — you can have data exploration, data cleaning, feature engineering, model development, etc. Although, it is challenging to determine how long each of those tasks are going to take. In order for the SCRUM method to work for a project, the team must adapt the framework and adjust it to their specific needs.
Expect the best, plan for the worst, and prepare to be surprised. — Dennis Waitley