1 / 26

Teaching the Next Generation Software Engineering

Teaching the Next Generation Software Engineering. Alistair Cockburn http://Alistair.Cockburn.us. Two problems face SE educators. Software Engineering isn’t a meaningful term in many places (including academia) SE courses are most often waterfall in nature (building bad habits)

Download Presentation

Teaching the Next Generation Software Engineering

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. Teaching the Next Generation Software Engineering Alistair Cockburnhttp://Alistair.Cockburn.us

  2. Two problems face SE educators • Software Engineering isn’t a meaningful term in many places(including academia) • SE courses are most often waterfall in nature (building bad habits) • Both can be fixed

  3. SEcan be made relevant … and taught Cooperative Game 2 Lean Manufacturing 3 Craft 1 4 Knowledge Acquisition These can be taught in undergraduate education

  4. 1: The Craft view brings out lifelong learning Cooperative Game 2 Lean Manufacturing 3 Craft 1 4 Knowledge Acquisition These can be taught in undergraduate education

  5. Craft= Lifelong deepening skills in a medium • 7 major crafts in software development: • 1 Deciding what to build • 2 Managing (people and projects) • 3 Modeling • 4 Designing the external view • 5 Large-scale design (architecting) • 6 Fine-scale design (programming) • 7 Validating the work

  6. People learn skills in 3-stages • ShuLearn One1 technique • HaCollect techniques • RiInvent / Blend techniques

  7. Crafts view for educators Teach Shu /Ha, establish Craft view • 1 Teach Shu-level techniques deliberately • 2 Kick students out of the Shu-box into Ha • 3 Establish craft-style lifelong learning • 4 Use the SE course to show how the crafts fit together

  8. 2: The Cooperative Game brings out people issues Cooperative Game 2 Lean Manufacturing 3 Craft 1 4 Knowledge Acquisition These can be taught in undergraduate education

  9. SE is a Cooperative Gameof Invention & Communication… making ideas concrete in an economic context ... • People inventing and communicating, • Solving a problemthey don't yet understand • which keeps changing • Creating a solutionthey don't yet understand • which keeps changing • Expressing ideas in languages they don’t really understand • which keep changing • To an interpreter unforgiving of error • Making decisions with limited resources • and every choice has economic consequences

  10. Cooperative Game teaches teamwork and strategies in situations that never quite repeat Organization Survival Product Lines Infinite Career Management King-of-the-hill wrestling Finite w/ no fixed end Jazz music Poker Tennis Theatre Engineering Finite & goal-directed Rock-Climbing Chess Software Development Swamp game Cooperative Competitive

  11. Software development is a series of games • Conflicting goals compete for resources: • 1. Deliver this system • 2. Set up for the next game (documentation and skills evolution) • There is no simple formula for winning, only strategies in specific situations !(Shu-Ha-Ri)

  12. Cooperative Game view for educators Teach Cooperation & Strategies • 1 Teach Behavior-in-teams (in Shu-Ha-Ri sequence) • 2 Teach, attend to Communication , morale, safety, trust • 3 Teach Strategies-in-context when running projects • 4 Use the SE course to illustrate

  13. 3: Lean Manufacturing can teach designers a lot Cooperative Game 2 Lean Manufacturing 3 Craft 1 4 Knowledge Acquisition These can be taught in undergraduate education

  14. I wish they’d decidewhat stylethey want! I wish they’d think a bit more carefullybefore coding! I wish they’d decideon the UI designalready! A decision UI Designers Every line of code is a decision Users &Sponsors Programmers I wish they’d decide what functions they want! BusinessAnalysts Testers Design=manufacturing if inventory=unvalidated decisions

  15. Detaileddecisions aboutexternalappearance Decisions about function and style Decisions about systemcorrectness Decisions about programstructure UI Designers Detailed decisionsabout functionand data Users &Sponsors Testers Programmers BusinessAnalysts The network of people waiting on others has loops.

  16. UI Designer Lots of Programmers Enough Users & Sponsors Single, solitaryDatabasedesigner A few Business Analysts Enough Users & Sponsors Not enough Programmers SomeTesters Many Business Analysts Differing strategies come from queue locations

  17. Lean processes use smaller increments & batches # of design decisions Example: Arrival at test How long this line of code/ screen / use case / decisionsits in the testing queue 100 lines of codeshow up for testing Testers Decisions arriving Decisions being validated / broken time 1,000 lines of codeshow up for testing Testers How long this line of code / screen / use case / decisionsits in the testing queue time

  18. Lean Process view for educators Teach lean strategies, meaning of bottlenecks • 1 Teach to Design/test in small batches ( μ-incremental dev ) • 2 Attend to Queues between specialists • 3 Teach Process Derivation from queue backup locations • 4 Illustrate these within the SE course

  19. SE involves strategic knowledge acquisition Cooperative Game 2 Lean Manufacturing 3 Craft 1 4 Knowledge Acquisition These can be taught in undergraduate education

  20. cost Knowledge comes atthe “moment of truth”: final integration. Delivers nearly no knowledge (or risk reduction) #4 Design is a game of strategic learning Growth of knowledge with big-bang integration time

  21. Development sequence indifferent (with respectto knowledge) cost Delivers knowledge (risk reduction) Pay to learn early Growth of knowledge with early, continuous integration time

  22. Develop for business value along the way Business value growing Knowledge growing(risk reduction) cost Growth of business value time

  23. Trim to deliver earlier Delay to deliver more/better Trim the Tail: Deliver by valueor bydate

  24. Knowledge Acquisition view for educators Teach Design-as-Learning, Trim-the-Tail • 1 Teach to What to learn about staged over project • 2 Teach to Detect Knowledge Gaps (domain, design, process) • 3 Teach to Trim the Tail • 4 Illustrate these within the SE course

  25. These can be taught to undergraduates Cooperative Game 2 Lean Manufacturing 3 Craft 1 4 Knowledge Acquisition These can be taught in undergraduate education

  26. These ideas have been in use since 2006 • Course designed in 2006, in use at Utah Valley University • Each craft introduced with Shu-level technique • Three-pass spiral through IEEE/ACM SE coreEvery assignment with incremental delivery • Semester assignment 6-9 weeks long 3 deliveries, each with reflection & adjustment • Write to me TotherAlistair@AOL.COM • http://Alistair.Cockburn.us/SE2k

More Related