Do Software Factories live up to the Promise?
Description: Do Software Factories live up to the Promise? Chris Lowndes Avanade Software project delivery is under ever increasing pressure Software industrialisation is the new paradigm to address this Numerous forces are acting against factory
Related Topics
Download Presentation
"Do Software Factories live up to the Promise?" is the property of its rightful owner. Permission is granted to download and print the materials on this website for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Presentation Transcript
slide2. Do Software Factories live up to the Promise? Chris Lowndes
Avanade<br>
slide3. 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 Overview<br>
slide4. 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 Overview<br>
slide5. Evolution in Business Systems Batch Processing Terminal/Host Distributed Computing 1950 1970 1990 2010 Core Business Applications Integrated Business Applications EarlyClientServer WebAware SOA<br>
slide6. Evolution in Software Development Task-centric Development Application-centric, Waterfall Development Distributed, Agile Development 1950 1970 1990 2010 KnowledgeWorkerLed WebApplications SOA IT Department Led Vendor Led Enterprise Rigour<br>
slide7. 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 Ever increasing pressure<br>
slide8. 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 Overview<br>
slide9. 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 The need for change<br>
slide10. Paradigm Shift Inception Optimization Maturity Procedural ObjectOrientation Industrialisation Value Time Today (After Kuhn, 1970)<br>
slide11. Software Factory Usage<br>
slide12. Case Study (1) Business Problem 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 Solution SOA trading platform
High-performance web client
Real-time smart blotter
Factory approach and agile methods enabled:
Accelerated build
Consistency
Ease of change<br>
slide13. Case Study (1) - Trading System Schematic<br>
slide14. Case Study (1) - Factory Techniques Employed<br>
slide16. Typical SOA Landscape Service Consumer Applications FoundationServices AggregatorServices Orders Customers Items<br>
slide18. 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<br>
slide19. 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 Overview<br>
slide20. 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? Negative Forces at Work<br>
slide21. Negative Forces at Work 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<br>
slide22. Case Study (2) Business Problem Financial Broker
150 complex products
25 diverse providers
Canonical web data capture
Each product requires:
Schemas
Mappings
Unique workflows
Low budget Solution Canonical UI
Light messaging core
Workflow interpreter
Product Factory:
Encapsulated artefacts
DSL and guidance
Offshore build
Custom ‘compiler’<br>
slide23. Case Study (2) – Broker System Schematic<br>
slide24. Case Study (2) – Delivery Responsibilities Product Factory used to communicate intent to offshore team<br>
slide25. Case Study (2) – Factory output Product Specs DSL & Guidance Test Conditions<br>
slide26. 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<br>
slide27. 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 Overview<br>
slide28. An Emerging Pattern<br>
slide29. Framework Evolution
Patterns & Practices output
VS designer tools Helping Hands VS.Net.net 1 VS 2005.net 2 .net 3 VS 2008.net 3.5 asp.net 2 asp.net 3.5 ado.net 1 ado.net 2 asmx wse wcf wpf wssf asp.net 1 scsf entlib 2 entlib wf entityframework wcsf wix dsl tools silverlight ajax VS 2003.net 1.1 entlib 3 winforms linq<br>
slide30. 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 What’s in the Pipeline?<br>
slide31. Rosario Walkthrough<br>
slide32. Rosario Walkthrough<br>
slide33. Future? Today A Vision of the Future<br>
slide34. 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 Working towards the vision<br>
slide35. 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) Encouraging Collaboration<br>
slide36. 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? Looking for the opportunities<br>
slide37. 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. Conclusion<br>
slide38. 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<br>
Avanade<br>
slide3. 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 Overview<br>
slide4. 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 Overview<br>
slide5. Evolution in Business Systems Batch Processing Terminal/Host Distributed Computing 1950 1970 1990 2010 Core Business Applications Integrated Business Applications EarlyClientServer WebAware SOA<br>
slide6. Evolution in Software Development Task-centric Development Application-centric, Waterfall Development Distributed, Agile Development 1950 1970 1990 2010 KnowledgeWorkerLed WebApplications SOA IT Department Led Vendor Led Enterprise Rigour<br>
slide7. 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 Ever increasing pressure<br>
slide8. 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 Overview<br>
slide9. 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 The need for change<br>
slide10. Paradigm Shift Inception Optimization Maturity Procedural ObjectOrientation Industrialisation Value Time Today (After Kuhn, 1970)<br>
slide11. Software Factory Usage<br>
slide12. Case Study (1) Business Problem 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 Solution SOA trading platform
High-performance web client
Real-time smart blotter
Factory approach and agile methods enabled:
Accelerated build
Consistency
Ease of change<br>
slide13. Case Study (1) - Trading System Schematic<br>
slide14. Case Study (1) - Factory Techniques Employed<br>
slide16. Typical SOA Landscape Service Consumer Applications FoundationServices AggregatorServices Orders Customers Items<br>
slide18. 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<br>
slide19. 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 Overview<br>
slide20. 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? Negative Forces at Work<br>
slide21. Negative Forces at Work 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<br>
slide22. Case Study (2) Business Problem Financial Broker
150 complex products
25 diverse providers
Canonical web data capture
Each product requires:
Schemas
Mappings
Unique workflows
Low budget Solution Canonical UI
Light messaging core
Workflow interpreter
Product Factory:
Encapsulated artefacts
DSL and guidance
Offshore build
Custom ‘compiler’<br>
slide23. Case Study (2) – Broker System Schematic<br>
slide24. Case Study (2) – Delivery Responsibilities Product Factory used to communicate intent to offshore team<br>
slide25. Case Study (2) – Factory output Product Specs DSL & Guidance Test Conditions<br>
slide26. 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<br>
slide27. 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 Overview<br>
slide28. An Emerging Pattern<br>
slide29. Framework Evolution
Patterns & Practices output
VS designer tools Helping Hands VS.Net.net 1 VS 2005.net 2 .net 3 VS 2008.net 3.5 asp.net 2 asp.net 3.5 ado.net 1 ado.net 2 asmx wse wcf wpf wssf asp.net 1 scsf entlib 2 entlib wf entityframework wcsf wix dsl tools silverlight ajax VS 2003.net 1.1 entlib 3 winforms linq<br>
slide30. 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 What’s in the Pipeline?<br>
slide31. Rosario Walkthrough<br>
slide32. Rosario Walkthrough<br>
slide33. Future? Today A Vision of the Future<br>
slide34. 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 Working towards the vision<br>
slide35. 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) Encouraging Collaboration<br>
slide36. 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? Looking for the opportunities<br>
slide37. 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. Conclusion<br>
slide38. 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<br>