Thursday, January 26, 2006

Soft Asset Management

Each organization struggles to harness and manage 3 simple assets.

Ideas
The rank and file engineers have a lot of very good ideas that never see the light of day. The reason for this tends to be a layer of dead managerial weight separating any developer from any person capable and willing to make a decision. The middle management is also extremely terrified of anything that's perceived as rocking the boat or anything that causes them to stick out ( such as championing an idea). The problem is that a lot of these people are simply afraid of showing how incompetent they really are. What needs to happen is a way to send ideas directly to the senior management or some sort of governing committee that can review the ideas and has the power to fund them. I've seen one organization implement this very well. They've setup a committee consisting of senior management to review all incoming ideas. The idea is emailed directly to your regional director. (There is one regional director per continent.) The director would then take your idea to the committee for review. At the end of the year, the committee chooses a handful of ideas to pursue and those people receive awards such as trips to Paris, trophy, envelops, and recognition - due to a large assembly that you get to speak in front of.

Prior Art
"Prior Art" is a term used in patent law to describe inventions that someone has already patented. Each organization produces a lot of innovation: software, libraries, fixes, procedures, etc... The ironic thing is that each group in the organization tends to develop its own solution to a problem probably faced by every group. In a couple of places, I've seen organizations attempt to avoid some duplication, but never very successfully. At the core, the problem is that each group has no idea what the other is doing. Additionally, there is rarely a single architectural vision or a way to search for existing solutions. Basically, the proposal is to setup an internal open-source community. The community would know of all projects going on in the organization, and would manage certain projects submitted to it such as general projects like scheduling systems, or monitoring libraries. Everyone should be aware of what the other is doing. If someone in the organization is working on a security model, and I am about to start writing my own password management system, well, hopefully I know about the other initiative.

Knowledge
Each engineer accumulates a wealth of knowledge. The most relevant and long lasting learning occurs from your peers and not from a 2 day intensive class. Although, its great to miss 2 days of work and get catered lunch. What organizations struggle to do is share individually acquired knowledge. In fact, a number of organizations, because of politics discourage the practice or do it with a heavy managerial hand. For example, in one company I've worked for, the management decided that the way to share knowledge is to hold bi-weekly developer meetings. Their solution was that each manager or director would bring some of their people to the meeting. In some cases, the directors brought only managers. The end result was that the meeting consisted of 30% developers and 70% managers/directors. The funny thing is that the topics started technical and quickly moved to managerial such as billing. I spoke up in one of these meetings. I believe I said something to the degree that this is mockery, and if both my manager and my director were not sitting next to me, I wouldn't be here. Well, I am no longer with that particular company. Some ways to promote knowledge sharing is to get developers talking and debating. For example, the organization can create a developer community and hold weekly meetings. During each meeting, one of the developers can present something useful and interesting to discuss such as programming patterns, algorithms, and standards. Additionally, within a team, discussion should be encouraged. Team leaders should promote a culture of learning and challenge such as emailing logic problems. The only reward is the recognition that the person is better then everyone else. The organization should also implement code review and design review. The reviews will enforce a level of competency which is sometimes missing during coding and designing.

Monday, January 16, 2006

Metaverse

The word meta in Greek means "about", "beyond", and in English is used as a word prefix to "... indicate a concept which is an abstraction from another concept." The word verse is "... a single metrical line in a poetic composition; one line of poetry. "

The word metaverse was coined by Neal Stephenson's in his book Snow Crash in 1992. Neal uses the word to describe a virtual world that allows people to connect into and physically participate in a virtual world. People physically jack-in. The world is part virtual reality, part internet, part story.

At the moment there are a few games that are starting to broach this subject of metaverse. Games like everquest, for example, bring together all players into a single universe. People now hear of things like weddings occurring in cyberspace or real-estate being sold for real money. There is also a commodity market developing for game items such as magical weapons. Virtual items are being sold and bought with real money. Of course, one can argue that money is as real as the magical cloak that can make the owner appear or disappear or protect the wearer from all sorts of attacks.

The major difference between the cyberworlds these games create and the metaverse, is that the metaverse is not a game but real life. It has stores and restaurants, bars, and clubs. It has side walks, and bus lines and a very sophisticated police infrastructure. There is a class system, and a stable real-estate market. To get there, we need a basic virtual reality system, and a simple meta language like HTML. It should be relatively simple to create stores and shelves, and chairs, the humans will act as humans. The imaging can be performed locally, with only meta language being passed around. You should be able to walk into a store on the internet and have the same or better experience as walking into a real store.

Check this out: http://sketchup.google.com/

Wednesday, January 11, 2006

Patent Madness

I am currently in the process of trying to patent an idea. The idea is relatively simple, but this post is not about that. Instead, it is about patent law. In my search, I got the opportunity to speak with a highly paid patent lawyer ($460 per hour) from an established firm. He gave me a breakdown of what is required to patent an idea.

For technology related ideas there are 2 types of patents, a full blown utility patent, and a provisional patent. The provisional patent is good for a year, but requires that you file for a full patent within that year. It's relatively cheap, and doesn't go through the rigor of a full patent. In fact, there is no rigor, whatever you file is good. The problem, as explained, by the lawyer, is if there is a dispute within that year, the language of the provisional application is closely scrutinized. Basically, if its written by the lay man, me, it won't stand up in court, and therefore is useless. The only advantage is a marketing gimmick, because it lets you say "Patent pending" for the duration of that year, and if it does stand up in court, your patent is for 21 years rather than 20.

To file a full patent with this law firm, you need to do the following:
$400 = initial 1 hour consultation with a junior lawyer and some feedback from a senior partner
$1500-$2000 = a professional search to see if your patent is already taken
$5000-$10000 = to write up the application form, the price ranges depending on complexity.
+ cost of filing, for small entity, (adds up to a couple of hundred)

He also mentioned that almost everyone gets rejected on their first submission. Your patent lawyer and the US Patent Office than negotiate on how broad your patent should be.
At the end of the day, you can have a patent for just under $20,000. The industry average, as explained by another lawyer, is $15,000 to get a patent. The cost fluctuates between $10,000 and $20,000 depending on who you get as the US patent representative, and how general your patent is. The expensive lawyer mentioned that the Amazon single click patent was very expensive. Another lawyer also added that the international patent costs even more than US. The filing fee alone is $4,000.

US Patent fees (Most of us are small entities)

World intellectual Property Organization

The patent process also takes on the average of 2 years.

If you do it yourself, you may get a patent for much less, probably around $2 -3k, but without the lawyer babel, its not worth the paper its printed on. Basically, as the highly paid lawyer explained to me, patents are written by lawyers for lawyers. Patents are only useful in court. He also kindly explained to me that the patent process is not meant for the small guy. Even if you get a patent, you may not be able to afford to defend it. Another lawyer chirped in that if you do have a patent and a requirement to defend, there are certain companies that will pay the defense fees for a share of the patent. This same lawyer also said that a patent is only necessary if you know how to make money from it. For example, license your idea, sell the patent, protect your idea so as to control the market. Patents are not required in a lot of cases, also, if you've already built the software and somehow released into public knowledge, in court, you do get some leniency during a patent dispute.