Slide 1 ©Alistair Cockburn 2008 Alistair Cockburn Effective Software Development in the 21st Century: The New Face Of Software.

Slides:



Advertisements
Similar presentations
Design, prototyping and construction
Advertisements

Foundations and Strategies Attention Investment CS352.
What Is Agile Development & What does it Imply?
Note: Lists provided by the Conference Board of Canada
©Alistair Cockburn Slide 1 Alistair Cockburn The Crystal Family of Methodologies for Software Development.
Chapter 10 Schedule Your Schedule. Copyright 2004 by Pearson Education, Inc. Identifying And Scheduling Tasks The schedule from the Software Development.
Supporting Design Managing complexity of designing Expressing ideas Testing ideas Quality assurance.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
Agile Software Development Alistair Cockburn Addison Wesley.
© ABSL Power Solutions 2007 © STM Quality Limited STM Quality Limited Introduction to Lean Manufacturing TOTAL QUALITY MANAGEMENT Lean Manufacturing.
IT Job Roles Task 20. Software Engineer Job Description Software engineers are responsible for creating and maintaining software of various different.
Marketing CH. 4 Notes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements l.
Gaining Full-Time Employment Unit 2 – Task 20 Abbie Llewellyn.
Dr. Tom WayCSC What is Software Engineering? CSC 4700 Software Engineering Lecture 1.
Profile and a quick introduction Software Engineering: ) هندسة البرمجيات (in Arabic: is the branch of computer science Designed to develop a set rules.
CSU 670 Review Fall Software Development Application area: robotic games based on combinatorial maximization problems. Software development is about.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Animating and.
Incorporating Pragmatic Usability Testing Into a Software Test Plan Carla Merrill, Ph.D. Focused Design focuseddesign.com
Chapter Extension 18 Large-Scale Systems Development © 2008 Pearson Prentice Hall, Experiencing MIS, David Kroenke.
SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin.
The Theoretical Basis That Allows The Design process To Work
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
Transdisciplinary Skills Placemat: Greenfield Park International Thinking Skills Acquisition of knowledge: Are you able to find out new facts? Show me.
IT Job Roles & Responsibilities Shannon Ciriaco Unit 2:
Large Software Projects Deborah Black Vice President, Windows Division Microsoft.
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
Session # Rational User Conference 2002 Author Note: To edit Session # go to: View/Master/Title Master ©1998, 1999, 2000, 2001, 2002 Rational Software.
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
Chapter 4 Decision Support System & Artificial Intelligence.
Project Management Workshop James Small. Goals Understand the nature of projects Understand why Project Management is important Get an idea of the key.
FINAL PRESENTATION OF ORGANIZATIONAL BEHAVIOUR AND ANALYSIS Prepared for : Dr. S. Kumar Group : Dollar 2 A. R. S. BANDARA - PGIA / 06 / 6317 B. A. G. K.
Making Healthful Choices Building Health Skills Chapter 2 – Lesson 1.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Introduction. Steve Semler The Session in a Nutshell Figure out the business purpose and learning intent. Determine what actions or decisions the learners.
Prototyping. Outline Risk Management Prototyping Kinds of Prototypes Example Activity 1.
Systems Development The Kingsway School. Systems Development This is carried out when a company is having a problem. They usually employ an ICT Consultant.
Teaching Games for Understanding (TGfU) As a Curriculum Model
2 The Internet is a powerful new communication medium for conducting free market style business transactions at the speed of light involving the instant.
Trade Management  Module 8.  Main Topics:  Negotiation Process.
Module 2: What is Agile? Why use it? TLO: Given a DoD program involved in software development, the student will recognize situations where applying agile.
Generic competencesDescription of the Competence Learning Competence The student  possesses the capability to evaluate and develop one’s own competences.
©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.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
©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
Introduction to Agile Development Advanced Software Engineering Dr. Nuha El-Khalili.
Slide 1 ©Alistair Cockburn 2009 Project Management as Pharma: Sometimes the opposite of a good strategy is a better strategy Dr. Alistair Cockburn Humans.
Embedded Systems Software Engineering
Agile Software Development
Learning Styles Kinesthetic Learning
Methodologies By Akinola Soyinka.
Hard-Agile Effective Software Development in the 21st Century
Agile Software Development The Cooperative Game
Crystal (How to make a methodology fit)
Using Kanban Techniques to Control Incremental Development
Careers in Engineering
Designing in Teams The Cooperative Game
“Would I have to do this all by myself …….?”
Designing in Teams Dr. Alistair Cockburn
Teaching the Next Generation Software Engineering
Agile software development
Presentation transcript:

Slide 1 ©Alistair Cockburn 2008 Alistair Cockburn Effective Software Development in the 21st Century: The New Face Of Software Engineering

©Alistair Cockburn 2008 Slide 2 Developing software consists of people 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 which keeps changing Expressing ideas in languages they don’t understand which keep changing To an interpreter unforgiving of error Making decisions with limited resources where every choice has economic consequences

©Alistair Cockburn 2008 Slide 3 Foundation 1 Software development is a Cooperative Game of invention and communication

©Alistair Cockburn 2008 Slide 4 Games have moves, strategies & don’t repeat! Infinite Organization Survival Career Management Competitive Cooperative No fixed end Jazz music King-of-the-hill wrestling Endpoint- directed Tennis Poker Chess Product Line Management Journalism Swamp game Rock-Climbing Theater Expeditions Software Development IT system evolution

©Alistair Cockburn 2008 Slide 5 Each project has conflicting subgoals: Deliver this software and Set up for the next game!

©Alistair Cockburn 2008 Slide 6 C6C20C40C100 D6D20D40D100 E6E20E40E100 L6L20L40L100 Project Classification Scale: Number of people coordinated Comfort Essential moneys Life Discretionary moneys Criticality X X X X X Adjust to the situation

©Alistair Cockburn 2008 Slide 7 Kim Pat 12 people: = $100,000 / yr penalty 12 people = $300,000 / yr penalty Kim Pat Distance is expensive KimPat Programming in pairs “Distance Matters” “Managing the Flow of Technology”

©Alistair Cockburn 2008 Slide 8 Richness of communication channel Communication Effectiveness 2 people on phone 2 people on chat (Question-and-Answer) 2 people at whiteboard (Courtesy of Thoughtworks, inc.) Face-to-face is the most effective - Paper (No Question-Answer) Consider video ! Video

©Alistair Cockburn 2008 Slide 9 Normal team Aligned team Improve amicability ; align people’s goals Amicability = willingness to listen with good intention

©Alistair Cockburn 2008 Slide 10 People issues determine a project’s speed Can they easily detect something needs attention? (Good at Looking Around) Will they care enough to do something about it? (Pride-in-work; Amicability) Can they effectively pass along the information? (Proximity; face-to-face)

©Alistair Cockburn 2008 Slide 11 Foundation 2 Software development is a craft

©Alistair Cockburn 2008 Slide 12 Craft is continuously growing skills in a medium 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

©Alistair Cockburn 2008 Slide 13 PEOPLE learn skills in 3 stages Shu : Follow Learn a technique Ha : Break away Collect techniques Ri: Fluent Blend techniques

©Alistair Cockburn 2008 Slide 14 Foundation 3 Lean processes

©Alistair Cockburn 2008 Slide 15 Unvalidated decisions are design inventory I wish they’d decide what style they want! I wish they’d decide on their priorities! I wish they’d think a bit more carefully before coding! I wish they’d decide on the UI Users & Sponsors UI Designers Programmers Testers Business Analysts

©Alistair Cockburn 2008 Slide 16 Lean Manufacturing strategies apply continuous flow time Testers 100 lines of code show up for testing # of decisions Decisions being validated or broken How long this line of code / screen / use case / decision sits in the testing queue Decisions arriving

©Alistair Cockburn 2008 Slide 17 Lean Manufacturing strategies apply attend to backed-up queues Enough Users & Sponsors Many Business Analysts Not enough Programmers Some Testers Users & Sponsors absent UI Designers Business Analysts some Programmers Database designers Tester Enough Users & Sponsors UI Designer A few Business Analysts Lots of Programmers Single, solitary Database designer

©Alistair Cockburn 2008 Slide 18 Foundation 4 Design as Knowledge Acquisition

©Alistair Cockburn 2008 Slide 19 We best how to build the system after we ship it! How can we make use of this depressing fact?

©Alistair Cockburn 2008 Slide 20 Delivers nearly no knowledge (or risk reduction) Knowledge comes at the “moment of truth”: final integration. Waterfall is a late-learning strategy time cost Growth of knowledge with big-bang integration

©Alistair Cockburn 2008 Slide 21 Development sequence indifferent (with respect to knowledge) Delivers knowledge (risk reduction) We can pay to learn early in the project time cost Growth of knowledge with early, continuous integration

©Alistair Cockburn 2008 Slide 22 Develop for business value once risks are down time Knowledge growing (risk reduction) cost Growth of business value Business value growing

©Alistair Cockburn 2008 Slide 23 Be able to choose to deliver by value or date time Trim functions or quality to deliver on-time or early Delay to get more or better function “Trim the tail”

©Alistair Cockburn 2008 Slide 24 In the 21st century, software engineering will use craft, cooperative game & lean principles Craft developing skills in a medium shu - ha - ri progression Cooperative game of invention and communication teamwork, communication, strategies Lean processes ( “ unvalidated decisions = inventory ” ) small queues, cross-trained people,... Design as knowledge acquisition early integration pay to learn early trim the tail at the end

©Alistair Cockburn 2008 Slide 25