Вы находитесь на странице: 1из 10

Agile Inside Intel

Brian Fitzgerald Gerard Hartnett


University of Limerick, Ireland Intel Shannon, Ireland

Abstract have emerged as an apparently revolutionary new


practice-led paradigm that can address these central
This study investigated the use of the agile methods, problems. The agile approaches comprise a broad range –
eXtreme programming (XP) and Scrum, at the Intel eXtreme Programming (XP) [Beck, 2000], Dynamic
Network Processor Division engineering team based in Systems Development Method (DSDM) [Stapleton,
Shannon Ireland over a three-year period. The study is 1998]; SCRUM [Schwaber & Beedle, 2002]; Crystal
noteworthy as it is based on real industrial software [Cockburn, 2001]; Agile modelling [Ambler, 2002];
projects involving experienced software engineers, with Feature Driven Design [Coad et al 99]; Lean
continuous reflection and rigorous monitoring of the Programming [Poppendieck, 2001], and perhaps even the
application of these approaches. It provides evidence that Rational Unified Process (RUP) (Kruchten, 2000),
agile methods are far from anti method, rather they although there is considerable disagreement on whether
require disciplined application and careful customisation or not RUP is an agile method. These approaches differ
to the particular needs of the development context. The significantly from traditional approaches to software
study also shows how XP and Scrum can complement development, emphasising development productivity
each other to provide a comprehensive agile development rather than process rigour, and seeking to deliver business
method, with XP providing support for technical aspects value quickly, while also accommodating changing user
and Scrum providing support for project planning and requirements.
tracking. The manner in which XP and Scrum have been It s important to emphasize that agile approaches are
customised to suit the needs of the development not anti method, rather they operate on the lean principle
environment at Intel Shannon is described, as are the of “barely sufficient methodology” [Highsmith, 2002].
lessons learned. The XP practices that were applied did The change in emphasis from the traditional approaches is
lead to significant benefits, with Pair-Programming summarized in the following value-tradeoffs:
leading to reductions in code defect density of a factor of
seven, and one project actually achieving zero defect - Individuals and interactions over processes and
density. However, the limitations of Pair-Programming tools.
are described. Intel Shannon also found that not all XP - Working software over comprehensive
practices were applicable. Thus, the study suggests that, documentation.
contrary to suggestions that XP is not divisible or - Customer collaboration over contract negotiation.
individually selectable, al la carte selection and tailoring - Responding to change over following a plan."
of XP practices can work very well. In the case of Scrum,
some local customisation has led to a very committed Advocates of the agile approaches recognize that both
adoption by developers themselves, in contrast to many sides of these value statements are relevant to software
development methods whose use is decreed mandatory by development. However, they choose to emphasize the
management. The success of Scrum is significant. first part of each statement as more important than the
Projects of six-month and one-year duration have been second part. The overall principles underpinning the agile
delivered days ahead of schedule, which bodes well for approaches are summarized in the agile manifesto
future ability to accurately plan development projects, a [www.agilemanifesto.com].
black art in software development up to now. The use of agile approaches is growing rapidly,
estimated to be in use in two-thirds of all IT development
companies in 2002 (Sliwa, 2002). Practice is ahead of
1. Introduction research in this area, but much of the evidence offered
thus far has been anecdotal in nature. Thus, the study
Despite 50 years of software development experience, reported on here in Intel Shannon is particularly useful as
the vast majority of software projects continue to exceed the findings are based on intensive investigation of the
budget and development schedule, and are often of poor agile initiatives that have been implemented. Two of the
quality when completed. In recent times, agile approaches most popular and widely used agile methods are XP and
Scrum, and both of these are in active use in Intel
Shannon. Hence, a brief background summary of each of All production code is written by two
these approaches is provided here. programmers at one machine.
Collective Ownership
1.1. eXtreme Programming (XP) Anyone can change any code anywhere
in the system at any time.
The eXtreme Programming (XP) approach explicitly Continuous Integration
acknowledges that it is not a magic ‘silver bullet’ of Integrate and build the system every time
revolutionary new techniques; rather, it is a set of tried a task is completed—this may be many
and trusted principles which are well-established as part times per day.
of the conventional wisdom of software engineering, but
40-Hour Week
which are taken to an extreme level—hence the name Work no more than 40 hours per week as
eXtreme Programming. XP has been pioneered by Kent a rule.
Beck, and has its origins in a project to develop an
internal payroll system at Chrysler in 1996-97. It is On-Site Customers
Include an actual user on the team,
comprehensively described in Beck [2000], where he
available full-time to answer questions.
describes it as “a light-weight methodology for small-to-
medium-sized teams developing software in the face of Coding Standards
vague or rapidly-changing requirements.” XP comprises Adherence to coding rules which
five key values, communication, feedback, simplicity, emphasise communication via program
courage and respect. These are underpinned by 12 key code.
practices, summarized in Table 1.

Table 1 Key Practices of XP (adapted


from Beck, 2000)
The Planning Game
A quick determination of the scope of the
next software release, based on a
combination of business priorities and A marked feature of XP is that several of the practices
technical estimates. It is accepted that overlap to some extent and thus serve to complement and
this plan will probably change. reinforce each other—Refactoring, Simple Design,
Small Releases Collective Ownership and Coding Standards, for
Put a simple system into production example. However, while XP is acknowledged as not
quickly, then release new versions on a being a ‘one size fits all’ approach suited to every
very short cycle. development context, there is by no means unanimous
Metaphor agreement on where the limits of its applicability lie.
Guide all development with a simple Thus, its application in Intel Shannon is especially
shared story of how the whole system pertinent as it represents an industrial product
works. development setting with experienced SW engineers.
Many of the reported benefits of XP to date have been in
Simple Design
The system should be designed as simply academic university environments (e.g. Hedin et al, 2003,
as possible at any given moment in time. Muller & Tichy, 2001), and therefore lessons learned
from its application in a real software development
Testing context are invaluable. Also, McBreen (2003, p. 88)
Programmers continually write tests
identifies the importance of “continuous reflection” on
which must be run flawlessly for
development to proceed. Customers write the application of XP practices, and this was very much a
function tests to demonstrate the features feature of the Intel Shannon context.
implemented.
1.2. Scrum
Refactoring
Programmers restructure the system,
without removing functionality, to Scrum [Schwaber & Beedle, 2002] is a simple low
improve non-functional aspects (e.g. overhead process for managing and tracking software
duplication of code, simplicity, development. While it is very much influenced by
flexibility). Boehm’s (1988) spiral model, it has its origins in a
Pair-Programming
project by Jeff Sutherland at the Easel Corporation in
1993 where it was used in the development of an OO kept short typically 15 minutes. Everyone answers three
analysis and design tool. While XP is used in Intel questions
Shannon for the technical engineering aspects of • What did you do in the last 24 hours?
development, Scrum is used for the project management • What roadblocks did you encounter that you
aspects, for which it is better suited. Scrum differs from need someone to remove?
traditional approaches in that it assumes that analysis, • What is your plan for the next 24 hours?
design and development processes are largely Within Intel Shannon, quite a lot of experimentation
unpredictable. At its heart, Scrum comprises a number of has been done using Scrum on projects of different sizes
stages which, building on its underpinning metaphor of a and complexity. Despite the claim by its proponents that
rugby scrum, also follow a sporting theme: Scrum has been used on “thousands of Scrum projects”
(Schwaber and Beedle, 2002), there have been few
Firstly, the Pre-Game phases: accounts of the use of Scrum in real world projects
- Planning: This phase involves the definition of a (Abrahamsson et al, 2003), a notable exception being the
new release based on currently known backlog, study by Rising and Janoff (2000).
along with an estimate of its schedule and cost. If
a new system is being developed, this phase The remainder of the paper is structured as follows: In
consists of both conceptualization and analysis. If the next section, contextual background information is
an existing system is being enhanced, this phase provided in relation to Intel Shannon. Following this the
consists of limited analysis. case study research method and the personal interview
- Architecture: This phase includes system process employed in this study is discussed. In the next
architecture modification and high level design as section, the actual implementation of XP and Scrum and
to how the backlog items will be implemented. the lessons learned are discussed. Finally, the conclusions
from the study are presented.
Following this is the main Game phase:
- Sprints: This involves development of new 2. Background- Intel Shannon Development
release functionality, with constant respect to the
Context
variables of time, requirements, quality, cost, and
competition. Interaction with these variables
Intel Shannon is based in the west of Ireland and is
defines the end of this phase. There are multiple,
part of the Intel’s Network Processing Division. The main
iterative development sprints, or cycles, that are
Intel plant in Ireland near Dublin employs 4,200 people.
used to evolve the system.
The Intel Shannon organization employs close to 100
people, and about 70 are involved in engineering,
Finally, there is the Post-Game phase:
software development and silicon design. The products
- Closure: Here the focus is on preparation for
under development are network processors for
release, including final documentation, pre-release
networking equipment typically for SMEs and the small
staged testing, and release.
office/home (SOHO) market. For these products,
requirements analysis is typically done in the US, the
The first and last Scrum phases (Planning and Closure)
software and silicon design is done in Shannon. Intel
consist of defined processes, where all processes, inputs
Shannon has seen significant growth in their workforce
and outputs are well defined. The knowledge of how to
over the past few years, and staff turnover is extremely
do these processes is explicit. The flow is linear, with
low. They are now striving to institute a repeatable
some iteration in the planning phase.
engineering process whereby they will have multiple
Sprints are nonlinear and flexible. Where available,
products under development in parallel in different
explicit process knowledge is used; otherwise tacit
phases. In the past, their portfolio has been characterized
knowledge and trial and error is used to build process
by a ‘startup’/single-product focus
knowledge. Sprints are used to evolve the final product.
In terms of software development, Intel Shannon has
The project is open to the environment until the Closure
been formally assessed at Level 2 on the Capability
phase. The deliverable can be changed at any time during
Maturity Model (CMM). Intel Shannon have been
the Planning and Sprint phases of the project. The project
deploying a range of agile methods over the past three
remains open to environmental complexity, including
years, principally two flavours of agile methods, XP for
competitive, time, quality, and financial pressures,
the technical engineering aspects of software
throughout these phases.
development, and SCRUM for the project planning and
One of the most interesting aspects of Scrum is the
tracking.
daily meeting of the project team. The daily meeting is
While the move to CMM certification was driven more any interesting details that emerge during the interview,
as a top-down mandate within the organization, in and concentrate in detail on particular aspects.
contrast, Scrum and XP were introduced at a grassroots It should be noted that a reflexive approach was
engineering level as optional techniques. As such their deliberately allowed in the interview phase adopted in this
adoption has grown organically over time. They were not study. This has been identified as important in
mandated or compulsory as the techniques were being exploratory research (Trauth & O'Connor, 1991) as it
introduced in parallel with CMM implementation. allows for refocusing as the research progresses, in that
The lessons learned have been significant and are responses to certain questions can stimulate new
discussed in section 4, but first the research method awareness and interest in particular issues which may
employed in this study is described. then require additional probing. Eisenhardt (1989) also
recommends such a strategy, labelling it “controlled
3. Research Method opportunism”.
In this study, a series of formal and informal
Given that the agile methods area is a relatively new interviews were conducted over a one-year period with
research area, research of an exploratory and descriptive the project manager and key staff responsible for agile
nature is needed, and any research method chosen should deployment at Intel Shannon. Interviews were generally
reflect this. Marshall and Rossman (1989) propose a of one to two-hour duration. Informal interviews were
framework for matching research purpose with research used to clarify and refine issues as they emerged. Also, as
methods and data capture techniques. In the case of one of the primary sources of information became a co-
research which has a descriptive and exploratory focus, a author of the paper, the correctness of the researchers’
combination of case study and in-depth interviewing is interpretation was less of an issue than in the traditional
deemed appropriate according to their framework model whereby exclusively-external authors interpret the
research findings.
3.1. The Case Study Method
4. Use of XP and Scrum at Intel Shannon
The case study is not viewed in a similar fashion by all
researchers (cf. Smith, 1990). However, according to one 4.1 XP
of the more common interpretations, it describes a single
situation, and usually involves the collection of a large Intel Shannon has been using XP for three years.
amount of qualitative information (cf. Benbasat et al., However, even though they have been committed users of
1987; Lee, 1989; Yin, 1989). Case studies can be very XP, they have been quite pragmatic in choosing only
valuable in generating an understanding of the reality of a those aspects of XP which they perceived as relevant to
particular situation, and can provide a good basis for the needs of their development context. The XP practices
discussion. There is neither an attempt at experimental that have been deployed, however, have been carefully
design nor any control of variables. However, since the monitored and the implications measured. These practices
information collected is often specific to the particular were Pair-Programming, Testing, Refactoring, Simple
situation at a particular point in time, results may not be Design, Coding Standards and Collective Ownership.
generalizable. Their experiences with each are discussed in turn below.
Notwithstanding this limitation, the case study was Scrum has also been used for three years. Again the
chosen as the research method for this study, as its documented technique has been tailored locally.
advantage in providing ‘thick description’ was seen as Scrum has seen more enthusiastic adoption at the
outweighing its limitations. Also, the project manager individual team level than eXtreme Programming. The
responsible for the deployment of agile methods reasons for this are discussed in more detail below.
subsequently became a co-author of the paper. Thus, the
findings are further strengthened through the direct 4.1.1. Pair-Programming
validation of those responsible for the process being
studied. Pair-Programming is perhaps the best known of the
XP practices, with generally positive reports on its usage,
3.2. In-Depth Personal Interviews although Muller & Tichy (2001) suggest that it decreases
overall productivity. While most of the other XP practices
The purpose of the personal interview is to encourage have been applied across all of the individual SW teams
the interviewee to relate experiences and attitudes at Intel Shannon, Pair-Programming has been selectively
relevant to the research problem (Walker, 1988). It is a applied. Most teams consist of between two and six SW
very flexible technique in that the interviewer can probe engineers with a wide range of experience. Pair
Programming was applied initially by two teams on two
components of the software for the IXP2XX network - Set clear objectives at the start of a programming
processor. On the later IXP4XX network processor it was session
again employed by two teams. - Planning and coordination may be necessary to
Pair-Programming was perceived as having a number prioritize programming over other activities (e.g.
of significant advantages at Intel Shannon. Firstly, it was helping other engineers, phone calls, meetings),
estimated that the required code quality level was otherwise both people may not be free
achieved earlier. On the IXP2XX project the pair- simultaneously.
programmed components had the lowest defect density in - Pair-Programming was not seen as valuable
the whole product. The defect densities were a factor of during sustaining activities on the project when
seven below the component with the highest density. On the amount of coding is not as significant.
the IXP4XX project two of the three Intel Shannon based
teams used Pair-Programming. One of the teams achieved 4.1.2. Testing
zero defect quality. The team with the highest defect
density was the team that did not. The three teams all had Intel Shannon also implemented a test-code
similar experience profiles. development strategy, i.e. writing the unit-test code while
With Pair-Programming, developers did not get stuck writing production code. They found this had a number of
wondering what to do next. If one person was unsure, the advantages. It set a direction for the immediate
other probably did know. Developers also believed that development, namely to get the test case working. It also
they learned quite a lot from each other and that they helped developers get a better understanding what
remained more focused on the job at hand, and less likely functionality was required of the software from a client
to go off on a tangent. point of view. The unit-tests are also implemented as part
The essential nature of Pair-Programming where one of a regression test suite and all component unit tests are
person is effectively looking over the other's shoulder run on the code repository nightly. Integration tests are
meant that minor errors were caught early saving also developed to test the individual components in
considerable debugging time. Also, it was useful for concert and “smoke tests” are run daily with external test
testing and debugging, as a fresh viewpoint could spot the equipment in the weeks leading up to a release.
obvious flaw which was not obvious to the pair partner.
The overall process also ensured that more than one 4.1.3. Refactoring
developer gained a deep understanding of the design and
code, thus facilitating collective ownership (discussed Refactoring was another XP technique that was quite
below). Developers suggested that they had more fun, and widely used at Intel Shannon. They found it worked best
found the work more interesting. They also seemed more when it was done early, as it eliminated a lot of bugs
enthusiastic about their work. which would have taken up a lot of debugging time
However, there were a number of problematic aspects otherwise. Refactoring also became akin to a continuous
associated with the use of Pair-Programming also. For design activity, which is discussed next.
example, it was found to be unsuitable for simple or well-
understood problems, which could be fixed as quickly as 4.1.4. Simple Design
a single developer could type. In a similar vein, when
doing lots of small changes (e.g. eliminating TODO’s), it In this case, design was done on a whiteboard before
tended to get frustrating. each block of code was written. As a result, the design
Some developers found Pair-Programming could document emerged on an ongoing basis in parallel with
break their flow of concentration as they needed to pause the code implementation. Quite significantly, however,
to communicate non-obvious ideas to the pair partner. they have not subscribed to the XP concept of the code
Indeed, some developers expressed the view that it was being the design as documentation is an integral part of
difficult to reflect and concentrate with someone by their the product deliverable at Intel Shannon. Simplicity
side. increasingly became the guiding principle, and over time,
Overall, Intel Shannon have documented a number of developers stopped trying to second-guess the client code
lessons which will guide their future use of Pair- and just implemented the requirements. As already
Programming: mentioned, this practice was very closely linked to
- Some basic rules of pair working etiquette are Refactoring.
required, e.g. no keyboard wrestling,
- Consideration needs to be given to neighbours to 4.1.5. Collective Ownership
keep background noise to a minimum.
- Use large fonts.
This practice led to a number of benefits. Firstly, it software releases are tied to silicon availability. Once
ensured that several members of the project team knew silicon is available the team typically deliver minor
the code well enough to make changes. So if one person releases every four-six weeks and major releases once a
was busy, another person could make the requested quarter.
change. Also, in the Intel Shannon context, changes in While Continuous Integration is practiced for each
team composition were quite common. In the past, this component, given the complexity of the overall software
meant that developers had to choose between bringing and the need for external test equipment, full system
any code they wrote with them and continuing to integration is done only in the fortnight leading up to a
maintain it, or spending time teaching the code to release.
someone else and handing over responsibility. Collective The 40-Hour Week was seen as a great aspiration but
Ownership allowed management more flexibility as it it was not consistently achievable in the Intel Shannon
resulted in teams being able to maintain the code base as development context, where the discrepancy in time
several of the original members would know it well zones between Europe and the US serves to extend
enough to maintain it. working hours.
However, Intel Shannon found that Collective On-Site Customers are not available. These projects
Ownership was only appropriate on a single team basis. are tied to the design of silicon and in many cases do not
Code ownership across multiple teams was not applied. have specific customers during the early conceptual
The software engineering team on the whole product stages. The product marketing group act as a customer
could be as many as thirty engineers and the team felt proxy prioritizing features based on potential revenue.
collective ownership could not scale to this wide a Metaphor was not explicitly used, but at a high level
population. the software components do correspond to the interfaces
on the silicon and have common patterns of functions on
4.1.6. Coding Standards the APIs.

Intel Shannon defined a C-coding standard early in the 4.1.8. Overall Lessons on XP Practices
project and referred to it extensively during coding and
code inspections. Coding Standards were already a very Overall Intel Shannon is quite happy with the XP
strong feature of their development environment prior to experience. Some of the practices such as Simple Design
the application of XP. and Testing are now used across the board on all
development teams. Testing is also integrated into the
4.1.7. Unused XP practices development environment.
Despite its success, Pair-Programming has not grown
XP pioneers have suggested that it cannot be applied to the same extent as Scrum, for example. This dichotomy
with piecemeal cherry-picking of individual practices. As will be discussed below.
Schwaber (2001, p.8) puts it: “(XP) values and their In general where Pair-Programming was adopted it
underlying practices and techniques are not divisible and tended to lead to a smaller code base, and as defect rate is
individually selectable; they form a coherent, whole directly correlated with code length this has led to more
process”. However, a number of XP practices were not efficient use of resources.
applied at Intel Shannon as they felt they were not As a thought experiment, the developers tried to
applicable to their development context. The unused imagine how the software would have turned out if a
practices include the Planning Game, Small Releases, more traditional development process had been followed.
Continuous Integration, 40-Hour Week, Metaphor and They believed it would have taken in or around the same
On-Site Customers. The reasons for lack of adoption of time—any discrepancies would be lost in the noise of
these practices were as follows: overhead. However, they felt the traditional code would
The Planning Game was not used as many aspects of probably have been quite a bit more complex and long to
planning are covered by the Scrum technique, discussed cater for situations which would probably never occur. As
later. From a business priority perspective a product- mentioned above, since the defect rate is a constant, this
marketing team have the responsibility for deciding would equate to more bugs.
feature priorities. They are in a separate organisation most
of whom are not physically co-located. In future, 4.2. Scrum
however, they intend to use some prioritisation aspects of
the Planning Game. Scrum has been used for three years at Intel Shannon
The XP practice of Small Releases is not feasible although some of the engineers had used it for almost five
early in the product schedule as in this business the years in their previous organizations. Scrum has really
only been documented in book form since 2002 reason for this enthusiastic embrace of the technique is
(Schwaber & Beedle, 2002). Up to then the technique down to one of the customisations this initial team made.
was documented on a number of websites (e.g. The daily Scrum meeting took place around a board
http://www.jeffsutherland.org/scrum/index.html; covered with yellow post-it notes. The team recorded
http://www.controlchaos.com/scrum.pdf). The Intel team tasks for the 24-hour period on post-its. This made Scrum
also employed a number of techniques from “Episodes” very visible in the organization, and curiosity from other
[Cunningham, 1995] the precursor to eXtreme planning. teams helped the initial spread of the technique. Figure 1
Scrum was initially piloted by one team and its use below illustrates a sample meeting record with Post-Its
has grown organically to the extent that it now is used by attached.
all of the teams in Intel Shannon. They believe the key

John Paul George Ringo

Update Plan
Complete Sample Read 4 chapters
HPI EAS Interface Code of USB book
PDT
Meeting
Complete
assembler test Write meeting
scripts minutes

Current Backlog Backlog Done

SW SAS
complete Refactor SAS
USB impact OS Adaptor scenarios
assesment Again!!! written
Design SW org
SW PIP out for PSM/Hwsv decided
review interface HW
Ethernet Tx milestones
AAL EAS
design scenario in plan
section
written

Fig 1 Sample Scrum Daily Meeting Post-It Record

Team members arrive at the daily meeting with their group visualization of the project. Overall they found the
new Post-Its for the next 24 hours. The Post-Its in their shared Post-It board the most useful.
named area are the tasks that were committed to at the last The Post-Its encourage people to prepare more
meeting. If a task is too big for the next 24 hours, they thoroughly in advance for the daily meeting. Continuous
write a subset of it on a new Post-It. During the Scrum preparation happens as developers stick new Post-Its to
meeting the team members move completed tasks into the their PC screens during their work in the interim between
“done” area. Moving the Post-Its around helps achieve a daily meetings.
shared group visualisation of the tasks and project Until recently all teams were geographically co-
progress. located so the simple low-tech Post-It technique has
They have also experimented with other innovative worked very well. Interestingly, they now have one
practices. For example, one team member took notes and distributed team which have commenced using the
then published the tasks on a web-page. However, they technique using a shared spreadsheet and networked
found this was a significant overhead for that team. They meeting software. It is too early to report on the results of
also tried running the meeting with each individual taking this project, but early indications are promising, thus
notes in a personal notebook, but this reduced the shared indicating that some agile methods may be more
applicable to distributed development than has been Planning is kept simple. There is no complex Gantt
suggested up to now (McBreen, 2003). chart with complex inter-dependencies between tasks.
The overall plan is a series of sprints (see Fig 2). Internal
4.2.1. Scrum Planning or external milestones can be lined up with Sprint
completions, but the dependencies between the tasks
Intel Shannon have made some modifications to the within the sprint are not worked out in advance.
planning process also. They use two planning stages, one
at the start of each sprint and one at the start of the
project.

effective number of engineers 2.6 2.6 2.7 2.8 2.8 2.8


Sprint Tasks Baseline Sprint 1 Sprint 2 Sprint 3 Sprint 4 Sprint 5 Sprint 6 Unassigned
Atmd.HLD.workshops 12.0 12.0
Aal5/Aal0/Aal2.workshops 2.0 2.0
Fpath 64.5 64.5
QMgr 43.5 43.5
Atmd 111.5 111.5
Aal5Acc.FuncSpec.Draft/Review 10.0 10.0
Aal5Acc.DesignSpec 7.0 7.0
Aal5Acc.Code 6.0 6.0
Aal5Codelet.Spec 7.5 7.5
Aal5Codelet.Code 7.0 7.0
Total 271 0 0 0 0 0 0 271.0

Fixed Overhead
Holidays.Public 4.0 4.0
Holidays.Vacation 45.0 45.0
Training 4.0 4.0
Total 53 0 0 0 0 0 0 53.0
0 0 0 0 0 0

Fig 2 Scrum Planning

Each team lead does a plan outlining all of the sprints the start of project sprint plan and look at any new
to the end of the project. Initial meetings are conducted backlog items that may have come up during the last
by the engineers to get high level estimates that can be sprint. Tasks are allocated to individuals to spread the
allocated and distributed across a number of sprints. In load. The sprint protects the team from the environment
one of the projects the wide-band Delphi technique was surrounding it for a meaningful amount of time
used to generate the estimates (Linstone and Turoff, At the end of the sprint the team lead writes a wrap-up
1975). Dependencies between teams are made between report, listing the tasks completed including extra tasks
end-of-sprint milestones. that that were not part of the original sprint plan. The
In terms of deliverables, the team lead provides a list report will also contain “lessons learned” and a
of sprint milestones and the contents of each sprint to the measurement of the actual effort expended in the sprint
overall project lead. versus the estimate at the start-of-project. Other end-of-
Intel Shannon do not use sprint time boxing which is sprint deliverables could include a demo, a project review
part of some implementations of Scrum. The high-level or a release.
tasks are split to distribute them across sprints. They then
continue to distribute and split tasks until the duration of
each sprint is at most 20 working days. Contingency is 4.2.2. Overall Lessons on Scrum
built into the plan and effort estimates are done based on
ideal engineering effort. The contingency factor is tuned Project teams have had excellent success delivering
as the project progresses. projects on time and within budget. An early project of
5.5 months duration with four team members delivered
At the start of each sprint the team decides which their final release within three days of the original plan.
tasks are going to be done in the next sprint. They look at The IXP4XX release 1.0 software was delivered one
week ahead of schedule on a project with an original However, while they found Pair-Programming to have
planned duration of over a year. The team consisted of significant benefits, in terms of code quality for example,
five teams and over thirty engineers. All teams used its use is not increasing, but this may be explained by the
Scrum. need for other management support mechanisms to
The key advantages of Scrum that the team observed support its use. Several XP practices were not considered
were: applicable, such as the Planning Game, Small Releases,
• Planning and tracking become a collaboration Continuous Integration, Metaphor, On-Site Customer and
involving the whole team 40-Hour Week. While XP advocates reasonably point to
• Excellent communication builds up within the the fact that the practices form a coherent whole, this does
team, thus building morale and helping the team not mean that selective relevant practices cannot be
to ‘gel’ applied to good effect. Intel Shannon certainly derived
• The team lead has more bandwidth for technical value from a subset of the practices. Also of interest is the
work fact that the XP principle that the ‘code is the
• Enables the team to deliver on-time documentation’ did not feature at Intel Shannon since
documentation is an integral part of the product
The early adoption of Scrum has led to the deliverable.
formulation of internal training courses and in short time Intel Shannon has also achieved significant benefits
the use of Scrum has reached critical mass. In the case of through the use of Scrum. Again, they have adapted it
XP, Pair-Programming was not as visible and did not very much to their needs with the highly visible daily
reach the same critical mass. In general most of the meeting report. Also, the use of Scrum has led to
engineers acknowledge the utility and advantages of Pair consistent meeting of development schedules on very
Programming but are still slow to apply it. They are not complex projects with long project durations, but with no
making a conscious decision not to use it and maybe the degradation in product quality. Finally, the deployment of
technique needs some renewed internal promotion. Scrum on a distributed development project suggests that
Another possible factor limiting the spontaneous some agile approaches may be more amenable to
adoption of pair-programming at the individual engineer distributed development than has been assumed up to
level, may be the perception that individual ownership of now. This will be the focus of further study.
code components is of more value when performance
reviews are being evaluated.

5. Conclusions
References
Overall, there are many lessons from this research at
Intel Shannon. The study is useful in being solidly based
on the rigorous and disciplined implementation of agile Abrahamsson, P, Warsta, J, Siponen, M & Ronkainen, J
approaches in a real development context involving (2003) New directions on agile methods: a comparative
experienced SW engineers, with a careful reflection on analysis, Proceedings of 25th ICSE, Portland, OR.
subsequent results. The study confirms that both XP and
Scrum have merit and are very complementary in that XP Ambler, S. (2002) Agile Modeling: Effective Processes
provides good support for the more technical aspects of for Extreme programming and the Unified Process, Wiley
development while Scrum provides a very good & Sons, New York.
framework for project planning and tracking. Also, it is
clear that these approaches are not anti method but Beck, K. (2000) Extreme Programming Explained.
require a disciplined approach and indeed need to be Addison-Wesley, 2000.
tailored to the needs of the development context.
Notwithstanding this, developers themselves have Benbasat, I., Goldstein, D. and Mead, M. (1987) The case
embraced these techniques and use has grown over time, research strategy in studies of information systems, MIS
in stark contrast to many organizations where the use of Quarterly, September, 369-386.
development methods is mandated by management which
leads to far less actual usage of these methods (Fitzgerald, Boehm, B. (1988) A spiral model of software
1998). development and maintenance. IEEE Computer, 21, 5,
Intel Shannon did not find that all of the XP practices 61-72.
were applicable in their context. Pair-Programming,
Testing, Refactoring, Simple Design, Coding Standards
and Collective Ownership were all applied to good effect.
Coad, P, Lefebvre, E and DeLuca, J. (1999) Java Schwaber, K & Beedle, J (2002), Agile Software
Modeling in Color with UML, Prentice Hall. Development with Scrum, Prentice Hall, 2002

Cockburn, A. Crystal Light Method, Available at Sliwa, C. (2002) Agile programming techniques spark
http://alistair.cockburn.us/crystal/articles/clm/crystallight interest, ComputerWorld, March 14, 2002,
methods.htm. http://www.computerworld.com/softwaretopics/software/
appdev/story/0,10801,69079,00.html
Cunningham, W. (1995) EPISODES: A Pattern Language
of Competitive Development Part I, Available at Smith, N. (1990) The case study: a useful research
http://c2.com/ppr/episodes.html method for information management, Journal of
Information Technology, 5, 123-133.
Eisenhardt, K. (1989) Building theory from case study
research, Academy of Management Review, 14, 4, 532- Stapleton, J. (1998) Dynamic Systems Development
550. Method: The Method in Practice, Addison Wesley.

Fitzgerald, B. (1998) An Empirical Investigation into the Trauth, E. and O'Connor, B. (1991) A study of the
Adoption of Systems Development Methodologies. In: interaction between information, technology and society.
Information and Management, Vol. 34, pp. 317-328. in Nissen, H., Klein, H. and Hirschheim, R. (eds) (1991)
Information Systems Research: Contemporary
Hedin, G., Bendix, L & Magnusson, B. (2003) Approaches and Emergent Traditions, Elsevier
Introducing software engineering by means of extreme Publishers, North Holland,131-144.
programming, Proceedings of 25th ICSE, Portland, OR.
Walker, R. (1988) Applied Qualitative Research, Gower,
Highsmith, J. (2002) Does Agility Work? In: Software Hampshire
Development, June, 2002.
Yin, R. (1994) Case Study Research: Design and
Kruchten, P. (2000) Rational Unified Process - An Methods (2nd ed.) SAGE Publications, Thousand Oaks,
Introduction, Addison-Wesley, Reading, MA. CA, 1994.

Lee, A. (1989) A scientific methodology for MIS case


studies, MIS Quarterly, 13, 1, 33-50.

Linstone, H, and Turoff, M, (1975) The Delphi Method:


Techniques and Applications, Addison Wesley.

Marshall, C. and Rossman, G. (1989) Designing


Qualitative Research, Sage Publications, California.

McBreen, P. (2003) Questioning Extreme Programming,


Addison-Wesley, Boston.

Muller, M and Tichy, W (2001) Extreme Programming in


a University Environment, Proceedings of 23rd ICSE,
Toronto, Canada.

Poppendieck, M. (2001) Lean programming, Software


Development, June 2001, pp. 71-75.

Rising L. & Janoff, N. The Scrum Software Development


Process for Small Teams, IEEE Software July/Aug 2000.

Schwaber, K (2001) Will the Real Agile Processes Please


Stand Up?, Cutter Consortium Executive Report, Vol. 2,
No. 8, 1-22

Вам также может понравиться