When I first graduated from college I worked on embedded systems where the process was a formal, military grade process. When developing software I typically thought about what document I had to write next and what document(s) I may be missing. In general, the MIL standards turned me off a bit to process, and for awhile left me thinking that process is an obstruction to true development. As a 21 year old, you think code = development. That was/is an immature point of view, but it was not a viewpoint that I was easily dissuaded from. Further it's a point of view that many out there still hold dear, and not all who hold that view are recent college graduates.
Recently a small group of us decided to give Scrum a try and are using it to drive our current project. Other than this effort, there is no formal process methodology in place. My goal is to help change that in my new position. Over the past several years many high value projects have never been worked on because there was no common backlog of all of the things that need to be done.
In my last job at Geonetric we adopted Scrum after the absence of a formal methodology and it provided a much needed framework around which to develop. Many CEO's are not this up front with their deficiencies, but Eric is pretty awesome and very honest in his evaluation of Geonetric:
As we were in the middle of developing the newest version of our VitalSite product last fall, we weren’t making the progress we wanted-even though the whole team was running full tilt and putting in its best efforts. We had always been a bit informal about how we developed software-somewhere between draconian rigid requirements and completely freeform cowboy (and cowgirl!) coding practices. The problem was that being in the middle wasn’t working. So, we looked at some of the newest practices in the industry.
Eric goes on to list the benefits he's seen since adopting Scrum:
- Since adopting Scrum, the first two releases of VitalSite 5 have been on-target, meeting both scope and deadline requirements (5.0 in January and 5.1 in May).
- Software development is accelerating each sprint - we’re approaching twice the speed we had last year.
- There’s much more collaboration between disciplines
- The morale of the software team is higher
- Quality of the software we’re delivering is better
With results like that I can see why a CEO would like scrum. As developer though, I like scrum in that it doesn't get in my way. There is administrative overhead to Scrum to be sure. However it's very "XP" in that there aren't scads of documentation to write. Generally as a software professional I like to write code and solve problems and for the most part Scrum allows me to do that. My development does not feel slowed down by Scrum, which I believe for most developers, is a must in order to be adopted willingly.
One side effect of scrum is that is causes me to think about the process in a pleasant way. This morning at our standup meeting, a fellow developer and I got into a discussion about how his extra exploratory work in the evenings should be factored into our sprint. Should we could his work towards our sprint commitment? Will his work negatively/positively affect our velocity for future sprints? From my experience, developers typically don't worry about this stuff however with Scrum the sprint commitment is something that should be taken seriously. As such it was good to see developers, of which I was one, having talks about other things that just the code.
I'm sure many other processes out there could achieve the same thing. Scrum for us, both in this job and the previous, provided a nice framework that was palatable to developers. In that respect I'm perfectly happy using Scrum. I will keep my ears open for new ideas and processes, but I think for any development methodology to be successful in an organization, it has to be readily and whole-heartedly adopted. We've enjoyed Scrum so far and as such, it's a not-so-bad development methodology. If you aren't using a methodology or your current process isn't working, you should give Scrum a try.