What Extreme Programming taught me
It's nice to have top-notch engineers, but how we work together matters more.
3 min read
The book Extreme Programming Explained: Embrace Change by Kent Beck is one of the best books I have read. I even wrote an article on Extreme Programming: What is Extreme Programming?
It changed my view on one of the aspects of software engineering.
My initial perception
In my younger days, I thought what made a good software engineering team, is them having amazing, talented and experienced engineers on the team. I saw engineering teams as a group of individuals. A group of engineers, and each engineer is a resource. Each resource has its abilities and powers, and in the end, that adds to the sum of the team's capabilities and strengths.
This is how I sort of saw good software engineering teams, thinking of the engineers as resources.
When I look back, I find it weird that I was thinking like that, maybe it is because of my background in anime, or the lack of experience when you have zero experience.
What is Extreme Programming?
Extreme programming is about social change.
It's about changing the way we work together as a team and the way we work with our customers.
Extreme programming is a discipline that addresses risk at all levels of software development. It is simple, you only do the necessary work to deliver value to the customer. It can work with both small and large teams. It adapts to quickly changing requirements.
It is about people coming together to develop software, you being a part of the team, working together, to grow and improve both your relationships and skills.
It was fascinating. I got excited.
Extreme programming mentions, by collaborating and working well together, by applying its discipline, a team that's not doing so well, can do way better.
Going back to my initial perception, I thought for a team to do better you had to replace the existing engineers with better and more talented engineers. However, that's not the case.
Teamwork, collaboration, building great relationships, focusing on the customers...
This is what we need, as for the technical skills, those are always something we can train people to improve in.
How my view changed
My view changed. Extreme programming is also the reason why I'm obsessed and passionate about always finding ways how software engineering teams can work better together.
It opened my eyes. Software engineering is a team sport, and the difference between good and bad teamwork is huge.
Since remote work has exploded, I still feel like we're on a journey together, to find better ways to collaborate and work remotely. Remote work is here to stay, and in my opinion, the benefits outweigh the downsides.
I wouldn't say all teams are struggling with this, but most teams surely are.
This is something I contemplate a lot on. How remotely my team and teams, in general, can improve the ways they work.
In conclusion, Extreme Programming is an amazing discipline that utilizes the team and human side of things, the things we already have in place but need to change to perform better together.
It changes your perspective on software engineering and makes you realize that this is a team sport.