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.