1 / 40

Do Software Factories live up to the Promise?

Do Software Factories live up to the Promise?. Chris Lowndes Avanade. Overview. Software project delivery is under ever increasing pressure Software industrialisation is the new paradigm to address this Numerous forces are acting against factory adoption

samira
Download Presentation

Do Software Factories live up to the Promise?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Do Software Factories live up to the Promise? Chris Lowndes Avanade

  2. Overview • Software project delivery is under ever increasing pressure • Software industrialisation is the new paradigm to address this • Numerous forces are acting against factory adoption • Architects and thought leaders are the key to overcoming these forces

  3. Overview • Software project delivery is under ever increasing pressure • Software industrialisation is the new paradigm to address this • Numerous forces are acting against factory adoption • Architects and thought leaders are the key to overcoming these forces

  4. Evolution in Business Systems 1950 1970 1990 2010 Batch Processing Core Business Applications Terminal/Host Integrated Business Applications Distributed Computing EarlyClientServer WebAware SOA

  5. Evolution in Software Development 1950 1970 1990 2010 Task-centric Development Vendor Led Application-centric, Waterfall Development IT Department Led Enterprise Rigour Distributed, Agile Development KnowledgeWorkerLed WebApplications SOA

  6. Ever increasing pressure • CIO drive to continually deliver more for less • Budgets under downward pressure • Outsourcing to ring-fence costs • Off shoring to reduce costs • Pace of change increasing • Quality expectations remain constant

  7. Overview • Software project delivery is under ever increasing pressure • Software industrialisation is the new paradigm to address this • Numerous forces are acting against factory adoption • Architects and thought leaders are the key to overcoming these forces

  8. The need for change • We need to promote the state of the software development art • Moving to increasingly higher levels of abstraction has been a trend for some time • More expressive model-driven techniques and tools have emerged. However, most (based on UML) struggle to convey complex implementation details • Software factories and the domain-specific languages they employ can help to bridge the gap between problem model and the programming language

  9. Paradigm Shift Value Industrialisation Maturity ObjectOrientation Optimization Procedural Inception Time Today (After Kuhn, 1970)

  10. Software Factory Usage Fitness % Fitness % 100 100 95 95 80 80 Time / $ Time / $ Software Factory / DSL usage Software Factory / DSL usage General Purpose Language (GPL) General Purpose Language (GPL)

  11. Case Study (1) Business Problem Solution SOA trading platform High-performance web client Real-time smart blotter Factory approach and agile methods enabled: Accelerated build Consistency Ease of change • Global investment bank • Live derivatives trading • Expose sensitive LOB processes over web • Time-sensitive transactions • Critical dealer control • Eight-month delivery window • High degree of change expected

  12. Case Study (1) - Trading System Schematic

  13. Case Study (1) - Factory Techniques Employed

  14. Typical SOA Landscape Service Consumer Applications Orders AggregatorServices Customers Items FoundationServices

  15. Case Study (1) – Lessons Learnt • Gain project stakeholder buy-in to the software factory approach • Front load delivery plan to allow factory preparation and testing • Include capability development as parallel workstream to software development

  16. Overview • Software project delivery is under ever increasing pressure • Software industrialisation is the new paradigm to address this • Numerous forces are acting against factory adoption • Architects and thought leaders are the key to overcoming these forces

  17. Negative Forces at Work • Higher level of abstraction implies deeper skills and experience • Businesses are concerned with the long-term cost and availability of resources • Utilitarian development generally demands basic language skills • Skills to develop and extend software factories come from experienced resources • Junior developers need exposure to build these skills • Where will future generations of experienced developers come from?

  18. Negative Forces at Work Resource Availability Cost • Optimal resource cost and availability occurs around generic 3GL skills • Software factories exist at a higher level of abstraction • Time is needed for the market to shift ProblemDomain SolutionDomain

  19. Case Study (2) Business Problem Solution Canonical UI Light messaging core Workflow interpreter Product Factory: Encapsulated artefacts DSL and guidance Offshore build Custom ‘compiler’ • Financial Broker • 150 complex products • 25 diverse providers • Canonical web data capture • Each product requires: • Schemas • Mappings • Unique workflows • Low budget

  20. Case Study (2) – Broker System Schematic

  21. Case Study (2) – Delivery Responsibilities • Product Factory used to communicate intent to offshore team

  22. Case Study (2) – Factory output Product Specs DSL & Guidance Test Conditions

  23. Case Study (2) – Lessons Learnt • Learning curve less steep than expected – allow longer for first products to come off production line • Test the factory well and there will be fewer problems with the products • Factory approach does not eliminate issues caused by poor specification

  24. Overview • Software project delivery is under ever increasing pressure • Software industrialisation is the new paradigm to address this • Numerous forces are acting against factory adoption • Architects and thought leaders are the key to overcoming these forces

  25. An Emerging Pattern

  26. Helping Hands VS 2008.net 3.5 • Framework Evolution • Patterns & Practices output • VS designer tools .net 3 silverlight VS 2005.net 2 VS 2003.net 1.1 ajax wcsf VS.Net.net 1 entlib 3 entlib 2 scsf wpf entlib asp.net 1 asp.net 2 asp.net 3.5 wssf wcf winforms asmx ado.net 2 wse ado.net 1 wf linq wix dsl tools entityframework

  27. What’s in the Pipeline? • Visual Studio “Rosario” • Comprehensive modelling tools (‘designers’): • Architecture exploration (incl. reverse engineering) • Support for most UML diagram types • Application, layer and deployment models • Baked-in factories (currently expected): • Connected Systems • Web Services • UI • Extendible to your own or third-party factories • Backplane allowing models to communicate and share

  28. Rosario Walkthrough

  29. Rosario Walkthrough

  30. A Vision of the Future Future? Today

  31. Working towards the vision • Factories deliver elements of solutions – not the whole solution • Small, ongoing investments will reap increasing rewards • Project sponsors need to buy in to the need for factory investment • How to sell the idea? The value proposition: • Consistent, high quality results • Increased productivity • Decreased dependence on expensive skilled resource • Maximised reuse of skills & resources • Improved return on investment • SF evolution is not a isolated R&D activity

  32. Encouraging Collaboration • Today’s factories need to be extensible to have a good shelf life • Talented individuals need to be identified and encouraged to collaborate • More added value is gained if collaboration is ubiquitous: • Open source (public IP) • Community source (retained IP)

  33. Looking for the opportunities • Signs that factory techniques would add value: • Developers performing repetitive tasks such as builds, running scripts, changing configuration etc • Common patterns throughout the code indicating that the design could be modelled and some of the source code generated • Unit multiples: • Screens/pages • Services • Data access classes • Onshore/offshore communication scenarios • Factories for your MOSS / BizTalk / CS solutions?

  34. Conclusion • Architects and thought leaders can be proactive in establishing a culture of change and collaboration • Look for the opportunities to industrialise: • Repetitive tasks • Common patterns • Unit multiples • Start small, think big • Do Software Factories live up to the promise? • Not yet. But they can with our help.

  35. Recommended reading • Software Factories • Jack Greenfield, Keith ShortwithSteve Cook, Stuart Kent • Published by Wiley, 2004 • 600+ pages which set the scene for the Industrialisation of Software • The driver behind Microsoft’s factory strategy • A stake in the ground

More Related