Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
3Activity
0 of .
Results for:
No results containing your search query
P. 1
The Scrum Software Development Process for Small Teams

The Scrum Software Development Process for Small Teams

Ratings: (0)|Views: 249|Likes:
The Scrum Software Development Process for Small Teams
The Scrum Software Development Process for Small Teams

More info:

Published by: Hasan Tayyar BEŞİK on Jun 12, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

08/19/2010

pdf

text

original

 
2
IEEE SOFTWARE
July/August 2000 
0740-7459/00/$10.00 © 2000 IEEE
can be flexible and adaptable in definingand applying an appropriate variant of Scrum. This article describes our experienceimplementing this process.
Why Scrum?
As members of the Software TechnologyGroup, our group is responsible for intro-ducing new technologies and processes intoour organization at AG CommunicationSystems in Phoenix, Arizona. We researchnew approaches and sponsor their introduc-tion and growth. We also conduct develop-ment project checkups for ongoing projectsand postmortems for completed ones.In our periodic postmortems and check-ups, we noticed some recurring problemsfor our New Business Opportunity (NBO)projects. Figure 1 lists some comments aris-ing from projects at our organization thatfaced significant challenges.In the new telecommunications marketwhere our company operates, change isoverwhelming. Software developers have al-ways complained about changing require-ments, but in traditional approaches they as-sumed they would understand the require-ments before moving on to the next phase.In the current environment, however, proj-ect requirements might be unclear or un-known even as the project gets underway.Indeed, the market might not be defined—itmight even be that no one clearly under-stands the product under development.Most development teams respond with,“Make the chaos go away! Give us betterrequirements!” Unfortunately or not, chaosis the reality in this new business environ-
focus
The Scrum SoftwareDevelopment Processfor Small Teams
Linda Rising and Norman S. Janoff,
 AG Communication Systems 
 In today’s softwaredevelopment environment,requirements oftenchange during the product develop-ment life cycle tomeet shifting business demands,creating endlessheadaches for development teams. We discussour experience inimplementing theScrum softwaredevelopment  process to addressthese concerns.
A
t AG Communication Systems, software development teamsrange in size from two to several hundred individuals. Intuitively,the development process that’s appropriate for very large teamswon’t work well for tiny teams and vice versa. In our organiza-tion, process diversity means adopting a flexible approach to developmentprocesses so that each team can apply what works best. In experimentingwith the Scrum software development process, we found that small teams
process diversity
 
ment—as software developers we mustlearn how to meet customer needs and turnthis chaos to our advantage.In seeing that some of our NBO projectswere more successful than others, we strug-gled to examine the postmortem data to learnthe secrets of those successful projects. Hereare some comments from successful teams:
s
We did the first piece and then re-esti-mated—learn as you go!
s
We held a short, daily meeting. Onlythose who had a need attended.
s
The requirements document was high-level and open to interpretation, but wecould always meet with the systems en-gineer when we needed help.About this time, we discovered the ScrumWeb sites (www.controlchaos.com/safe andwww.jeffsutherland.org) and read a paperpresenting patterns for using the Scrum soft-ware development process from the 1998Pattern Language of Programming Confer-ence.
1
From the Scrum Web sites we learnedthat Scrum is a process for incrementallybuilding software in complex environments.Scrum provides empirical controls that al-low the development to occur as close to theedge of chaos as the developing organiza-tion can tolerate.The Scrum software development processdescribed in this article developed in a col-laboration between Advanced DevelopmentMethods and VMARK Software. Both com-panies were reporting breakthrough pro-ductivity. This approach overlapped signifi-cantly with what we saw in postmortems of successful projects. Our organization haslong used patterns successfully, not just fordesign but for organization and process aswell.
2,3
Many existing patterns supportedwhat we learned about Scrum and saw inthe postmortem data (see the “What’s a Pat-tern?” sidebar). For example, Scrum advo-cates the use of small teams—no more than10 team members. Jim Coplien’s “Size theOrganization” pattern recommends 10-per-son teams,
4
while Fred Brooks argues that“the small sharp team, which by commonconsensus shouldn’t exceed 10 people.”
5
Be-cause Brooks, Coplien, and postmortems of successful teams all support this and manyother Scrum tenets, we felt confident aboutundertaking a pilot project.Although most of our NBO teams weresmall, some had grown to exceed the limitof 10. We thought initially that we couldsimply divide larger teams into collectionsof smaller subteams, each no larger than 10.We found that when the subteams are inde-pendent and the interfaces well defined, thisworks. When the overlap is considerableand the interfaces poorly understood, the
July/August 2000 
IEEE SOFTWARE
3
In the late 1970s, two books appeared, written by Christopher Alexan-der and his building architect colleagues.
The Timeless Way of Building 
and
 A Pattern Language 
presented Alexander’s description of recurring problemsin creating cities, towns, neighborhoods, and buildings, and the solutions tothese problems.
1,2
He used the pattern form to document the problems andtheir solutions.
Each pattern describes a problem that occurs over and over again inour environment and then describes the core of the solution to that problem in such a way that you can use this solution a million timesover without ever doing it the same way twice.
Software professionals have also observed recurring problems and solu-tions in software engineering. There is evidence of patterns at all levels of software development, from high-level architecture to implementation, testing,and deployment. There is considerable work going on to apply this technol-ogy to software engineering. Patterns go a long way toward capturing what experts know, letting them share that knowledge with others.On the surface, a pattern is simply a form of documentation. Pattern au-thors document solutions they have observed across many software projects.Experienced designers read these patterns and remark, “Sure, I’ve donethat—many times!”This kind of documentation captures knowledge, previously found only inthe heads of experienced developers, in a form that is easily shared.Patterns are not theoretical constructs created in an ivory tower; they areartifacts that have been discovered in multiple systems. In patterns, the solu-tion is one that has been applied more than twice. This “rule of three” en-sures that the pattern is documenting tried and true applications, not just agood idea without real use behind it.The approach calls to mind the notions of cohesion and coupling Ed Your-don and Larry Constantine developed during many late Friday afternoonpostmortem sessions, discussing lessons learned from past projects.
3
The co-hesion and coupling ideas captured qualities of real systems. The guidelines were not theoretical musings, but rested on observations of system capabili-ties that made life easier for developers and maintainers.This is true for all patterns.
References
1.C.A. Alexander, The Timeless Way of Building, Oxford Univ. Press, New York, 1979.2.C.A. Alexander et al., A Pattern Language, Oxford Univ. Press, New York, 1977.3.E. Yourdon and L. Constantine, Structured Design, Prentice-Hall, Englewood Cliffs, N.J., 1978
What’s a Pattern?
 
benefits are not as great. Clearly, this is notan approach for large, complex team struc-tures, but we found that even small, isolatedteams on a large project could make use of some elements of Scrum. This is true processdiversity.While conducting a project checkup, wethought that Scrum might address some of the issues facing the particular team. Afterwe described the approach as we then un-derstood it, the team decided to try Scrumand became our first pilot project. We did-n’t understand a lot about the approach, sowe learned as we went along, as did the
4
IEEE SOFTWARE
July/August 2000 
The following reports summarize theexperience with Scrum of three diversesoftware development teams at AGCommunication Systems. The A-Teamdeveloped a new multiplatform simulatorfor the internal use of our GTD-5 EAXswitching system software developers.The B-Team’s focus was a new product in the small call-center market. The C-team developed a new feature for theGTD-5 EAX switching system.
A-Team
 A-Team’s new leader called for aproject checkup. As a result of someproblems that surfaced during thecheckup, we offered to give a short Scrum presentation. The team decided topilot a one-month sprint. To providesome on-the-job training in the ap-proach and also to learn how this team would adapt the approach to its appli-cation, we sat in on the Scrum meetings. At first, the team was uneasy about spending a lot of time in daily meetingsand proposed holding sprint meetingsevery other day. The schedule of Mon-day, Wednesday, and Friday one week,followed by Tuesday and Thursday of the following week seemed to work best.During these meetings, the team beganto grow together and display increasinginvolvement in and delight with others’successes. The team completed a suc-cessful sprint, with the planned compo-nents delivered on time.The team began to cooperate almost immediately. The changes happened be-fore our eyes. One plausible explanationis that our developers are superb engi-neers; they love to solve problems. Whenone team member shares an obstacle inthe Scrum meeting, the entire team’s re-sources come together to bear on that problem. Because the team is workingtogether toward a shared goal, everyteam member must cooperate to reachthat goal. The entire team immediatelyowns any one individual’s problems.Detailed problem solving does not happen in the meeting, of course—onlyan offer of help and an agreement tomeet after the Scrum meeting. For exam-ple, a team member would say, “I ran intoa problem.” Typical responses would be,“I had that problem a couple of weeksago. I can help with that. Let’s talk offline;”“I know who is working in that area. I’llhelp you get in touch with them;” or “I’mhaving the same problem myself. Let’s get together after the meeting and talk about it.” We immediately noticed an increasein volunteerism in the team.The celebration of small successes was also evident. At every meeting, assmall tasks were completed and theteam could see progress toward thesprint’s goal, everyone rejoiced. On thesprint’s last day, we could feel the excite-ment as the responses around the table were, “I finished my task! I finished mytask! I finished my task!” They did it.They reached their goal together.Figure A lists comments from theteam leader at the end of the sprint.Our biggest outcome from this pilot came in the definition of the Scrum mas-ter’s task. We originally thought that this
Experience Reports
Give it time to get started before expecting big results. It gets better as theteam gains experience.Tasks for a sprint must be well quantified and achievable within the sprinttime period. Determine the sprint time by considering the tasks it con-tains.Tasks for sprints must be assigned to one individual. If the task is shared,give one person the primary responsibility.Sprint tasks might include all design-cycle phases. We set goals related tofuture product releases in addition to current development activity.Scrum meetings need not be daily. Two or three times a week works for us.The Scrum master must have the skill to run a short, tightly focused meet-ing.Stick to the topics of the sprint. It’s very easy to get off topic and extendwhat was supposed to be a 10 to 15 minute meeting into a half-hour ormore.Some people are not very good at planning their workload. Sprint goals arean effective tool for keeping people on track and aware of expectations.I’ve noticed an increase in volunteerism within the team. They’re taking aninterest in each other’s tasks and are more ready to help each other out.The best part of Scrum meetings has been the problem resolution andclearing of obstacles. The meetings let the team take advantage of thegroup’s
experience and ideas.
Figure A. A-Team’s team leader comments.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->