Some months ago, when deciding how to structure a software development project team, I lamented (offline) that what I’d really like the project to resemble is a marketplace – a community of developers all eager to find their niche. As the market clears, each developer would end up doing what they do best, maximizing their comparative advantage while also maximizing overall productivity. We know this works well on a national scale (capitalism), but in a sense, many companies are (internally) little islands of non-capitalism. By saying a team would work this way, I mean internally, in terms of how the various parts of each project are divided up.
Today I read that TopCoder, in addition to their well known programming contests, does something very close to this:
“TopCoder assesses a client’s needs, breaks the project into 30 or so components, and opens the design and development work to a series of online competitions. The coder with the best finished product wins “prize money,” as does the runner-up, which usually amounts to a few thousand dollars. The small pieces are “sewn” together, usually by TopCoder, and delivered to the client.”
Two issues come to mind though, one negative and one positive:
- In the kind of complex “enterprise” projects we sometimes take on at Oasis Digital, binding together the pieces in to a coherent solution, tends to be a major aspect of the work. Sewing together disparate pieces could easily dominate the schedule.
- A bunch of separate, talented developers, committing to building a system in this fashion, are likely to produce a highly modular system. It is hard to overstate the benefits of modularity in large projects.
Update… in my next 2 minutes of browsing feeds, I cames across a relevant post about another “industry” far outside my expertise.
One thought on “Software Development Team = Marketplace?”
Your idea reminds me a little of how Steve Yegge described the development process at Google in his “Good Agile/Bad Agile” blog post (http://steve-yegge.blogspot.com/2006/09/good-agile-bad-agile_27.html). “…Developers can switch teams and/or projects any time they want, no questions asked; just say the word and the movers will show up the next day to put you in your new office with your new team.”
I really like your idea. This would be an exciting development if it caught on within the IT industry.
Comments are closed.