29
17 Dec 2002 FIO Development Process Bill Tomlin

FIO Development Process

Embed Size (px)

DESCRIPTION

FIO Development Process. Bill Tomlin. Introduction. Historical perspective Good practice Design Testing Development methods compared Recommendations. Ada – Enchantress of Numbers. Born December 10, 1815 1842 plan to calculate Bernoulli numbers using Babbage’s ‘Difference Engine’ - PowerPoint PPT Presentation

Citation preview

Page 1: FIO Development Process

17 Dec 2002

FIO Development Process

Bill Tomlin

Page 2: FIO Development Process

17 Dec 2002/BT 2

Introduction

Historical perspective Good practice

Design Testing

Development methods compared Recommendations

Page 3: FIO Development Process

17 Dec 2002/BT 3

Ada – Enchantress of Numbers Born December 10, 1815 1842 plan to calculate Bernoulli

numbers using Babbage’s ‘Difference Engine’

First programmer 1979 ADA language

“I am much annoyed at your having altered my Note. You know I am always willing to make any required alterations myself, but that I cannot endure another person to meddle with my sentences”

Page 4: FIO Development Process

17 Dec 2002/BT 4

Good Practice: Design Top-down, Use Case driven Identify high-level components Decide interfaces Apply to sub-components Low coupling, high cohesion A simple model says a lot…

Page 5: FIO Development Process

17 Dec 2002/BT 5

: BuyerSeller : GoI : Aggregator

Create Socket

Listen

Select Escrow

Escrow Application Form

Completed Form

Socket Connection

Send Fields (XML)

Confirmation (XML)

Close Socket

Confirmation (HTTP)

Page 6: FIO Development Process

17 Dec 2002/BT 6

Example: The Database

Single, consistent access method Hide implementation details Good performance Ease of maintenance Access control Pre-compilation Connection pooling

Page 7: FIO Development Process

17 Dec 2002/BT 7

“Good and clear interfaces reduce bugs. Avoiding complexity reduces bugs.” - Linus Torvald

“Spend time on architecture not maintenance.” - Jean-Claude Wipple

Page 8: FIO Development Process

17 Dec 2002/BT 8

Testing

Apply principles of engineering to software Bottom-up unit testing Catch errors early

Cheaper Less embarrassing Saves time

Page 9: FIO Development Process

17 Dec 2002/BT 9

January 28, 1986

Page 10: FIO Development Process

17 Dec 2002/BT 10

An “O-ring” fails

Page 11: FIO Development Process

17 Dec 2002/BT 11

“Major malfunction”

Page 12: FIO Development Process

17 Dec 2002/BT 12

What went wrong…

Rubber used to seal joints failed to expand at 0ºC

The component wasn’t tested in the right way

The engineer wasn’t listened to The risk assessment was wrong

(1/100 000 vs. 1/100)

Page 13: FIO Development Process

17 Dec 2002/BT 13

“For a successful technology, reality must take precedence over public relations, for nature cannot be fooled” - Feynman

Page 14: FIO Development Process

17 Dec 2002

Methods

Waterfall

Iterative

Common

depends on scale of project…

Page 15: FIO Development Process

17 Dec 2002/BT 15

2

Architecting a dog house

Can be built by one personRequires

Minimal modelingSimple processSimple tools

2

Architecting a dog house

Can be built by one personRequires

Minimal modelingSimple processSimple tools

…can be a lot of dogs to house

Page 16: FIO Development Process

17 Dec 2002/BT 16

3

Architecting a house

Built most efficiently and timely by a teamRequires

ModelingWell-defined processPower tools

3

Architecting a house

Built most efficiently and timely by a teamRequires

ModelingWell-defined processPower tools

Page 17: FIO Development Process

17 Dec 2002/BT 17

4

Architecting a high rise

4

Architecting a high rise

Page 18: FIO Development Process

17 Dec 2002/BT 18

Waterfall MethodRequirements

Design

Implementation

Test

Analysis

Page 19: FIO Development Process

17 Dec 2002/BT 19

Waterfall Method

Advantages Simple Stability - harder to

introduce late changes Testers get early

specifications to work from

Project planning is easier

Disadvantages Risky - no early working releases Inflexible – can’t change

requirements or design Cannot respond to changing

circumstance Testing late and on critical path Projects usually too late and too

expensive Communications can break

down…

Page 20: FIO Development Process

17 Dec 2002/BT 20

1. Customer requested:

2. Analyst Specified:

3. Designer Specified:

4. Programmer Implemented:

5. Installed:

6. Customer really needed:

Page 21: FIO Development Process

17 Dec 2002/BT 21

Iterative Method

ProjectInitiation

Elaboration

increment #1

increment #2

increment #n

... ... ...

TransitionProjectClosure

Maintenance

Construction

Page 22: FIO Development Process

17 Dec 2002/BT 22

Iterative Method

Advantages Can calibrate and

refine plan more accurate

Working releases all through lower risk

Allow reappraisal Whole development

process regularly performed

Disadvantages Developers may keep

writing fresh code, not bug fixing

Core product may need re-architecting with new functionality

Planning more complex More chaotic

Page 23: FIO Development Process

17 Dec 2002/BT 23

"A complex system that works is invariably found to have evolved from a simpler system that worked" - Gall 1986

Page 24: FIO Development Process

17 Dec 2002/BT 24

Common Method

Page 25: FIO Development Process

17 Dec 2002/BT 25

Development in FIO…

Lack of clear method Good people but high turnover Assumed knowledge Fragmented information Interesting production environments Sporadic use of CVS, SourceSafe Eclectic, wordy document content, if they exist High coupling between components

Page 26: FIO Development Process

17 Dec 2002/BT 26

Recommendations…

Page 27: FIO Development Process

17 Dec 2002/BT 27

Start with a simple process… An “FIO project approach” document Standard set of project artifacts

Requirements - what Design (UML) - how Code, makefiles, sql Instructions: how to build & deploy

All artifacts in CVS/SourceSafe Single repository for FIO Obvious location Consistent naming All DB access via stored procedures

Page 28: FIO Development Process

17 Dec 2002/BT 28

…which we can evolve

Document templates Code templates Coding standards Libraries Reviews Quality plans, testing DevTestProduction environments Release procedures Widen scope beyond FIO ?

Page 29: FIO Development Process

17 Dec 2002/BT 29

Questions/Comments ?