Story:
Open-Source Meets Capitalism: Collaborate by Competing
The internet has had a profound effect on many areas of commerce. One area the internet has not yet had a profound affect upon is how people are organized to perform work. We believe this is about to change and change dramatically. TopCoder is an early example of a ‘pure internet’ model which performs complex work at scale.
TopCoder was started in 2001 as a series of programming competitions and community interested in software development. Initially, these competitions were purely for fun and prizes, and to establish skill level within various programming disciplines. The model quickly went viral within the U.S. technical university system and became international much more quickly than we thought would be the case. The model was then expanded to commercial software development predominately in newer technology paradigms – Java/.NET, object oriented programming, component based development and heavy algorithm emphasis. Today, TopCoder boasts a growing list of Fortune 500 and some of the largest tech companies as clients and a community base of nearly 250,000 members worldwide.
The management team that founded TopCoder came from traditional software development disciplines. TopCoder was established to give great developers a forum in which to establish, hone and broadcast there skills—for fun and profit. From a consumer perspective, software development is considered a dark art—with constant cost and time overruns and poor quality. The business side of TopCoder seeks to make this experience a thing of the past.
Central to the TopCoder model is the idea that there are two distinct elements to the software development process—creativity in design and discipline in engineering. Most development models eschew one for the other or expect creativity and discipline to be intertwined. TopCoder separates these functions and has developed models that support each in the context of a whole.
Managing and directing a virtual online community required a complete re-thinking of management paradigms. As a platform, TopCoder includes hundreds of tools, incentive systems, communication systems and processes that help members create, define, complete and assess over 30 different types of work and their derivatives. At the core of the TopCoder model is the development methodology, a virtual ‘software factory’ approach which allows complex projects to be built quickly, cost-effectively and with a high degree of quality. This involves systematically breaking down larger applications into smaller components or granular pieces of work, and then presenting those pieces of work to a global pool of talent for parallel completion. Each piece of work is posted and completed in the form of an online competition at every step of the TopCoder process, which includes Conceptualization, Requirements Specification, Architecture, Component Design and Development, Assembly, Certification and final Deployment. Components that are categorized as ‘generic’ are returned for use in a component catalog for future reuse on client projects (a generic catalog which exceeds 1,500 discrete components in Java and .NET).
TopCoder runs two flavors of rated algorithm events which both take place in the Algorithm Competition Arena; Single Round Matches (SRMs) which are held twice a month, and the annual TopCoder Open (TCO), an advancement tournament culminating in a live, onsite final. The date and time of SRMs are announced via the event schedule on TopCoder's web site as well as via community emails, news item postings and forum discussions. The details on each of these events are posted to TopCoder's site as they are finalized. Participants can also view the information and details of most past tournaments. TopCoder SRMs can involve upwards of 1,800 competitors each week and TopCoder tournament registrations often exceed 10,000.
http://www.topcoder.com/movies/press/cnn_072405.mp4
TopCoder membership is required in order to log into the TopCoder Arena, which is a pure Java application that can be run as either an Applet from within a browser or as an application within Java Web Start. The arena is where all of the competition action takes place. It is where each coder can practice, compete, or simply enjoy being a spectator.
Participant numbers on any given client software competition can range from a minimum of one successful passing submission to more than 60 with an average of 10-20 registrants. A typical development cycle from conceptualization to delivery can often involve 30 or more discrete competitions. TopCoder registration is also required to participate in client competitions, which are announced via the Active Contests page specific to the given phase of the development process–Conceptualization, Requirements, etc. Participants can view information and details of past client software competitions on the Application Statistics page specific to that phase of the process.
TopCoder presents a range of extrinsic and intrinsic incentives for participation – members can not only earn significant prize payouts, interface with leading technology firms and improve their skill sets through competition, but they also have the opportunity to earn peer recognition and status in a highly respected and professional community. The element of enjoyment–based motivation, or simple fun, which allows a person to feel their creativity is appreciated, is a key driver in TopCoder’s incentive-rich environment.
From a delivery perspective, TopCoder is considered an ‘outcome’ based model. A TopCoder Platform manager or a member co-pilot from the community takes a problem, defines it and then breaks it down into manageable pieces that will become the subject of the competitions. Whenever possible, these pieces are developed and delivered in parallel, then assembled, tested and deployed – all through competition. Depending on the project, work may begin at any point along the sequence of the TopCoder process, with the output of each stage becoming the input to the next.
Competition structures begin with a description of the work required and a prize amount to be awarded to the winners. TopCoder members register for the competition, then submit their solution before the contest deadline. The submissions are then subject to a rigorous peer-review performed by other top members of the community who are certified by TopCoder. Using a rigorous scorecard system, a winner is determined, the prize money is awarded and the customer takes ownership of the solution. Throughout the project development lifecycle, the customer doesn’t pay for a single hour of developers’ time – they pay a predetermined amount for a piece of software that is delivered at a predetermined deadline and met every predetermined requirement.
While most businesses are concerned with what people are doing, TopCoder is concerned with what people do. This has huge implications to management systems. TopCoder is a ‘pull’ system, never having the ability to tell someone what to do or how to do it.
From an adoption standpoint, this is very difficult. People are used to working directly with people and ‘controlling’ them. We consider this an artifact of industrial/military management paradigms that will wane with time. The world is too interconnected with too many opportunities for ‘workers’ not to find something they are good at and outlets for those skills. We believe we will see this first in the knowledge disciplines to be followed by labor markets as manufacturing and construction become more component based and distributed.
TopCoder is an innovative model in the extreme, hence many of the moonshots are covered in the model which ensures: that management’s work serves a higher purpose; that the ideas of community and citizenship are fully embedded throughout management systems; that management philosophy is reconstructed from its very foundations; that the pathologies of formal hierarchy are eliminated; that fear is reduced and trust is increased; that the means of control is reinvented, and that the work of leadership is redefined.
Let's unpack how the TopCoder model tackles several of the management moonshots:
Focus the work of management on a higher purpose.
TopCoder is management theory in practice. Most of TopCoder’s management theories are derived from practice (yes, backwards, but it seems to work). The basic idea underlying TopCoder’s management practices are that people are good, and that they want to do their best work. It is TopCoder’s job, from a management perspective, to allow people to work on things they want to and make a living – or supplemental income - from doing what they love.
Fully embed the ideas of community and citizenship in management systems.
TopCoder often describes itself as “a community that has a company”, not the other way around. This is simply a recognition of fact. The fact is the company could not survive without the community. No benefit – for TopCoder or its clients – could or would be gained without the community. TopCoder, the company, has the job of setting policies and direction which most benefit the community and all its interactions. To fail in this responsibility would be immediately evident, the community would disappear.
Rethink the philosophical foundations of management.
Much of TopCoder’s management process and philosophy has been drawn from other systems – ecosystems, political systems, economic systems, etc. With a relatively large community that is constantly engaged, understanding underlying dynamics of how people interact is imperative for the health of the community. This will be the constant focus of both the company and community.
Build "natural" flexible hierarchies.
The TopCoder business model relies heavily on self-selection and merit. There are no command and control aspects to the model. We do not have a model that allows us to ‘tell’ anyone to do anything. Work, incentives and rewards are simply placed in front of the community for members to decide – at an individual level – whether or not they wish to participate. Incentive and reward systems – an area of primary importance – span from the very short-term to the very long.
Reduce fear and increase trust.
Because TopCoder is a community based business – meaning the value of the business resides within the community, we have no ability to be secretive or non-transparent. Trust, essentially is our stock-in-trade. Even the slightest question in terms of fairness or any hint of transgression would rip through the community with devastating speed.
Reinvent the means of control.
TopCoder is an interesting mix of people who are free to participate in what they wish within an architecture characterized by an extremely, high level of discipline – (software?) engineering. Control mechanisms are process and community functions (peer-review, testing, etc.). It is interesting to note that the community itself is responsible for the development of processes and are the primary participants of control (judging, etc) mechanisms. We take the view that the experts reside in the community, hence they should be the architects of the platform.
Redefine the work of leadership.
Leaders in TopCoder emerge; they are not ordained. Leadership requires an interesting mix of skills – some soft, some hard and all merit based. Standing in the community is a mix of what you have done, what you say and what, perceived by the community, you motivations are. No one ‘owns’ this community and ‘leaders’ are treated with a great deal of skepticism until proven otherwise.
In 2001 a community based platform for the purpose of accomplishing complex, verifiable work did not exist. We had to make it up as we went. The process was characterized by multiple fits and starts, near-fatal mistakes, poor allocation of finite resources and general skepticism regarding the entire business model – both inside and outside the company and within the community as well. To a lesser extent, some of these issues still exist today and probably will for quite some time. Many of the problems can be traced back to trying to do too many things at once (boiling the ocean problem) as well as at various points in the process losing the courage of our convictions and mixing old-world business models with the new. In hindsight, it is clear that a hybrid will not work. If we knew then what we do now, it is doubtful the business would have gotten off the ground – too hard.
Aside from being one of the first community based business models, TopCoder is also one of the first ‘quant’ business models. The two are related—it is impossible to ‘manage’ a community without tracking hundreds (likely thousands) of metrics. We measure everything: from the skill level of a particular developer within a particular technology and part of the development process to a degree relative to all others who have participated, to the aggregate skills of Java developers in China. We know how long it will take the community to complete a particular piece of work (to the minute) and how much it will cost (to the penny).
The side-effects of measurement cannot be overstated for our type of business model. In terms of skill rating for example, though they are never used to choose who will do what (a form of command and control management), they are critically important to our members as an input to what they choose to do. If three ‘aces’ are entering the same competition as you, you may choose to work on the problem as a pure learning exercise or perhaps not at all (because you don’t want to waste your time).
Metrics at an aggregate level are of extreme value to our clients in benchmarking their own capabilities and the fine-grained insight they are able to use to make significant business investment decisions. For our clients, TopCoder has taken the guess work out of what it will cost to do something and how long it will take. This is a macro effect. We aren’t interested in how long or how much a particular individual says something will take, we are interested in the aggregate – a much ‘safer’ prediction.
TopCoder’s business model is specific to digital creation. Many of the aspects of the model could easily be translated to other areas, particularly with respect to knowledge work. Accountants, lawyers, sales people, product designers, writers, scientists, movie makers, etc. could all see models such as TopCoder’s developed in their areas of expertise. Indeed, it is likely TopCoder itself will create some of these (www.tongal.com, for instance).
The credit for TopCoder’s model includes a cast of thousands. Everything from major to infinitesimally small changes to the model occur every day. We see this as ongoing and one of the most fun and interesting aspects to the model. TopCoder started out as an idea. The idea has been expanded, refined and implemented by the community that TopCoder represents. In a very real sense TopCoder is its community. They are who will drive its evolution.
The best place to learn about TopCoder is www.topcoder.com
Additional reading:
TopCoder (A): Developing Software through Crowdsourcing–Lakhani, K., Garvin, D., & Lonstein, E. Harvard Business School (2009).
“Gaming the System”–Leibs, S. CFO Magazine, (2008, January 1).
“Mavericks at Work”–Taylor,W., & LaBarre, P. Harper Collins (2006).
“Crowdsourcing”–Howe, J. Random House (2008)
“Reinventing Management”–Birkinshaw, J. Jossey-Bass (2010)
I love this story. It's the embodiments of collectively working while competing. I'm a software development project manager and spent a number of years of my life managing developers (the hardest people to manage), business analysts, testers and all other supporting staff. It truly is a black art. Timelines would be busted, costs would be shattered. Furthermore, developers are some of the more creative people I have ever had to work with, but they are also the most egocentric people. While reading this, I thought to myself, how do intellectual property rights remain squarely in front of the posted problems and solutions. However, it appears that the buildnig trust section addresses that. The coder that steals the design and starts the project on his own risks alienation from his peer group.
Once again, good read Jim! thanks
- Log in to post comments
I think this story describes the cultural evolution that is occurring across many sectors ie the movement away from competing to the death and towards greater cooperation and community. Great story!
- Log in to post comments
You need to register in order to submit a comment.