~ By Debbie Nichols
Most people hear the word "Scrum" and think of something that's stuck to the bottom of their shoe. Au contraire. Scrum is an agile software development methodology designed to foster iterative and incremental development. Scrum projects are broken down into 24 hour development cycles contained within 30 day sprints. Team members agree upon which work items for the product (the product backlog) they will tackle in the next 30 days; this becomes the sprint backlog. The goal at the end of 30 days is to have a working application with a certain number of features completed.
I am a huge Scrum acolyte. On many teams, this makes me a minority of one. I have been on several teams that have used the Scrum project management methodology for both software development and technical documentation production. In each case, the backlash against Scrum was so great that these teams eventually abandoned it in favour of that tried-and-true methodology called, "Whatever We Were Doing Before Scrum."
What is it that makes teams resistant to Scrum? In my experience, there are three major blocking points. The good news is, none of these need be fatal. Teams can, and should, adjust Scrum to meet both the needs and temperaments of their members.
People are creatures of habit. Most of us do not like change. We are especially averse to change when it means more work! And no doubt about it: particularly in its early stages, Scrum is work. The team must create a product backlog, a long list of items broken down into tasks less than 16 hours long. Team members must assign projected costs to their work quanta for the first time, usually for the first time ever. Daily meetings, while short, interrupt the flow of the work day. (More on the daily meeting below.) All of this sudden change breeds anxiety, resentment, and fatigue.
Scrum is structured as an iterative and incremental process. Ironically, most teams do not take an iterative and incremental approach to Scrum! Teams aiming to tackle projects using Scrum should consider adapting a few features at a time, rather than the whole kit and caboodle. For example, a team can spend a month or two using the concept of a sprint backlog, but not concern themselves much with hourly estimation or the daily meeting. Or the team can decide to go The Full Scrum, but use the process for a point release as opposed to a major ship date.
In Scrum, the entire extended team, which includes development staff, management, and project stakeholders, meets every day for no more than 15 minutes (ideally). This is called the daily scrum. Each team member is supposed to discuss three things: what they worked on yesterday, what they plan to work on today, and whether they have encountered any blocking issues that will prevent them from completing their work items this sprint. It is the duty of the designated ScrumMaster for this sprint to facilitate the resolution of blocking issues.
In theory, the daily meeting is a wonderful idea, a regular check, in that brings all stakeholders together in a collaborative atmosphere. In practice, everyone hates it. In a corporate world chock full of meetings, the daily scrum is just one more meeting. And, for most team members, it is a boring and useless meeting. Unless you are significantly behind or have encountered blocking issues, the daily scrum feels like a waste of time.
In one of my teams, we have tried every which way but loose to restructure the daily scrum. Since our team was spread throughout the United States, we took to meeting through instant messaging, where everyone could paste their daily status into the chat window rather than read it out. Eventually, we abandoned the daily meeting altogether, and returned to our regular weekly team meeting. We continued to send out a regular Burndown chart, however, that showed how quickly we were resolving work items, and whether we were on track to finish this sprint on time.
Want to know how long a software development or technical documentation task will take: Easy: take your best guess, and double it! Schedule estimation is a black art that very few of us master. Hell, most of us would be happy to be mediocre at it. It does not help that, in the words of Rockwell, it always feels like somebody is watching us: if our estimates are incorrect, we are afraid that the Managerial Wrath of God will descend upon us.
Scrums stated goal is to empower developers to control their development schedule. Managers and the product owner can (and do!) still set drop-dead dates. But team members themselves assign time estimates to each task, and then work together with management and the product owner to determine which features can be completed in the allotted time. Planning is usually done as a team effort with a game called planning poker, in which team members repeatedly assign their best estimates to project tasks until the team reaches consensus.
This approach to planning does not work well for all types of projects, however. Maintenance projects and technical documentation projects in particular are usually composed of many small, discreet tasks that take far less than half a day to complete. For such projects, estimating at a finer level of granularity (less than four hours) is a nightmare.
Now, there is no getting around the need for estimation for planning projects and controlling costs. But for many teams, there is also no need to plan everything down to the man-hour. One of my documentation teams routinely dealt with a large number of bugs that were infinitesimally small; these bugs usually took less than 15 minutes to fix. After several frustrating months of assigning time quanta to these work items, we eventually settled on the concept of "t-shirt sizes," rating bugs on a scale between XS (extra small) and XL (extra large), with each rating assigned an approximate time range (XS = under 15 minutes, S = 15 to 30 min. and so on). Over time, we developed a better sense of how much time each category of bugs consumed, and how many of each bug type we could resolve within a single publication milestone.
Remember that there is no ultimate authority dictating that your team must implement Scrum "by the book." Like other agile methodologies, Scrum is nothing more than a collection of good ideas. Take what you think your team can use, and take it an idea at a time.
Learn more by visiting our programming community site and check out some of the best IT Research available.