Hard-Agile Effective Software Development in the 21st Century

Slides:



Advertisements
Similar presentations
What Is Agile Development & What does it Imply?
Advertisements

©Alistair Cockburn Slide 1 Alistair Cockburn The Crystal Family of Methodologies for Software Development.
Agile Software Development Alistair Cockburn Addison Wesley.
Chapter 10 Schedule Your Schedule. Copyright 2004 by Pearson Education, Inc. Identifying And Scheduling Tasks The schedule from the Software Development.
Agile Software Development Alistair Cockburn Addison Wesley.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Skill Acquisition. Skilled Performance Acquisition- skill is something that you gain as opposed to already have. We can recognise the outcome or end product.
Profile and a quick introduction Software Engineering: ) هندسة البرمجيات (in Arabic: is the branch of computer science Designed to develop a set rules.
1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
IT Job Roles & Responsibilities Shannon Ciriaco Unit 2:
Large Software Projects Deborah Black Vice President, Windows Division Microsoft.
Copyright © 2015 Curt Hill Software Development Paradigms What do you need to know?
Systems Development The Kingsway School. Systems Development This is carried out when a company is having a problem. They usually employ an ICT Consultant.
2 The Internet is a powerful new communication medium for conducting free market style business transactions at the speed of light involving the instant.
Requirements Engineering Processes. Syllabus l Definition of Requirement engineering process (REP) l Phases of Requirements Engineering Process: Requirements.
Feature Engineering Studio September 9, Welcome to Feature Engineering Studio Design studio-style course teaching how to distill and engineer features.
©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.
Fossilization vs. Transformation Alan Yeo CEO ScreenJet Ltd Speaker Notes included with this Presentation.
© 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.
MANAGEMENT INFORMATION SYSTEM
5 TH APRIL 2016 HANNAH SMITH Project Management tips and tricks for Wordpress projects.
Skill acquisition
Software Engineering Experimentation
Software Development.
Early Years Curriculum Information Evening
Please solve the following problems and list the rules used to solve: -24 – (-11) -41 x 4 4 – 4 20% numbers, expressions & equations 40% algebra & functions.
Software Prototyping.
Agile Software Development
The Waterfall Methodology
Lecture 1 What is Software Engineering? CSC 4700 Software Engineering
Learning Styles Kinesthetic Learning
It’s not all about the tool!
Engineering and Debugging an App Chapter 15
What is the Parent You Mean to Be?
Methodologies By Akinola Soyinka.
Software Processes (a)
Agile Software Development The Cooperative Game
Crystal (How to make a methodology fit)
Digital Entrepreneurship
Using Kanban Techniques to Control Incremental Development
Software Development Life Cycle
Script-less Automation: An Approach to Shift-Left.
Agile Wars and How to Avoid Them Barbara Roberts
Careers in Engineering
روش‌های سريع الانتقال (چابک) توسعه نرم افزار
Designing in Teams The Cooperative Game
Pre-Engineering & Computer-Aided Design
The Lean Canvas: “Iterate From Plan A to a Plan That Works”
Computational Thinking for KS3
Designing in Teams Dr. Alistair Cockburn
Teaching the Next Generation Software Engineering
Software Process Models
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
Chapter 7 Principles that Guide Practice
Reinforcing Positive Behaviors At Home
Research discussions Developing a test of soft skills
Agile Software Development
Integrating Skills Where is the future going?.
Rapid software development
Making Healthful Choices
Agile software development
International Institute of Business Analysis
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

Hard-Agile Effective Software Development in the 21st Century “Agile is for wimps” Hard-Agile Effective Software Development in the 21st Century Alistair Cockburn http://Alistair.Cockburn.us

Developing software. consists of People. making Ideas concrete Developing software consists of People making Ideas concrete in an Economic context

inventing, deciding, communicating, People inventing, deciding, 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 understand which keep changing To an interpreter unforgiving of error Making decisions with limited resources and every choice has economic consequences

Software development is a Cooperative Game

Games have positions, moves, strategies Career Management Infinite Organization Survival Product Line Management Open-ended King-of-the-hill wrestling Poker Jazz music IT Systems Finite goal-directed Rock-Climbing Theater Journalism Exploration Software Development Swamp game Tennis Chess Competitive Cooperative

Two conflicting subgoals: Deliver this software Set up for the next game Three moves: Invent Communicate Decide and the situations (almost) never repeat!

Adapt to your situation C6 C20 C40 C100 D6 D20 D40 D100 E6 E20 E40 E100 L6 L20 L40 L100 Project Classification Scale: Comfort Essential moneys Life Discretionary Criticality X X Number of people coordinated 1 - 6 - 20 - 40 - 100

Face-to-face is the most effective - Try Video 2 people at whiteboard (Courtesy of Thoughtworks, inc.) 2 people on phone (No Question-Answer) Communication Effectiveness Videotape (Question-and-Answer) 2 people on chat Paper Richness of communication channel

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

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)

Software development is a Craft

Craft teaches us to pay attention to our skills and to the medium Major crafts: 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 a technique Ha: Collect techniques Ri: Invent / blend techniques

Use Lean Processes

Software = manufacturing if Inventory = Decisions! I wish they’d decide what style they want! I wish they’d decide on the UI design already! A decision UI Designers Every line of code is a decision Users & Sponsors I wish they’d decide what functions they want! Programmers I wish they’d think a bit more carefully before coding! Business Analysts Testers

You can (almost) do away with one loop: buggy code Programmers Testers (from Stefan Roock’s )

From Lean Manufacturing: watch your queues 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 Users & Sponsors absent UI Designers Business Analysts some Programmers Database designers Tester

From Lean Manufacturing: aim for continuous flow # of design decisions Testers 100 lines of code show up for testing How long this line of code / screen / use case / decision sits in the testing queue Decisions arriving Decisions being validated or broken time

Design is Knowledge Acquisition

Waterfall is a late-learning strategy 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

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

Develop for business value once risks are down Business value growing Knowledge growing (risk reduction) cost Growth of business value time

“Trim the Tail”: Deliver by value or date Trim to deliver on-time (or early) Delay to get more or better

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

http://Alistair.Cockburn.us