Extreme Programming and Agile Software Development Methodologies

Extreme Programming and Agile Software Development Methodologies

Extreme Programming and Agile Software Development Methodologies Lowell Lindstrom, Object Mentor, Inc., [email protected] Ron Jeffries, xprogramming.com, [email protected] ____________________________________________________________________________ As a stakeholder of a software project, how does this sound to you? You can have releases as often as you like. The small number of defects is unprecedented. All of the features in the system are the most valuable ones to your business. At anytime, you have access to complete, accurate information as the status of any feature and of the quality of the system as a whole. The team developing your project works in an energized space with constant communication about the project. You are not dependent on any one or even two programmers for the continued success of the project. If your needs change, the development team welcomes the change of direction. As a developer of a software project, how does this sound to you? No one estimates your tasks but you, period! You always have access to a customer to clarify details about the features you are implementing. You are free (and required) to clean up the code whenever necessary. You complete a project every two weeks. You can work in any part of the system that you wish. You can pick who will help you on any given task. You are not required to work constantly long hours. Does this sound to good to be true? Teams are achieving these advantages using a relatively new set of software methodologies. Collectively, they are referred to as Agile Software Development Methodologies. The most pervasive is Extreme Programming. This chapter will introduce you to these exciting, popular, yet controversial new approaches to software development. ____________________________________________________________________________ BACKGROUND as the current economic downturn limits capital investment, innovators and Trends In Software Development entrepreneurs are pushing the limits in areas of biotechnology and nanotechnology. The last half-century has seen a dizzying progression of technical advancement in the Supporting all of these advances is software areas of computer, software, and running on some kind of computer. From communications technology. With each the spreadsheets to anti-lock brakes to advance came rapid changes in the way phones to toys, logic that was once society works and lives. The impact of implemented in mechanics, circuitry, or technology is increasingly pervasive. Even pencil and paper, is now a set of instructions Copyright 2003 © Lowell Lindstrom and Ron Jeffries Copyright 2003 © CRC Press LLC controlling one or many computers. These computers communicate with each other Despite these delivery problems, strong over networks ignorant to the limits of demand seems to hold steady. Reports still geography and even wires. The notion of a suggest a shortage of software professionals program running on a computer is largely a and college graduates, despite the implosion memory as the emergence of distributed of the Internet industry slowing the growth computing models, most recently Web of demand and the emergence of offshore Services, allow many different computers to programming market increasing supply. participate in the “running” of a program or system to yield a given output. Improvement Remains Elusive Efforts to improve the success rate of In this explosive environment, software software projects have since the first bug professionals have the challenge to deliver a was detected. Recently, these efforts have seemingly infinite backlog of software focused on four distinct part of the software projects, while keeping abreast with the development process: requirements latest advances. The results are debatable at gathering, designing and developing the best. Survey after survey continues to software, testing the results, and overall confirm that most software projects fail project management. Formal requirements against some measure of success. Most definition and analysis addressed the software developers have many more stories problem of requirements that were of failure than of success. Given the friction incomplete or did not reflect the needs of the and finger pointing that accompanies the end customer. Formal design before of a failed project, it is difficult to research implementation addressed the goals of reuse, the causes of software failures. However, consistency of operation, and reducing typically, projects fail for the one of more of rework. Testing catches defects before they the following: reach the users. Project Management ? Requirements that are not clearly addressed the problem of coordinating the communicated efforts of multi-department teams. These ? Requirements that do not solve the areas of focus follow a logical approach to business problem process improvement: improve the quality ? Requirements that change prior to of the inputs (requirements), improve the the completion of the project quality of the output (designing and ? Software (code) that has not been developing, project management), and tested improve the detection and elimination of ? Software that has not been tested as defects prior to shipping (testing). Methods the user will use it and tools focusing on these four distinct ? Software developed such that it is areas of software development have hard to modify. proliferated. ? Software that is used for functions for which it was not intended For some projects, these efforts have been ? Projects not staffed with the effective. For others, it yielded silos of resources required in the project plan responsibility, with poor communication between the groups and distributed ? Schedule and scope commitments are made prior to fully understanding ownership and accountability. If a project is late, it is easy for the programmers to blame of the requirements or the technical risks. the requirements gatherers and vice versa. If Want to learn more? See www.oobeyagroup.com or www.xprogramming.com 2 the users detect defects, finger pointing ensues between developers and testers. A few people started to author papers about Project Management techniques try to better these disciplined, yet lighter approaches to coordinate the activities of the multiple software development. They called them groups involved in delivering the project, Extreme Programming, SCRUM, Crystal, but add yet another silo and area of Adaptive, etc. Different authors emphasized accountability. The most popular project different aspects of software development. management techniques focus on developing Some focused on approaches to planning a plan and sticking to the plan. This and requirements, some focused on ways to improves coordination, but reduces the write software that could be changed more ability of the project to adapt to new easily. Some focused on the people information regarding the requirements or interactions that allow software developers the implementation details. to more easily adapt to their customers’ changing needs. These various efforts Emergence Of Agile Methods created a focal point for a community that furthered the set of practices that succeed The additional process steps, roles, and without many of the activities and artifacts artifacts helped many teams to enjoy higher required by more defined methodologies. success rates and more satisfied customers. Unfortunately, many projects failed In the fall of 1999, Extreme Programming, attempting to use the same techniques. Embrace Change1, was published and the Some projects got lost in the documents and trend had found its catalyst. In early 2001, never implemented any code, missing the the different innovators that were creating window of opportunity for the software. different agile methodologies held a retreat Others did not leave enough time at the end and scribed the Agile Manifesto for for implementation and test, and delivered Software Development.2 By the spring of systems inconsistent with the documents and 2002, Computerworld.com ran the following designs on which most of the project time headline: "More than two-thirds of all was spent. corporate IT organizations will use some form of ‘agile’ software development At the same time, numerous projects were process within 18 months, Giga Information very successful that did not follow methods Group predicted this week at its application with binders of documents, detailed designs, development conference here."3 and project plans. Many experienced programmers were having great success AGILE METHODOLOGIES without all of these extra steps. The At the retreat in early 2001, a number of determining factor of project success leaders of the agile software development seemed more and more to be the people on movement held a retreat to discuss their the project, not the technology or the approaches and to explore the methods that were being used. After all, commonalities and differences. What people end up writing the software at some emerged was the Agile Manifesto for point. To some, the developers that did not Software Development. The manifesto embrace the new methodologies appeared to articulates core values and principles that be undisciplined and indifferent to quality, guide agile methodologies. despite their successes at delivering quality software that people wanted to use. Want to learn more? See www.oobeyagroup.com or www.xprogramming.com 3 Agile Manifesto ? Working software is the primary We are uncovering better ways of measure of progress. developing software by doing it and ? Agile processes promote

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    17 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us