Effective Software Development in the 21st Century
Effective Software Development in the 21st Century: The New Face of Software Engineeri:ng Dr. Alistair Cockburn http://Alistair.Cockburn.us
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
Craft Cooperative Game Knowledge Acquisition Flow Management Self-Awareness (Personalities) origami courtesy of Gery Derbier
People learn skills in 3 stages Shu : Learn a technique Ha : Collect techniques Ri : Invent / blend techniques
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>
The International Consortium for Agile is establishing a learning roadmap for each specialty.
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
<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>
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
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)
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>
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!
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.
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
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
We can pay to learn early in the project time Growth of knowledge with early, continuous integration Applies to both business ("lean startups") & technical design Development sequence indifferent (with respect to knowledge) Delivers knowledge (risk reduction) cost
Develop for business value once risks are down time Knowledge growing (risk reduction) cost Business value growing Reduce risks: - Business - Social - Technical - Cost / Schedule
Payoff = Trim-the-Tail: Deliver by value or date Trim to deliver on-time (or early) Delay to get more or better
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
A particular slide catching your eye?
Clipping is a handy way to collect important slides you want to go back to later.