Dennis Forbes on Pragmatic Software Development
Subscribe to RSS
 
Thursday, March 16 2006

Perspective on Ideas

Burlington Lift Bridge

Back on March 13th, I asked how the audience valued ideas in the [software development/product creation] process. This was a question I was spurred to ask after seeing yet another series of "Ideas are worthless!" proclamations on software development discussion boards. As has been the case many times in the past, the statements were quickly propped up by dozens of supporters, certain that it was the shovel in the dirt that makes the project, and not the guy sitting back thinking up grand visions.

Of course, threads on discussion boards have never been an equal representation of commonly held viewpoints: The people who are the most motivated to make their opinion known -- often only those who feel that their views will "fit in" without friction -- are the most likely to reply on such venues, so certain mindsets appear more prevalent than they actually are.

In contrast, over half of the answers to the poll on here (which received a surprizingly high 25 votes. I've found the lurker-to-active participant ratio to be huge on these sorts of things, so I was surprized that 25 people took a moment to express their view. The poll is still active, and will be until the end of the month, so values will of course change) valued ideas as somewhat or equally important as the implementation.

Of course, getting into a topic like this requires some clarification of what exactly is being discussed, otherwise both parties end up burning strawmen rather than actually debating the argument on merit.

The Google Case Study

both_bridges

"Let's make a better search engine than Google!" isn't an idea. It's a lofty goal. "Let's consider links on the web likes votes, and build a search engine that ranks pages based upon the number of votes" is an idea, and it's an idea that has the founders of Google jetting around in their personal 767.

Given the basic foundations of PageRank, backed by a patent (*), the Google founders could have farmed out the implementation to any of countless capable development team (of which there are tens or hundreds of thousands around the globe), though of course the implementation that Google did create is so extraordinary and cost-effective that it took a great basic idea, and gave it a fabulous implementation. I could have been a footnote in history if the wrong team implemented it, requiring another System z mainframe for every 10 simultaneous requests.

The result of the founder's great idea, coupled with a great implementation, was the winning, ultra-high speed search engine that cost-effecitvely scales, providing more computing services to search engine clients around the globe than competitors.

Google is now valued at $68 billion dollars.

burlington_canal

Of course the perfect combination is a developer that brings creativity to their projects. One who doesn't need to be literally directed in every activity, but instead acts as a professional and less as a technician. Similarly, it is beneficial when a developer has respect enough for ideas and the creative process that they appreciate the contribution of peers and partners, understanding the value that it really does bring.

Countless vertical market products have succeeded despite terrible implementations because the founder had knowledge about an industry, and brought some original ideas about how to do it better (perhaps a better process flow, or some ideas about how data could be used more effectively). Given the hostile opinion many developers have of ideas, often these founders end up pulling up Visual Basic or some other RAD tool and developing it themselves, succeeding despite having what technically is a terrible product. How much better it would have been if a developer embraced the idea, and created a first rate technical solution to go with an original, valuable idea.

Software Patents

* - While I think software patents are, in common practice, a travesty, it is the implementation by the USPTO that is the problem -- they're granting ridiculous patents for, excuse the pun, patently obvious "ideas".

Nonetheless, there are many patents that have been granted to non-obvious ideas. This is difficult for many to believe, because in retrospect of course they seem obvious now.

There was once a time when mankind believed that the Earth was the center of the universe, and that our eyes projected light, and that eye-illumination was how we were able to see our surroundings. As ridiculous as those ancient beliefs sound now, it wasn't until someone did some "implementation" (research) based upon an idea (a hypothesis) that we became enlightened. What we know now seems obvious with this additional information.

Reader Comments

My vote is for ideas being equal to implementation.

According to US Patent Office policy, implementation is almost negligible.

Einstein took it a step further when he said "Imagination is more important than knowledge."

But in reality who won, the Athenians or the Spartans?

The answer is based on weather you are in it for the progress of society or the money. The two are not mutually exclusive but they are inversely proportional.
Ryan Elisei @ 3/16/2006 9:00:16 AM
I would rather say:

Software ideas are ubiquitious, (good) implementation is the bottleneck.

A fundamental premise of the patent system is that covered objects are "rare" in a laissez-faire situation and that "more" of them are incited to get produced by the patent system. If ideas are ubiquitious distortion of the market and misallocation will be likely when you apply a patent system for these subject matters.

E.g. not innovative, skilled software developers are awarded but gifted software patent writers with the appropriate financial ressources and legalese skills.

Ubiquitious = (in theory) infinite or very high number of ideas available (laissez- faire, no patent system in place). Now we apply a patent system and hope to get infinite + x. But the question is what the economic value of x would be (provided x greater zero)? When you apply a usual utility function U() with school book features then for a subject matter that is not rare in laissez-faire U(lf+x) - U(lf) is small.

Consider an ideal patent system in that partial model.
laissez-faire: few inventions "lf"
patent system: lf+x inventions with x >> 0
and apply a utility function U(lf+x) - U(lf)

for simplification lf:=0 (no inventions in laissez faire)
and receive U(x) - U(0) = U(x) >> 0

Further we have to consider the overall costs imposed by the system on the market which include fees, litigation, search activities, market risks due to inherent legal incertainty which drive capital costs, opportunity costs such as brain drain (engineers become examiners), distraction (software developers and managers are distracted from their work) and economic welfare effects due to competition restriction. There is no reason to assume that a patent system serves all market players equally, there are economies of scale and portfolio effects and we find a patent market entrance barrier.

Patent system = competition protection mechanism = inherent restriction of competition

So we have to *justify* market interference (=competition restriction) prior to an implementation of a software patent system. If the premises of the system are void there is no reason to use it.
Patent attorneys like to reverse the economic burden of proof: What makes sw so special to justify an exclusion.

I have strong doubts that our current patent system is the right tool for dynamic markets. It is designed for 20 years, examination and granting takes 3 years, similar to a software lifecycle. Tabula rasa: If we design a conceptual protection system for software we will not come up with something similar to the patent system. It is worth to think about Industrial copyright, a cheap-fast-narrow sui generis system. Our current patent system is a sledgehammer, no precision tool: a costly and slow system/broad claims

It is important to understand the patent system as an incentive system. A mouse trap as an incentive system does provide cheese to the mouse only to catch it. A perverted mouse trap would feed the mice with cheese because everybody knows "mouse traps trap mice", although the trapping mechanism of that mouse trap is empirically verified broken. A trapper will be told by the mice that they want to enjoy their right for cheese...
André @ 3/16/2006 12:44:23 PM
"This is difficult for many to believe, because in retrospect of course they seem obvious now."

Even more difficult to believe if you've read books on network theory from the 1970's.

The Google founders could have made the search engine without the patent, if anything it would have been better protected with trade secrets.

Google has no idea if other search engines use pagerank because the internal implementation of the search engines isn't apparent from looking at the results.
Nobody Special @ 3/16/2006 4:41:42 PM
Well, I've had a even better idea before Google... be able to index and search internet interrogating a remote server, that has some software that scan internet and collect info about published pages!
This will prevent ANYONE to ralize a search engine, and no, I will not license my idea, I prefer having the Internet be reduced in it's importance/usability for 20 years (yes, I'm a bad guy).
Of course, I've no implementation of the search engine, since ideas are more valuable than implementation.
Is it ok for you?
Software Patents kill innovation, on obvious or in non-obvious ideas, no difference. Otherwise, think how good would be having patents in mathematics or even in literature, as has been told as an example so many times.
I.e. Ramanujan (Indian mathematic) http://en.wikipedia.org/wiki/Ramanujan
"discovered" by himself around 3.000 theorems, many of them were already knew in West, discovered in some centuries by the cumulative work of many matematicians. I assume I could "invent" page rank by myself, if searching internet were my paramount goal. Google just was the first, but there is no merit in being the first. I don't need huge investment of money and structures to invent it by myself, just time, talent and a PC. Having a patent preventing other do the same, on their own, (and for 20 years!) is rally a shame. In addition, Google "creativity" lays on the shoulder of a huge amount of other's creativity, that if it were patented, would have prevented Google to add it's own creativity (i.e. what about the patent upon the link that British Telecom tryed to enforce some years ago? Would we have Google without links? Isn't the idea of a link much brighter than a simple PageRank, at those times? The patent upon links would expire in 2009...
http://www.cptech.org/ip/business/hyperlink.html
So no, no, no, no software patents are good, whatever "genious" they can contain.
markit @ 3/19/2006 2:20:05 PM

Add Comment

Name *:

Email Address:

(your email address is not displayed)
Website:

Comment *:


Dennis Forbes - Dennis Forbes is a Toronto-based software architect and technology writer