What I Do Like About Agile
I wrote a piece a bit ago about some of the deficiencies and first impressions that I had going fully Agile. Although I have previously done many different parts of the process, this was the first time I was forced to do everything. I went in kicking and screaming and I cannot say that I've changed my opinion about my criticisms. But with just about everything in life, there are two sides to the coin. I like to make sure that I'm fair, so I thought it appropriate to address where I think it excels. I once wrote a scathing post against Apple for ripping my Civil War Tower Defense App off of the App Store. When they put it back on with no changes from us, I had to go back and speak just as loudly about how they had done the right thing. So now here is my address of what I really like about this methodology.
First something about me. I am a very productive worker and anyone that has ever worked with me in the past would say that is one of my highlights. I get things done and I do it quickly. At first Agile halted my production and it still does, but it's not all bad. It's actually nice to finish all my story points early, have some time to double check my work, help others, fix mistakes, spend more time in review. It's a forced break for me when I would usually not relax until delivery. I like delivering early, now although I can take on a boat load of story points for any sprint, I have forced relaxation and points to slow down. When you've spent a good part of your career in startups, there hasn't been time to chill. Yes I do miss the challenge, but I can see the benefit.
Less mistakes is another great point. Because of the forced delivery and demo of something, and I'm not saying we do it all right, there are less mistakes along the way. Errors are found earlier and in our shop in order to finish an item it must be reviewed, unit tested, Jenkins, and running on our beta boxes. So just by following the process we are making sure to squash bugs very quickly after they come up. Just had one that didn't show up for two months, but that's the rare case.
Better testing as mentioned above. Due to the fact that we have a lot of work to do in order to complete an item, going through code review, and testing. We pay more attention to writing great tests. They are reviewed. We haven't done that much in our coding time, (as with everything else we probably only get 4-5 days to actually code), that there are that many tests required.
Better adaptation to change. This is the biggest point that I have noticed. Since you are working on small deliveries, you can much more easily take in changes. Even core changes. This has happened a few times so far and I've been very impressed at how easy it has been to change designs that are written to be done in two week shots.
I admit I still have issues with the process, but I'm going to keep this article about the good. I certainly can see value. It is most helpful for less productive developers or those needing more direction. But even a vet like myself can take some lessons by trying it out.