integrating lightweight software processes into a...

33
1 XXXXXXX © ResMed YR MONTH Global leaders in sleep and respiratory medicine Integrating lightweight software processes into a regulated environment Adrian Barnes Principal Engineer, ResMed Ltd

Upload: others

Post on 17-Jun-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

1 XXXXXXX © ResMed YR MONTH Global leaders in sleep and respiratory medicine

Integrating lightweight software processes into a regulated environmentAdrian Barnes

Principal Engineer, ResMed Ltd

Page 2: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

2 A Barnes 14 July 2006

Agenda

• Software development at ResMed

• Oil & Water– Agile Lightweight Process– Formal Process– Will they Mix?

• Mixing processes– Problems in trying to mix methodologies

• Bridging the gap– A strategy for co-existing methodologies

• Software development at ResMed

• Oil & Water– Agile Lightweight Process– Formal Process– Will they Mix?

• Mixing processes– Problems in trying to mix methodologies

• Bridging the gap– A strategy for co-existing methodologies

Page 3: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

3 A Barnes 14 July 2006

About ResMed

• Buisiness– Medical Devices (Respiratory)– Global market– Regulated (by FDA and other bodies)

• Revenue– 2005 $A 550 million +

• Global software development team

• Buisiness– Medical Devices (Respiratory)– Global market– Regulated (by FDA and other bodies)

• Revenue– 2005 $A 550 million +

• Global software development team

Page 4: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

4 A Barnes 14 July 2006

A ‘typical’ medical device project

Resources

TimeApplied Research

Technology TransferSkunk Works

The Idea The Team

Official Project

Requirements Submission

Last-minuteChanges

The Product

Page 5: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

5 A Barnes 14 July 2006

Oil & Water

• 10 years ago things were simple(r)– All we had was water

Standards based on processes (unashamedly waterfall-like).Software engineers only knew waterfall-like lifecycles Regulators expected process artifacts (waterfall-like)We didn’t know of anything better

• 10 years ago things were simple(r)– All we had was water

Standards based on processes (unashamedly waterfall-like).Software engineers only knew waterfall-like lifecycles Regulators expected process artifacts (waterfall-like)We didn’t know of anything better

• Now – We have oil and water

Standards based on processes (waterfall, iterative, incremental)Software engineers aware of alternative methodologiesRegulators expect process artifacts (waterfall-like)We are aware that the ‘old way’ is not always the best way

• Now – We have oil and water

Standards based on processes (waterfall, iterative, incremental)Software engineers aware of alternative methodologiesRegulators expect process artifacts (waterfall-like)We are aware that the ‘old way’ is not always the best way

Page 6: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

6 A Barnes 14 July 2006

“Oil”Lightweight Processes

Agile Manifesto: ……….we have come to value

Individuals and Interactions over processes and tools Working Software over comprehensive documentation

…Responding to Change over following a plan

• When I say Agile I mean Agile…..anymethodology that shares these values.

Agile Manifesto: ……….we have come to value

Individuals and Interactions over processes and tools Working Software over comprehensive documentation

…Responding to Change over following a plan

• When I say Agile I mean Agile…..anymethodology that shares these values.

Agile Manefesto http://agilemanifesto.org/

Page 7: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

7 A Barnes 14 July 2006

“Water”Formal (Heavy) Processes

CMM(I) – processes based on two assumptions– A system is best managed by disaggregating it into

defined work products that are converted from an input to an output state to achieve a specific design goal

– A mature Software Organization is one in which all activities are planned and then controlled to achieve specific design goals

CMM(I) – processes based on two assumptions– A system is best managed by disaggregating it into

defined work products that are converted from an input to an output state to achieve a specific design goal

– A mature Software Organization is one in which all activities are planned and then controlled to achieve specific design goals

Regulators and auditors generally value:

Processes and Tools over individuals and interactions

Documentation over working software

Following a plan over responding to change

Page 8: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

8 A Barnes 14 July 2006

Can Agile and Formal processes co-exist?

AGILE

• People based

• Adaptive

• Unpredictable or rapidly changing requirements.

• Low criticality

• Senior developers

AGILE

• People based

• Adaptive

• Unpredictable or rapidly changing requirements.

• Low criticality

• Senior developers

FORMAL

• Process based

• Predictive

• Stable and known requirements

• High criticality

• Junior developers

FORMAL

• Process based

• Predictive

• Stable and known requirements

• High criticality

• Junior developers

Boehm, B.; R. Turner (2004). Balancing Agility and Discipline: A Guide for the Perplexed. Boston, MA: Addison-Wesley. ISBN 0321186125.

Horses for Courses

Page 9: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

9 A Barnes 14 July 2006

Do we want Light & Heavy processes to coexist?

• Instead of trying to make XP work rationally with the firm's existing processes, each side is pointing fingers at the other.

No one seems to be trying to apply XP within the SW-CMM context rationally and profitably as the sages have suggested ...

XP adherents feel they don't have time for the formality ...

Process proponents argue ... quality will suffer and customer satisfaction will be sacrificed.

Reifer, Don. "XP and the CMM." IEEE Software May/June 2003: 14-15.

• Instead of trying to make XP work rationally with the firm's existing processes, each side is pointing fingers at the other.

No one seems to be trying to apply XP within the SW-CMM context rationally and profitably as the sages have suggested ...

XP adherents feel they don't have time for the formality ...

Process proponents argue ... quality will suffer and customer satisfaction will be sacrificed.

Reifer, Don. "XP and the CMM." IEEE Software May/June 2003: 14-15.

Page 10: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

10 A Barnes 14 July 2006

Can we manage withjust one or the other?

• Agile and Formal processes have different strengths

• If different methodologies are better for different problems

– What happens if one project has characteristics that needs both Agile and Formal processes?

• If a project is best addressed with an Agile lifecycle – What do we show the regulators?

• If a project is best addressed with a planned incremental lifecycle

– How do we manage project uncertainty?

• Agile and Formal processes have different strengths

• If different methodologies are better for different problems

– What happens if one project has characteristics that needs both Agile and Formal processes?

• If a project is best addressed with an Agile lifecycle – What do we show the regulators?

• If a project is best addressed with a planned incremental lifecycle

– How do we manage project uncertainty?

Page 11: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

11 A Barnes 14 July 2006

An innovation projectOne process or two?

Resources

TimeApplied Research

Technology TransferSkunk Works

Official Project Last-minuteChanges

UNCERTAINTY(lots of)

CERTAINTY(sort of)

Page 12: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

12 A Barnes 14 July 2006

Mixing up methodologies

• Agile + Formal mixed = best of both worlds???

• Three approaches to mixing Agile processes into a formal process environment.

– Redefine the formal environment– Convert to formal process late in the project– Merge Agile into the formal process

• Each approach either– Devalues Agile Process– Devalues Formal Process– Or both!

• Agile + Formal mixed = best of both worlds???

• Three approaches to mixing Agile processes into a formal process environment.

– Redefine the formal environment– Convert to formal process late in the project– Merge Agile into the formal process

• Each approach either– Devalues Agile Process– Devalues Formal Process– Or both!

Page 13: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

13 A Barnes 14 July 2006

Mixing by redefinitionYou want specs and documents?

• Writing code is part of the specification process, and the software itself is documentation.

Frank Jacquette, Agile Methodologies in a Validated Setting

• Writing code is part of the specification process, and the software itself is documentation.

Frank Jacquette, Agile Methodologies in a Validated Setting

http://www.jacquette.com/articles/agilevalidation.shtml

AgileIteration

Code

TestsTests

AgileIterationAgile

IterationAgileIterationAgile

IterationAgileIterationAgile

Iteration

Design= Code

Code

Specification= Code

Release

Test Results

Page 14: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

14 A Barnes 14 July 2006

Mixing by redefinitionYou want specs and documents?

• Writing code is part of the specification process, and the software itself is documentation.

Frank Jacquette, Agile Methodologies in a Validated Setting

• Writing code is part of the specification process, and the software itself is documentation.

Frank Jacquette, Agile Methodologies in a Validated Setting

AgileIteration

Code

TestsTests

AgileIterationAgile

IterationAgileIterationAgile

IterationAgileIterationAgile

Iteration

http://www.jacquette.com/articles/agilevalidation.shtml

Design= Code

Code

Specification= Code

Release

Test Results

VERDICT: NOT CONVINCED

Pure Semantics

Ad hoc product functionality

Does Frank design avionics software?

Page 15: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

15 A Barnes 14 July 2006

Late conversion Just a mere formality

Establish ProjectRequirements

Establish SoftwareDesign

Code

Establish Software

Tests

Release

Test ResultsTest

Plans

Code

AssumedRequirements

AutomatedTests

ProjectPlans

AgileIteration

Requirements

Tests

AgileIterationAgile

IterationAgileIterationAgile

IterationAgileIterationAgile

Iteration

Page 16: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

16 A Barnes 14 July 2006

Late conversion Just a mere formality

Establish ProjectRequirements

Establish SoftwareDesign

Code

Establish Software

Tests

Release

Test ResultsTest

Plans

Code

AssumedRequirements

AutomatedTests

AgileIteration

Requirements

Tests

AgileIterationAgile

IterationAgileIterationAgile

IterationAgileIterationAgile

Iteration

VERDICT: NOT CONVINCED

Testing in Quality at last minute

Just using formal lifecycle to create documents

A Waterfall for show rather than value

Page 17: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

17 A Barnes 14 July 2006

Make Agile Heavyweight!You want documents not code

Development Iteration

EstablishNew

Requirements

Establish NewDesign

RegressionVerification

Plan

Establish NewTests

NewCode

NewVerification

Results

Development Iteration

EstablishNew

Requirements

Establish NewDesign

RegressionVerification

Plan

Establish NewTests

NewCode

NewVerification

Results

Development Iteration

EstablishNew

Requirements

Establish NewDesign

RegressionVerification

Plan

Establish NewTests

NewCode

NewVerification

Results

Established DesignEstablished Tests

Established Requirements

Code

ProjectRequirements

SoftwareRegression

Test

Release

Page 18: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

18 A Barnes 14 July 2006

Make Agile Heavyweight!You want documents not code

Development Iteration

EstablishNew

Requirements

Establish NewDesign

RegressionVerification

Plan

Establish NewTests

NewCode

NewVerification

Results

Development Iteration

EstablishNew

Requirements

Establish NewDesign

RegressionVerification

Plan

Establish NewTests

NewCode

NewVerification

Results

Development Iteration

EstablishNew

Requirements

Establish NewDesign

RegressionVerification

Plan

Establish NewTests

NewCode

NewVerification

Results

Established DesignEstablished Tests

Established Requirements

Code

ProjectRequirements

SoftwareRegression

Test

Release

VERDICT: NOT CONVINCED

Benefits of Agile are lost

Confidence in final product lost

More document rework than development

Anything but Lean!

Page 19: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

19 A Barnes 14 July 2006

If methods don’t mixWhy not just use Agile?

• …. they never -- ever -- disclose the risks and the downsides. …….The truth is that these practices come at a price, and for a lot of organizations, the price gets high very quickly. Agile development will never go far if its proponents keep ignoring these organizations and make condescending comments to its members.

• Risks of using Agile processes are unknown– The risk reduction using formal processes is known– Fear of the unknown isn’t a valid reason to avoid Agile

completely

• …. they never -- ever -- disclose the risks and the downsides. …….The truth is that these practices come at a price, and for a lot of organizations, the price gets high very quickly. Agile development will never go far if its proponents keep ignoring these organizations and make condescending comments to its members.

• Risks of using Agile processes are unknown– The risk reduction using formal processes is known– Fear of the unknown isn’t a valid reason to avoid Agile

completely

Posting: Joseph Ottinger on June 09, 2006www.theserverside.com

Page 20: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

20 A Barnes 14 July 2006

What is the risk in just using Agile?

Potential product risks mitigated by formal methodologies

• Functional Risk– Code does not actually do what is claimed

• Integrity Risk– Code may directly cause hazards, or may interfere with the

correct operation of other parts of the software

• Compliance Risk– Code may not comply with legal requirements for its

development

• Quality Risk– Code may not have the required quality attributes

Potential product risks mitigated by formal methodologies

• Functional Risk– Code does not actually do what is claimed

• Integrity Risk– Code may directly cause hazards, or may interfere with the

correct operation of other parts of the software

• Compliance Risk– Code may not comply with legal requirements for its

development

• Quality Risk– Code may not have the required quality attributes

Page 21: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

21 A Barnes 14 July 2006

Agile qualitySome expected attributes

Agile Quality attributes

• Changeability– Can the software be easily changed without compromising

functionality?

• Testability– Can the design be easily tested?

• Acceptability– Does the prototype address the needs of differing user groups?

• Understandability– Does it adequately address human factors and usability?

Software Engineering — Product Quality — Part 1: Quality Model. ISO, Geneva, Switzerland, 2001. ISO/IEC 9126-1:2001(E)

Agile Quality attributes

• Changeability– Can the software be easily changed without compromising

functionality?

• Testability– Can the design be easily tested?

• Acceptability– Does the prototype address the needs of differing user groups?

• Understandability– Does it adequately address human factors and usability?

Software Engineering — Product Quality — Part 1: Quality Model. ISO, Geneva, Switzerland, 2001. ISO/IEC 9126-1:2001(E)

Page 22: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

22 A Barnes 14 July 2006

Agile quality?More challenging attributes

• Completeness - Does it do everything it claims to do?

• Accuracy -Does it actually do what it claims to do?

• Interoperability - Does it work with other system interfaces?

• Dependability - Is the implementation robust and fault tolerant?

• Maturity - Does it demonstrate a reduction in latent defects over time?

• Capability - Does it function correctly at limits of throughput and capacity?

• Consistency - Are all artifacts consistent with each other?

• Install-ability - Can it be efficiently be installed/manufactured without loss of quality?

• Completeness - Does it do everything it claims to do?

• Accuracy -Does it actually do what it claims to do?

• Interoperability - Does it work with other system interfaces?

• Dependability - Is the implementation robust and fault tolerant?

• Maturity - Does it demonstrate a reduction in latent defects over time?

• Capability - Does it function correctly at limits of throughput and capacity?

• Consistency - Are all artifacts consistent with each other?

• Install-ability - Can it be efficiently be installed/manufactured without loss of quality?

Page 23: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

23 A Barnes 14 July 2006

Co-existing Processes

I propose that:

• Two contrasting processes can successfully co-exist provided that

– The strengths of each process are respected– The project needs change significantly during the lifecycle,

and– The interface between processes is managed

I propose that:

• Two contrasting processes can successfully co-exist provided that

– The strengths of each process are respected– The project needs change significantly during the lifecycle,

and– The interface between processes is managed

Page 24: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

24 A Barnes 14 July 2006

Separate project phasesSeparate processes

High Project Risk Adaptive Phase• Focus is on reducing project risk

•Architecture, Algorithm, Features, Interfaces, Capability

• Deliverables are not just code – but also drafts of defining documents

•Ends when project risk has been lowered to an acceptable level

Low Project Risk Predictive Phase• Focus is on reducing product risk

• Few Unknowns

•Planned iterations

•Deliverables are approved artifacts for ‘customer’

•Ends when product risk has been lowered to an acceptable level

Page 25: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

25 A Barnes 14 July 2006

Managing the gapbetween two phases

ProjectRequirements

Release

ProposeFeature

BuildFeature

TestFeature

DesignFeature

DevelopModel Draft

DesignModels

DraftRequirements

DraftTests

DraftCode

ProjectPlans

ImportedDesign

ImportedTests

ImportedCode

High Project Risk Adaptive Phase Low Project Risk Predictive Phase

Plan Change

ChangeCode

TestResults

DesignChange

DefineIteration

PlanTests

Page 26: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

26 A Barnes 14 July 2006

Bridging the gap

• Artifacts transferred between adaptive and predictive phases as a Prototype:

• Ensure– Predictable Functionality– Predictable Integrity– Predictable Quality

• Avoid importing product risk with Prototype

• Artifacts transferred between adaptive and predictive phases as a Prototype:

• Ensure– Predictable Functionality– Predictable Integrity– Predictable Quality

• Avoid importing product risk with Prototype

DraftDesignModels

DraftRequirements

DraftTests

DraftCode

ProjectPlans

ImportedDesign

ImportedTests

ImportedCode

Page 27: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

27 A Barnes 14 July 2006

Bridging the gap

Functional Risk:

• Do we know what the prototype software is supposed to do?

• Are the project requirements similar to prototype requirements?

• Is the environment used for the prototype similar to the project target?

NO? – Stay in first phase

or if so bad just

Functional Risk:

• Do we know what the prototype software is supposed to do?

• Are the project requirements similar to prototype requirements?

• Is the environment used for the prototype similar to the project target?

NO? – Stay in first phase

or if so bad just

Are requirementsand environment

similar?

PerformRequirements

GapAnalysis

Page 28: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

28 A Barnes 14 July 2006

Bridging the gap

Integrity Risk:

• Can the prototype itself cause hazardsphysical harm, corporate harm, financial harm

• Could the prototype cause other parts of our system to cause hazards…

• Will we be relying on the prototype to mitigate hazards?

YES? – Find those parts of the prototype

and throw the code away!

Integrity Risk:

• Can the prototype itself cause hazardsphysical harm, corporate harm, financial harm

• Could the prototype cause other parts of our system to cause hazards…

• Will we be relying on the prototype to mitigate hazards?

YES? – Find those parts of the prototype

and throw the code away!

Could Prototype

Cause Hazard?

Identify Hazards

EvaluateControl Measures

Page 29: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

29 A Barnes 14 July 2006

Bridging the gap

Quality Risk:

• Does the prototype lack quality attributes that could result in product risk…

YES? – Develop a plan to improve deficient

attributes– Develop a plan to verify that the remedial

actions have been successful.

Quality Risk:

• Does the prototype lack quality attributes that could result in product risk…

YES? – Develop a plan to improve deficient

attributes– Develop a plan to verify that the remedial

actions have been successful.

Is prototypelacking

attributes?

Review prototypeagainst

Desired quality attributes

Page 30: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

30 A Barnes 14 July 2006

Bridging the gap

Example Quality Attributes Review CriteriaExample Quality Attributes Review Criteria

Can the prototype be installed/manufactured without loss of quality?Install-ability

Are all the draft artifacts consistent with each other?Consistency

Will prototype function correctly at the limits of throughput and capacity?Capability

Does the prototype demonstrate a reduction in latent defects over time?Maturity

Is the prototype adequately robust and fault tolerant?Dependability

Is the prototype compatible with other system interfaces?Interoperability

Does the prototype correctly address each assumed requirement?Accuracy

Does the prototype fully address its assumed requirements?Completeness

QuestionAttribute

Page 31: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

31 A Barnes 14 July 2006

One project – 2 methodologies

Resources

TimeApplied Research

Technology TransferSkunk Works

Official Project Last-minuteChanges

AGILEPROCESSES

FORMALPROCESSES

Page 32: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

32 A Barnes 14 July 2006

Summary

• Lightweight processes and formal regulatory environments do not mix!

– A brave man would try to convince the FDA that Agile is OK

• Agile and Formal processes do not mix!– But they can co-exist

• A strategy– Use Agile processes to reduce Project risk – Transfer a prototype with draft documents– Review prototype for Product Risk

Functional, Integrity, Quality (and Compliance)– Introduce accepted drafts into formal iterative/evolutionary

lifecycle as appropriate– Use formal processes to reduce Product Risk

• Lightweight processes and formal regulatory environments do not mix!

– A brave man would try to convince the FDA that Agile is OK

• Agile and Formal processes do not mix!– But they can co-exist

• A strategy– Use Agile processes to reduce Project risk – Transfer a prototype with draft documents– Review prototype for Product Risk

Functional, Integrity, Quality (and Compliance)– Introduce accepted drafts into formal iterative/evolutionary

lifecycle as appropriate– Use formal processes to reduce Product Risk

Page 33: Integrating lightweight software processes into a ...rdn-consulting.com/blog/wp-content/uploads/2007/07/... · Integrating lightweight software processes into a regulated environment

33 A Barnes 14 July 2006

Questions

My email

[email protected]

My email

[email protected]