Funding free software projects

Friday, November 21st, 2003

Successful open source projects are usually initiated by someone with a clear vision and also the knowledge to set about turning that vision into reality. But what happens when someone has an idea and also has the resources to hire programmers to execute that idea?My experience with SchoolTool v1
This note was inspired by Tom Hoffman’s blog entry which referenced SchoolTool and Chandler. I thought he was touching on a subject which has interested me for some time – how best to fund open source development. Trust me this is not easy. Most open source projects are led by the person who had the original vision. It’s much harder to HIRE people to work towards your own vision. But if philanthropists are to invest in open source software, then we have to figure out how to do just that.

First, some more history on the SchoolTool project, because I think it nicely illustrates the phenomenon.

I hired a talented and diverse team to build SchoolTool just as I was heading to Russia to see if I could get into the Russian space program. All of the team members were familiar with and fans of open source software and open source development. There was no one at the Foundation that had experience managing an IT project, but I figured the that the team would have no trouble managing itself. They should have the best of all worlds, with steady salaries to allow them to focus their time exclusively on an open source project. Most open source projects are part-time efforts, with the team members constantly constrained in the time they can devote to their “hobby”.

While I was in Russia, the team sent me a series of regular reports on their progress. They settled on Java, not an environment I like, and SQL database, a reasonable proposition. So far so good. But over the next few months I noticed that they were spending a lot of time solving problems that didn’t really need to be solved. For example, we wanted SchoolTool to be cross-platform. They invested a huge amount of effort designing an XML-based UI description system, which would then automatically generate a UI for each platform. Why reinvent XUL, I asked? It seemed as if, given free reign, the developers pursued their own personal interests rather than the goals of the project. Sure, they could always argue that the tools they were developing were ultimately going to be USED by SchoolTool, but I was always left thinking that if I were in their shoes I would want to start solving the unique problems of school administration FIRST, and leave some of the other niceties till later.

After a while it became clear to me that the team was not going to produce a functional tool. So I canned the project and shutdown the development office, letting the developers go. This was a very unpopular decision, quite a few educational groups had pinned their hopes on SchoolTool. Rather than keeping those hopes artificially alive I killed the project outright and said we would not develop SchoolTool further. But at the back of my mind was still the belief that SchoolTool is a project that is both feasible and worthwhile, and that it should work in an open source environment once it has critical mass.

The issue, as I see it, is leadership. Most open source projects are founded by one or two people who have a very clear idea of what they want to create and how they plan to do so. They have an itch to scratch. Once they have a basic framework together, other people start to use it and the stone soup effect kicks in… some of the users become developers, and the bazaar magic happens. But here’s what’s critical – the success of the project continues to depend on it’s leadership, usually by the founders but sometimes in a more institutional way (like the Debian project).

Contrast this with my experience of hiring developers who had great skills but no personal attachment to the idea of having a SchoolTool out in the wild. They did what all open source developers do – they scratched THEIR itch.

In a proprietary development scenario the company and hence the developers are driven to ship product – they get no sales without a shipping product, and thus no salaries without shipping code. So there is an urgency and a pressure to ship something. We have all seen that sometimes that pressure is not constructive, and code is shipped in barely working state. Contrast this with open source developers who want a good, working tool out there – they ship it when it’s “done”. But that assumes that they really want it out there. If they are simply being paid to cut code, they cut the code they find most interesting, not necessarily the code that is on the critical path to ship the actual tool they’re working on.

Recognising this, I decided to cut the code myself. The two month hiatus Tom describes was part of this time, with me trying to recreate the good old garage days when I could spend all day working on the code that ultimately became Thawte. It took me that long to realise that times have changed – life’s too good these days. Try as I might I don’t have the self-discipline to shut out the rest of the world when the phone keeps ringing, email keeps flooding in (although I did learn to ignore most of that, a useful exercise) and there are limitless opportunities to do fun stuff. I quite enjoy life as a retired cosmonaut with some financial security, but that enjoyment comes at the expense of focus. So much for plan B, what would be plan C?

I decided to hire the best Python developer I could to lead the project, then hire one or two other teams to work in collaboration with that core team. Hence my search for and appointment of Steve, Marius and Albertus.

How will we avoid a simple repetition of the previous problem? What makes this effort different? Nothing, so far. We once again have a bright team of developers who are at the end of the day motivated by a contract, not by a personal itch in education administration. But this is only the story so far. The next step will be to hire an additional team to collaborate with Steve’s. It may seems strange to hire a separate team rather than bolster the core one, but there’s method in my madness. Right now, a lot of the critical thinking and discussion happens inside an office in Vilnius, with no reference to the rest of the world. That makes it efficient, but not necessarily effective, since it may be efficiently going down the wrong road. Steve’s been pretty good about going to the list to get a sense of how different educational communities work whenever they start work on a new section of the project, for which I’m grateful. But the problem still remains – a lot of SchoolTool development happens in a non-transparent manner. By hiring a second team to collaborate on the core infrastructure I hope to force these discussions to happen online – in the mailing list and in wikis etc – in a way that makes them transparent and accountable. That way outsiders will be able to comment, and more importantly, we will be able to go back and understand what was decided, and why.

As for directedness, I came away from my visit to Vilnius with the impression that Steve really wants to see SchoolTool reach its full potential. There were some slight alarm bells (the dev team spent a lot of time showing me what their engine COULD do, and I spent a lot of time shifting the discussion back to what it DOES do), but at this stage I think we are still in reasonable shape. Perhaps we should actually have one or two schools that will deploy their work, to keep their debates grounded in the real world… but that can come in due course.

Lessons Learned
So the risk is that a well-funded open source team that is NOT led by someone with a personal interest in shipping the project will get distracted by other shiny tech toys and fail to actually ship something focused and constructive. How are we dealing with that in the current round of work on SchoolTool? First, I’m personally watching and asking the core team to focus on actual functionality. They assure me that their engine work is “done”, and that they are currently working on a usable tool that can be tested by schools. Time will tell. And second, we will shortly have a second, collaborating team, that will I hope also bring much of the engineering work into a more public forum.

Time will tell. These are expensive ways to learn, but I feel that the experiment is very much worth doing. There are lots of tools I would like to see developed in the open source world that developers have not yet done for themselves, and which I would be prepared to fund. Perhaps other philanthropists are in a similar position. We need to learn how to do this effectively, and the only way to learn is to try.

Update: 2003/12/3
A further email exchange between Tom Hoffman and I went along these lines:

Tom: Coming up with an RDF version of your REST api is definitely luring me as a shiny geek toy, of the type Mark wants you to avoid getting sucked into. I’ll start trying to delve into it though.
Me:The beauty of the open source process is that non-core developers ARE willing and able to play with shiny geek toys. It’s the core team that I need to keep focused, they set the release schedule and core functionality / infrastructure pace of development. But the fact that outsiders are able to think laterally, and experiment with code that can be proven outside of the main development process is what gives open source its real diversity and amazing ability to innovate. So as long as it’s not on my dime, please scratch whatever itch interests you most 😉

I didn’t make it clear originally that I was mainly talking about the CORE development team, which in most projects stays pretty focused on getting the job done using the chosen infrastructure rather than very “shiny” rewrites. The beauty of open source development, however, is that non-core developers can spend as much time as they want experimenting, and it’s this experimentation which can result in dramatic and unexpected features being innovated outside the core tree and then incorporated once they are proven. We don’t want to stop geek playfulness at all, we want to encourage it, but we need to keep the core team focused on getting the infrastructure reliable, usable and regularly released.

63 Responses to “Funding free software projects”

  1. Robert Schumann Says:

    I recently attended a conference on “Sustainability in open source software” organised primarily for the higher education sector. Three major things struck me, and I’ll mention them in decreaing order of relevance 😉

    1. Some public health IT developers were in attendance, and I learnt about WorldVista ( which is an electronic patient record system deployed by the US Veterans’ Administration (about 1300 facilities, a few million patients on the books). Their software is revered by the users – a rare phenomenon in public IT projects! – and was developed in an open source way before open source existed (the project started in 1975, IIRC). I’m curious to find out more, and see how the project was managed into success.

    2. The education sector people were continuously facing the paradox: How do you financially sustain a software project that you hope becomes self-sustaining? The problem is particularly acute in the public sector, where decisions are sometimes made for very strange reasons. Not only that, the natural, organic, user-driven development process found in OSS development is replaced with central planning and overly-large budgets. I think Canonical/Ubuntu would be the first to admit that open source is typically not about planning but about harnessing a rather chaotic set of self-driven projects.

    3. My impression is that we know how open source works in the organic, itch-to-scratch model; we know how it works in the high-rolling, big-iron, support and customization model of IBM and Red Hat; we even know how it works in the closed-to-open route, as exemplified by TurboCash, which improves the quality and user base of the software; but we don’t know how it works in the centrally-planned and paid-for model.

    Well, I don’t.

  2. Adriaan Etsebeth Says:

    Hi Mark, I hope you read this at some point. I am a facilitator / project leader at Wits, with an idea which can influence our whole economy.. ‘serious’ as they say. Have been working on this a while – 4 years to be more accurate. I need someone with vision; and as you said in Schooltool – not everyone have an understanding.. Could you hear me out? Not on the net though.. Greetings Adriaan

  3. Jonah Says:

    Hi Mark,

    I know this is an old thread, but I refer to it often and it makes a great anecdote.

    I just returned from PloneCon, where I had been thinking alot about hybrid economies and how they shape that particular project (especially compared to the likes of Sakai, or even Moodle).

    Honest Software

    I think I might have conflated a few different ideas here, but it still kinda holds together.

    Tough to imagine designing a project so that it participated in this many economies, but that could be a part of making these projects succeed.


  4. Ernst vd Merwe Says:

    I have heard about the probability to get support. I have investigated investments markets, money, business and production cycles since 1992. I have researched the facilities available to bank clients worldwide. I have analize the role of bond originators,banks and the impact of interest and tax on the very famous ratio interest and principal amounts. After finishing my masters degree in economics I have also carefully research exhange rates and inflation with the idea to formulate impact. I had also try to minimise risk by having that included in my ideas. I have manage to enable myself with to master Visual Basic Programming. Here I have tried to intensify my knowlegde on objects. Basically the outcome make me realize that especially objects are entrenched by Microsoft in their effort to make money. I believe that moving back to “machine language” restrictions because of versions of objects can be breached. I have concentrated a great deal on multidimensional arrays, .dat files etc in persuing my dream of having an integrative calculating program in supporting best decisions referring to financial schedules. A program has been written by me to +- 90 completion. I want to make it available to people who intent to buy property or business. My idea is have it available on the internet.

    Where, who and when can I make a presentation to, to unlock gold!

    Your help will be of uncalculatable worth!

  5. Sheldon Smuts Says:

    I am semi computer illiterate and heard that you have a anti virus programme for people like me.
    We tried Norton and find that besides wasting our money, it is impossible to operate.
    Can you advise


  6. edward meyer Says:

    i started a shower door company with 15 years experience in the industry. my company has been awarded some big projects and this has affected my cash flow i dont know where to turn to, can someone please help OH YES I did mark’s mom’s house in d’ville.

    Eddy Meyer

  7. hendrik Says:

    Hi Mark ,
    We have a brilliant idea that has nothing to do with pc`s and internet but rather an unique method of selling properties internally, but we need funding to kick start it.

    Can you assist us here we do not talk big amounts,
    If you interested please come back to us


  8. Zelda Says:

    Myself and two partners started a company a year ago. It started as a hobby on the side line based on our passions for the mining industry… What a mistake!!! It has spiraled out of control!!!

    Currently we are developing software for the mining industry. The project we are busy with has been validated for R110,000,000.00… I again say: myself and two partners… We do not have the resources. We have the clients. We have the market. We have the software. We have orders. But, ourselves cannot do this, as this is our hobby and we love our jobs!!! We do not know what to do…

    At this stage we are praying that something will happen and a mining house will turn around and buy the entire package – even if we are only offered R30,000,000.00. Sounds desperate – we are!!!

    Can you assist us with guidance? I know the logical solution will be to quit our current jobs – we are all high earners – and go for this project full on, but then we have to appoint IT personnel. Money is not a problem. I do not like this idea however, as we are desperate and in desperate times one do not think clearly and I am scared we will appoint incompotent people. I have investigated the salary scale for the IT skills we require and decided if we take this route, we will go into the recruitment market above the scale to pull in the best, but we wary…

    What should we do??? Should we go for the option of R30,000,000.00, cut our losses and move to the next two projects we have lined up or should we go for this project and run all three together with a company of 50 people?

    This is not our first project. Our first project we handed to another engineering company for FREE on a silver platter yesterday afternoon – estimated value of R40,000,000.00. We do not have the resources… This was the only option as our current project is taking up all our free time and we were scared of losing face in the industry – we have already made a name for ourselves.

    Company name:
    the visual component

    Company partners:
    Metallurgical Engineer (Business Risk Management Consultant),
    Attorney (Business Legal Liability Consultant),
    ex Mine Inspector (Mining Production and Safety Behaviour Expert)

    Company scope:
    Legal risk management
    We look at legal aspects in the mining industry. Aspects where behaviour turns the legal aspect into a HIGH risk. Knowing risk management, it will be best to terminate the risk than to tolerate or treat it. This however is not always possible as the risk arise from a legal aspect – thus it is law. The safety behaviour can be addressed, but in South Africa we have been mining for so long and behaviour changes is not always easy and/or effective – we have a culture of production and not safety… We develop software that “basically” addresses these legal aspects by controlling the behaviour risks – thus, we terminate the risks and enhance safety behaviour…

    As you should know, Anglo Platinum closed 5 of their shafts a couple of weeks ago to address these safety behaviour issues – they retrained all their employees and lost R750.00 PER SECOND in production. This was a drastical step and noted internationally!!! Needless to say they are one of our biggest clients…

    We need help!!!

    Managing Director

  9. Paul H Roux Says:

    Hi Mark

    I have sold my house in Parow North and then decided to buy another one that needed attention also in Parow North for R1 000 000.00 through the bank. I started renovating the house and have got about 70% complete. Unfortunately my funds have run out as I have used my profit of R700 000.00 of the house I sold and now I stand to lose everthing I own and worked for if I do not get an investor of some sort to help me out. My intention for the renovated house was to turn it into a guest house as I have planned it so to have 15 bedrooms with en-suites and a extra bathroom with a spa bath, toilet and shower already installed. The house is entirely designed by myself with each bedroom and room done with fond memories of old and new. My business books are also behind and have to be updated for the last four years.I also need advice and help on that. Is there any chance that you know of someone looking to invest in this type of venture to help me out on saving my exciting and profitable venture. The guest house would be especially good for 2010. I know this has nothing to do with pc’s and the internet but I really need help in making this venture work and have already got so far. It would be such shame to see this all fall through the mat. Please see if you could assist me. I am available on Cell: 082 6121 983 or Tel: 021 9304040. Thanking you. Regards P H Roux

  10. Jack Says:

    So, Mark: it’s four years down the road. Did your new team organization keep the project on track? Did you need additional innovations?

    Is this That project looks to have achieved core functionality, and on-going M&E seems pretty healthy, judging by ohloh.

  11. Boris Says:

    We would like to get hold of Mark Shuttleworth with regards to the tranport project that was published in the newspaper yesterday – we have been involved in this for the past 5 years and have great vision for the business but have not been able to get the finance – please can we send our business plan for perusal.
    Thanks very much,
    Boris Miller and Rob Louw

  12. John Peterson Says:

    Projects are like snowballs, you’ve got to pack a snowball and then roll it manually for a bit before it has the mass to roll itself. Like with a snowball, you should start out small, as trying to pack an armful of snow together is pretty futile. Get two bright minds together and get some cohesion there before trying to add more to the team. I’d suggest that this initial team be made up of one potential customer and one developer. If you want to accelerate the process, pack a bunch of competing “snowballs” at once and see how each evolves. You can then pick and choose ideas from each team. Never underestimate the power of competition in a demographic of individuals with egos the size of Texas.

    You can’t really expect much real code to be written in the beginning. A certain amount of time needs to be spent in idea generation, but once a base feature set is agreed upon, you can move into the development stage. It is here that your “cats” will usually run wild, because they will still be in brainstorming mode. Here are a few ideas for keeping your “cats” not only moving, but moving in the right direction.

    Divide your list of desired features into two sets (version 1 and 2 as Mike Lewis suggested above). This will for the most part keep your developers grounded. During development, if a developer comes up with a bright idea, you make the decision about the importance of the feature by assigning it to a version. Just like a box of apples, we humans have a tendency to go for the shiniest ones first. It’s not until you limit a developer’s options to the less desirable ones that they will get to the dirty work. Keeping the possibility open for a version 2 keeps developers motivated, because they have hopes of pushing through version 1 and getting to the shiny apples in version 2. Not that there won’t be shiny apples in version 1, but the shiniest will be consumed first and what’s left is usually the majority of the work.

    When the shiny ones are all gone and you’re down to the less interesting features, the developers may have a hard time staying motivated. As Barry Schwartz states, “with so many options to choose from, people find it difficult to choose at all”. As the leader, it is your role to make the hard decisions; to reduce options and free your developers up from this paralysis of indecision. Make a priority list and review and revise it frequently.

    There is one thing that developers absolutely thrive on: Feedback. There is nothing they enjoy more than getting to show off what they’ve accomplished. Every week or two, check in with your developers and have them provide you with an overview of their progress (or lack thereof). Ideally, they should provide a daily status report (via an email or a blog posting), so that you can rescue them early on from any ruts they may have fallen into.

    As a developer, there is one more underlying motivation that drives me on. I want whatever I develop to be used. The more people it can potentially be used by and the more they may use it, the better. It is for this reason that I find user interface development (especially on the desktop) to be the most exciting area in the field of computing, because it really does cater to the largest audience out there.

  13. OSS project management: Divide and Conquer? | RTFM Says:

    […] Shuttleworth is testing an interesting theory of project managment. He’s divided a development effort between two individual teams in hopes […]