• Save
The Bespoke Software Product Factory (2007)
Upcoming SlideShare
Loading in...5
×
 

The Bespoke Software Product Factory (2007)

on

  • 1,009 views

A business plan for how to create a service company for building prodcuts based on the ideas of sotware market 3.0, open source and agile methods.

A business plan for how to create a service company for building prodcuts based on the ideas of sotware market 3.0, open source and agile methods.

Statistics

Views

Total Views
1,009
Views on SlideShare
937
Embed Views
72

Actions

Likes
0
Downloads
0
Comments
0

3 Embeds 72

http://localhost 43
http://www.antman.se 28
http://translate.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • För att bäst förstå hur Mogul ska bygga sitt erbjudande måste vi titta på vilken verklighet våra kunder lever i och fråga oss: -Hur hjälper vi bäst våra kunder att lyckas med sina affärer?
  • Individanpassade produkter och tjänster Vi kunder vill ha allt mer individanpassade produkter och tjänster. Och eftersom teknologin gör det möjligt att leverera och vi kunder är kungar i överflödssamhället, vinner det företag som bäst matchar sina varor och tjänster med våra individuella behov.
  • Eftersom informationen vill vara fri och informationsinnehållet i varor och tjänster ökar hela tiden, blir allting allt lättare att kopiera. Livscykeln för en vara eller en tjänst blir därför allt kortare, vilket i sin tur tvingar företag att allt oftare lansera produkter och nya tjänster och nya features. Företag måste fokusera på att kontinuerligt göra det de är bäst på, nämligen att utveckla sina produkter och tjänster
  • Då har de inte tid att ägna sig åt sådant som inte är deras kärnverksamhet. T ex att utveckla applikationer och webtjänster. Undersökningar visar att en typisk intern IT-avdelning lägger mellan 50% och 80% av sina resurser på support och underhåll av den existerande applikationportföljen. Det betyder att det oftast blir tvärstopp eller enorma förseningar när de ska leverera något nytt. Och då tappar de kunder och försäljning. Förlorar lönsamhet. Får mindre budget för nyutveckling. Tappar ännu fler kunder och försäljning...
  • Partner Därför måste dessa företag skaffa sig partners som är specialiserade på att utveckla skräddarsydda applikationer Applikationer som tål snabb affärsutveckling utan att de blir underhållsbördor. En partner som kontinuerligt hjälper dem att utveckla nya features i befintliga applikationer eller nya applikationer.
  • Vi erbjuder våra kunder att: Abonnera på sprintar = ny funktionalitet som realiserar affärsvärden Betala för det du använder Utvecklingstjänsten/produktionstjänsten Support Vi skapar team som är små mjukvaruföretag Med egna produktionslinor
  • Renovation of software through (continuous) refactoring of older,”home made” and non-standardised parts by replacing them with standardised components and architectures. Mogul’s gentrification approach aims at building applications as far as possible based on standard products (mainly Open Source based products) and to move the commoditisation as far up in the application as possible. The goal is that only the unique parts of an application will need to be maintained and developed.

The Bespoke Software Product Factory (2007) The Bespoke Software Product Factory (2007) Presentation Transcript

  • Bespoke Software Product Factory Peter Antman Niklas Hagen Björn Hällström
  • SubVersion Maven Eclipse JUnit eXtreme Programming SCRUM Product Owner Sprint Subscription Software Market 3.0
  • Software Markets
    • Software Market 1.0
      • Pay for the machine
      • get bundled software free or roll your own
      • IBM
    • Software Market 2.0
      • Pay for right to use software
      • Adapt to wrapped box
      • Microsoft and Oracle
    • Software Market 3.0
      • Pay for the value software delivers
      • Assemble freely available parts
      • Linux
  • Adapting to change
  • The Zero effect
    • The connected net -> the connected economy -> the connected people
    • The distance between any point is functionally zero
    • Cost of transaction almost zero
    • Information is free
  • The looking glass
    • Open Source
    • The Long Tail
    • Karaoke economy
  • Open Source is the key
    • Open Source is born with the net and is the engine behind the net
    • Open Source is a way to handle the “net-effect”
    • We can learn from open source
    • We can use open source
    • We can contribute to open source
  •  
  • Open Source economy
  • Commodification
  • Modularization
  • Standardization
  • Open Source Bussines
    • Adding value on top of stack: because of
    Free BSD Linux Apache Linux/JBoss JBoss OS X Google Websphere Support Subscription
  • Tom O'Reilly ”Software is no longer the primary locus of value in the computer industry. The commoditization of software drives value to services enabled by that software.”
  • The Long Tail
    • One size does not fit all
    • There is a market for diversity
    • 57% of what Amazon sales was not available before Amazon existed
  • Where does Mogul fit in?
  • SubVersion Maven Eclipse JUnit eXtreme Programming SCRUM Product Owner Sprint Subscription Software Market 3.0 Customer
  • Karaoke economy
    • A market dominated by indivuals with endless choice
    • In a surplus economy
    = Totally illoyal Zapping Customers
    • Demand tailor made offers
    • Continuous improvments
  • ...Karaoke economy
    • Means hypercompetition for businesses
    • Copy-cats abound
    • Shorter product life cycles
    • Companies need to focus on their core businesses,
      • developing their products and services
  • No time
    • …for doing things they are not (supposed to be) best at
    • Typical IT department spend 50%-80% of time on support and maintenance
    • Slows down time-to-market
    • Loosing customers and sales
    • Less profits
    • Smaller budget for development
    • …etc.
  • They need an agile appDevPartner
    • A highly specialised partner in developing bespoke applications
    • Applications that allow for swift business development and doesn’t become maintenance burdens
    • A partner that helps them to continuously develop new features
  • A Bespoke Software Product Company
    • Based on a service model:
      • Subscription to a production model that is able to deliver new business features in an ongoing cycle
    • WYNIWYG: What You Need Is What You Get
    • For each project we create:
      • A lightweight product company
      • An agile “assembly line”
  • SubVersion Maven Eclipse JUnit eXtreme Programming SCRUM Product Owner Sprint Subscription Software Market 3.0 Customer Project Process
    • Traditionally, the same process control has been applied for simple physical product assembly and complex software development
    • Defined process control does not fit modern software development very well
    Simple vs Complex Processes
    • Requirements change
    • The market changes
    • Technology evolves and changes
    • End users expect new functionality and improvements - constantly
    • End users expect stable, working systems
    • Scrum is tailored for satisfying these needs
    “ Constant Beta” – Release early, release often
  • The four variables – defined process control
    • Ideally, we want all of these variables to be set!
      • High quality
      • These 1000 perfectly described functions
      • Delivery May 1st
      • Fixed price – total cost of 1000 SEK
    • This is IMPOSSIBLE with complex processes!
    • The first that has to be let loose is quality...
    • The second is delivery date...
    • The customer can’t change his mind..
    • No one is happy!
    Time Functionality Cost Quality
    • In Scrum we lock all variables apart from the functionality
    • Thus we do guarantee:
      • A certain quality
      • A certain cost per sprint (sprint subsciption)
      • The possibility to release early and often (each sprint produces a deliverable)
    • But we don’t guarantee a fixed number of functions within each sprint
    • This process control enables the customer to change, add and reprioritize functionality between each sprint
    The four variables – empirical process control Time Functionality Cost Quality
  • The Service Model: Sprint Subscriptions
  • Sprint is the core unit of work Each sprint produces a working system that realises the business value the customer has expressed in the features that where part of the sprint backlog
  • Based on Open Source experiences
    • Open Source inspired way to develop software
      • release early, release often
      • involvment in a community
      • best pracitises
      • commonly used tools
      • deliver only what you need
    • Open Source based stacks
      • Modular stacks
      • Assemble commodity parts
      • Add value on top
      • No home grown systems
      • gentrification
    Machine OS Database Application Server Application Application Stack Commodity Bespoke
  • ... and agile processes
    • Scrum: how we manage the sprint
      • continually translate business needs (values) into software features
      • prioritize expressed features
      • continually re-estimate work needed and needed work
      • measure delivered value through acceptance tests
    • eXtreme Programming: how we work inside the sprint
      • translate software feature into testable and implementable development tasks
      • continually realize business needs (values) as software implementations
      • evolving architecture
      • measure delivered value through unit tests
  • A lightweight product company
    • The application is embedded in a project process mimicking the one a product company usually maintains:
      • Product /inception – from idea to realisation, or from an existing project to a fully transferred application ownership
      • Product Management – from features to implementable user stories and tasks
      • Product Development – from user stories and tasks to implemented and tested functionality
      • Product Maintenance – support and issue management, continuous maintenance of the software stack used by the products
    Product Road Map Product backlog Product Release Support issues Product Management Product Development Product Maintenance Processes Product artifacts
  • The Assembly Line
  • Colaboration platform
    • The portal exists to give all the product stakholders a common communication platform. Here clients meet with project managers, designers, developers, testers and stakeholders.
    • Throughout the product lifecycle it gives:
      • transparency,
      • improves quality,
      • efficiency
      • traceability
    Product Jira : Product and Sprint backlog, as well as Issue Management Subversion/FishEye : Version Management/Control Forum : Communication Wiki : Documentation Luntbuild : Continuous integration Acceptance Testing Time logging Collaboration Portal Dashboard portlets
  • The Project Process
  •  
  • SubVersion Maven Eclipse JUnit eXtreme Programming SCRUM Product Owner Sprint Subscription Software Market 3.0 Customer Project Process Development Process
  • The Development Process – best practices
    • Open Source Software development
        • A proven, lightweight and well known set of tools
        • Reuse of open source modules
        • Knowledge transfer through code access
        • “Scratch your own itch”
        • Release early, release often
    • The software development culture from the UNIX world
        • Modularization
        • Small is beautiful (KISS)
    • Agile system development (eXtreme Programming)
        • Test-driven development
        • Process build to adapt to changes
        • release focused
        • quality control
  • SubVersion Maven Eclipse JUnit eXtreme Programming SCRUM Product Owner Sprint Subscription Software Market 3.0 Customer Projekt Process Development Process Tools
  • Best of breed tools (examples)
    • Maven as a build framework
    • Eclipse and NetBeans as development environments
    • TestNG and JUnit for Unit-tests
    • Cactus and Cargo for integrations tests
    • Luntbuild for continous integration
    • Selenium for GUI acceptance tests
    • JBoss/Tomcat and Apache as server environments
  • The 11 principles
    • Simplicity in design and code: create software that is easy to change
    • Don't overdo it ("ta inte höjd…"): do only what is really needed
    • Refactor mercilessly: strive for optimal design
    • Develop coding standards: communicate ideas through the code
    • Create a common vocabulary: communicate ideas about the code
    • Use test-driven programming: prove the code works
    • Use pair-driven design and problem solving: use collective knowledge
    • Collective ownership of code: spreads responsibilities
    • Integrate often: handle effects of new features
    • Use short iterations: take small controllable steps
    • Release often: have a tight feed-back loop
  • OpenSource Java Bespoke Software / Applications SubVersion Maven Eclipse JUnit eXtreme Programming SCRUM Product Owner Sprint Subscription Software Market 3.0 Customer Project Process Development Process Tools
  •