The Time Trading Development Technique: Controlling Time-Waste in Open Source Projects

by Lyn A Headley
You may distribute this article freely.


Time is money, they say, and while this article has nothing to do with money, it most certainly treats time as a resource. Not a new idea, in fact I'm sure many of you already regard time as your most important resource. You've spent your life allocating your time, between friends and family, between leisure and work. But have you ever seen developer time traded for the advancement of an open source project?

The basis of this technique presupposes the following: Every open source developer admires many other open source projects, besides the ones he or she steers. What is lacking is a structured way to contribute to projects which you do not necessarily plan to jump into fully. In short, we need a system for culling bits of time from isolated developers and mending them into project contributions.

The idea is simple: let's say rodney the programmer thinks apache is a kickass web server, but it lacks a fully threaded control module for his favorite programming language (Common Lisp). Rodney knows the Apachi C-API and his Lisp's foreign function interface, but he's not all that knowledgeable about apachi's internals, and especially not its threading code. Rodney can contribute to both the Lisp and apache communities, and keep his day job, by trading 10 hours of his time working on the project for 1 hour of that of a senior apache developer, with the understanding that Rodney will post all code and documentation produced during his "shift".

11 hours later, what has been accomplished?

I believe this technique could drastically improve the flow of communication between open source developers. It encourages senior developers to explain things fully to new developers with the *guarantee* that their time will not be wasted. As a communication channel it gives new developers specific and detailed information about whatever project scratches that particular developer's itch.

But it has even more potential: I imagine an online "Time Database," where developers register time spent on projects and the results achieved, while propping up their resumes with feedback and praise from their mentors and students. A place you can go to get a feel for a developer's interests, accomplishments and standing in the OSS community. A testament to the effectiveness of OSS development, and human cooperation in general.

To show that I am not completely full of hot air, and because this article was born out of my interest in this particular problem, I hereby offer 10 hours of my time in return for 1 hour, to any knowledgeable developer who can flesh out the task of adding thread support to the GNU Eiffel compiler.

As for my own projects, I am willing to act as senior trader for the Referendum group understanding tool and the Lyntin agent development environment. Please email me at laheadle@cs.uchicago.edu if you are interested.