Difference between revisions of "Open Source ROI Model"

From eLinux.org
Jump to: navigation, search
(more ideas for factors)
Line 18: Line 18:
 
** downloading costs = cost to train inexperienced engineers in downloading plus cost to download
 
** downloading costs = cost to train inexperienced engineers in downloading plus cost to download
 
** Integration cost = finding cost plus conflict resolution cost plus adaptation cost plus quality assurance cost
 
** Integration cost = finding cost plus conflict resolution cost plus adaptation cost plus quality assurance cost
 +
*** Integration cost also includes integration with 3rd-party software (not modeled yet, above is integration of non-mainlined patches)
 
** Finding cost = cost to train inexperienced engineers in finding plus search time plus downloading cost plus evaluation cost
 
** Finding cost = cost to train inexperienced engineers in finding plus search time plus downloading cost plus evaluation cost
 
** conflict resolution cost = cost to resolve patch conflicts
 
** conflict resolution cost = cost to resolve patch conflicts
 
***  Conflict resolution depends on patch series breadth (patch locality), and magnitude of version gap (among other things)
 
***  Conflict resolution depends on patch series breadth (patch locality), and magnitude of version gap (among other things)
 +
** Adaptation cost = engineering cost to adapt existing code to current situation
 +
*** Adaptation may involve re-writing existing code, or developing new code (drivers) where they don't exist
 +
*** Adaptation is the  programming companies have to do to fill in the gaps left by open source code
 +
*** Adaptation costs increase as hardware is customized, and decrease as commodity hardware is used
 +
*** Adaptation costs likely decrease when older hardware is used (due to software "showing up" for hardware over time)
  
 
== Effect of mainlining code ==
 
== Effect of mainlining code ==

Revision as of 10:59, 31 May 2007

Here are some loose thoughts on Open Source contribution Return On Investment (ROI):

I once created a game called TuxBucks which tried to model the dynamics of open source ROI.

Below is a list of some factors affecting open source ROI, which I think would be good to model. I have no idea, for most of these, how to come up with realistic values for these factors.

Overview

  • Total return from open source = amount of code that is relevant to your product, minus acquisition and integration cost, minus participation cost
    • Let RP = amount of code relevant to your product
    • Let AC = acquisition cost
    • Let IC = integration cost
    • Let PC = participation cost
  • the formula becomes ROI = RP - AC - IC - PC
  • Acquisition cost = license fees plus subscription fees plus downloading costs
    • downloading costs = cost to train inexperienced engineers in downloading plus cost to download
    • Integration cost = finding cost plus conflict resolution cost plus adaptation cost plus quality assurance cost
      • Integration cost also includes integration with 3rd-party software (not modeled yet, above is integration of non-mainlined patches)
    • Finding cost = cost to train inexperienced engineers in finding plus search time plus downloading cost plus evaluation cost
    • conflict resolution cost = cost to resolve patch conflicts
      • Conflict resolution depends on patch series breadth (patch locality), and magnitude of version gap (among other things)
    • Adaptation cost = engineering cost to adapt existing code to current situation
      • Adaptation may involve re-writing existing code, or developing new code (drivers) where they don't exist
      • Adaptation is the programming companies have to do to fill in the gaps left by open source code
      • Adaptation costs increase as hardware is customized, and decrease as commodity hardware is used
      • Adaptation costs likely decrease when older hardware is used (due to software "showing up" for hardware over time)

Effect of mainlining code

  • what costs go up in order to mainline code?
    • cost to generalize code (very hard to gauge?)
    • cost to convert code to submission standards
    • cost to forward-port code to the latest project version
      • may be unavoidable if your code is dependent on other items (especially board support or architecture code)
      • could factor in cost to forward-port the board support or architecture code
  • what costs go down as a result of mainlined code?

Effect of not being current with your source code version

  • What is effect of not being current?
    • raises mainlining cost (see mainlining code costs)

Effect of experience with open source

  • What are switching costs for developers entering open source work?
    • How expensive is it to learn diff+patches or git, for example?
    • What is the magnitude of the learning curve for participating?
    • Does the learning curve increase over time (I believe it does, as complexity of code bases grow)
  • Can this be measured by examining

Dynamics of network effects

  • What number of contributors is needed before open source becomes useful?
    • number of contributors affects amount of contributions
    • skill of contributors affects value of contributions
    • amount and value of contributions affects the total code base size
    • total code base value affects likelihood of code relevance to product (really?)
  • Can this be modeled, realistically?

Dynamics of participation costs

  • as participation increasing, training cost go down
    • finding cost is reduced
    • mainlinging cost is reduced
    • integration cost is reduced??