Agile Software Development
Over the last year MJD Interactive Agency has been implementing the Agile Software Development system. I must admit that there have been bumps on the road, but it has truly revolutionized three parts of our business.
First, it has helped tremendously with project estimation. We've gone from a pretty decent educated guess, to a nearly spot on estimation of hours and cost. To do this, we use a major tenet of Agile - User Stories. Essentially we sit down with the Dev team, account managers, the Design Team and the client to figure out every possible action a user could take on a site. We then estimate the time it will take to design and develop this functionality. The great part of this from the client's perspective is that they can prioritize dev tasks to give their users the most important features, while cutting out some things (we call them unicorns) that might not provide much value for the time and cost it will take to build them. This highly customized estimating experience really bonds the agency and the client. We become teammates striving for the same goal - to make a great user-centric online experience.
The second area Agile has helped us is in Project Management, or Scrum Mastering in the lingo of Agile. Instead of having everyone give an update a few times per week and working in a dark hole, we have a daily scrum where we give an account of what was accomplished the previous day, what will be accomplished today, and what obstacles stand in the way of getting things done. The Scrum Master's job is to remove any such obstacles.
The third area of improvement has happened on the design and development side. Instead of certain people doing one things, Agile fosters a team atmosphere. The User Stories that we've created are grouped into what are called "Iterations" which typically last a week or two. After the Iteration, we have something that we can actually show to the client so that they can see our progress. This is infinitely better than going away for a couple months and then springing the final project on them. During these Iterations, all of the team members group User Stories into logical sets, and anyone can grab a story and work on it.
There will continue to be more bumps in the road as we get Agile more ingrained into our process, but the initial results have been fantastic.