SlideShare a Scribd company logo
Agile Software Development
Alistair Cockburn
Addison Wesley
Three Levels of Learning
• Learning new skills
– Following: “one procedure that works”, “at
least this thing works”
– Detaching:”when does it break down?” “learn
limits of procedure”, “adapt it”, “when is it
appropriate?” Survey paper.
– Fluent:”irrelevant whether following a
particular technique”, ”knowledge has become
integrated”.
The Three Levels and
Methodology
• Methodology: a series of related methods
and techniques (Miriam-Webster)
• Level 1: processes, techniques and
standards in detail. Detailed templates in
RUP servel level 1 audience. Big
methodologies of Accenture (anderson
Consulting).
Three Levels of Methodology
• Level 2/3: The Pragmatic Programmer:
identifies techniques that a practitioner uses.
A useful library of ideas but the beginner
finds it lacking specific rules.
• Avoid level mixup! It confuses.
Shu-Ha-Ri
• Three levels are known in other skill areas:
Aikido (self defense technique)
• Shu: learn. Build technical foundation for
the art. Single instructor.
• Ha: detach. Understand meaning and
purpose; not just repetitive practice.
• Ri: transcend. Practitioner; original
thoughts
A Cooperative Game of
Invention and Communication
• A fruitful way to think about software
development.
• Games used by mathematicians and
corporate strategiests.
• Kinds of games: zero-sum, positional,
competitive, cooperative, finite, …
Software Development
• Group game
• Non-zero-sum: multiple winners and losers.
• Better not viewed as a positional game:
state is recorded.
• Cooperative
• Goal-seeking
• Finite
Infinite Games
• Infinite games: organizations, corporations
and countries, a person’s profession.
• Do well in one game to be well positioned
for the next one.
Software and Rock Climbing
• Best comparison partner
• Cooperative and goal seeking
– How well they climbed together
– How much they enjoyed themselves
– Reach the top?

• Load bearing
– Climbers must support their weight. Software
must run.
Software and Rock Climbing
•
•
•
•
•
•

Team
Individuals with talent
Skill sensitive
Training
Tools
Resource-limited: before nightfall or the
weather changes.
Software and Rock Climbing
• Plan
• Improvised
A Game of Invention and
Communication
• Software development: group game which
is goal seeking, finite and cooperative
• Team: sponsor, manager, usage specialists,
designers, testers and writers
• Next game: maintenance, build an entirely
different system
Cooperative Game of Invention
and Communication
• Measure of quality as a team: how well they
cooperate and communicate during game.
• What are the moves of the game:
– There is nothing in the game but people’s ideas
and the communication of those ideas to their
colleages (including the sponsor) and to the
computer.
Emotions, wishes and thoughts
• The task facing the developers:
– They are working on a problem they don’t fully
understand and that lives in emotions, wishes and
thoughts and that changes as they proceed.
– They need to understand.
• Problem space.
• Imagine some mechanism in a viable technology space.
• Express in an executable language which lacks many features
of expression to a system that is unforgiving of mistakes.
What is
software development?
• Software Development is a resourcelimited) cooperative game of invention and
communication.
– The primary goal of the game is to deliver
useful, working software.
– The secondary goal of the game is to set up for
the next game. The next game may be to alter
or replace the system or to create a neighboring
system.
Not many people have articulated this before
Software and Engineering
• Considering software
development as a game with
moves is profitable.
– Gives us a way to make meaningful
decisions on a project.

• In contrast: speaking of software
development as engineering or
model building does not help.
Engineering
• People mostly use engineering to create a
sense of guilt for not having done enough of
something, without being clear of what that
something is.
• Dictionary: The application of science and
mathematics by which the properties of
matter and the sources of energy in nature
are made useful to man (Webster’s Dic.).
What is “doing engineering”
• In my experience: involves creating a tradeoff solution in the face of conflicting
demands.
• Also applies to software development.
Confusing act and outcome
• Outcome: The factory, which is run while
specific people watch carefully for
variations in quantity and quality of the
items being manufactured.
• Act: ill-defined creative process the
industrial engineer goes through to invent
the manufacturing plant.
More like Engineering?
• When people say: “Make software
development more like engineering” they
often mean, “Make it more like running a
plant, with statistical quality control”.
• But: running the plant is not the act of doing
engineering.
Look up previous solutions
• The other part of “doing engineering”
• Civil engineers are not supposed to invent
new structures.
– Take soil samples and use the code books to
look for the simplest structure that handles the
required load over the given distance building
on the soil at hand.
– Centuries of tabulation of known solutions
Fits marginally
• This only fits marginally the current state of
software development
• We are still in the stage where there is
competition between designs.
• Technologies are changing fast that few
code books exist
• Today there are more variations between
systems than there are commonalities.
Return
• Return to consider engineering as thinking
and making trade-offs.
Software and Model Building
• Ivar Jacobson: “software development is
model building”
• Leads to inappropriate project decisions
Interesting part not in models
• If software development were model
building, then the valid measure of the
quality of the software or of the
development process would be the quality
of the models (fidelity, completeness)
But successful project teams say
• The interesting part of what we want to
express doesn’t get captured in those
models. The interesting part is what we say
to each other while drawing on the board.
• We don’t have time to create fancy or
complete models
• Paying attention to the models interfered
with developing the software
Sufficiency
• The work products of the team should be
measured for sufficiency with respect to
communicating with the target group.
• It does not matter if incomplete, incorrect
syntax, … if they communicate sufficiently
to the recipients.
Modeling as team
communication
• Can be too much or too little.
• How much modeling to do? Subject of this
book.
What is
software development?
• Software Development is a resourcelimited) cooperative game of invention and
communication.
– The primary goal of the game is to deliver
useful, working software.
– The secondary goal of the game is to set up for
the next game. The next game may be to alter
or replace the system or to create a neighboring
system.
Not many people have articulated this before
Programmers as
Communications Specialists
• Game of communication: different light on
programmers …
• Stereotyped as noncommunicative individuals
who like to sit in darkened rooms
• High acceptance of programming in pairs …
Programmers thought they would not like it but
they like it! (Extreme Programming)
Game of invention
• So far not as a game of communication
• Interest of programmers to discuss
programming matters gets in the way of
them discussing business matters with
sponsors, users and business experts.
Universities
• Can reverse the general characteristics by
creating software development curricula
that contain more communication-intensive
courses
• Attracts different students (University of
Aalborg, Denmark).
Gaming Faster
• We should not expect orders of magnitude
improvement in program production.
• As much as programming languages may
improve, programminvg will still be limited
by our ability to think through the problem
and the solution.
Analogy
• Two other fields of thought expression
– Writing novels
– Writing laws: Lawyers won’t get exponentially
faster at creating contracts and laws!
Diminishing Returns
• Because a software development project is
resource limited, spending extra to make an
intermediate work product better than it
needs to be for its purpose is wasteful.
• Work products of every sort are sufficien
Peter Naur
Programming as Theory Building
From Computing: A Human Activity
(1992, ACM Press)
What goes on in software
development? Intro.
• Most accurate account
• Quality is related to the match between the
theory of the problem and the theory of the
solution.
• The designer’s job is not to pass along the
design but the theories that drive the design.
What is programming
• Should be regarded as an activity by which
the programmers form or achieve a certain
kind of insight, a theory, of the matters at
hand.
• Not as a production of a program and other
texts.
Programming and the
Programmer’s Knowledge
• Programming = the whole activity of design and
implementation
• Programming = building up knowledge
• What kind of knowledge?
• A theory: a person who has or posses a theory
knows how to do certain things and can support
the actual doing with explanations, justifications
and answers to queries.
Theory transcends documentation
in at least 3 essential ways
• How are affairs of the world mapped into the
program text? For any aspect of the world the
programmer can state its manner of mapping into
the program text. [AOSD]
• Can support the program text with some
justification.
• Is able to respond constructively to any demand
for a modification. Similarity of new demand to
similarities already in the system.
Problems and Costs of Program
Modifications
• Cost savings by modifying existing
program rather starting from scratch.
• Cheaper? Not supported by other
complicated man-made constructions:
bridges, buildings, etc. Often demolish and
rebuild is most economical.
• Program modification is just text editing?
Agile software development

More Related Content

What's hot

GHAMAS Design Principles
GHAMAS Design PrinciplesGHAMAS Design Principles
GHAMAS Design Principles
Michael Rawlins
 
What Is Interaction Design
What Is Interaction DesignWhat Is Interaction Design
What Is Interaction DesignGraeme Smith
 
Scratch
ScratchScratch
Scratch
Erica Roberts
 
Smart+Shanghai+2008 09 05
Smart+Shanghai+2008 09 05Smart+Shanghai+2008 09 05
Smart+Shanghai+2008 09 05guestaa42e9
 
Smart+Shanghai+2008 09 05
Smart+Shanghai+2008 09 05Smart+Shanghai+2008 09 05
Smart+Shanghai+2008 09 05Guang Ying Yuan
 
Interaction 09 Introduction to Interaction Design
Interaction 09 Introduction to Interaction DesignInteraction 09 Introduction to Interaction Design
Interaction 09 Introduction to Interaction Design
Dave Malouf
 
Game design 2 (2013): Lecture 14 - Revision
Game design 2 (2013): Lecture 14 - RevisionGame design 2 (2013): Lecture 14 - Revision
Game design 2 (2013): Lecture 14 - Revision
David Farrell
 
Software design - Write solid software with the ideal chalk
Software design - Write solid software with the  ideal chalkSoftware design - Write solid software with the  ideal chalk
Software design - Write solid software with the ideal chalk
Alejandro Claro Mosqueda
 
Designing and prototyping
Designing and prototypingDesigning and prototyping
Designing and prototyping
Andres Baravalle
 
Info2 sec 3_-_people__ict_systems
Info2 sec 3_-_people__ict_systemsInfo2 sec 3_-_people__ict_systems
Info2 sec 3_-_people__ict_systemssaltashict
 
The Fundamentals of Continuous Software Design
The Fundamentals of Continuous Software DesignThe Fundamentals of Continuous Software Design
The Fundamentals of Continuous Software Design
Jeremy Miller
 
Agileand saas davepatterson_armandofox_050813webinar
Agileand saas davepatterson_armandofox_050813webinarAgileand saas davepatterson_armandofox_050813webinar
Agileand saas davepatterson_armandofox_050813webinarRoberto Jr. Figueroa
 
Information literacy tutorial design & development
Information literacy tutorial design & developmentInformation literacy tutorial design & development
Information literacy tutorial design & developmentmikeypage10
 
Twelve tips on how to prepare an ERC grant proposal
Twelve tips on how to prepare an ERC grant proposalTwelve tips on how to prepare an ERC grant proposal
Twelve tips on how to prepare an ERC grant proposal
CISPA Helmholtz Center for Information Security
 
SEI Webinar Series: Making Agile Work for You
SEI Webinar Series: Making Agile Work for YouSEI Webinar Series: Making Agile Work for You
SEI Webinar Series: Making Agile Work for YouLa Red DBAccess
 
DevOps
DevOpsDevOps
DevOps
Dawn Keenan
 
LxD - Learner Experience Design
LxD - Learner Experience DesignLxD - Learner Experience Design
LxD - Learner Experience Design
Julie Dirksen
 
UXPA2019: Voice User Interface Design for Customer Support: Design guidance ...
UXPA2019: Voice User Interface Design for Customer Support:  Design guidance ...UXPA2019: Voice User Interface Design for Customer Support:  Design guidance ...
UXPA2019: Voice User Interface Design for Customer Support: Design guidance ...
UXPA International
 
Chapter1(hci)
Chapter1(hci)Chapter1(hci)
Chapter1(hci)
Latesh Malik
 

What's hot (20)

GHAMAS Design Principles
GHAMAS Design PrinciplesGHAMAS Design Principles
GHAMAS Design Principles
 
What Is Interaction Design
What Is Interaction DesignWhat Is Interaction Design
What Is Interaction Design
 
Scratch
ScratchScratch
Scratch
 
Smart+Shanghai+2008 09 05
Smart+Shanghai+2008 09 05Smart+Shanghai+2008 09 05
Smart+Shanghai+2008 09 05
 
Smart+Shanghai+2008 09 05
Smart+Shanghai+2008 09 05Smart+Shanghai+2008 09 05
Smart+Shanghai+2008 09 05
 
Interaction 09 Introduction to Interaction Design
Interaction 09 Introduction to Interaction DesignInteraction 09 Introduction to Interaction Design
Interaction 09 Introduction to Interaction Design
 
Game design 2 (2013): Lecture 14 - Revision
Game design 2 (2013): Lecture 14 - RevisionGame design 2 (2013): Lecture 14 - Revision
Game design 2 (2013): Lecture 14 - Revision
 
Software design - Write solid software with the ideal chalk
Software design - Write solid software with the  ideal chalkSoftware design - Write solid software with the  ideal chalk
Software design - Write solid software with the ideal chalk
 
Designing and prototyping
Designing and prototypingDesigning and prototyping
Designing and prototyping
 
Info2 sec 3_-_people__ict_systems
Info2 sec 3_-_people__ict_systemsInfo2 sec 3_-_people__ict_systems
Info2 sec 3_-_people__ict_systems
 
The Fundamentals of Continuous Software Design
The Fundamentals of Continuous Software DesignThe Fundamentals of Continuous Software Design
The Fundamentals of Continuous Software Design
 
Agileand saas davepatterson_armandofox_050813webinar
Agileand saas davepatterson_armandofox_050813webinarAgileand saas davepatterson_armandofox_050813webinar
Agileand saas davepatterson_armandofox_050813webinar
 
Information literacy tutorial design & development
Information literacy tutorial design & developmentInformation literacy tutorial design & development
Information literacy tutorial design & development
 
Twelve tips on how to prepare an ERC grant proposal
Twelve tips on how to prepare an ERC grant proposalTwelve tips on how to prepare an ERC grant proposal
Twelve tips on how to prepare an ERC grant proposal
 
SEI Webinar Series: Making Agile Work for You
SEI Webinar Series: Making Agile Work for YouSEI Webinar Series: Making Agile Work for You
SEI Webinar Series: Making Agile Work for You
 
DevOps
DevOpsDevOps
DevOps
 
LxD - Learner Experience Design
LxD - Learner Experience DesignLxD - Learner Experience Design
LxD - Learner Experience Design
 
Software
SoftwareSoftware
Software
 
UXPA2019: Voice User Interface Design for Customer Support: Design guidance ...
UXPA2019: Voice User Interface Design for Customer Support:  Design guidance ...UXPA2019: Voice User Interface Design for Customer Support:  Design guidance ...
UXPA2019: Voice User Interface Design for Customer Support: Design guidance ...
 
Chapter1(hci)
Chapter1(hci)Chapter1(hci)
Chapter1(hci)
 

Viewers also liked

Education technology power point
Education technology power pointEducation technology power point
Education technology power point
sramkey
 
Education technology power point
Education technology power pointEducation technology power point
Education technology power pointsramkey
 
Comm 101 final
Comm 101 finalComm 101 final
Comm 101 finalcarter820
 
Significant Achievements Degrees Competencies
Significant Achievements Degrees CompetenciesSignificant Achievements Degrees Competencies
Significant Achievements Degrees CompetenciesThomas Nowak
 
Princess diana learning center
Princess diana learning centerPrincess diana learning center
Princess diana learning centertalonsmichelle
 
Rise ramprastha city
Rise ramprastha cityRise ramprastha city
Rise ramprastha citymuskan03
 
Evaluation - Question 1
Evaluation - Question 1Evaluation - Question 1
Evaluation - Question 1
2403Lucy
 
Music artist background research
Music artist background researchMusic artist background research
Music artist background research2403Lucy
 
Media Music Magazine Analysis
Media Music Magazine AnalysisMedia Music Magazine Analysis
Media Music Magazine Analysis2403Lucy
 
Classical Music Magazine - Initial Ideas
Classical Music Magazine - Initial IdeasClassical Music Magazine - Initial Ideas
Classical Music Magazine - Initial Ideas2403Lucy
 

Viewers also liked (14)

Education technology power point
Education technology power pointEducation technology power point
Education technology power point
 
Ghiceste ocupatia
Ghiceste ocupatiaGhiceste ocupatia
Ghiceste ocupatia
 
Education technology power point
Education technology power pointEducation technology power point
Education technology power point
 
Comm 101 final
Comm 101 finalComm 101 final
Comm 101 final
 
Significant Achievements Degrees Competencies
Significant Achievements Degrees CompetenciesSignificant Achievements Degrees Competencies
Significant Achievements Degrees Competencies
 
Princess diana learning center
Princess diana learning centerPrincess diana learning center
Princess diana learning center
 
Rise ramprastha city
Rise ramprastha cityRise ramprastha city
Rise ramprastha city
 
Tp tic
Tp ticTp tic
Tp tic
 
Evaluation - Question 1
Evaluation - Question 1Evaluation - Question 1
Evaluation - Question 1
 
Lfs presentation final
Lfs presentation finalLfs presentation final
Lfs presentation final
 
Music artist background research
Music artist background researchMusic artist background research
Music artist background research
 
Media Music Magazine Analysis
Media Music Magazine AnalysisMedia Music Magazine Analysis
Media Music Magazine Analysis
 
Classical Music Magazine - Initial Ideas
Classical Music Magazine - Initial IdeasClassical Music Magazine - Initial Ideas
Classical Music Magazine - Initial Ideas
 
السمنه
السمنهالسمنه
السمنه
 

Similar to Agile software development

Agile Software Development.ppt
Agile Software Development.pptAgile Software Development.ppt
Agile Software Development.ppt
abdulwehab2
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
Ahmet Bulut
 
CSE_2014 SE MODULE 1 V.10 (2).pptx
CSE_2014 SE MODULE 1 V.10 (2).pptxCSE_2014 SE MODULE 1 V.10 (2).pptx
CSE_2014 SE MODULE 1 V.10 (2).pptx
MrSDeepakRajAssistan
 
CSE_2014 SE MODULE 1 V.10.pptx
CSE_2014 SE MODULE 1 V.10.pptxCSE_2014 SE MODULE 1 V.10.pptx
CSE_2014 SE MODULE 1 V.10.pptx
AbdulMateen516672
 
It's XP Stupid (2019)
It's XP Stupid (2019)It's XP Stupid (2019)
It's XP Stupid (2019)
Mike Harris
 
Critiquing CS Assessment from a CS for All lens: Dagstuhl Seminar Poster
Critiquing CS Assessment from a CS for All lens: Dagstuhl Seminar PosterCritiquing CS Assessment from a CS for All lens: Dagstuhl Seminar Poster
Critiquing CS Assessment from a CS for All lens: Dagstuhl Seminar Poster
Mark Guzdial
 
Introduction Software engineering
Introduction   Software engineeringIntroduction   Software engineering
Introduction Software engineering
Jennifer O. Contreras Coloma
 
Software craftsmanshippresentation
Software craftsmanshippresentationSoftware craftsmanshippresentation
Software craftsmanshippresentationMeagan Waller
 
Unit 1 OOSE
Unit 1 OOSEUnit 1 OOSE
Unit 1 OOSE
saranive23
 
Design process interaction design basics
Design process interaction design basicsDesign process interaction design basics
Design process interaction design basics
Preeti Mishra
 
The Modern Software Architect
The Modern Software ArchitectThe Modern Software Architect
The Modern Software Architect
Niels Bech Nielsen
 
Steve mcconnell
Steve mcconnellSteve mcconnell
Steve mcconnell
Shiraz316
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
Hitesh Mohapatra
 
Empirical Methods in Software Engineering - an Overview
Empirical Methods in Software Engineering - an OverviewEmpirical Methods in Software Engineering - an Overview
Empirical Methods in Software Engineering - an Overview
alessio_ferrari
 
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
TheFamily
 
Excavating the knowledge of our ancestors
Excavating the knowledge of our ancestorsExcavating the knowledge of our ancestors
Excavating the knowledge of our ancestors
Uwe Friedrichsen
 
3.pptx
3.pptx3.pptx
3.pptx
ssusere16bd9
 
Modern Software Architecture
Modern Software Architecture Modern Software Architecture
Modern Software Architecture
Ahmed Marzouk
 
Software engineering
Software engineeringSoftware engineering
Software engineering
DivyaSharma458
 

Similar to Agile software development (20)

Agile Software Development.ppt
Agile Software Development.pptAgile Software Development.ppt
Agile Software Development.ppt
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
 
Introduction
IntroductionIntroduction
Introduction
 
CSE_2014 SE MODULE 1 V.10 (2).pptx
CSE_2014 SE MODULE 1 V.10 (2).pptxCSE_2014 SE MODULE 1 V.10 (2).pptx
CSE_2014 SE MODULE 1 V.10 (2).pptx
 
CSE_2014 SE MODULE 1 V.10.pptx
CSE_2014 SE MODULE 1 V.10.pptxCSE_2014 SE MODULE 1 V.10.pptx
CSE_2014 SE MODULE 1 V.10.pptx
 
It's XP Stupid (2019)
It's XP Stupid (2019)It's XP Stupid (2019)
It's XP Stupid (2019)
 
Critiquing CS Assessment from a CS for All lens: Dagstuhl Seminar Poster
Critiquing CS Assessment from a CS for All lens: Dagstuhl Seminar PosterCritiquing CS Assessment from a CS for All lens: Dagstuhl Seminar Poster
Critiquing CS Assessment from a CS for All lens: Dagstuhl Seminar Poster
 
Introduction Software engineering
Introduction   Software engineeringIntroduction   Software engineering
Introduction Software engineering
 
Software craftsmanshippresentation
Software craftsmanshippresentationSoftware craftsmanshippresentation
Software craftsmanshippresentation
 
Unit 1 OOSE
Unit 1 OOSEUnit 1 OOSE
Unit 1 OOSE
 
Design process interaction design basics
Design process interaction design basicsDesign process interaction design basics
Design process interaction design basics
 
The Modern Software Architect
The Modern Software ArchitectThe Modern Software Architect
The Modern Software Architect
 
Steve mcconnell
Steve mcconnellSteve mcconnell
Steve mcconnell
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
 
Empirical Methods in Software Engineering - an Overview
Empirical Methods in Software Engineering - an OverviewEmpirical Methods in Software Engineering - an Overview
Empirical Methods in Software Engineering - an Overview
 
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
 
Excavating the knowledge of our ancestors
Excavating the knowledge of our ancestorsExcavating the knowledge of our ancestors
Excavating the knowledge of our ancestors
 
3.pptx
3.pptx3.pptx
3.pptx
 
Modern Software Architecture
Modern Software Architecture Modern Software Architecture
Modern Software Architecture
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 

Recently uploaded

The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 

Recently uploaded (20)

The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 

Agile software development

  • 1. Agile Software Development Alistair Cockburn Addison Wesley
  • 2. Three Levels of Learning • Learning new skills – Following: “one procedure that works”, “at least this thing works” – Detaching:”when does it break down?” “learn limits of procedure”, “adapt it”, “when is it appropriate?” Survey paper. – Fluent:”irrelevant whether following a particular technique”, ”knowledge has become integrated”.
  • 3. The Three Levels and Methodology • Methodology: a series of related methods and techniques (Miriam-Webster) • Level 1: processes, techniques and standards in detail. Detailed templates in RUP servel level 1 audience. Big methodologies of Accenture (anderson Consulting).
  • 4. Three Levels of Methodology • Level 2/3: The Pragmatic Programmer: identifies techniques that a practitioner uses. A useful library of ideas but the beginner finds it lacking specific rules. • Avoid level mixup! It confuses.
  • 5. Shu-Ha-Ri • Three levels are known in other skill areas: Aikido (self defense technique) • Shu: learn. Build technical foundation for the art. Single instructor. • Ha: detach. Understand meaning and purpose; not just repetitive practice. • Ri: transcend. Practitioner; original thoughts
  • 6. A Cooperative Game of Invention and Communication • A fruitful way to think about software development. • Games used by mathematicians and corporate strategiests. • Kinds of games: zero-sum, positional, competitive, cooperative, finite, …
  • 7. Software Development • Group game • Non-zero-sum: multiple winners and losers. • Better not viewed as a positional game: state is recorded. • Cooperative • Goal-seeking • Finite
  • 8. Infinite Games • Infinite games: organizations, corporations and countries, a person’s profession. • Do well in one game to be well positioned for the next one.
  • 9. Software and Rock Climbing • Best comparison partner • Cooperative and goal seeking – How well they climbed together – How much they enjoyed themselves – Reach the top? • Load bearing – Climbers must support their weight. Software must run.
  • 10. Software and Rock Climbing • • • • • • Team Individuals with talent Skill sensitive Training Tools Resource-limited: before nightfall or the weather changes.
  • 11. Software and Rock Climbing • Plan • Improvised
  • 12. A Game of Invention and Communication • Software development: group game which is goal seeking, finite and cooperative • Team: sponsor, manager, usage specialists, designers, testers and writers • Next game: maintenance, build an entirely different system
  • 13. Cooperative Game of Invention and Communication • Measure of quality as a team: how well they cooperate and communicate during game. • What are the moves of the game: – There is nothing in the game but people’s ideas and the communication of those ideas to their colleages (including the sponsor) and to the computer.
  • 14. Emotions, wishes and thoughts • The task facing the developers: – They are working on a problem they don’t fully understand and that lives in emotions, wishes and thoughts and that changes as they proceed. – They need to understand. • Problem space. • Imagine some mechanism in a viable technology space. • Express in an executable language which lacks many features of expression to a system that is unforgiving of mistakes.
  • 15. What is software development? • Software Development is a resourcelimited) cooperative game of invention and communication. – The primary goal of the game is to deliver useful, working software. – The secondary goal of the game is to set up for the next game. The next game may be to alter or replace the system or to create a neighboring system. Not many people have articulated this before
  • 16. Software and Engineering • Considering software development as a game with moves is profitable. – Gives us a way to make meaningful decisions on a project. • In contrast: speaking of software development as engineering or model building does not help.
  • 17. Engineering • People mostly use engineering to create a sense of guilt for not having done enough of something, without being clear of what that something is. • Dictionary: The application of science and mathematics by which the properties of matter and the sources of energy in nature are made useful to man (Webster’s Dic.).
  • 18. What is “doing engineering” • In my experience: involves creating a tradeoff solution in the face of conflicting demands. • Also applies to software development.
  • 19. Confusing act and outcome • Outcome: The factory, which is run while specific people watch carefully for variations in quantity and quality of the items being manufactured. • Act: ill-defined creative process the industrial engineer goes through to invent the manufacturing plant.
  • 20. More like Engineering? • When people say: “Make software development more like engineering” they often mean, “Make it more like running a plant, with statistical quality control”. • But: running the plant is not the act of doing engineering.
  • 21. Look up previous solutions • The other part of “doing engineering” • Civil engineers are not supposed to invent new structures. – Take soil samples and use the code books to look for the simplest structure that handles the required load over the given distance building on the soil at hand. – Centuries of tabulation of known solutions
  • 22. Fits marginally • This only fits marginally the current state of software development • We are still in the stage where there is competition between designs. • Technologies are changing fast that few code books exist • Today there are more variations between systems than there are commonalities.
  • 23. Return • Return to consider engineering as thinking and making trade-offs.
  • 24. Software and Model Building • Ivar Jacobson: “software development is model building” • Leads to inappropriate project decisions
  • 25. Interesting part not in models • If software development were model building, then the valid measure of the quality of the software or of the development process would be the quality of the models (fidelity, completeness)
  • 26. But successful project teams say • The interesting part of what we want to express doesn’t get captured in those models. The interesting part is what we say to each other while drawing on the board. • We don’t have time to create fancy or complete models • Paying attention to the models interfered with developing the software
  • 27. Sufficiency • The work products of the team should be measured for sufficiency with respect to communicating with the target group. • It does not matter if incomplete, incorrect syntax, … if they communicate sufficiently to the recipients.
  • 28. Modeling as team communication • Can be too much or too little. • How much modeling to do? Subject of this book.
  • 29. What is software development? • Software Development is a resourcelimited) cooperative game of invention and communication. – The primary goal of the game is to deliver useful, working software. – The secondary goal of the game is to set up for the next game. The next game may be to alter or replace the system or to create a neighboring system. Not many people have articulated this before
  • 30. Programmers as Communications Specialists • Game of communication: different light on programmers … • Stereotyped as noncommunicative individuals who like to sit in darkened rooms • High acceptance of programming in pairs … Programmers thought they would not like it but they like it! (Extreme Programming)
  • 31. Game of invention • So far not as a game of communication • Interest of programmers to discuss programming matters gets in the way of them discussing business matters with sponsors, users and business experts.
  • 32. Universities • Can reverse the general characteristics by creating software development curricula that contain more communication-intensive courses • Attracts different students (University of Aalborg, Denmark).
  • 33. Gaming Faster • We should not expect orders of magnitude improvement in program production. • As much as programming languages may improve, programminvg will still be limited by our ability to think through the problem and the solution.
  • 34. Analogy • Two other fields of thought expression – Writing novels – Writing laws: Lawyers won’t get exponentially faster at creating contracts and laws!
  • 35. Diminishing Returns • Because a software development project is resource limited, spending extra to make an intermediate work product better than it needs to be for its purpose is wasteful. • Work products of every sort are sufficien
  • 36. Peter Naur Programming as Theory Building From Computing: A Human Activity (1992, ACM Press)
  • 37. What goes on in software development? Intro. • Most accurate account • Quality is related to the match between the theory of the problem and the theory of the solution. • The designer’s job is not to pass along the design but the theories that drive the design.
  • 38. What is programming • Should be regarded as an activity by which the programmers form or achieve a certain kind of insight, a theory, of the matters at hand. • Not as a production of a program and other texts.
  • 39. Programming and the Programmer’s Knowledge • Programming = the whole activity of design and implementation • Programming = building up knowledge • What kind of knowledge? • A theory: a person who has or posses a theory knows how to do certain things and can support the actual doing with explanations, justifications and answers to queries.
  • 40. Theory transcends documentation in at least 3 essential ways • How are affairs of the world mapped into the program text? For any aspect of the world the programmer can state its manner of mapping into the program text. [AOSD] • Can support the program text with some justification. • Is able to respond constructively to any demand for a modification. Similarity of new demand to similarities already in the system.
  • 41. Problems and Costs of Program Modifications • Cost savings by modifying existing program rather starting from scratch. • Cheaper? Not supported by other complicated man-made constructions: bridges, buildings, etc. Often demolish and rebuild is most economical. • Program modification is just text editing?