Академический Документы
Профессиональный Документы
Культура Документы
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
Update Plan
Complete Sample Read 4 chapters
HPI EAS Interface Code of USB book
PDT
Meeting
Complete
assembler test Write meeting
scripts minutes
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
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.
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
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.