Agile Software Integration
Agile Software Integration
James Haslam
James Haslam
j.haslam@warwick.ac.uk
© 2006 IARC
Agenda
Agenda
•
The Problem
•
Linear Software Development
•
Example using The “V”-Model
•Suitability of The “V”-Model
•
Software Integration
•
Definition
•Example
•
Linear Software Integration
•
Unsuitability
•
Integration Storm
•
The Answer (Go Agile)
•
Fusion
•
Diagram
•
Main Points (Planning, Meetings, Testing)
•Benefits
The Problem
© 2006 IARC
The Problem
The Problem
Automotive =
Projects run over time, features are cut,
testing is inadequate which causes more warranty claims.
Defence =
Projects may take 7 years, with 25% “spare”
time planned at the end of the project to resolve issues.
Linear Software
Linear Software
Developme
Developme
example using
the “V”-Model
© 2006 IARC
Linear Software Development
Linear Software Development
Traditionally, typical Software Development projects
could be accomplished in-house:
• Projects were small,
• There was good contact with the customer,
• All the requirements were understood,
• The design was simple enough to know there were no upfront bugs,
• There was only one team working on the software,
Definition of Integration
Definition of Integration
The development of a complex software
system as simpler sub-systems that plug
together.
Often involving multiple teams or
suppliers to provide each sub-system.
© 2006 IARC
Example of Integration
Example of Integration
Example for an Automotive Infotainment
System:
Controller
Touch
screen
DAB
Radio
Amplifier
Bluetooth
Phone
Satellite
Navigation
Stereo
Linear Software Integration
© 2006 IARC
Linear Software Integration
Linear Software Integration
Nowadays, typical Software Development projects have
grown to be so complex, and require specialist features,
that a supply-chain is required:
• Projects are very big,
• The customers don't know what they want,
• The customer changes their mind continually,
• The design is too complicated to perfect up-front,
• There are multiple suppliers working on the same project,
• The suppliers don't have enough opportunity to communicate,
Linear Software Integration
Linear Software Integration
Continued…
• The suppliers have resources tied up in other projects,
• The suppliers won't release software until it is finished (= infrequent
integration testing),
• Bugs are hard to find as the system is not developed gradually and
tested progressively,
• All parties blame each other for problems,
• Risk is only realizable at the end of the project (when all suppliers
integrate the finished product),
© 2006 IARC
The Integration Storm
The Answer?
The Answer?
•Collaborative Planning
•Synchronised Development
•Evolutionary Development
•Iterations
•Time-boxing
•Progressive Testing
© 2006 IARC
fusion
–
The merging of different
elements into a union.
A fusion of technologies,
teams, and cultures into one
unit.
The FUSION Process
© 2006 IARC
Typical Agile Timeline
Typical Agile Timeline
Development Monthly Timeline
1 24 3 0 7 14 21 28 Planning Meeting Development Integration / Test Weekly meeting days
Main Points : Planning
Main Points : Planning
•
Dependencies must be known before detailed
planning occurs
•Essential that everyone works at the same
level of decomposition
© 2006 IARC
Main Points : Meetings
Main Points : Meetings
• Meetings are critical for keeping the project
responsive
• Monthly – all suppliers and Integration Engineers
•
Agree prioritised list of features for development • Resolve integration problems from previous iteration• Weekly – Integration Engineers
•
Suppliers report to Integration Engineers ahead of meeting via a form, answering:•
What did you do this week? • What will you do next week?Main Points : Testing
Main Points : Testing
• Smoke Test at the end of each iteration
• Not detailed acceptance test
• No requirements for perfect bug-free code
• All suppliers must deliver what they have
• Detailed functional testing concurrently with
next iteration
• Outputs feed into next monthly planning meeting
• Acceptance testing required for agreed
© 2006 IARC
Benefits of Fusion
Benefits of Fusion
• Early Risk Detection
• Collaborative Design, Development & Testing
• Enhanced supply-chain communications
• Platform-sharing
• Stronger systems-level
• Evolutionary Requirements
• Cooperative Testing
• Progressive Testing
• Early bug detection
Case Studies
Case Studies
•
3 Case Studies with a large automotive manufacturer,
and 5 companies within their supply-chain
(1 completed, 1 on-going, 1 future)
•
Benchmarking for industrial best practice.
Companies within:
• Aerospace
• Automotive
• Consumer Electronics
© 2006 IARC
Next Steps
Next Steps
•
Complete existing case studies and evaluate results
•
Publish results in international journals
•
Launch FUSION process as a website
•
Publish training materials and handouts
•
Contact large companies (inc. initial partners)
• Share results with management
• Run training Courses