Why Agile Project Management?

I learnt extreme programming in my graduate study. The course name was software engineering and the students grouped together to finish an academic project over the semester in an agile, or extreme programming(then name) manner. Looking back, I have to admit that I didn’t really learn the secret of agile.

My first job was in a big company, the team runs Scrum, but the projects are largely planned top down approach. The product manager prepares details product requirement document(PRD), and the engineers spent long time design and discuss the design of the project to make sure every small change is considered. 

It was only when I started to run the team and the project, I started to think about how the project should be run. I still try to plan the project ahead of the time. But sometimes I see a better approach in the middle of the project and it requires a major shit of the execution direction. I convinced the team to make the change, but I have to ask myself: if I could have found this route upfront, the team would not have to waste their time on the previous approach, is it because I am not good enough? If I know this chance is necessary but the team doesn’t like the shift of direction, how do I convince the team to embrace such change? And stepping back, how do I organize the project better to reduce the risk of drastic changes? These contradicting questions bothered me.

With all these question, I started to read project management, to think more about the practices of project management. I found I didn’t really understand Agile programming. I found that the critical part is about the thought process, rather than the scrum process itself.

I found Agile is a much better choice for environments like my current team, where we have to move fast and adapt to new changes and requirement, where the team doesn’t have enough knowledge to figure out all the detailed tech roadmap upfront and have to rely on the learnings from doing.

Therefore, I started to write these series blogs to introduce Agile project management. I will share my thoughts and learning on the posts. And hopefully it will be useful for you.

Project Management: Agile V.S. Waterfall

What is scrum?

Scrum is an widely used agile process, it breaks down the project into 2-4 weeks intervals called Scrum. While each scrum is a small project that each should produce a working incremental of software. At each end of the sprint, the team will review the deliveries and do a retrospective to the past sprint.

Why using scrum?

But why people use scrum? Before answering this question, we need to know what is the traditional project management process. The more traditional project management is based on the defined process, where the roadmap and the delivery of the project is decided, and the control of the scope, schedule, and cost is also maintained. The benefit of defined process is that it delivers predictable results. However, this approach does not work well in environment where the deliverables are not predictable.

Scrum is based on empirical process, which means based on observations. Both the result and the approach is adapted according to the observation. The benefit is that it is highly adaptable, the risk is that the deliverables are not predictable.

How does Scrum works

There are three typical roles on the scrum project:

  • the product owner that is responsible for overall success/failure of the project and is the final decision maker on the requirements
  • the scrum master facilitates the team, manages the process and resolve the impediments
  • the development is responsible for developing the solution and coordinate with each other on the process.

A sprint usually last for 2 ~ 4 works. The work to be completed is time boxed. During the sprint, there will be a daily stand up meeting to update the progress.

The project owner will do backlog grooming before the start of the next sprint to correctly prioritize the work.

At the end of the sprint, there is usually a spring retrospective meeting to discuss what has been done well and what could have been done better.

Actually, which process to use is not a binary question. Many team utilize a hybrid approach to manage the project. And agile is more of a way of thinking about the issue rather than a practice like scrum.