Dennis Forbes on Software and Technology   Subscribe to RSS


About the Author
Dennis Forbes is a Toronto-based software architect. While focused primarily on the .NET and SQL Server worlds, Dennis frequently ventures outside of this comfort zone into game development and image processing. He has been published in several industry magazines, has been quoted in the Wall Street Journal and has been interviewed by NPR.

He is a vice president and lead software architect at an innovative New York City hedge fund back-office services firm.

Dennis has been working on solutions for the financial, telecommunications, and power generation markets for over 13 years.


Recent Entries


The Feed Bag
Jan 11 - Answer: No
Jan 11 - The Git DVCS

 
Thursday, March 16 2006

Before I go about possibly reinventing the wheel, I thought it worthwhile to ask: Could anyone point me to .NET / Windows server modules for SXIP 2.0 and/or OpenID? They're both fairly trivial identity solutions, so if I can't find one I'll implement one or both. Not only for personal needs, but because I can see some uses for them in client projects.

Thank you kindly.

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.

Earlier EntriesLater Entries

Dennis Forbes