Presentation is loading. Please wait.

Presentation is loading. Please wait.

Teaching the Next Generation Software Engineering

Similar presentations


Presentation on theme: "Teaching the Next Generation Software Engineering"— Presentation transcript:

1 Teaching the Next Generation Software Engineering
Alistair Cockburn

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 SE can 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
Shu Learn One1 technique Ha Collect techniques Ri Invent / 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
Lean Manufacturing 3 Craft 1 4 Knowledge Acquisition These can be taught in undergraduate education

9 SE is a Cooperative Game of Invention & Communication
SE is a Cooperative Game of Invention & Communication … making ideas concrete in an economic context ... People inventing and communicating, Solving a problem they don't yet understand which keeps changing Creating a solution they don't yet understand 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 Organization Survival
Cooperative Game teaches teamwork and strategies in situations that never quite repeat Organization Survival Infinite Product Lines Career Management King-of-the-hill wrestling Finite w/ no fixed end Jazz music Poker Tennis Theatre Finite & goal-directed Engineering Rock-Climbing Chess Software Development Swamp game Competitive Cooperative

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 Design=manufacturing if inventory=unvalidated decisions
I wish they’d decide what style they want! Users & Sponsors Testers Business Analysts I wish they’d decide what functions they want! A decision I wish they’d decide on the UI design already! I wish they’d think a bit more carefully before coding! Programmers Every line of code is a decision UI Designers

15 The network of people waiting on others has loops.
Detailed decisions about external appearance Decisions about function and style Detailed decisions about function and data Decisions about program structure Decisions about system correctness Users & Sponsors UI Designers Programmers Testers Business Analysts

16 Differing strategies come from queue locations
Enough Users & Sponsors UI Designer A few Business Analysts Lots of Programmers Single, solitary Database designer Enough Users & Sponsors Many Business Analysts Not enough Programmers Some Testers

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

18 Lean Process view for educators
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 #4 Design is a game of strategic learning
Growth of knowledge with big-bang integration cost Knowledge comes at the “moment of truth”: final integration. Delivers nearly no knowledge (or risk reduction) time

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

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

23 Trim the Tail: Deliver by value or by date
Trim to deliver earlier Delay to deliver more/better

24 Knowledge Acquisition view for educators
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 core Every assignment with incremental delivery Semester assignment 6-9 weeks long 3 deliveries, each with reflection & adjustment Write to me


Download ppt "Teaching the Next Generation Software Engineering"

Similar presentations


Ads by Google