Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Why all software teams move towards zero innovation speed - And what to do about it!

3 601 vues

Publié le

Software is eating the world and has become a major driver for economic growth. Companies are spending increased percentages of their R&D budget on software. Unfortunately, not all of this increased spending is of true economic benefit for the company and its customers. Legacy software costs eat significant portions of the budget. Industry is in need of breakthrough innovations to reduce software maintenance cost. Philips Healthtech Image Guided Therapy Systems successfully applied model-driven engineering techniques to reduce the software stack with over 1 million lines of code, significantly lowering the cost of maintenance.

Publié dans : Logiciels

Why all software teams move towards zero innovation speed - And what to do about it!

  1. 1. Dirk-Jan Swagerman Senior Director Imaging Chain Cluster September 2017 Why all software teams move towards zero innovation speed. And what to do about it
  2. 2. Our businesses in 20161 38% of Group sales 18% of Group sales41% of Group sales Sales of EUR 17.4 billion Diagnosis & Treatment businesses Connected Care & Health Informatics businesses Personal Health businesses 1 As per Q2 2017, Other accounts for 3% of sales and includes HealthTech Other and Legacy Items
  3. 3. We address customer and consumer needs along the health continuum Healthy living Prevention Diagnosis Treatment Home care Connected care and health informatics
  4. 4. We address customer and consumer needs along the health continuum Healthy living Prevention Diagnosis Treatment Home care Connected care and health informatics
  5. 5. The gardeners dilemma https://www.linkedin.com/pulse/gardeners-dilemma-dirk-jan-swagerman ` Year 1 Year 2 Year 3 Year 5Year 4 Sound bite: Maintenance is great, if you get paid!
  6. 6. All teams move to zero productivity 𝑃𝑡 = 𝑃0 × 𝑒−𝛼𝑡 α is the rate of maintenance (non-quality + obsolescence) The lower your quality, the quicker you move to zero productivity
  7. 7. What can we do? • Write less code • Write better code • Reduce code
  8. 8. What can we do? – Be brief “I didn't have time to write a short letter so i wrote a long one instead” Mark Twain Succinctness 1.expressed in few words; concise; terse. 2.characterized by conciseness or verbal brevity. 3.compressed into a small area, scope, or compass.
  9. 9. What can we do? - Greenfield Write less code Write better code Less code = less bugs Less ways to express it wrong = less bugs 1. Use domain specific languages
  10. 10. Domain Specific Language “DSLs are small languages, focused on a particular aspect of a software system” Martin-Fowler
  11. 11. Succinctness Getting closer to Kolmogorov complexity Kolmogorov complexity: The length of the shortest computer program that produces the desired output You cannot get closer to low Kolmogorov complexity than with a well designed DSL Assembly 3GL 4GL UML DSL
  12. 12. ComMA Component Modeling & Analysis Design better interfaces faster and concisely Comma is a DSL where the ‘particular aspect’ happens to be software interface design Co-owned and created by Philips and TNO-ESI
  13. 13. SellerBuyer What is the problem with software interfaces? Give contracts Wants car Signs contract Contract Clause A: Seller delivers car to Buyer Clause B: Buyer pays Seller 100 k€ Interface between parties
  14. 14. What are interfaces? In which order are Clause A and Clause B executed? What is the time between the execution of the clauses? SellerBuyer SellerBuyer Pays amount Orders Signs contract Delivers Car Signs contract Delivers Car Pays amountTime Contract Clause A: Seller delivers car to Buyer Clause B: Buyer pays Seller 100 k€
  15. 15. What are software interfaces? Software interface are like contracts. In software interfaces specifications: We describe the clauses, We do not describe the order, We do not describe the timing SellerBuyer SellerBuyer Pays amount Orders Signs contract Delivers Car Signs contract Delivers Car Pays amountTime Contract Clause A: Seller delivers car to Buyer Clause B: Buyer pays Seller 100 k€ Described Non Described
  16. 16. What is the proposed solution? We created a toolset called: Component Modeling & Analysis (ComMA) With ComMA interfaces can be described properly, ComMA checks interface conformance SellerBuyer SellerBuyer Pays amount Orders Signs contract Delivers Car Signs contract Delivers Car Pays amountTime Contract Clause A: Seller delivers car to Buyer Clause B: Buyer pays Seller 100 k€ Described W ComMa Described W ComMa
  17. 17. ComMA: Component Modeling & Analysis interface ICamera { types enum Status {OnOK OnFailed} commands Status PowerOn void PowerOff void Click int GetPictureNumber notifications CameraStatus(Status s) LowBattery EmptyBattery } Signature behavior machine camera provides ICamera { init count := 0 initial state Off { transition trigger: ICamera::PowerOn do: reply(ICamera::Status::OnOK) next state: SwitchingOn OR do: reply(ICamera::Status::OnFailed) next state: Off } TR1 in state SwitchingOn command ICamera::PowerOff - [ .. 32.0 ms ] -> reply TR2 in state On command ICamera::Click - [ 10.0 ms .. 100.0 ms ] -> notification ICamera::PictureTaken TR5 notification ICamera::LowBattery then notification ICamera::LowBattery with period 750.0 ms jitter 50.0 ms until notification ICamera::EmptyBattery Behavior Constraints Design documentation Interface code Model based Test Suite Executable Simulator Interface Conformance Check
  18. 18. Design for Six Sigma integration The performance timing of an implementation can monitored and checked statistically. ComMA will check conformance against spec.
  19. 19. ComMA is free to use and download… for non-competitors We are interested in strengthening the ecosystem! Contact jozef.hooman@tno.nl
  20. 20. Positioning DSL: Collision prevention restriction VeryCloseTableTopAndBeam activation distance (TableTop, Beam) < 20 mm effects userGuidance “TableTop and Beam very close” relative limit TableTop*[Rotation, Translation], Beam*[Rotation, Translation] User input on real hardware Poosl simulation System Simulator User Input System Commands
  21. 21. What can we do? - Maintenance 2. Drive quality cultureDrive quality culture
  22. 22. There is too much code in high- tech systems that is not of economic value
  23. 23. Over-production Your software stack is bigger than needed 2 4 Confidential – For Internal Use Only Over-abstraction Over-processing Over-branching Conway's law Your team needs a code down target! https://www.linkedin.com/pulse/why-your-team-needs-code-down-target-dirk-jan-swagerman
  24. 24. 8M Lines of code
  25. 25. Your team needs a code down target! Credits: https://twitter.com/BrennaIvyArt https://www.linkedin.com/pulse/why-your-team-needs-code-down-target-dirk-jan-swagerman 4M Lines of code
  26. 26. 1.8M Lines of code -> 350 KLOC
  27. 27. What can we do? - Maintenance Model based legacy transformation
  28. 28. Model based legacy transformation Acquisition control subsystem 1.8M
  29. 29. Step 1 – Refactor with confidence Gherkin/Specflow to capture legacy behavior in rigorous test harness 1.8M
  30. 30. Step 2 - Model-based migration Opportunity • New field service framework • Collaboration with TNO 1.8M 1.2 M Results • 70% smaller code base than legacy software • 80% effort reduction over manual migration
  31. 31. Step 2 – HW Obsolescence as opportunity Opportunity • Introduction of state of the art hardware IGCIGC FrontEnd Adapter Application State Controller Scenario Controller Image Generation Controller (IGC) Beam Limitation Controller (BLC) BackEnd Controller (BEC) Generator Service Image Detection Service Collimator Service Sequencer Service Misc. IO Service SIB Certeray FDC 0.8M 1.2 M Results • 30% reduction of the code
  32. 32. Step 3 – Continuous ‘refactoring’ Opportunity • Smaller continuous model based refactoring's • State machines modeled in state of the art model based tools 0.8M 0.5 M Results • 40% reduction of the code • Typically using modeling reduces defects found during integration with a factor of 10.
  33. 33. Model based refactoring results 1.3M Lines of code reduction in 4 years! 0.5 M 1.8M
  34. 34. Culture before result Create pull before push Management • Vision – Explain ‘why’ • Support Success Chance = Vision x Support x Skills x Openness x Opportunity Team will identify opportunities! Team • Open to explore • Technical Skills
  35. 35. Summary • Culture before result • Pull before push • Have a code down target! • Interface semantics & timing • State machines • Positioning DSL’s Less code Better code 1. Use domain specific languages Reduce code 2. Drive quality culture 3. Model based legacy transformation • Create a test harness first • Replace legacy with models • Manual • Automated
  36. 36. Questions? @djswagerman https://www.linkedin.com/djswagerman
  37. 37. Philips delivers innovation that matters to you

×