Agile Software Integration James Haslam j.haslam@warwick.ac.uk © 2006 IARC 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 • Case-studies • © 2006 IARC Agile Software Integration 2 The Problem © 2006 IARC Agile Software Integration 3 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. © 2006 IARC Agile Software Integration 4 Linear Software Developme example using the “V”-Model © 2006 IARC Agile Software Integration 5 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, • It was easy to unit-test as you went along. © 2006 IARC Agile Software Integration 6 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 Agile Software Integration 7 Example of Integration Example for an Automotive Infotainment System: Touch screen Satellite Navigation DAB Radio Controller Amplifier Bluetooth Phone Stereo © 2006 IARC Agile Software Integration 8 Linear Software Integration © 2006 IARC Agile Software Integration 9 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, More… © 2006 IARC Agile Software Integration 10 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), • • There is no time for testing. © 2006 IARC Agile Software Integration 11 The Integration Storm © 2006 IARC Agile Software Integration 12 The Answer? • Collaborative Planning • Synchronised Development • Evolutionary Development • Iterations • Time-boxing • Progressive Testing © 2006 IARC Agile Software Integration 13 fusion – The merging of different elements into a union. A fusion of technologies, teams, and cultures into one unit. © 2006 IARC Agile Software Integration 14 The FUSION Process © 2006 IARC Agile Software Integration 15 Typical Agile Timeline Development Monthly Timeline Weekly meeting Planning Meeting 1 24 3 Development Integration / Test 0 days 7 14 21 28 © 2006 IARC Agile Software Integration 16 Main Points : Planning • Dependencies must be known before detailed planning occurs •Essential that everyone works at the same level of decomposition • Common format for managing product backlog items © 2006 IARC Agile Software Integration 17 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? • What is stopping you from delivering for this iteration? © 2006 IARC Agile Software Integration 18 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 integration points (separate from iteration plan) © 2006 IARC Agile Software Integration 19 Benefits of Fusion • Early Risk Detection • Collaborative Design, Development & Testing • Enhanced supply-chain communications • Platform-sharing • Cooperative Testing • Stronger systems-level • Progressive Testing • Evolutionary Requirements • Early bug detection © 2006 IARC Agile Software Integration 20 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 • Medical Systems © 2006 IARC Agile Software Integration 21 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 • Consult to deploy Fusion within companies © 2006 IARC Agile Software Integration 22