Teaching the Next Generation Software Engineering

Slides:



Advertisements
Similar presentations
System Development Life Cycle (SDLC)
Advertisements

What Is Agile Development & What does it Imply?
©Alistair Cockburn Slide 1 Alistair Cockburn The Crystal Family of Methodologies for Software Development.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
Agile Software Development Alistair Cockburn Addison Wesley.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
1 KAN’S INTRO AND OVERVIEW MODELS Ch1 & 2 in his book Steve Chenoweth, CSSE.
CIS 321—IS Analysis & Design
Dr. Tom WayCSC What is Software Engineering? CSC 4700 Software Engineering Lecture 1.
TESTING.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
Chapter 11: Software Prototyping Omar Meqdadi SE 273 Lecture 11 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Large Software Projects Deborah Black Vice President, Windows Division Microsoft.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
Software Prototyping Rapid software development to validate requirements.
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
©Alistair Cockburn 2009 “I Come to Bury Agile, Not to Praise It” Effective Software Development in the 21st Century Alistair Cockburn
Alistair Cockburn©Humans and Technology, Inc., Slide 1 Foundations of Agile Development: Cooperative Games of Invention and Communication in.
© 2010 Alistair Cockburn The New Methodology isn't a Methodology Dr. Alistair Cockburn.
©Alistair Cockburn 2013 Disciplined Learning: The successor to risk reduction Disciplined Learning: The successor to risk reduction Dr. Alistair Cockburn.
©Alistair Cockburn 2010 What Makes Agile Work: The New Software Engineering Getting Past “Wimpy” Agile Dr. Alistair Cockburn
© 2010 Alistair Cockburn Designing in Teams Dr. Alistair Cockburn
Slide 1 ©Alistair Cockburn 2008 Alistair Cockburn Effective Software Development in the 21st Century: The New Face Of Software.
Slide 1 ©Alistair Cockburn 2009 Project Management as Pharma: Sometimes the opposite of a good strategy is a better strategy Dr. Alistair Cockburn Humans.
Marco Cattaneo, 20-May Event Reconstruction for LHCb  What is the scope of the project?  What are the goals (short+medium term)?  How do we organise.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
Advanced Software Engineering Dr. Cheng
Project Workflow.
Prototyping in the software process
Software Prototyping.
Agile Software Development
The Waterfall Methodology
Lecture 1 What is Software Engineering? CSC 4700 Software Engineering
ENTREPRENEURSHIP EDUCATION IN ENGINEERING CURRICULA
Engineering and Debugging an App Chapter 15
The Systems Engineering Context
Methodologies By Akinola Soyinka.
Software Processes (a)
CSE 403 Software Engineering
Hard-Agile Effective Software Development in the 21st Century
Agile Software Development The Cooperative Game
Using Kanban Techniques to Control Incremental Development
Dilbert Scott Adams Manage It! Your Guide to Modern, Pragmatic Project Management. Johanna Rothman.
Software Prototyping Animating and demonstrating system requirements.
Software Processes.
Software Development Life Cycle
Software Engineering (CSI 321)
Resources BTEC National.
“Tell me and I forget. Show me and I remember
Designing in Teams The Cooperative Game
How To: Community Driven Career Growth for Developers
An Overview of Software Processes
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Designing in Teams Dr. Alistair Cockburn
Coding Concepts (Basics)
Software Process Models
For University Use Only
Software Processes.
Information Systems in Organizations 1.1 Introduction to MIS
Agile Development – a new way of software development?
Agile Software Development
Integrating Skills Where is the future going?.
Product Development & Planning
Information system analysis and design
Presentation transcript:

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) Both can be fixed

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

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

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

People learn skills in 3-stages Shu Learn One1 technique Ha Collect techniques Ri Invent / Blend techniques

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

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

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

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

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)

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

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

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

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

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

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

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

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

#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

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

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

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

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

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

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 TotherAlistair@AOL.COM http://Alistair.Cockburn.us/SE2k