I wanted to be programmer since 6th grade, just after leaving the idea of being an astronaut. But for real it began in 2001 when I got my first job in a small software house. It was the end of the first Internet bubble and of course we were writing portals. I was at the 3rd year of Computer Science at Technical University of Wroclaw, Poland. Agile did not exist for us. We were surrounded by heavyweight processes like USDP (Unified Software Development Process). The team was great, but the process was… none. We just tried to code what the specs said.
My second company hired me to lead a project for travel and leisure industry. That was a time when I wrote my first real requirements specification with lots of use cases etc. Of course I learned quickly that nobody except me understood what it was about. This is where I learned how to work better with clients. I didn’t know at that time that some solutions that we stared to use have a name (like user stories).
In my third company I fell in love with unit testing and started to learn everything I could about agile. Soon after I started my own company (Agilers) because I wanted to create a tool that would help us work with the clients the way we wanted and we wanted it to be transparent and light.
How has Agile changed?
Well I first learned about agile when I learned about unit testing (JUnit to be specific) and XP and it was around 2003. XP was defining agile at that time.
We all focused on code quality and engineering aspects of that method. It was very close to developers. Scrum came later, along with more team and collaboration oriented vision.
I think now we’ve made a full circle. Scrum has become mainstream. Kanban joined along the way, but I don’t perceive it as a successor of Scrum, but rather a way to address project contexts that are in natural way flow-oriented and cannot be closed in time boxes. So Kanban is not that next big thing for me.
During the last few years of hype everybody wanted to be agile. Agile stopped being introduced bottom-up and started to be pushed from the top (by high management). It seemed to be a quick transformation. Scrum seemed to be a simple framework with a few simple rules, some meetings that we’ve always loved and roles that we just needed to map within our organization.
At the beginning most Agile evangelists mentioned Scrum + XP almost as one method. They were a perfect fit. However the more management started to push agile (and Scrum as it became almost a synonym of Agile) into organizations the more they were forgetting about the actual software development that hides behind the Scrum meetings.
But about around 2009 another movement appeared. It was Software Craftsmanship. This is where we made a full circle, as we now try to stop the shallow agile transformation and restore also the ideas of XP, clean code and high quality engineering that are indispensable for successful agile adoption.
What is the future?
I haven’t seen any breakthrough in thinking about Agile or software development in general yet. As it comes to the Agile itself I think that after 10 years we start to understand all the mechanics better. We made many experiments, many organizations tried the transformation on their own and now we know how to lead the change inside the company and our teams.
We know better how to build a high quality software, we know how to empower our teams through a better communication and more effective distribution of responsibility. And now we get the signals that it’s time to finally focus on doing the right software and pay more attention to customer needs.
We’ve learned the rules of the game. Now it’s time to play for real. First role belongs to customer now. This is where we still have lots to learn and discover.