agile software development
TRANSCRIPT
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 1/48
SE/Agile 1
Agile Software Development
Alistair Cockburn
Addison Wesley
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 2/48
SE/Agile 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 itappropriate?´ Survey paper.
± Fluent:´irrelevant whether following a particular technique´, ́ knowledge has becomeintegrated´.
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 3/48
SE/Agile 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.
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 4/48
SE/Agile 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/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 5/48
SE/Agile 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
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 6/48
SE/Agile 6
A Cooperative Game of
Invention and Communication A fruitful way to think about software
development.
Games used by mathematicians and
corporate strategists.
Kinds of games: zero-sum, positional,
competitive, cooperative, finite, «
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 7/48
SE/Agile 7
Software Development Group game
Non-zero-sum: multiple winners and losers.
Cooperative
Goal-seeking
Finite
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 8/48
SE/Agile 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.
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 9/48
SE/Agile 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.
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 10/48
SE/Agile 10
Software and Rock Climbing Team
Individuals with talent
Skill sensitive
Training
Tools Resource-limited: before nightfall or the
weather changes.
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 11/48
SE/Agile 11
Software and Rock Climbing Plan
Improvised
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 12/48
SE/Agile 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
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 13/48
SE/Agile 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 thecomputer.
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 14/48
SE/Agile 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 andthoughts 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.
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 15/48
SE/Agile 15
What is
software development? Software Development is a resource-
limited) 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 neighboringsystem.
Not many people have articulated this before
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 16/48
SE/Agile 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.
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 17/48
SE/Agile 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.).
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 18/48
SE/Agile 18
What is ³doing engineering´ In my experience: involves creating a trade-
off solution in the face of conflicting
demands.
Also applies to software development.
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 19/48
SE/Agile 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 inventthe manufacturing plant.
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 20/48
SE/Agile 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.
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 21/48
SE/Agile 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 buildingon the soil at hand.
± Centuries of tabulation of known solutions
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 22/48
SE/Agile 22
Fits marginally This only fits marginally the current state of
software development
We are still in the stage where there iscompetition between designs.
Technologies are changing fast that few
code books exist Today there are more variations between
systems than there are commonalities.
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 23/48
SE/Agile 23
Return Return to consider engineering as thinking
and making trade-offs.
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 24/48
SE/Agile 24
Software and Model Building Ivar Jacobson: ³software development is
model building´
Leads to inappropriate project decisions
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 25/48
SE/Agile 25
Interesting part not in models If software development were model
building, then the valid measure of the
quality of the software or of thedevelopment process would be the quality
of the models (fidelity, completeness)
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 26/48
SE/Agile 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 sayto each other while drawing on the board.
We don¶t have time to create fancy or complete models
Paying attention to the models interferedwith developing the software
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 27/48
SE/Agile 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.
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 28/48
SE/Agile 28
Modeling as team
communication Can be too much or too little.
How much modeling to do? Subject of this
book.
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 29/48
SE/Agile 29
Programmers as Communications
Specialists Game of communication: different light on
programmers «
Stereotyped as noncommunicative individualswho 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)
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 30/48
SE/Agile 30
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.
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 31/48
SE/Agile 31
Universities Can reverse the general characteristics by
creating software development curricula
that contain more communication-intensivecourses
Attracts different students (University of
Aalborg, Denmark).
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 32/48
SE/Agile 32
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.
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 33/48
SE/Agile 33
Analogy Two other fields of thought expression
± Writing novels
± Writing laws: Lawyers won¶t get exponentially
faster at creating contracts and laws!
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 34/48
SE/Agile 34
Diminishing Returns Because a software development project is
resource limited, spending extra to make an
intermediate work product better than itneeds to be for its purpose is wasteful.
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 35/48
SE/Agile 35
What is
software development? Software Development is a resource-
limited) 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 neighboringsystem. Not many people have articulated this before
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 36/48
SE/Agile 36
Peter Naur
Programming as Theory Building
From Computing: A Human Activity(1992, ACM Press)
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 37/48
SE/Agile 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.
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 38/48
SE/Agile 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 athand.
Not as a production of a program and other
texts.
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 39/48
SE/Agile 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.
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 40/48
SE/Agile 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 intothe 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.
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 41/48
SE/Agile 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?
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 42/48
SE/Agile 42
Program flexibility Build into the program operation facilities
that are not immediately demanded.
May be expensive.
± AOSD:
extend program by addition not modification.
Works best if program is very systematicallyorganized (easier to write pointcuts).
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 43/48
SE/Agile 43
Similarity Similarity:
± Requirements for existing solution
± Requirements for new demands
To see the similarities we need to understand the
³theory´ behind the existing solution.
Person having the theory must already be prepared
to respond to questions that give rise to program
modifications (theory stays the same).
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 44/48
SE/Agile 44
Decay Decay of program text if people are making
modifications without understanding theory
behind the program.
We want theory conforming modifications
to the program text. Otherwise we get
unintegrated patches.
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 45/48
SE/Agile 45
Life cycle of a program Birth: building of theory.
Life: programmer team possessing theory remains
in active control of the program. Death: programmer team is dissolved.
Revival: rebuilding of its theory by a new programmer team.
New programmers need to work in close contactwith programmers who have theory.
Start from scratch?
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 46/48
SE/Agile 46
Method and theory building Method
± Set of work rules
± Which notations/languages
± Documents to produce
Theory cannot be expressed
± No right method
Contradiction?
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 47/48
SE/Agile 47
Software Development Should be based on scientific manners?
± Are scientific methods helpful to scientists? Debatable.
± Not contradicted by such works as Polya¶s on problemsolving (How to solve it and Patterns of Plausible
Inference).
Does not present a method on how to proceed.
A collection of suggestions aiming at stimulating the mental
activity of the problem solver.
Highly relevant to programming.
5/13/2018 Agile Software Development - slidepdf.com
http://slidepdf.com/reader/full/agile-software-development-55a7520668050 48/48
SE/Agile 48
Dismissal of method Have methods been successful?
Controlled experiments would be very
expensive.
AOSD
± Is it a method? Yes, e.g. combined with
Extreme Programming.
± Do we need a controlled experiment? No!