Project size, critical mass, and Stone Soup

Posted 11 Dec 2000 at 16:02 UTC by jay Share This

How do you tell the difference between a good free software project that just hasn't reached critical mass yet and one that just sucks?

The basic free software development model is: Have problem. Write code. Release Code. Accept contributions. Write more code. Repeat.

Quite a lot of projects get kind of stuck in the middle there after the "release" bit but before they get to the "bask in worldwide acclaim" bit. For example, I work on a project which is currently in beta (i.e. I don't claim it's yet of production quality) but is publicly available and has been for a long time. The number of users is somewhere between 30 and 200, but the number of developers is one, me.

Is my project just too far to the left of the growth curve, or does it just suck? How do I tell?

Who cares?, posted 11 Dec 2000 at 17:34 UTC by fc » (Master)

No, I don't mean you, or your article with the "Who cares?" phrase, I want to give a different view: Don't care about others. Not other people, not other projects. It is more important that you are clear about your goals, your achivement, and your "vision", than that your project follows a certain kind of "official" free software lifecycle. You say it doesn't take of. Who says it has to?

Do your goals include to have fun, or to learn something? Are you having fun, do you learn something? Then there is nothing wrong with your project. This should also answer your question about how to distinguish between a project that sucks and one that is not yet old enough. You are the judge. If you think your project sucks, stop it. If not, continue to have fun.

Only if your are hunting for fame, money, or dictatorship, then your project really has to take of. Then it has to become huge. And then you have to be willing to compromise and fight battles (like e.g. the desktop projects do). With a small project, however, you can experience the freedom to do things like you want to do them. You are the boss. This is commonly an aspect which is forgotten in the discussion about free software: The freedom to develope software as one likes, and not as someone dictates. Ask software developers in large companies about their freedom to develop how they like it - Dilbert is real. Or look at the "dictators" in the larger free projects. And then think again if you want to become a larger project.

Re: who cares?, posted 11 Dec 2000 at 17:38 UTC by jay » (Journeyer)

IKWYM about "who cares". More specifically, however, I wonder if there are ways in which the project can be changed to encourage contribution from others. I don't want to be the only person working on it, because (1) this results in slow progress and (2) I might get hit by a bus / fed up etc. It's good for a project to have more than one participant.

In your case; in general..., posted 11 Dec 2000 at 17:57 UTC by egnor » (Journeyer)

Well, you are writing an SCCS clone, which isn't exactly the sexiest thing on the planet. Assuming it works, it's probably quite useful -- it unlocks people from legacy environments -- but it doesn't represent the Future, and your project page is full of warnings about why nobody should use this software. (Projects aimed at legacy compatibility can become "hot" -- see SAMBA, DOSemu, WINE, etc. -- but only if a great many people suffer from the legacy system in question. SCCS is pretty esoteric.)

In general, it seems to be an extremely rare free software project that attracts more "core contributors" than the original founders. Better projects than yours (and certainly better than any I'll ever write!) are the work of one person cranking away over the years. So, I wouldn't conclude that because you haven't had hordes of developers begging to work on your project that it sucks.

But that doesn't answer your question.

I might like to see something like an idea futures market in free software projects. (Examples abound in other domains.) That could answer your question, but there are plenty of unresolved questions about how such a market would be constructed.

(Unlike the previous poster, I think the question is worth answering. We're all human; we want ego gratification, we want to think that we're working on something people will actually use, and we don't just want to tinker in a cave, forever polishing a jewel that nobody wants. Many of us have probably suffered the reality check of proudly writing something we think is better than sliced bread, posting it to a few sites... and hearing nothing but silence. Free software is supposed to be more than a learning exercise, right?)

Which are you asking?, posted 11 Dec 2000 at 18:06 UTC by egnor » (Journeyer)

Request for clarification. Are you more concerned with whether or not your project (or any particular project) "sucks", or whether or not you'll ever be able to share the load with other developers? These are different questions; not every successful project has multiple contributors, and not every project with multiple contributors is successful. (There are plenty of really sucky projects with 10+ "active" "developers".)

If it's important to you to work with other people (and that's something we probably need more of), the easiest way to ensure that is to go to work on someone else's project. If it's important to you to have total control and follow your own vision, the easiest way to ensure that is to start your own project (as you have). If both are important, well... compromise may be necessary.

It is a social question., posted 11 Dec 2000 at 18:44 UTC by cmacd » (Journeyer)

...And so the answer may depend on the social context of any given project.

Having a quick look at the project in question, the overall impression I get is to stay firmly away, unless one happens to need some obscure bit of functionality, and cannot obtain it from a commercial vendor. The creator of this project probaly could not do more to scare both users and contributors away. Further, we are told that although this is a system for development, (I imply some sort of version control system, even that is not clear from the home page), we are told that the author does not use it for his/her own project.

Given the number of "keep out" flags set by the web page, I am not surprised that the level of participation is small.

OK so to try and give my opinion on how you can get more feedback/patches.

  • Start off by explaining what your project is intended to do as a piece of software. It is apparently an alternative to CVS, so what features does it have. Someone who does not have a background on Commercial Unix may not recogize the software.
  • tell us where it comes from, and where you would like it to go. We read that it is Beta, but is that because features are missing, or just because it has not been tested?
  • Try to sell the product. You say if I have the commercial product I should use it rather than yours, unless the version of the commercial product has Y2K problems that I can't get fixed. That is not a ringing endorsement of your product. If it still has bugs, tell us what bugs you know of, and ask for help. If it is perfect but untested ask for testers. If their are features missing spell out what your plans are to fill them in.

My guess is that in general folks that get involved in a project do so because of

  • it is something that they need or .
  • it is something that they see the world needing or
  • it is a chance to work on an interesting mind test.

To attract workers, you have to take the time to explain what work you would like them to do, and why they might find it interesting.

Please don't take the above as a flame by any means, I am just trying to apply what I have seen of human nature to your question.

Few people actually need an SCCS clone, that's all., posted 11 Dec 2000 at 20:33 UTC by deven » (Journeyer)

In principle, I see nothing wrong with cloning SCCS. I just don't see much of a "market" for it. RCS and CVS provide better solutions to source-code control than SCCS does, so there's no incentive to use SCCS (or a clone) for a new project. The main value of an SCCS clone would be to deal with existing SCCS files, but most people with such files probably have the proprietary SCCS available.

If very few people need neither SCCS nor a clone, because RCS meets their needs, then you're not likely to get much interest in your project, no matter how good the code it. Nothing inherently wrong with that, just a natural consequence of working in a very small niche market. Think of it like trying to get people interested in a Mosaic clone (let's pretend Mosiac was proprietary) after Netscape took over the marketplace. (I'm guessing this may be why the original "MySC" author lost interest in the project and why few have shown interest in cloning SCCS, given that RCS has been available for many years now.)

Since RCS is more powerful than SCCS, there's probably a bigger "market" for a conversion utility that would cleanly translate SCCS files into equivalent RCS files, than for a clone of SCCS...

getting the word out, posted 11 Dec 2000 at 23:42 UTC by apm » (Journeyer)

Do people know about your project? What have you done to get the word out? I know this might have an evil "marketing" smell, but "if you build it they will come" just doesn't work too well.

I am in a similar position with my Suneido project. It's about 3 months old and has about 700 registered downloads. But no other contributors so far, and I can't say I really expect too many. But I'm pretty happy to just keep plugging away and hope it goes somewhere someday.

Define "suck?", posted 12 Dec 2000 at 02:01 UTC by thorfinn » (Journeyer)

How do you tell the difference between a good free software project that just hasn't reached critical mass yet and one that just sucks?


Is my project just too far to the left of the growth curve, or does it just suck? How do I tell?
Hrm. That depends on what you mean by "suck". If you mean, "why doesn't it have popular demand and a high level contributions cycle?" the answer is frequently extremely user base dependent.

If your project satisfies a wide popular demand amongst programmers, then you will probably find that contributions start to appear. If, OTOH, there is a strong competing product that's out there, then, well... vendor-lock in applies even more to freeware than it does to payware.

To get a product widely acclaimed, it has to satisfy a wide base of users... which, in the open source world, means it has to be the first or second product to satisfy a particular niche. Beyond that, unless there's an extreme difference in the ease of use/featureset/etc, there isn't any likelihood of wide adoption of a project.

There is some effect based on how cleanly coded and well architected the project is too... if someone else picking up the code looks at it and recoils in horror, then it's not likely that they'll contribute anything, while if it's nice and modularised, and well sprinkled with comments about rationale behind functions and breakdowns, then it's easy to come in and patch stuff.

That's about the shape of the difference between popularly acclaimed and widely used and contributed to projects vs otherwise.

Look back from the future?, posted 12 Dec 2000 at 08:17 UTC by mkc » (Journeyer)

I can definitely relate to the question I think you're really asking, which is whether or not the project is worth much further expenditure of your time. I'm considering this myself for my current project.

I think egnor's idea about a futures market to provide feedback on what people think about various projects would be a very valuable resource for those of us in this situation.

In the end though, only you can make the decision. Maybe it would be helpful to think about what things might be like in a year or two if you kept going and achieved most or all of what you reasonably might be able to

  • Why will people use your software then?
  • What will they be doing with it?
  • How many people will be using your software and how much benefit will it bring?
  • What specific benefits will you derive from working on this project?
Compare your answers for this project against those for your favorite alternative project.

Speaking only for myself, I'm not sorry there's an SCCS clone out there, but I can really only see two sets of users for it: Unix dinosaurs and groups obligated to use SCCS for contractual/business reasons. Given that, I'd say your doing well to have several dozen or hundred users, and I wouldn't expect to see the usergroup or feedback increase much beyond the present.

My own inclination would be to let the dead bury their own dead, but you need to decide for yourself, of course.

The world is full of projects, posted 12 Dec 2000 at 09:32 UTC by bagder » (Master)

Even if your project is cool and has users, the world is crowded with projects to participate in. You can't expect people to jump on your band-wagon unless it is something very special.

Expect to be the sole maintainer and author, that's what the reality looks like for a very large amount of open source projects.

Besides, the majority of all people are users, not developers.

Benefits, posted 12 Dec 2000 at 10:14 UTC by dirtyrat » (Journeyer)

Anyone doing anything for free, of their own accord, must decide whether or not it remains worthwhile. Do you:

  • Enjoy coding it?
  • Use the program yourself?
  • Learn useful things whilst writing it?
  • Enjoy the fact that some people use it?

I've been working on my pet project, rCalc, on and off for about a year and a half; right now it has had 2486 downloads since March yet I have heard from less than 10 people who actually use it on a regular basis.

I'm quite happy with this minuscule user base because I do use it a lot myself, and I learn a fair bit every time I implement something new. It's not like I spend my entire life working on it so it never seems like a drag, but if it does then I can leave it on the side for a while and do something else.

Expectations?, posted 12 Dec 2000 at 10:44 UTC by moshez » (Master)

I've recently started my own free software project. I went into it saying "ESR can try to sell anything he likes to VCs. If I have any users at all, I'll be happy, but I'm not expecting any. If there'll be any developers at all, I'll be ecstatic, but I'm not expecting any of those either." For the first 12-13 releases, I turned out to be correct. Last night someone installed it, and even sent me a patch I was happy to backport into my tree. I'm happy, and I've promised him I'll try to answer any questions at all. Will he use it for production? I don't know. If he does, I'll be happy for him. Will he continue to send me patches? I hope, but I can live with it if he doesn't. Do I care about users? Sure I do. Will it trouble me greatly if they do not come? Well, if they think something else satisfies their needs, then I'm happy for them.

PS. The software in question is PMS -- Python Mail System.

Getting [contributors | fame | downloads], posted 12 Dec 2000 at 12:45 UTC by hadess » (Master)

The only way I know of to make a "successful" project is to have something _useful_ to show to people. Your software should be compilable (or compilable with a bit of work, twiddling a Makefile is OK), usable (if it core dumps on the first start, they'll put it to the bin), and be useful !
Just give yourself goals, write a TODO list, answer and give feedback to the people that mail you (if any). Just don't let your project down, if you stop after the first buggy and incomplete release because you found a project that does a better job than you, put it on your webpage. It is very frustating to monitor the progress of projects that might be useful to you, but never get themselves to release anything. Just look at the number of dead projects in the Gnome section in freshmeat... That's just very scary.

Teamware, posted 13 Dec 2000 at 05:52 UTC by Zaitcev » (Master)

Finish up with CSSC and build a clone of Teamware on top of it. If you are persistent enough that would drop a nice hedgehog into lm's pants and may be useful for many people too.

Outrageous fortune, posted 13 Dec 2000 at 10:21 UTC by ReadMe » (Journeyer)


    To be, or not to be: that is the question: (jay)
    Whether 'tis nobler in the mind to suffer
    The slings and arrows of outrageous fortune,
    Or to take arms against a sea of troubles,
    And by opposing end them? To die: to sleep; ...

    Many sources are open.
    Drink from them a little inspiration;
    Inhail from them a little respiration;
    Inherit from them a little aspiration;
    Sustain from them a little perspiration.

    I began myself as my own project.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

Share this page