How I Started with Agile

Image for post
Image for post

What do you do when you get a project that’s been going on for a long time and hasn’t delivered value? This is the story of how my team and I collaborated with our customer on my first project, doing agile when the Agile Manifesto wasn’t invented yet, to deliver high-quality software.

My First Project

Diving into this project I found out that it had been going on for more than a year already without success. The project produced a lot of documentation and some code, but the solution that had been developed failed most of the time. The developers tried to solve the bugs, but that only made it worse. They had big quality problems. The customer was about to give up, as he didn’t believe that the project was able to deliver something valuable to him.

The project manager and the team had been pulled off the project and I was asked to finish it with a new team. I quickly decided that my first priority was to deliver a first working part of the solution as soon as possible, something that we could show to the customer to gain trust. The team and I sat together to divide the functionality in increments.

First Delivery

Our customer was happily surprised when we showed him the software when he visited us a couple of weeks after the project started. He took it back to his company to play with it. The next day he called us, and told us that he had tried it and found out that worked well, except for one situation. Going through the failure on the phone we immediately understood the problem, and agreed that it would be solved in the next increment.

Each increment we added new functionality and solved problems that either the team or our customer found. We would demonstrate the product to our managers, the customer, and anybody else who was interested to get feedback and improve it.

Collaboration

I called our customer, explained the situation, and asked him what the system should do. His answer was: “If this happens, just give an error message to the user and abandon processing”. If we would try to execute it, it would damage the CNC machine!

We could have wasted many days or weeks trying to solve it, now it took us less than an hour to find out what the system should do by just asking our customer. In this case, the requirement was to make sure that the CNC machine wasn’t damaged.

Agile wasn’t Invented Yet …

To complete the picture: My team was distributed over two locations. We worked at the same site one day each week where we merged the software and synchronized (using floppy disks to transfer source code). We used version control and automated testing, did design and code reviews, pairing, and tried to improve our way of working as much as possible by reflecting and learning from the things that happened in our increments.

All of the projects that I’ve managed or have been working in used increments — I’ve never been in a waterfall project. For me and for the people that I worked with, delivering in increments is the best way to work together. Maybe I’m spoiled, but it strengthened my belief that working in increments works :-).

Agile Inspiration

I was (and still am) inspired by a couple of people. One is Tom Gilb, I got a lot out of reading his books Principles of Software Engineering Management and Competitive Engineering, both books have great ideas for understanding what your customer needs and how to deliver high quality.

The book Peopleware by Tom DeMarco and Tim Lister helped think about how I could create the best environment for my team members. I also learned a lot from Watts Humphrey regarding viewing software development as a process and finding ways to improve quality.

Interviewed

I’d like to hear from you. How did you start with agile? What made you decide to do it? Let me know by commenting on this article!

Originally published at Ben Linders.

Trainer / Coach / Adviser / Author / Speaker | http://BenLinders.com/game | http://BenLinders.com/exercises | editor @InfoQ | agile workshops | people matter!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store