Putting Agile To Work

All the reading in the world won't prepare you for real life. I keep telling myself that, but it never seems to sink in.

I have checked out book after book on Agile. While they all have great ideas, I find that applying what I have learned is a slow process. One reason for this is I already have over a decade of programming experience under my belt, mostly flying solo. Old habits die hard. I am getting better at breaking up work into units that can reasonably be finished and checked in the same day. I'm not quite as proficient with taking work to be done and dividing and estimating it, but that is something I am working on.

We use Scrum in my department. I'm not sure when the decision was made that Scrum was going to be the method of choice, but we have only recently started having the prescribed daily meeting. We've been having the monthly meeting for at least half a year. For the most part things seem to be settling into a smooth operation. Starting a major project with a completely new technology, a team still learning to work together, a rather poorly defined development environment, and a process that we have haphazardly adopted has been quite the experience. How our process fits into the whole Scrum recommendation hasn't really been ironed out yet.

We are a small group and we don't have any automated facility for testing yet (that I am aware of). We do have a code repository (SVN) and for the most part seem to be able to manage that in conjunction with the project management software we have in place, Jira. I would attribute our relative level of success in the transition so far to those technologies and the various flavors of Eclipse we use. Some of us use plain Eclipse, and others use Zend Studio. In either case we all use plug-ins for PHP, Javascript (Aptana), and SVN to make editing the code easier.

I will say that I am not crazy with the Apatana plug-in specifically, it has a lot of things we don't need or want. Unfortunately it was the only Javascript plug-in that we have found that properly handles the ExtJS framework code we use.

Going Agile has not been painless. In our case this has more to do with how we went about it rather than the switch itself. We had a project that was struggling because it wasn't getting the resources that were promised and as a lone developer I wasn't able to sacrifice my vision of the project to meet the deadlines that had been set. When additional people were brought onto the team there was a decision to switch technologies and the decision was also made to wipe the slate clean of all the underpinnings I had built. I won't say this was a bad decision for long term progress, but it did put the project even farther behind initially.

The change in technology for the project's architecture has proven to be a difficult hurdle. For the most part we have learned what we need to make progress, but it has put the project severely behind. This could have killed the project, and there were times I was ready to completely give up. I am fairly surprised that the constant slide in the schedule didn't result in an abortion of the project or other serious consequence. We haven't fully adopted Scrum for this project in the sense that the Product Owner and work backlog have been formalized. That is something that will likely be ironed out as we come close to releasing our 1.0 which is a working proof of concept.

Our development environment was already inline with what we needed to make Agile work. I didn't have experience with the tools, but everyone else did. This is another scenario which I can envision the project nearly if not completely failing. Without these tools, the progress to this point would not have been possible collaboratively. There have been several times where team members had no choice but to work on the same file at the same time. In a smaller project or more mature this might have been avoidable. Similarly, if we had all just been adopting Eclipse/SVN/Jira the administrative overhead would have likely crushed the project.

One thing working in our favor is no one on the team has rejected the process. We do still have to work with each other a bit to ensure that the process is followed, such as checking in work on a regular basis and logging work in Jira. I feel fairly adept at this now, but I know to an extent that my participation in that activity is tied to my motivation and confidence. Before the project officially became a team effort I had been using Jira, albeit amateurly, when it was a solo effort to what seemed to be a huge success until I started to fall behind. I gradually lost motivation to keep Jira updated and as the problem compounded stopped using it altogether.

Gradually the progress is improving. Adoption is slow, but we are getting there. Our team faces some turn over and possibly additions in the near future, so it will be interesting to see how it all goes.

I personally am more attracted to the Crystal method. I think that somewhere between the features of Crystal Clear and Scrum we could find a better way to work, especially in ways where both also overlap with RUP. Most of our challenges that remain are not process issues, but rather technical and personal issues. We are too unaccustomed to MVC, and personally I am trying my best not to buck the pattern entirely. I really don't feel MVC is appropriate for our design.

 

Comments [0]

Trackback URL: http://blogs.lib.ncsu.edu/fabulousit/entry/putting_agile_to_work
Comments:

Post a Comment:

Name:
E-Mail:
URL:

Your Comment:

HTML Syntax: Allowed