Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Effective Software Development in the 21st Century


Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

Effective Software Development in the 21st Century

  1. 1. Effective Software Development in the 21st Century: The New Face of Software Engineeri:ng Dr. Alistair Cockburn
  2. 2. People ... Solving a problem Creating a solution To an interpreter unforgiving of error Making decisions every decision has economic consequences and resources are limited. … they don’t understand which keeps changing Communicating Deciding Expressing ideas in a language … they don’t understand which keeps changing … they don’t understand which keeps changing Inventing
  3. 3. Craft Cooperative Game Knowledge Acquisition Flow Management Self-Awareness (Personalities) origami courtesy of Gery Derbier
  4. 4. Craft
  5. 5. People learn skills in 3 stages Shu : Learn a technique Ha : Collect techniques Ri : Invent / blend techniques
  6. 6. Craft teaches us to pay attention to our skills and to the medium <ul><li>Major crafts: </li></ul><ul><li>1 Deciding what to build </li></ul><ul><li>2 Managing (people and projects) </li></ul><ul><li>3 Modeling </li></ul><ul><li>4 Designing the external view </li></ul><ul><li>5 Large-scale design (architecting) </li></ul><ul><li>6 Fine-scale design (programming) </li></ul><ul><li>7 Validating the work </li></ul>
  7. 7. The International Consortium for Agile is establishing a learning roadmap for each specialty.
  8. 8. <ul><li>Cooperative Game </li></ul>
  9. 9. Games have positions, moves, strategies Infinite Organization Survival Career Management Competitive Cooperative Open-ended Jazz music Finite goal-directed King-of-the-hill wrestling Poker Tennis Chess Rock-Climbing Theater Journalism Exploration Software Development Business Product Line Management IT Systems
  10. 10. <ul><li>Three moves: </li></ul><ul><li>Invent </li></ul><ul><li>Communicate </li></ul><ul><li>Decide </li></ul><ul><li>Two conflicting subgoals: </li></ul><ul><li>Deliver this system </li></ul><ul><li>Set up for the next game </li></ul><ul><li>The situations (almost) never repeat! </li></ul>
  11. 11. Adapt to your situation C6 C20 C40 C100 D6 D20 D40 D100 E6 E20 E40 E100 L6 L20 L40 L100 Project Classification Scale: Number of people coordinated 1 - 6 - 20 - 40 - 100 Comfort Essential moneys Life Discretionary moneys Criticality X X X X X
  12. 12. Richness of communication channel Communication Effectiveness 2 people on phone 2 people on chat (Question-and-Answer) Face-to-face is the most effective - Try Video Paper Videotape 2 people at whiteboard (Courtesy of Thoughtworks, inc.) (No Question-Answer)
  13. 13. People issues determine a project’s speed <ul><li>Can they easily detect something needs attention? </li></ul><ul><li>( Good at Looking Around ) </li></ul><ul><li>Will they care enough to do something about it? </li></ul><ul><li>( Pride-in-work ; Amicability ) </li></ul><ul><li>Can they effectively pass along the information? </li></ul><ul><li>( Proximity ; face-to-face ) </li></ul>
  14. 14. Flow Management
  15. 15. Design = manufacturing if Inventory = Decisions! Users & Sponsors Testers Business Analysts A decision Programmers Every line of code is a decision UI Designers I wish they’d decide what style they want! I wish they’d decide what functions they want! I wish they’d decide on the UI design already! I wish they’d think a bit more carefully before coding!
  16. 16. Reduce decisions in motion & balance the flow Users & Sponsors UI Designers Programmers Testers Business Analysts Convert jams Users & Sponsors UI Designers Programmers Testers Business Analysts to continuous flow.
  17. 17. Learn from your queues and backups Enough Users & Sponsors Many Business Analysts Not enough Programmers Some Testers Enough Users & Sponsors UI Designer A few Business Analysts Lots of Programmers Single, solitary Database designer
  18. 18. Knowledge Acquisition
  19. 19. Big-Bang Design is a late-learning strategy time Growth of knowledge with big-bang integration Delivers nearly no knowledge (or risk reduction) Knowledge comes at the “moment of truth”: final integration. cost
  20. 20. We can pay to learn early in the project time Growth of knowledge with early, continuous integration Applies to both business (&quot;lean startups&quot;) & technical design Development sequence indifferent (with respect to knowledge) Delivers knowledge (risk reduction) cost
  21. 21. Develop for business value once risks are down time Knowledge growing (risk reduction) cost Business value growing Reduce risks: - Business - Social - Technical - Cost / Schedule
  22. 22. Payoff = Trim-the-Tail: Deliver by value or date Trim to deliver on-time (or early) Delay to get more or better
  23. 23. Craft Professions skills in a medium Cooperative Game communication teamwork strategies Knowledge Acquisition pay-to-learn trim-the-tail Flow Management unvalidated decisions = inventory, lean processes Self-Awareness (Personalities) the people, strategies, techniques actually used Designing in Teams origami courtesy of Gery Derbier