1 / 18

What Is Agile Development & What does it Imply?

What Is Agile Development & What does it Imply?. Alistair Cockburn. alistair.cockburn@acm.org http://Alistair.Cockburn.us. Talk structure What agile is (isn’t), and what it implies. What is ‘agile’, how did it get there? Methodology theory meets project details

plato
Download Presentation

What Is Agile Development & What does it Imply?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. What Is Agile Development&What does it Imply? Alistair Cockburn alistair.cockburn@acm.orghttp://Alistair.Cockburn.us

  2. Talk structure What agile is (isn’t), and what it implies • What is ‘agile’, how did it get there? • Methodology theory meets project details • Getting / Misconstruing the message

  3. ‘Agile’ got there by winning the development races in the turbulent 1990s. • Agile techniques were in use since the beginning. • Agile (mobility-based) techniques did not show competitive advantage in the 1970s / 1980s, • but did during the 1990s and do now. • Trial runs of current agile methodologies, 1993 - 1995 • RAD DSDM • XP Crystal • Scrum Adaptive

  4. Agile software development is about valuing “maneuverability” and “efficiency” • Differing tactics fit differing focuses of attention: ? predictability ? repeatability ? cost ? agility • Agile methods make greater use of: + Individuals and interactions + Working software + Customer collaboration + Responding to change • Within ‘agility,’ different tactics fit different situations • (“Agile” is not just a retitling of Extreme Programming !)

  5. Software development is making ideas concrete in an economic context. • People inventing / communicating,Solving a problemCreating a solutionUsing limited languages • Where every choice has economic consequences,and resources are limited Which they don’t fully understand & keeps changing under them

  6. Organization Survival Infinite Career Management King-of-the-hill wrestling Finite w/ no fixed end Jazz music Tennis Rock-Climbing Finite & goal-directed Software Development Poker Games Cooperative Competitive A resource-limited cooperative game of invention and communication • Primary Goal  Deliver this software • Secondary Goal  Set up for the next game • Elements of the Game: • People, • Cooperation, • Invention, • Communication • (p.s. • The game • never • repeats !!)

  7. Key topics in the cooperative game • 1. Different tactics for different projects • 2. People’s Personalities, Motivation, Goal Alignment • 3. Talent & Skill (fewer better people) • 4. Communication (developers - developers - users) • 5. Energy Management (minimal requirements/design) • 6. Reflecting on what works / doesn’t work • 7. Quality in work (good, simple designs) • 8. Good Tools (configuration management, testing) • 9. Tacit knowledge, verbal communication • 10. Frequent Delivery (incremental development)

  8. The players in the game are “People,”Highly spontaneous, active devices • Weak on: Strong on: • Consistency Communicating • Discipline Looking around • Following instructions Copy / modify-ing • Motivated by: • Pride in work • Pride in contributing • Pride in accomplishment

  9. Paper People communicate most effectively interactively, face-to-face. 2 people at whiteboard 2 people on phone Communication Effectiveness Photo courtesy of Evant corp. Videotape 2 people on email Richness of communication channel

  10. Regression tests Object model MBWA Project plan Use cases Use cases CRC cards Microsoft Project 3month increments Envy/Developer JAD facilitation UML / OMT STP Java programming C++ Microsoft Project Modeling Methodology meets Project details: (a) Methodology = theory of a project Activities Milestones Methodology Values Quality Process Teams Tester Designer Documenter Project manager Products Techniques Roles Personality Standards Tools Skills

  11. Values Values Jim Peter Jenny Annika “Ecosystem” = the actual project details. (b) People are stuffed full of personality Methodology Ecosystem Activities Milestones Tester Quality Process Teams Designer Documenter Project manager Products Techniques Roles People Standards Tools Personality Skills

  12. Methodology and Ecosystem are always in interplay • When each changes, the ecosystem rearranges itself. • Ecosystem: • Project details (“environment”) • Staff expertise (“species”) • Specific dominant / mild people (“predators”) • Flights of stairs people must climb (“cliffs”) • Office layout (“terrain”) • Amicability between the individuals

  13. Jenny (Pete) Bill Mary Projects get restructured around ecosystem details Marketing group Business analysts Marketplace Programmers

  14. Hackers “Avoid planning” “Spend all their time coding” “Talk to each other when they are stuck [only]” “Management caves in out of fear” Agilists Plan regularly Test according to project priorities, recheck results with users often. Talk to each other and customers as a matter of practice Expect management to provide priorities, to participate jointly in making project adjustments. Misconstruing the message:1. Agile is hacking. (Hacker interpretations are available & inevitable.)

  15. Misconstruing the message2. Agile only works with the best developers. • Every project needs at least one experienced and competent lead person. (==Critical Success Factor) • Each experienced and competent person on the team permits the presence of 4-5 “average” or learning people. • With that skill mix, agile techniques have been shown to work many times.

  16. Getting the message:1. Agile techniques are “cheating”. • · Hire good people; • · Seat them close together to help each other out; • · ... close to the customers and users; • · Arrange for rapid feedback on decisions; • · Let them find fast ways to document their work; • · Cut out the bureaucracy. • This is: • cheating • stacking the deck • the heart of agile software development • a good idea

  17. Getting the message:2. Agile won’t work for all projects. • Right. • Not every project team • - values agility • - can set up the needed trust and communication • (p.s. Business isn’t fair).

  18. Alistair Cockburnalistair.cockburn@acm.orghttp://members.aol.com/acockburnwww.CrystalMethodologies.org

More Related