Do Software Factories live up to the Promise? Chris Lowndes Avanade.
-
Upload
nathaniel-stevens -
Category
Documents
-
view
216 -
download
1
Transcript of 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 adoption
• Architects and thought leaders are the key to overcoming these
forces
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
Overview
Evolution in Business Systems
Batch Processing
Terminal/Host
Distributed Computing
1950 1970 1990 2010
Core Business Applications
Integrated Business Applications
EarlyClientServer
WebAware SOA
Evolution in Software Development
Task-centric Development
Application-centric, Waterfall Development
Distributed, Agile Development
1950 1970 1990 2010
KnowledgeWorker
Led
WebApplications SOA
IT Department Led
Vendor Led
Enterprise Rigour
• 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
• 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
• 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
Paradigm Shift
Inception
Optimization
Maturity
Procedural
ObjectOrientation
Industrialisation
Value
TimeToday(After Kuhn, 1970)
Time / $
Fitn
ess
%
Software Factory / DSL usage
General Purpose Language (GPL)
100
80
95
Time / $
Fitn
ess
%
General Purpose Language (GPL)
100
80
95
Software Factory / DSL usage
Software Factory Usage
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
Case Study (1) - Factory Techniques Employed
•WCSF•Product Factor•WCF Client
Web Trading Client
•SCSF/CAB•Data Contract Factor•WCF Client
Dealer Control Client
•SOA Factory•WCF Service Factor•EntLib
App Services
Typical SOA Landscape
Service Consumer Applications
FoundationServices
AggregatorServices
Orders
Customers Items
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
• 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
• 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
Negative Forces at Work
SolutionDomain
ProblemDomain
ResourceAvailability 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
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’
Case Study (2) – Delivery Responsibilities
Component Business Onshore Dev Offshore Dev
Canonical UI •Define•UAT
•Design•Build•Functional Test
Core Runtime •Design•Build•Functional Test
•Integration Test
ProductFactory
•Design•Build•Functional Test
•Refine•Functional Test
Products •Define•UAT
•Integration Test •Build•Functional Test
• Product Factory used to communicate intent to offshore team
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
• 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
• 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 1ado.net 2asmx
wsewcf
wpf
wssfasp.net 1
scsfentlib 2entlib
wf
entityframework
wcsf
wixdsl tools
silverlight
ajaxVS 2003.net 1.1
entlib 3
winforms
linq
• 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?
• 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
• 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
• 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
• 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
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