SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
Real Software Engineering
Glenn Vanderburg
InfoEther
glv@vanderburg.org

Software Engineering
Doesn’t Work!
Real
Engineering

Real
Software
Engineering
Caricature of
Engineering

Real
Software

A Caricature of
Engineering
1. A software system can best be
designed if the testing is
interlaced with the designing
instead of being used after the
design.
2. A simulation which matches the
requirements contains the
control which organizes the
design of the system.

3. Through successive repetitions
of this process of interlaced
testing and design the model
ultimately becomes the software
system itself. [...] in effect
the testing and the replacement
of simulations with modules that
are deeper and more detailed
goes on with the simulation
model controlling, as it were,
the place and order in which
these things are done.
MANAGING THE DEVELOPMENT OF LARGE SOFTWARE SYSTEMS

Dr. Winston W. Rovce
INTRODUCTION
l am going to describe my pe,-.~onal views about managing large software developments. I have had
various assignments during the past nit,.: years, mostly concerned with the development of software packages
for spacecraft mission planning, commanding and post-flight analysis. In these assignments I have experienced
different degrees of successwith respect to arriving at an operational state, on-time, and within costs. I have
become prejudiced by my experiences and I am going to relate some of these prejudices in this presentation.

COMPUTER PROGRAM DEVELOPMENT FUNCTIONS
There are two essential steps common to all computer program developments, regardless of size or
complexity. There is first an analysis step, followed second by a coding step as depicted in Figure 1. This sort
of very simple implementation concept is in fact all that is required if the effort is sufficiently small and if the
final product is to be operated by those who built it - as is typically done with computer programs for internal
use. It is also the kind of development effort for which most customers are happy to pay, since both steps
involve genuinely creative work which directly contributes to the usefulness of the final product. An
implementation plan to manufacture 13rger software systems, and keyed only to these steps, however, is doomed
• tofailure. Many additional development steps are required, none contribute as directly to the final product as
analysis and coding, and all drive up the development costs. Customer personnel typically would rather not pay
for them, and development personnel would rather not implement them. The prime function of management
is to sell these concepts to both groups and then enforce compliance on the part of development personnel.

I

SYSTE
M

ANALYSIS

I

ANALYSIS
PROGRAM
DESIGN

I

coo,.o
CODING

TESTING

I OPERATIONS
Figure 1. Implementation steps to deliver a small computer program for internal operations.
Figure 2. Implementation steps to develop a large computer program for delivery to a customer.

I believe in this concept, but the implementation described above is risky and invites failure. The
problem is illustrated in Figure 4. The testing phase which occurs at the end of the development cycle is the

A more grandiose approach to which timing, storage, input/output transfers, is illustrated distinguished from 2. The analysis and coding
first event for software development etc., are experienced as in Figure
analyzed. These phenomena are not precisely analyzable. They are not the solutions to the standard partial

steps are still in the picture, but they are preceded by two instance. Yetofthese phenomena fail to satisfy the various are separated by a
differential equations of mathematical physics for levels if requirements analysis,
external constraints, then invariably a major redesign is required. A simple octal patch or redo of some isolated

code will a testing of difficulties. The required design changes are treated separately from analysis and
program design step, and followed by not fix these kinds step. These additions are likely to be so disruptive that the
software requirements upon which the design is based and which provides the rationale for everything are

violated. Either the in the way they a substantial change in the They must be
coding because they are distinctly different requirements must be modified, orare executed. design is required. In effect planned and staffed
the development process has returned to the origin and one can expect up to a lO0-percent overrun in schedule

differently for best utilization of and/or costs.
program resources.

One might note that there has been a skipping-over of the analysis and code phases. One cannot, of

course, produce software without these steps, but generally these phases are development phases for this scheme.
Figure 3 portrays the iterative relationship between successive managed with relative ease and
have little impact on requirements, design, and testing. In my experience there are whole departments

The ordering of steps is based on consumed with the analysis of orbit mechanics, spacecraft as each step mathematical optimization the design is further
the following concept: that attitude determination, progresses and
of payload activity and so forth, but when these departments have completed their difficult and complex work,

resultant program steps involvea
detailed, there is an iteration withthethe preceding andfew lines of serial arithmetic code. Ifbut execution of with the more remote steps in
succeeding steps in the rarely their difficult
and complex work the analysts have made a mistake, the correction is invariably implemented by a minor

the sequence. The virtue of all ofchange in the code with no disruptive design proceeds thebases.
this is that as the feedback into the other development change process is scoped down to
However, I believe the illustrated approach to be fundamentally sound. The remainder of this

manageable limits. At any point discussion presents five additional features after be added to this basic approach to eliminate most of is completed there exists
in the design process that must the requirements analysis the
development risks.

a firm and c~seup~ moving baseline to whi(:h to ~ t u r n in the event of unforeseen design difficulties. What we
have is an effective fallback position that tends to maximize 329 extent of early work that is salvageable and
the
preserved.
Reprinted from Proceedings, IEEE WESCON, August 1970, pages 1-9.
Co_pyright © 1_9_70by The Institute of Electrical and Electronics Et)gineers,,
Inc. Originally published by TRW.

.328
An implementation plan ...
keyed only to these steps,
however, is doomed.
(/)

z~
ua

.J

n

,~L

I--

i,,.

ii1

r.n r r
In

/

C

l
Q.

,<

z
<

E

337

/'L__J

o_

Z

r,ill
Q.

<

I.-

o

(.-

r-

0
(J

f-

t.-

E

0
.E
~n

>o

E

I

+.~

E

o

o

E
4..,

r-

c~

Q.

ii
For every complex problem
there is a solution that is
simple, neat, and wrong.
—H. L. Mencken

The defined process control model
requires that every piece of
work be completely understood.
A defined process can be started
and allowed to run until
completion, with the same
results every time.
“A Rational Design Process”
A. Establish and document requirements
B. Design and document the module structure
C. Design and document the module interfaces
D. Design and document the uses hierarchy
E. Design and document the module internal
structures
F. Write programs
G. Maintain

From that same paper!
[…] the picture of the software
designer deriving his design in a
rational way from a statement of
requirements is quite unrealistic.
No system has ever been
developed in that way, and
probably none ever will.
—David Parnas
Cost of Errors

Cost of Errors

Project Phase

Cost of Errors

The Software Engineering
Solution

Project Phase
Cost of Errors

Secondary Effects

Project Phase

Cost of Errors

Budget Pressures Resist …

Project Phase
Cost of Errors

Budget Pressures Resist …

Project Phase

Cost of Errors

Budget Pressures Resist …

Project Phase
Modeling and Math Envy

“In engineering … people
design through
documentation.”
CASE Tools
OOSE

Z

VDM
MDA

Booch
UML
OMT
This is not some kind of
engineering where all we have
to do is put something in one
end and turn the crank.
—Bruce Eckel

Real Engineering
There is no kind of engineering
where all we have to do is
put something in one end
and turn the crank.

Different Engineering
Disciplines are Different
• Different materials, physical effects, forces
• Different degrees of complexity in
requirements, designs, processes, and artifacts

• Varied reliance on formal modeling and analysis
vs. experimentation, prototyping, and testing

• Varied use of defined and empirical processes
The defined process control model
requires that every piece of
work be completely understood.
A defined process can be started
and allowed to run until
completion, with the same
results every time.

The empirical process control model
provides and exercises control
through frequent inspection and
adaptation for processes that
are imperfectly defined and
generate unpredictable and
unrepeatable outputs.
Cost is always an object.

Engineering is not the art
of constructing. It is rather
the art of not constructing:
or, it is the art of doing well
with one dollar what any
bungler can do with two.
—Arthur Me$en We$ington
Advances come from
practitioners.
Mathematical modeling
was introduced as a
cost-saving measure.
Structural engineering is
the science and art
of designing and making,
with economy and elegance,
[…] structures so that they
can safely resist the forces to
which they may be subjected.
—Structural Engineer’s Association
Real
Software Engineering

Software engineering is
the science and art
of designing and making,
with economy and elegance,
[…] systems so that they can
readily adapt to the situations to
which they may be subjected.
Software engineering will
be different from other
kinds of engineering.

The testing phase … is the first event
for which timing, storage, input/output
transfers, etc., are experienced as
distinguished from analyzed. These
phenomena are not precisely analyzable.
Yet if these phenomena fail to satisfy
the various external constraints, then
invariably a major redesign is required.
In effect the development process has
returned to the origin and one can
expect up to a 100-percent overrun in
schedule and/or costs.
—Winston Royce
What is needed is not classical
mathematics, but mathematics.
Systems should be built at levels
and modules, which form a
mathematical structure.
—Friedrich Bauer
We, in the Netherlands, have the
title Mathematical Engineer.
Software engineering seems to be
the activity for the Mathematical
Engineer par excellence. [...] our
basic tools are mathematical in
nature.
—Edsger Dijkstra

divided by

2

3

4

7

9

4.5

3

2.5

1.29

10

5.0

3.33

2.5

1.43

11

5.5

3.66

2.75

1.57

12.6

6.3

4.2

3.15

1.8

22

11.0

7.33

5.5

3.14

100

50.0

33.33

25.0

14.29
eg.Division
Feature: Addition
In order to avoid silly mistakes
numerator
As an error-prone person
10
I want to divide two numbers
12.6

Scenario Outline: Divide two numbers
22
Given I have entered <input_1>
And I have entered <input_2> 9
When I press "divide"
11
Then the result should be <result>

100

denominator quotient?
2

5.0

3

4.2

7

~=3.14

3

<5

2

4<_<6
32

4

expected

Examples:
25 actual
| input_1 | input_2 | result |
| 10
| 2
| 5.0
|
| 12.6
| 3
| 4.2
|
describe "numbers" do
| 22 Test::Unit::TestCase "divides" do
| 7
| it
~=3.14 |
class <
| test_division
| 3
| <5
def 9
(10 / |2) .should == 5.0
assert_equal 2
5.0, | 4<_<610 |/ / 2 )
(
| 11
|
(12.6
3).should == 4.2
assert_equal 4
4.2, | 32 ( 12.6 / 3 )
| 100
|
|7) .should be_close(3.14, 0.01)
(22 /
assert_in_delta 3.14,
( 22
/ 7 ), 0.01
(9 9
assert
5
> ( / 3) / 3.should < 5
)
(11/2) / 2.should satisfy{|n| n > 4 && n < 6 }
assert
4...6 === ( 11
)
(100 / 4) 4.should == 32
assert_equal
32,
( 100 /
)
end
end
end
end

pair
programming

planning
game

40-hour
week

acceptance
testing

on-site
customer

system
metaphor

coding
standards
refactoring
unit
testing

simple
design
short
releases

collective
ownership

continuous
integration
solutions short
releases
priorities

features
architecture

planning
game

acceptance
testing

collective
ownership

on-site customer

design

continuous integration
classes and interfaces
system metaphor
statements and
methods
unit testing
pair programming

months short
releases

weeks

planning
game

acceptance
testing
days

hours

collective
ownership

on-site customer

continuous integration
minutes
seconds

unit testing
pair programming

system metaphor
Assumptions Once True, But
No Longer

• Code is hard to read
• Code is hard to change
• Testing is expensive

Assumptions Once Believed
But Never True
• All engineering is like structural engineering
• Programming is like building
• Modeling and analysis are about correctness
The Reality of
Software Engineering
• Software is very unlike bridges and buildings.
• Additional complexity hinders requirements,
design, and approval.

• Source code is a model.
• Building and testing our interim designs is
effectively free.

• Empirical processes are rational for software.

Agile software development,
far from being anti-engineering,
represents the responsible
application of engineering
ideals to the field of software.
Real Software Engineering
Glenn Vanderburg
InfoEther
glv@vanderburg.org
http://spkr8.com/t/3398
Photo Credits (all from Flickr):
Seattle Municipal Archives:!
Will Scullin:!
Bill Jacobus:!
kke:!
Carol Shergold:!
Bill Abbott:!

/photos/seattlemunicipalarchives/2713475713/
/photos/wscullin/3770015203/
/photos/billjacobus1/122497422/
/photos/kesta/1818986646/
/photos/carolshergold/1921464196/
/photos/wbaiv/3236672907/

Contenu connexe

Tendances

Software Project Estimation
Software Project EstimationSoftware Project Estimation
Software Project EstimationFrank Vogelezang
 
SE CHAPTER 2 PROCESS MODELS
SE CHAPTER 2 PROCESS MODELSSE CHAPTER 2 PROCESS MODELS
SE CHAPTER 2 PROCESS MODELSAbrar ali
 
Issues in software cost estimation
Issues in software cost estimationIssues in software cost estimation
Issues in software cost estimationKashif Aleem
 
From Principles to Strategies for Systems Engineering
From Principles to Strategies for Systems EngineeringFrom Principles to Strategies for Systems Engineering
From Principles to Strategies for Systems EngineeringGlen Alleman
 
Extreme programming (xp) | David Tzemach
Extreme programming (xp) | David TzemachExtreme programming (xp) | David Tzemach
Extreme programming (xp) | David TzemachDavid Tzemach
 
Lect3 conventional vs modern spm
Lect3 conventional vs modern spmLect3 conventional vs modern spm
Lect3 conventional vs modern spmmeena466141
 
The Mythical Man Month
The Mythical Man MonthThe Mythical Man Month
The Mythical Man MonthMr Cracker
 
Software Project Planning II
Software Project Planning IISoftware Project Planning II
Software Project Planning IIGagan Deep
 
Software Metrics & Measurement-Sharbani Bhattacharya
Software Metrics & Measurement-Sharbani BhattacharyaSoftware Metrics & Measurement-Sharbani Bhattacharya
Software Metrics & Measurement-Sharbani BhattacharyaSharbani Bhattacharya
 
Mythical Man Month Essays on Software Engineering
Mythical Man Month Essays on Software EngineeringMythical Man Month Essays on Software Engineering
Mythical Man Month Essays on Software Engineeringmustafa sarac
 
Assessing Enterprise Project Risk
Assessing Enterprise Project RiskAssessing Enterprise Project Risk
Assessing Enterprise Project RiskGlen Alleman
 
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERING
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERINGUnit i FUNDAMENTALS OF SOFTWARE ENGINEERING
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERINGSangeetha Rangarajan
 
Risk adjusted engineering management
Risk adjusted engineering managementRisk adjusted engineering management
Risk adjusted engineering managementGlen Alleman
 
Effort estimation for software development
Effort estimation for software developmentEffort estimation for software development
Effort estimation for software developmentSpyros Ktenas
 
Basic Software Effort Estimation
Basic Software Effort EstimationBasic Software Effort Estimation
Basic Software Effort Estimationumair khan
 

Tendances (20)

Guide to Software Estimation
Guide to Software EstimationGuide to Software Estimation
Guide to Software Estimation
 
Software Project Estimation
Software Project EstimationSoftware Project Estimation
Software Project Estimation
 
SE CHAPTER 2 PROCESS MODELS
SE CHAPTER 2 PROCESS MODELSSE CHAPTER 2 PROCESS MODELS
SE CHAPTER 2 PROCESS MODELS
 
Issues in software cost estimation
Issues in software cost estimationIssues in software cost estimation
Issues in software cost estimation
 
From Principles to Strategies for Systems Engineering
From Principles to Strategies for Systems EngineeringFrom Principles to Strategies for Systems Engineering
From Principles to Strategies for Systems Engineering
 
Extreme programming (xp) | David Tzemach
Extreme programming (xp) | David TzemachExtreme programming (xp) | David Tzemach
Extreme programming (xp) | David Tzemach
 
Lect3 conventional vs modern spm
Lect3 conventional vs modern spmLect3 conventional vs modern spm
Lect3 conventional vs modern spm
 
The Mythical Man Month
The Mythical Man MonthThe Mythical Man Month
The Mythical Man Month
 
Software Project Planning II
Software Project Planning IISoftware Project Planning II
Software Project Planning II
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Software Metrics & Measurement-Sharbani Bhattacharya
Software Metrics & Measurement-Sharbani BhattacharyaSoftware Metrics & Measurement-Sharbani Bhattacharya
Software Metrics & Measurement-Sharbani Bhattacharya
 
Mythical Man Month Essays on Software Engineering
Mythical Man Month Essays on Software EngineeringMythical Man Month Essays on Software Engineering
Mythical Man Month Essays on Software Engineering
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Assessing Enterprise Project Risk
Assessing Enterprise Project RiskAssessing Enterprise Project Risk
Assessing Enterprise Project Risk
 
Mythical Man-Month
Mythical Man-MonthMythical Man-Month
Mythical Man-Month
 
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERING
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERINGUnit i FUNDAMENTALS OF SOFTWARE ENGINEERING
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERING
 
Risk adjusted engineering management
Risk adjusted engineering managementRisk adjusted engineering management
Risk adjusted engineering management
 
Effort estimation for software development
Effort estimation for software developmentEffort estimation for software development
Effort estimation for software development
 
Basic Software Effort Estimation
Basic Software Effort EstimationBasic Software Effort Estimation
Basic Software Effort Estimation
 
20 54-1-pb
20 54-1-pb20 54-1-pb
20 54-1-pb
 

En vedette

Cbea Bookstore Lab Orientation Copy
Cbea Bookstore Lab Orientation   CopyCbea Bookstore Lab Orientation   Copy
Cbea Bookstore Lab Orientation Copyjamche27
 
Korfball modulo 1 (arg)
Korfball modulo 1 (arg)Korfball modulo 1 (arg)
Korfball modulo 1 (arg)Profe Spasiuk
 
Glenn Vanderburg — Learning to love JavaScript
Glenn Vanderburg — Learning to love JavaScriptGlenn Vanderburg — Learning to love JavaScript
Glenn Vanderburg — Learning to love JavaScriptatr2006
 
Mission Vision
Mission VisionMission Vision
Mission Visionjamche27
 
Redirigiendo el timón de tu vida web
Redirigiendo el timón de tu vida webRedirigiendo el timón de tu vida web
Redirigiendo el timón de tu vida webClaudia Gonzalez
 
Using Developmentally Appropriate Practice to Select Apps by Gail Lovely
Using Developmentally Appropriate Practice to Select Apps by Gail LovelyUsing Developmentally Appropriate Practice to Select Apps by Gail Lovely
Using Developmentally Appropriate Practice to Select Apps by Gail LovelyGail Lovely
 
Glenn Vanderburg. Craft and software engineering
Glenn Vanderburg. Craft and software engineeringGlenn Vanderburg. Craft and software engineering
Glenn Vanderburg. Craft and software engineeringatr2006
 
REGINA SILVEIRA
REGINA SILVEIRAREGINA SILVEIRA
REGINA SILVEIRAartemarciw
 
TRIZ IdeaWorkshop 2013 (発明原理、矛盾マトリックス、智慧カード)
TRIZ IdeaWorkshop 2013 (発明原理、矛盾マトリックス、智慧カード)TRIZ IdeaWorkshop 2013 (発明原理、矛盾マトリックス、智慧カード)
TRIZ IdeaWorkshop 2013 (発明原理、矛盾マトリックス、智慧カード)Rikie Ishii
 
小企業におけるSBS2003の活用
小企業におけるSBS2003の活用小企業におけるSBS2003の活用
小企業におけるSBS2003の活用Masaya Sawada
 
[Lt]windows ブートマネージャーのスクリーンショットをとる方法
[Lt]windows ブートマネージャーのスクリーンショットをとる方法[Lt]windows ブートマネージャーのスクリーンショットをとる方法
[Lt]windows ブートマネージャーのスクリーンショットをとる方法Masaya Sawada
 
ユーザー視点・管理者視点で見るSbs2008のポイント
ユーザー視点・管理者視点で見るSbs2008のポイントユーザー視点・管理者視点で見るSbs2008のポイント
ユーザー視点・管理者視点で見るSbs2008のポイントMasaya Sawada
 
[Lt]hyper vの仮想ネットワーク
[Lt]hyper vの仮想ネットワーク[Lt]hyper vの仮想ネットワーク
[Lt]hyper vの仮想ネットワークMasaya Sawada
 
開発者のためのWindows7 & windows server r2
開発者のためのWindows7 & windows server r2開発者のためのWindows7 & windows server r2
開発者のためのWindows7 & windows server r2Masaya Sawada
 
はじめてのSSAS開発
はじめてのSSAS開発はじめてのSSAS開発
はじめてのSSAS開発Masaya Sawada
 
[Lt]今年は物理サーバーを仮想化してみましょう
[Lt]今年は物理サーバーを仮想化してみましょう[Lt]今年は物理サーバーを仮想化してみましょう
[Lt]今年は物理サーバーを仮想化してみましょうMasaya Sawada
 

En vedette (20)

Cbea Bookstore Lab Orientation Copy
Cbea Bookstore Lab Orientation   CopyCbea Bookstore Lab Orientation   Copy
Cbea Bookstore Lab Orientation Copy
 
La amistad
La amistadLa amistad
La amistad
 
Korfball modulo 1 (arg)
Korfball modulo 1 (arg)Korfball modulo 1 (arg)
Korfball modulo 1 (arg)
 
Acuaporinas
AcuaporinasAcuaporinas
Acuaporinas
 
Glenn Vanderburg — Learning to love JavaScript
Glenn Vanderburg — Learning to love JavaScriptGlenn Vanderburg — Learning to love JavaScript
Glenn Vanderburg — Learning to love JavaScript
 
Mission Vision
Mission VisionMission Vision
Mission Vision
 
Redirigiendo el timón de tu vida web
Redirigiendo el timón de tu vida webRedirigiendo el timón de tu vida web
Redirigiendo el timón de tu vida web
 
Using Developmentally Appropriate Practice to Select Apps by Gail Lovely
Using Developmentally Appropriate Practice to Select Apps by Gail LovelyUsing Developmentally Appropriate Practice to Select Apps by Gail Lovely
Using Developmentally Appropriate Practice to Select Apps by Gail Lovely
 
Glenn Vanderburg. Craft and software engineering
Glenn Vanderburg. Craft and software engineeringGlenn Vanderburg. Craft and software engineering
Glenn Vanderburg. Craft and software engineering
 
Acuaporinas
AcuaporinasAcuaporinas
Acuaporinas
 
REGINA SILVEIRA
REGINA SILVEIRAREGINA SILVEIRA
REGINA SILVEIRA
 
TRIZ IdeaWorkshop 2013 (発明原理、矛盾マトリックス、智慧カード)
TRIZ IdeaWorkshop 2013 (発明原理、矛盾マトリックス、智慧カード)TRIZ IdeaWorkshop 2013 (発明原理、矛盾マトリックス、智慧カード)
TRIZ IdeaWorkshop 2013 (発明原理、矛盾マトリックス、智慧カード)
 
小企業におけるSBS2003の活用
小企業におけるSBS2003の活用小企業におけるSBS2003の活用
小企業におけるSBS2003の活用
 
[Lt]windows ブートマネージャーのスクリーンショットをとる方法
[Lt]windows ブートマネージャーのスクリーンショットをとる方法[Lt]windows ブートマネージャーのスクリーンショットをとる方法
[Lt]windows ブートマネージャーのスクリーンショットをとる方法
 
ユーザー視点・管理者視点で見るSbs2008のポイント
ユーザー視点・管理者視点で見るSbs2008のポイントユーザー視点・管理者視点で見るSbs2008のポイント
ユーザー視点・管理者視点で見るSbs2008のポイント
 
[Lt]hyper vの仮想ネットワーク
[Lt]hyper vの仮想ネットワーク[Lt]hyper vの仮想ネットワーク
[Lt]hyper vの仮想ネットワーク
 
開発者のためのWindows7 & windows server r2
開発者のためのWindows7 & windows server r2開発者のためのWindows7 & windows server r2
開発者のためのWindows7 & windows server r2
 
はじめてのSSAS開発
はじめてのSSAS開発はじめてのSSAS開発
はじめてのSSAS開発
 
[Lt]今年は物理サーバーを仮想化してみましょう
[Lt]今年は物理サーバーを仮想化してみましょう[Lt]今年は物理サーバーを仮想化してみましょう
[Lt]今年は物理サーバーを仮想化してみましょう
 
Regimen tributario
Regimen tributarioRegimen tributario
Regimen tributario
 

Similaire à Glenn Vanderburg — Real software engineering

Real software engineering
Real software engineeringReal software engineering
Real software engineeringatr2006
 
Managing Develop of Large Systems
Managing Develop of Large SystemsManaging Develop of Large Systems
Managing Develop of Large SystemsDaniloPereira341965
 
Methodology Patterns (Agile Cambridge 2014)
Methodology Patterns (Agile Cambridge 2014)Methodology Patterns (Agile Cambridge 2014)
Methodology Patterns (Agile Cambridge 2014)Giovanni Asproni
 
Week 4 Assignment - Software Development PlanScenario-Your team has be.docx
Week 4 Assignment - Software Development PlanScenario-Your team has be.docxWeek 4 Assignment - Software Development PlanScenario-Your team has be.docx
Week 4 Assignment - Software Development PlanScenario-Your team has be.docxestefana2345678
 
Materi Testing dan Implementasi System
Materi Testing dan Implementasi SystemMateri Testing dan Implementasi System
Materi Testing dan Implementasi Systemdevinta sari
 
Software lifecycle model report
Software lifecycle model reportSoftware lifecycle model report
Software lifecycle model reportAshutosh Singh
 
Software Engineering
Software Engineering Software Engineering
Software Engineering JayaKamal
 
3.8 development methods
3.8 development methods3.8 development methods
3.8 development methodsmrmwood
 
3 f6 11_softdevmethodologies
3 f6 11_softdevmethodologies3 f6 11_softdevmethodologies
3 f6 11_softdevmethodologiesop205
 
SE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it studentSE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it studentRAVALCHIRAG1
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process ModelsHassan A-j
 
An overview of software development methodologies.
An overview of software development methodologies.An overview of software development methodologies.
An overview of software development methodologies.Masoud Kalali
 
Chapter-2 ppt for the MBA 4rh seme6y.pdf
Chapter-2 ppt for the MBA 4rh seme6y.pdfChapter-2 ppt for the MBA 4rh seme6y.pdf
Chapter-2 ppt for the MBA 4rh seme6y.pdfVikasRai405977
 
software project management
software project managementsoftware project management
software project managementJassir4
 

Similaire à Glenn Vanderburg — Real software engineering (20)

Real software engineering
Real software engineeringReal software engineering
Real software engineering
 
Managing Develop of Large Systems
Managing Develop of Large SystemsManaging Develop of Large Systems
Managing Develop of Large Systems
 
Methodology Patterns (Agile Cambridge 2014)
Methodology Patterns (Agile Cambridge 2014)Methodology Patterns (Agile Cambridge 2014)
Methodology Patterns (Agile Cambridge 2014)
 
Itertaive Process Development
Itertaive Process DevelopmentItertaive Process Development
Itertaive Process Development
 
Ced unit 1 notes-new
Ced unit 1 notes-newCed unit 1 notes-new
Ced unit 1 notes-new
 
Week 4 Assignment - Software Development PlanScenario-Your team has be.docx
Week 4 Assignment - Software Development PlanScenario-Your team has be.docxWeek 4 Assignment - Software Development PlanScenario-Your team has be.docx
Week 4 Assignment - Software Development PlanScenario-Your team has be.docx
 
Materi Testing dan Implementasi System
Materi Testing dan Implementasi SystemMateri Testing dan Implementasi System
Materi Testing dan Implementasi System
 
Software models
Software modelsSoftware models
Software models
 
Software lifecycle model report
Software lifecycle model reportSoftware lifecycle model report
Software lifecycle model report
 
The process
The processThe process
The process
 
Software Engineering
Software Engineering Software Engineering
Software Engineering
 
3.8 development methods
3.8 development methods3.8 development methods
3.8 development methods
 
agile methods.docx
agile methods.docxagile methods.docx
agile methods.docx
 
Software engineering the process
Software engineering the processSoftware engineering the process
Software engineering the process
 
3 f6 11_softdevmethodologies
3 f6 11_softdevmethodologies3 f6 11_softdevmethodologies
3 f6 11_softdevmethodologies
 
SE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it studentSE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it student
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
An overview of software development methodologies.
An overview of software development methodologies.An overview of software development methodologies.
An overview of software development methodologies.
 
Chapter-2 ppt for the MBA 4rh seme6y.pdf
Chapter-2 ppt for the MBA 4rh seme6y.pdfChapter-2 ppt for the MBA 4rh seme6y.pdf
Chapter-2 ppt for the MBA 4rh seme6y.pdf
 
software project management
software project managementsoftware project management
software project management
 

Dernier

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 

Dernier (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

Glenn Vanderburg — Real software engineering

  • 1. Real Software Engineering Glenn Vanderburg InfoEther glv@vanderburg.org Software Engineering Doesn’t Work!
  • 3. 1. A software system can best be designed if the testing is interlaced with the designing instead of being used after the design.
  • 4. 2. A simulation which matches the requirements contains the control which organizes the design of the system. 3. Through successive repetitions of this process of interlaced testing and design the model ultimately becomes the software system itself. [...] in effect the testing and the replacement of simulations with modules that are deeper and more detailed goes on with the simulation model controlling, as it were, the place and order in which these things are done.
  • 5. MANAGING THE DEVELOPMENT OF LARGE SOFTWARE SYSTEMS Dr. Winston W. Rovce INTRODUCTION l am going to describe my pe,-.~onal views about managing large software developments. I have had various assignments during the past nit,.: years, mostly concerned with the development of software packages for spacecraft mission planning, commanding and post-flight analysis. In these assignments I have experienced different degrees of successwith respect to arriving at an operational state, on-time, and within costs. I have become prejudiced by my experiences and I am going to relate some of these prejudices in this presentation. COMPUTER PROGRAM DEVELOPMENT FUNCTIONS There are two essential steps common to all computer program developments, regardless of size or complexity. There is first an analysis step, followed second by a coding step as depicted in Figure 1. This sort of very simple implementation concept is in fact all that is required if the effort is sufficiently small and if the final product is to be operated by those who built it - as is typically done with computer programs for internal use. It is also the kind of development effort for which most customers are happy to pay, since both steps involve genuinely creative work which directly contributes to the usefulness of the final product. An implementation plan to manufacture 13rger software systems, and keyed only to these steps, however, is doomed • tofailure. Many additional development steps are required, none contribute as directly to the final product as analysis and coding, and all drive up the development costs. Customer personnel typically would rather not pay for them, and development personnel would rather not implement them. The prime function of management is to sell these concepts to both groups and then enforce compliance on the part of development personnel. I SYSTE M ANALYSIS I ANALYSIS PROGRAM DESIGN I coo,.o CODING TESTING I OPERATIONS Figure 1. Implementation steps to deliver a small computer program for internal operations. Figure 2. Implementation steps to develop a large computer program for delivery to a customer. I believe in this concept, but the implementation described above is risky and invites failure. The problem is illustrated in Figure 4. The testing phase which occurs at the end of the development cycle is the A more grandiose approach to which timing, storage, input/output transfers, is illustrated distinguished from 2. The analysis and coding first event for software development etc., are experienced as in Figure analyzed. These phenomena are not precisely analyzable. They are not the solutions to the standard partial steps are still in the picture, but they are preceded by two instance. Yetofthese phenomena fail to satisfy the various are separated by a differential equations of mathematical physics for levels if requirements analysis, external constraints, then invariably a major redesign is required. A simple octal patch or redo of some isolated code will a testing of difficulties. The required design changes are treated separately from analysis and program design step, and followed by not fix these kinds step. These additions are likely to be so disruptive that the software requirements upon which the design is based and which provides the rationale for everything are violated. Either the in the way they a substantial change in the They must be coding because they are distinctly different requirements must be modified, orare executed. design is required. In effect planned and staffed the development process has returned to the origin and one can expect up to a lO0-percent overrun in schedule differently for best utilization of and/or costs. program resources. One might note that there has been a skipping-over of the analysis and code phases. One cannot, of course, produce software without these steps, but generally these phases are development phases for this scheme. Figure 3 portrays the iterative relationship between successive managed with relative ease and have little impact on requirements, design, and testing. In my experience there are whole departments The ordering of steps is based on consumed with the analysis of orbit mechanics, spacecraft as each step mathematical optimization the design is further the following concept: that attitude determination, progresses and of payload activity and so forth, but when these departments have completed their difficult and complex work, resultant program steps involvea detailed, there is an iteration withthethe preceding andfew lines of serial arithmetic code. Ifbut execution of with the more remote steps in succeeding steps in the rarely their difficult and complex work the analysts have made a mistake, the correction is invariably implemented by a minor the sequence. The virtue of all ofchange in the code with no disruptive design proceeds thebases. this is that as the feedback into the other development change process is scoped down to However, I believe the illustrated approach to be fundamentally sound. The remainder of this manageable limits. At any point discussion presents five additional features after be added to this basic approach to eliminate most of is completed there exists in the design process that must the requirements analysis the development risks. a firm and c~seup~ moving baseline to whi(:h to ~ t u r n in the event of unforeseen design difficulties. What we have is an effective fallback position that tends to maximize 329 extent of early work that is salvageable and the preserved. Reprinted from Proceedings, IEEE WESCON, August 1970, pages 1-9. Co_pyright © 1_9_70by The Institute of Electrical and Electronics Et)gineers,, Inc. Originally published by TRW. .328
  • 6. An implementation plan ... keyed only to these steps, however, is doomed.
  • 7.
  • 8.
  • 10.
  • 11. For every complex problem there is a solution that is simple, neat, and wrong. —H. L. Mencken The defined process control model requires that every piece of work be completely understood. A defined process can be started and allowed to run until completion, with the same results every time.
  • 12. “A Rational Design Process” A. Establish and document requirements B. Design and document the module structure C. Design and document the module interfaces D. Design and document the uses hierarchy E. Design and document the module internal structures F. Write programs G. Maintain From that same paper! […] the picture of the software designer deriving his design in a rational way from a statement of requirements is quite unrealistic. No system has ever been developed in that way, and probably none ever will. —David Parnas
  • 13. Cost of Errors Cost of Errors Project Phase Cost of Errors The Software Engineering Solution Project Phase
  • 14. Cost of Errors Secondary Effects Project Phase Cost of Errors Budget Pressures Resist … Project Phase
  • 15. Cost of Errors Budget Pressures Resist … Project Phase Cost of Errors Budget Pressures Resist … Project Phase
  • 16. Modeling and Math Envy “In engineering … people design through documentation.”
  • 18. This is not some kind of engineering where all we have to do is put something in one end and turn the crank. —Bruce Eckel Real Engineering
  • 19. There is no kind of engineering where all we have to do is put something in one end and turn the crank. Different Engineering Disciplines are Different • Different materials, physical effects, forces • Different degrees of complexity in requirements, designs, processes, and artifacts • Varied reliance on formal modeling and analysis vs. experimentation, prototyping, and testing • Varied use of defined and empirical processes
  • 20. The defined process control model requires that every piece of work be completely understood. A defined process can be started and allowed to run until completion, with the same results every time. The empirical process control model provides and exercises control through frequent inspection and adaptation for processes that are imperfectly defined and generate unpredictable and unrepeatable outputs.
  • 21. Cost is always an object. Engineering is not the art of constructing. It is rather the art of not constructing: or, it is the art of doing well with one dollar what any bungler can do with two. —Arthur Me$en We$ington
  • 23. Mathematical modeling was introduced as a cost-saving measure.
  • 24.
  • 25.
  • 26. Structural engineering is the science and art of designing and making, with economy and elegance, […] structures so that they can safely resist the forces to which they may be subjected. —Structural Engineer’s Association
  • 27. Real Software Engineering Software engineering is the science and art of designing and making, with economy and elegance, […] systems so that they can readily adapt to the situations to which they may be subjected.
  • 28. Software engineering will be different from other kinds of engineering. The testing phase … is the first event for which timing, storage, input/output transfers, etc., are experienced as distinguished from analyzed. These phenomena are not precisely analyzable.
  • 29. Yet if these phenomena fail to satisfy the various external constraints, then invariably a major redesign is required. In effect the development process has returned to the origin and one can expect up to a 100-percent overrun in schedule and/or costs. —Winston Royce
  • 30. What is needed is not classical mathematics, but mathematics. Systems should be built at levels and modules, which form a mathematical structure. —Friedrich Bauer
  • 31. We, in the Netherlands, have the title Mathematical Engineer. Software engineering seems to be the activity for the Mathematical Engineer par excellence. [...] our basic tools are mathematical in nature. —Edsger Dijkstra divided by 2 3 4 7 9 4.5 3 2.5 1.29 10 5.0 3.33 2.5 1.43 11 5.5 3.66 2.75 1.57 12.6 6.3 4.2 3.15 1.8 22 11.0 7.33 5.5 3.14 100 50.0 33.33 25.0 14.29
  • 32. eg.Division Feature: Addition In order to avoid silly mistakes numerator As an error-prone person 10 I want to divide two numbers 12.6 Scenario Outline: Divide two numbers 22 Given I have entered <input_1> And I have entered <input_2> 9 When I press "divide" 11 Then the result should be <result> 100 denominator quotient? 2 5.0 3 4.2 7 ~=3.14 3 <5 2 4<_<6 32 4 expected Examples: 25 actual | input_1 | input_2 | result | | 10 | 2 | 5.0 | | 12.6 | 3 | 4.2 | describe "numbers" do | 22 Test::Unit::TestCase "divides" do | 7 | it ~=3.14 | class < | test_division | 3 | <5 def 9 (10 / |2) .should == 5.0 assert_equal 2 5.0, | 4<_<610 |/ / 2 ) ( | 11 | (12.6 3).should == 4.2 assert_equal 4 4.2, | 32 ( 12.6 / 3 ) | 100 | |7) .should be_close(3.14, 0.01) (22 / assert_in_delta 3.14, ( 22 / 7 ), 0.01 (9 9 assert 5 > ( / 3) / 3.should < 5 ) (11/2) / 2.should satisfy{|n| n > 4 && n < 6 } assert 4...6 === ( 11 ) (100 / 4) 4.should == 32 assert_equal 32, ( 100 / ) end end end end pair programming planning game 40-hour week acceptance testing on-site customer system metaphor coding standards refactoring unit testing simple design short releases collective ownership continuous integration
  • 33. solutions short releases priorities features architecture planning game acceptance testing collective ownership on-site customer design continuous integration classes and interfaces system metaphor statements and methods unit testing pair programming months short releases weeks planning game acceptance testing days hours collective ownership on-site customer continuous integration minutes seconds unit testing pair programming system metaphor
  • 34. Assumptions Once True, But No Longer • Code is hard to read • Code is hard to change • Testing is expensive Assumptions Once Believed But Never True • All engineering is like structural engineering • Programming is like building • Modeling and analysis are about correctness
  • 35. The Reality of Software Engineering • Software is very unlike bridges and buildings. • Additional complexity hinders requirements, design, and approval. • Source code is a model. • Building and testing our interim designs is effectively free. • Empirical processes are rational for software. Agile software development, far from being anti-engineering, represents the responsible application of engineering ideals to the field of software.
  • 36. Real Software Engineering Glenn Vanderburg InfoEther glv@vanderburg.org http://spkr8.com/t/3398 Photo Credits (all from Flickr): Seattle Municipal Archives:! Will Scullin:! Bill Jacobus:! kke:! Carol Shergold:! Bill Abbott:! /photos/seattlemunicipalarchives/2713475713/ /photos/wscullin/3770015203/ /photos/billjacobus1/122497422/ /photos/kesta/1818986646/ /photos/carolshergold/1921464196/ /photos/wbaiv/3236672907/