An Update
Matthew S. Hamrick
mhamrick at cryptonomicon.net
Mon Apr 2 22:00:44 CEST 2007
D'oh!
I forgot to credit Dick Gabriel (of Lucid fame (or infamy, depending
on your opinion of Lisp and C++)) for the concept of how important
evolution is in software development.
He's penned a number of very interesting papers, available at his
site: http://www.dreamsongs.com/Essays.html
-Cheers
-Matt H.
On Apr 2, 2007, at 12:38 PM, Matthew S. Hamrick wrote:
> Depends on the development model. Peter Naur has an interesting
> take on software development, which I paraphrase... The software
> that's released is an artifact of the true value of the
> organization; the ability to efficiently communicate models in the
> problem space amongst the people that are building the solution.
> [1] My personal take on the famous "shallow bug theory" is that
> successful open source projects built by a lead user[2] community
> tend to be structured in such a way that the highest payoff
> problems are the ones most efficiently modeled. In other words,
> people select models and tools for communicating problem
> descriptions in such a way that refinement of the problem space
> appears very rapid. From an outside perspective, this looks like "a
> bunch of eyeballs fixing a bunch of bugs, some of which are serious"
>
> Baldwin, et al. have pointed out that Conway's Law [3,4] applies to
> open-source as well closed-source software.[5] (Conway's law is, as
> the great oracle of the Wikipedia puts it, "Organizations which
> design systems are constrained to produce designs which are copies
> of the communication structures of these organizations.")
>
> So my assertion here is based on observations by Naur, Conway,
> Baldwin, von Hippel, &c... Corporations that view their value as
> being derived from the software they produce are bound to produce
> processes that are less efficient at developing software that meets
> the needs of lead users. I believe this to be the result of
> interplay between software components, requirements and "value
> extraction." Commercial software vendors are rewarded financially
> by creating systems that lead to lock-in: systems that make it easy
> to change from the competition and hard to change away. Lead users
> are rewarded financially by producing technical solutions that
> solve their immediate problems.
>
> (Commercial) software implementations that lead to "lock-in" are
> less attractive to lead users over the long term because once a
> lead user is locked in, the commercial entity supporting the user
> is less motivated to provide a "cornucopia of options" for the lead
> user's next problem. Commercial software vendors know that their
> systems have real costs for users migrating away from their
> products, and therefore have to produce a lower quality experience
> because they know that their customers know that there are costs
> associated with switching implementations.
>
> Many open source components do not have this requirement. If they
> are to be used, they must continue to be useful in the long term,
> lest they fall by the wayside (FreeSWAN comes to mind.)
>
> To recap:
>
> Lead users are individuals with a financial motivation to use
> technology to solve a business problem. Lead users' problems are
> often unique to their organization (or even to individual users.)
>
> Corporations attempt to build "short head" products in an effort to
> reduce the per-transaction cost (i.e - you want to spread the
> fixed, NRE costs over as many widgets as possible to drive down
> marginal costs so you have the option of lowering price (to compete
> on cost) or increasing margin so you have more money to pour into
> R&D so you can compete on features.)
>
> Corporations who make software toolkits evolved a strategy of
> increasing market-share via "lock-in." (Market share is important
> if for no other reason than when it's time to justify your P/E
> ratio, you can point to lock-in as a way to capture revenue for
> emerging markets. e.g. - "Smartphones are big business over the
> next 10 years, and now that we've cornered the Smartphone market,
> we're sure to capture 70% of the revenue.")
>
> Corporations are motivated to spend money on adding features
> attractive to new user communities (in order to increase market
> share) but sometimes less motivated to spend money on adding
> features for existing users communities who have changing
> requirements (because they know that the benefit of a competing
> solution minus the cost of a competing solution must exceed the
> benefit of their solution plus minus the cost of their solution AND
> the cost of changing to the new solution. I call this the "what do
> you mean you don't want to adopt Cobalt?" effect.)
>
> Open source projects maintained by lead users that survive are
> those whose benefit cost minus adoption cost is greater than that
> of other open source or proprietary implementations; AND whose
> architecture supports low cost modification to meet the next
> generation of lead user requirements.
>
> That "given enough eyeballs, all bugs or shallow" seems to have
> some truth is less a statement about the process of finding bugs
> with a bizillion open source developers and more about the fact
> that the source bases whose architecture makes expansion and
> debugging easy have an evolutionary benefit in the darwinian
> competition for mind-share.
>
> I think it also explains why open source projects can be only 80%
> as good as the last guy needed them to be and still be competitive
> with some proprietary implementations. [6]
>
> -Cheers!
> -Matt H.
>
> References:
>
> 1. Programming as theory building. Microprocessing and
> Microprogramming 15, 1985, pp. 253-261
> 2. The Sources of Innovation and Democratizing Innovation (by von
> Hippel, available at http://web.mit.edu/evhippel/www/books.htm)
> 3. http://en.wikipedia.org/wiki/Conway%27s_Law
> 4. http://www.melconway.com/research/committees.html
> 5. http://www.people.hbs.edu/cbaldwin/DR2/BaldwinArchPartAll.pdf
> 6. Lefty's Law : "Open Source : 80% as good as the last guy needed
> it to be."
>
> On Apr 2, 2007, at 7:28 AM, David Schlesinger wrote:
>
>>
>>> ..."Given enough eyeballs, all bugs are shallow."
>>> I wish there were a way to apply this to hardware,
>>> without the costs being astronomical.
>>
>> Unfortunately, this turns out not to be completely true, even for
>> software. Given enough eyeballs, most localized programming errors
>> are
>> fairly shallow, but things like race conditions, etc., can be quite
>> impenetrable, even with numerous eyeballs to call upon...
>>
>>
>> _______________________________________________
>> OpenMoko community mailing list
>> community at lists.openmoko.org
>> http://lists.openmoko.org/mailman/listinfo/community
>
>
> _______________________________________________
> OpenMoko community mailing list
> community at lists.openmoko.org
> http://lists.openmoko.org/mailman/listinfo/community
More information about the community
mailing list