Jack Greenfield
- He decided not do do a demo of Web Service Software Factory
- We can do ourselves that at home
- We would not get the vision that people at MS is getting
- It also did not installed correctly on Jack's machine (LOL)
Agenda:
- Learning from other industries
- Mass customisation in software industries
- Supply Chains
- Customer dilemma:
- A few software vendores build rich but generic platforms (1 million markets of 1 vs 1 market of 1 million)
- Hundreds of ISVs build industry and/or segment specific products
- Thousands of SIs customize and integrate
- Millions of customers use and buy customized products
- Other industries employ mass customisation: automobile industry. If a auto maker shuts down can bring down an entire economy.
- The number of possible variants of what combinations we can get in assembly parts of a car are about 10 to 13.
- On average no more than a handful of cars are assembled with exactly the same features in a year
- Why cant we do this with software? The main reason is that we dont have software supply chains.
- Supply chains:
- Different suppliers take different approaches to development
- There are different ways of defining requirements
- Different ways of partitioning systems into components
- Different ways of using platform technologies
- Different ways of deplying system components onto platform technologies
- Different ways of testing system components
- Different ways os customising system features
- Different approaches make it hard to integrate their products to create solutions
- Hard to verify solutions assembled across multiple suppliers
- Hard to determine impact of changes in requirements
- Hard to determine what customisations were made for a specific customer
- Hard to migrate customisations to new versions of the solutions
- Hard to coordinate activities to deliver their solutions
- Mass customisation in software development:
- The road to mass customisation
- Industrialize development using software factories
- The only way of a component to be reusable is when we can predict its future. Example: a database.
- When we know about social circunstances, etc. we can make better predictions
- Form supply chains using aligned suppliers
- Mass customise using globally optimized supply chains
- Industrialize Development
- Model key work products, processes and assets
- Accelerate development with model driven tools and other resources
- Develop solutions by assembly and customisation. This has been ugly, but possible.
- Software factories view is just a way of presenting this problem and the possible solutions. It is not a solution in itself, like Visual Studio designers. They are an instatiation of the view of software factories.
- Publish Factory Metadata
- Opaque Suppliers vs Suppliers As Services
- Opaque: different suppliers use different services and there is no easy way to share factory metadata
- Services: standardization externally facing processes and artifacts. Publish metadata using services.
- Misaligned Suppliers vs Aligned Suppliers
- From factories to Supply Chains
- Factories develop tools and process
- Factories uses Requirements
- A Factory can generate other factories
- Horizontal partitioning
- Separate factory and product development
- Outsource product development using factories developed in-house
- Example: A factory built by Big Vendor is used by an offshores services company
- Use factories supplied by a third party to develop products in-house
- Example: Finantial Services Firm uses a factory built by Big Vendor
- Vertical Partitioning
- Partition factory development
- Purchase assets from upstream suppliers
- Example: Finantial Services Firm uses assets from CRM Vendor
- Sell assets to downstream suppliers
- Example: Finantial Services Firm supplies assets to (...)
- CReates B2B relationships when assets are servi based
- Example: suppliers deliver stubs to hosted services not embedded components
- Local optimization creates bottlenecks
- Suppliers respond individually as changes propagate
- Architectural factories:
- Collaboration factory uses Workflow factory
- Portal factory uses Content Factory
- Collaboration factory specializes Portal factory
- Prerequisites:
- Feature-based requirements engineering
- Required for reasoning about variability and inter-dependencies among requirements
- Unambiguous architecture specification
- Required for systematic development by assembly with adaptation
- Maturation of service oriented technologies
- Required for reasoning about operational qualities (...)
- Homework:
- Are you a supplier, consumer or both?
- Do you form part of a supply chain today?
- Or have your software integrated by others?
- What would it make it easier or what changes would be needed?