Saturday, May 8, 2010

Hacking on Dynamic Capitalism


There is something magical about starting an organization. You start with nothing, and then POW! You've created something from nothing. Done right, it will create much more value for the World than it extracts from it. The entrepreneurial process makes me feel lucky to live in a nation that embraces this form of Dynamic Capitalism.

However, I feel like the enthusiasm for Dynamic Capitalism has become a racket. The financial markets are only partially serving their mission of funneling money into innovative thinking. The majority of investment capital is just casino money made up of complex derivatives and automated trading. Firms seem to be extracting more value from the world than they are adding to it these days.

Even worse, the entrepreneurial spirit seems to have sold itself out. I find the weak knees of entrepreneurs when it comes to true innovation particularly troubling. The macroeconomic situation in America depends on innovating as does the rest of the World.


The system is failing us.


The sell out.


Many start ups, especially in the technology sector, are in the game only to get noticed and then sell. The buyer either wants to hire the founders or put them out of business. Or, perhaps the buyer is attempting to capture any value they believe might be created in the future. But, let's face it, if a start up has a good chance of creating significant value, it would not be selling itself.

The sellout mentality causes money to flow into businesses that are in business for the wrong reason. How can sellout businesses possibly care about their customers or the good they could be doing for the World? And the problem is not just an ethical or ideological gripe. From a capitalist standpoint the purpose of investment is to move money into enterprises that create value. Warren Buffet gets it. Most of silicon valley does not.

Don't get me wrong, under certain circumstances I would sell. First, like DHH from 37Signals has said, you should always be working on your best idea. If I have another idea I think is better, you can bet I'll be itching to sell and exit quickly. Under the capitalist model, money and talent should always be flowing into our best ideas. Secondly, if everyone else with a significant ownership stake wants out, I can't argue with that.

The Ponzi Scheme.


With no viable business model a start-up is just a money pit. Google did it right and everyone points to them as proof that it's a good idea to funnel money into a business that does not have a plan to make money. This is misleading because, in fact, Google did have a plan.

Google's business model was carefully and skillfully conceived. Then, more importantly, it was extremely well executed before they got too big to execute it. Google investors knew this and put their money behind the plan. Not true for Twitter and Facebook.

Twitter, Facebook, and the others like them have no plan, and no indication that they ever had one. Further, they are so embedded into the fabric of the web, I doubt they could execute any kind of plan that would make a significant business out of them at this point. By definition, they are a ponzi scheme.

The bandwagon.


Investors like to wait to see what everyone else is going to do, and then pile on. They want to see proven ideas that come with people who have a track record. As Daniel Markham has said recently "everybody wants the deal all wrapped up with a bow". Besides, the bandwagon start ups are sexy and everyone likes to drop names. I worked in Hollywood for a while, and this scene is all too familiar.

I don't mean to be a buzz killer, but the bandwagon mentality stifles innovation. Adopting the latest and most sexy technology or gravitating towards the current buzzwords is not innovation. This is a leading symptom of the followers following the followers. Investing in proven ideas executed by people with a track record of selling out does not result in added value, and most certainly does not incubate innovative thinking.

Incompetent Management.


In the world of organizational structuring, one of the biggest problems is that managers are continuously promoted until they reach a position which they are incompetent to handle. This phenomenon actually has a name. It's called the Peter Principle. Incompetent managers stake out a claim in their inherited position and vigorously defend it for the rest of their career. How often have you heard a statement begin with "My idiot boss..."?

To incompetent managers innovation is a liability. It threatens to expose the true breadth of their incompetence. Even worse, this attitude suffocates innovative thinkers who are forced to abandon their ideas for fear of losing their livelihood. It has been said that "nobody ever got fired for buying from IBM." People lose their jobs for choosing not to take the tried and true path, risking failure. But failing is a prerequisite for innovation.


I'm just pressing my face against the glass.


I'm not going to claim to have a magic pill to fix the system. Frankly, I don't think there is one. However, after spending the last 5 years rolling possible fixes around in my head, I think I've managed to discover a reasonable hack that works around the broken parts.

Granted, this discovery has a lot to do with the fact that it is very unlikely that I would ever be allowed to enter the technology start-up arena through conventional means. Although I do have experience starting a business with someone else's money, I never had any equity in it myself. Even worse, that company was a residential moving company, and schlepping furniture has very little to do with the software company I'm working on now. I have no background in technology and I only learned to write code beyond HTML three years ago. I graduated from Ithaca College 9 years ago with a degree in film, so I didn't even get the chance to drop out of an Ivy League School to start Facebook.

In my case, I have to take a hard look at the facts and come to terms with the reality that I'm never going to be able to take part in the start up racket. It will be a long time before I would even get a glancing look from an investor. Besides, by then our company will be a risk free cash cow. In which case, why would we give those vultures one dime? It didn't take me very long to come to an understanding that, while it would be difficult, it may be in my best interest to be an outsider anyway. I've always liked being an underdog. That's when I work the best.

So, I founded a software firm without seeking capital investment, and no plans to do so in the foreseeable future. But that's not enough, I also wanted to hack on the corporate legal system to come up with a fix for the sell out mentality and the business model myopia that makes ideas into ponzi schemes. And, while we're at it, we might as well take a crack at incompetence as well.


Introducing the member owned and managed corporation.


In early 2009 I started a mailing list and dubbed it my advisory board. From January 2009 through early March 2009 we hacked at some ideas and began to converge on a legal structure we thought might work. As luck would have it, some progressive legal thinkers much smarter than we are had been working on the same thing. I was able to get in touch with them, and on April 1st, 2009 we were officially incorporated under the new virtual corporation law in Vermont. (Yes, that is April Fools day, but this is no joke.)

Under our legal structure we're defined as members instead of shareholders or partners. I'll get into the distinct differences later, but the way it works is that the members vote points to one another each month. Members may not vote any more points to any other member than they have themselves and are not mandated to vote points if they choose not to. Points are never taken away, so every time points are voted, point inflation occurs. Inflation is included by design so that idle members who are not voted points will experience a decay in their holdings over time.

The points get you three things. First, revenue after operating costs will be dispersed every month to all the members according to the percentage of total points each member has. This is similar to stock dividends. Second, members get to vote for a board of directors at 1 vote per point. Just like a conventional corporation, the board of directors is responsible for assigning executives to act on behalf of the members in day to day business affairs. Third, if the members decide to sell the company, they will each be given a portion of the sale price according to the percentage of the total points each member has. Again, this mechanism mostly works like the classic shareholder and partnership systems.

The major difference from the shareholder and partnership arrangement is the way it is designed to embrace collaboration and innovation. The influence for the member owned and managed structure comes from open source software development as well as Game Theory, most notably the Nash equilibrium. The goal is to reach an equilibrium where players of the game have all settled on the best strategy and are unlikely to change it. By design, the legal structure of the corporation is meant to arrive at an equilibrium where all the members act in self interest while still benefiting the group as a whole. When you think about it, this is not really anything new. Classical corporate structure, financial markets, and organized religion all depend on an equilibrium where an individual acting in self interest benefits the whole group.

The real breakthrough of the member owned and managed corporation is the management structure, which is derived from the compensation structure. We do this through some assumptions we can make about the strategies the members will use to play the game.

As a member, when I am faced with my voting decisions at the end of the month I have to take three factors into consideration. First, if any member does not feel they are fairly compensated for their contributions to the organization, they are going to be unmotivated to contribute further. To avoid losing them I want to be sure to vote an adequate number of points to valuable members. Second, although I want to keep valuable members motivated, and even though it is not possible for me to lose points, I don't want to vote too many points into the pool. Voting points into the pool causes inflation and will lower my own valuation in the company. Third, I know that the members whom I don't vote any points to will probably withhold points from me in retaliation next month. For members with low point valuations this is not really as important as it is when considering how much to vote to high value members.

As I make my voting decisions you can see that while I am playing the game with my best interests in mind, a management structure benefiting the entire group emerges. It's been said that the Internal Revenue Service could save loads of money on collection costs if they could simply post every taxpayers' tax return on a public website. Nobody would cheat on their taxes if returns were filed in the open.

The member managed corporation sidesteps the epidemic of incompetence by requiring members to put their competence on display. Even better, it requires them to continue to demonstrate competence throughout their ascent in the organization. A member who is competent in a technical skill and is also able to successfully evangelize a cause will be the most likely to gain valuation from other members. In turn, the members with the most valuation will have the most influence because of their large point pools and our natural tribal tendencies.

However, high value members must also understand the importance of rewarding other valuable members, or risk losing their valuation. If other members feel that a high value member is shortchanging the rest of the members, the well will dry up for the points hoarder. High value members must be committed to making sure that all boats rise with the tide, or find themselves rapidly losing valuation as other members withhold points in disgust. This gaming mechanism keeps power and influence in check while rewarding competence.

Conversely, members who do not add value, or are not adept at communicating the value they are adding, will gain very little or no points at all. There is no reason for me to vote points to a member who contributes little value and does not have many points to vote back to me. If the rest of the group generally agrees with me, this low value member will either be working for free, or soon give up. Either way, a member without value is effectively fired.

In a member owned and managed corporation we do away with job titles and resumes. Instead, management, recruiting, and hiring is naturally organized around the performance and competence of an individual. In my opinion, that is the way it should be.

The legal nitty gritty.


Like I said before, there is a subtle but important difference between the definition of a member and that of a classic shareholder or partner. I once heard a corporate lawyer describe a corporation as a perfect blend of different classes of equity and debt to suit the pallet of the founders. Well, the legal definition of a member in a member owned and managed corporation is the secret sauce that ties the whole meal together for us.

A member is a person who holds any number of nontransferable points. Even though we could conceivably grow to thousands of members around the World, we are not beholden to the Securities and Exchange Commission. We are allowed to make the distinction between a member and a shareholder or partner by making points nontransferable. In other words, there is no market, public or private, for points or equity in a member owned and managed corporation.

That's it.

The legal minds working on the member owned and managed corporate structure come from the Berkman Center at Harvard Law. In 2009 they published a video detailing the thinking behind a new legal structure for corporations. In the most recent form it is known as the Vermont Project and is paired with a software tool for forming the legal entity itself.

The project was not so mature when The Fireworks Project adopted it, but we were pretty happy nonetheless. I had some serious concerns about how viable we would be if we had not found great legal minds that had prior work with similar structures, so it was very fortunate that we found them.

I'm optimistic about what we'll be able to do with this corporate structure. You can have a look at our operating agreement to get a feel for our actual legal structure. It is designed to create the perfect storm for true innovation. More than anything I hope.... no, I believe we'll create far more value for the world than we extract from it. Isn't that the reason for it all in the first place?


The Fireworks Project is looking for more than just competent people.

Photo Attribution


Yellow Electric Car: http://www.flickr.com/photos/jurvetson/
Cactus Pete's Roadside Casino: http://www.flickr.com/photos/roadsidepictures/
Warren Buffet Finger Mustache: http://www.flickr.com/photos/apfriedman/
Game Board: http://www.flickr.com/photos/mkuram/
Lawyers without pants: http://www.flickr.com/photos/lordkhan/

Monday, January 25, 2010

Extending Chrome and Firefox privileges with message passing.

I'm going off on a technical tangent for this post because I'd like to take the time to write a little about the design of our application platform, Kixx. Specifically, I'm going to outline how I think we can build privileged applications using the web browser as a platform. By privileged, I mean applications that can make cross domain network calls and have access to a local storage system among many other things that normal web pages cannot do.

The Firefox and Chrome web browsers both have some notion of a background page running with extended local privileges available to extension developers. For Firefox, this takes the form of an undocumented and hidden window running within the the core of the browser referred to as the "chrome" by Mozilla developers. In the Chrome browser, extension authors can explicitly load an HTML document (with JavaScript) into a background page using the manifest configuration of an installed extension.

We can build an extension for both the Chrome and Firefox browsers that takes advantage of these features to give extended privileges to pages running in the normal browser window tabs. This way, we can build locally installed applications which run in the browser and can do things like make cross domain XMLHttpRequest Ajax calls, open new browser tabs, and do other stuff that web pages should not normally be allowed to do.

Firefox extension developers are able to make actual JavaScript objects available to content pages from the internal JavaScript of the browser. On the other hand, Chrome extension developers must create a message passing API between the privileged extension scripts and the DOM of the content page.

For security reasons, and because of the Chrome browser design for page interaction, our design will be using a message passing API. There are also some other side benefits of the message passing design that I'll mention later.

In the Firefox extension, we will dynamically place an iframe element into the hidden window from the JavaScript in our extension. We'll then load our own page, which implements the privileged half of our message passing API, within our iframe element as the browser loads.

In the Chrome extension our message passing API will be implemented in a simple background page. We'll be able to use a content script explicitly declared in the extension manifest to facilitate communication with normal content pages.

In both browsers, this scheme will look something like fig 1.

The "privileged execution frame" in fig 1 is the background page we loaded from our browser extension. The "bridge API script" is the script running in that page which implements the privileged side of our message passing system.

The "content execution frame" contains the normal tabbed browsing pages.

However, for good reason, we do not want to give any web page that the user loads into the browser these extended privileges. We only want certain pages that we designate to be able to have access to our message passing API.

To accomplish this, we'll set up a folder somewhere on the local file system to contain our privileged applications. We'll call these mini applications toolpacks. Only pages loaded using the file:// URL scheme from our toolpacks will have access to our message passing API.

The design for our toolpacks will look something like fig 2.

Each toolpack exists in its own folder on the local file system. A toolpack may consist of HTML pages, JavaScript files, CSS, and images. One toolpack will contain the JavaScript file for the non-privileged side of our message passing bridge API (shown in the red in fig 2). As shown in fig 3, toolpacks can access the message passing API by importing it using a script tag in an HTML file. When a toolpack is loaded from a file:// URL that contains a reference to the messaging passing bridge script via a script src="..." tag, the toolpack can use only the privileges given to it by the message passing API. Further, no pages loaded from any other URL scheme (ie. from the Web) will be given the message passing API, even if it tries to load it. There are some additional benefits of the message passing design besides just security (that I promised to talk about earlier). First, we can poach the basic API design from the web worker scheme being specified by the WHATWG clan. Second, the message passing design allows for better concurrent processes within complex applications, sort of like Erlang. As far as I know, this scheme will only work for the Chrome and Firefox web browsers because of their capability to run background pages. To support other browsers we'll probably have to learn some different tricks. So, anyway, that is the basic idea of the design. I'll talk about API design and implementation ideas in later posts.

Thursday, January 7, 2010

Setting a Goal. The flag in the distance.

I just thought I would throw my 2 cents into the popular theme of setting goals in the new year.

I think we are wrong to think of goals as an end game. I don't think that achieving a goal has much value. It is the process of getting it that arms you to handle larger challenges in the future.

Don't get me wrong, I'm not against the idea of setting goals for the new year. In fact, I'm all for setting goals any time of year. I just think that we need to focus on why we are trying to achieve our goals, and how we plan to get there. And then, we should reserve the right to change our minds about how we plan to get there, while the goal itself remains a flagpole stuck in the sand way off in the distance, reminding us of which direction we need to ultimately go in.

Some of the tactics we use to get to that flag may not work, and we'll need to revise them. Sometimes we may need to cross a river to get there, and our plans will need to be revised again. This is an important and valuable process.

The flag in the sand keeps us going, but it is the problems we encounter along the way to reach that flag that really make us who we are.

John F. Kennedy understood this when he decided that the nation needed a rally in the middle of the cold war. He made the point well during his "Moon" speech at Rice University. If you have not listened to the speech, you should Google it and listen to the whole thing.

"We choose to go to the moon. We choose to go to the moon in this decade and do the other things, not because they are easy, but because they are hard, because that goal will serve to organize and measure the best of our energies and skills, because that challenge is one that we are willing to accept, one we are unwilling to postpone, and one which we intend to win."