do software factories live up to the promise? chris lowndes avanade

40

Upload: nathaniel-stevens

Post on 24-Dec-2015

216 views

Category:

Documents


1 download

TRANSCRIPT

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) - Trading System Schematic

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

Demo

Typical SOA Landscape

Service Consumer Applications

FoundationServices

AggregatorServices

Orders

Customers Items

Demo

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) – Broker System Schematic

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) – Factory output

Product Specs

DSL & Guidance

Test Conditions

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

An Emerging Pattern

Agile & Efficient Software

Development

• 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?

Rosario Walkthrough

Rosario Walkthrough

Future?Today

A Vision of the Future

• 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

Q & A

Thank You