Community-driven content

| | Comments (29)

Every so often, there is talk about a community-driven content project that seems to come up in the REALbasic community. These ideas run the gambit from OSS projects (like the WFS and CDL) to repositories (think SourceForge for RB code), to content (like a documentation wiki), and more. They always have a huge push of "yeah, that's a great idea!" from the community when they are discussed in public forums. However, it's my personal prediction that 99.9% of them end up failing.

I know I sound really negative when I say that, but I have enough years of experience watching these projects to know. There is a common behavior which I have seen with almost every community-driven project in the RB community. Someone comes up with a good idea and pitches it in public (mailing lists, forums, REAL World, etc). A bunch of people say "that sounds great!" So some more research is done on the topic by the originator, and eventually the figure out that the project is possible. A varying amount of effort is put into the project (it varies from a mild amount of effort to an enormous amount of effort) by the originator. The project is announced in a more formal way, and there is a call for assistance in maintaining the project. There is a large flurry of people checking the project out (downloading it, reading it, whatever) and an fairly large amount of suggestions on how to improve it. There is a very small amount of actual contributions in the form of work. After a period of time, the contributions go to zero and it's up to the originator to either drag the project along, or kill it off entirely as a loss.

Take a look at the community-driven efforts to date, and how they ended up. There was a wiki for RB documentation a while back (RBDocs) that died out entirely. The CDL hasn't been updated since 2006 (from what I can tell by searching on google). RBDevZone seems to be operated solely by Paul's kindness and efforts. The RB wikipedia entry has been maintained by me for the past few years in an effort to cut down on the out-right vandalism and misinformation that used to be on there (the only additions I've seen to it are usually self-serving promotions).

And, I've participated in several failed community projects. The WFS gets about one to three user submissions every year (and usually from the same kind souls), and even less in terms of donations. I barely have the time to keep it up, and it's starting to stagnate. Another example: I recently saw a thread on the forums about how RBGarage's content is turning stale with several people agreeing vehemently, and yet when I asked the people who were complaining to actually point out any dead links, I got absolutely *zero* responses. I've contributed to many of these community projects, as well as started several of them and the pattern is always the same -- starts out with a lot of people excited, but eventually ends up with an embittered maintainer wondering "why bother?".

In order for a community-driven effort to succeed, there has to be enough incentive to maintain it because "kudos" only takes you so far. For starters, the project requires enough critical mass within the community to be maintained by the community itself. Leaving it up to just one or two people has traditionally ended with the project lingering. People have lives, and their lives take priority over altruistic projects (as it should be!). So there has to be contributors proportional to the project. For example, I can't maintain the WFS by myself -- it's out-grown me. There has to be at least two to four people on that project in order to make it shine, and it shows. Something like a wiki documentation effort would require dozens of regular contributors due to the sheer size of the problem set. Remember: it might take only one person whose full-time job it is to perform some work. But this is a community-based effort, so there are *no* full-time employees getting paid to work on it, so you need a lot more people to perform the same amount of work, so to speak.

Personally, I love the ideas thrown around for community-driven projects. And I think it shows by the fact that I contribute to them when I have the opportunity to do so. However, the chances of success for these projects are so slim that it's getting harder and harder for me to get behind them. I know that I probably won't ever start another community-driven project myself. Every one of my previous attempts has ended up with me feeling taken advantage of, or feeling overwhelmed by. That may jade my opinion of other people's attempts to start projects, but it's also been my personal experience.

Heh, re-reading this entry makes it sound like I think nothing will ever work, ever and why bother even starting a community project. I didn't mean to come across quite so negative, but I also don't feel like I've misrepresented anything either. I want to see community efforts succeed (that's why I contribute!), so I guess I just wanted to warn people who are thinking of starting one about the problems they will encounter. I don't want them to end up like me -- burnt out and less likely to start anything new. So, instead of ranting and not actually trying to be constructive.... how can a community project succeed?

Start small! Instead of trying to tackle a huge undertaking, try to tackle a much smaller one first which can then expand as more time permits. For instance, instead of trying to write a documentation supplement for the entire RB language, pick one subset and start there. For instance, start with the language itself (coming up with a BNF description, the operators, etc). Once that is complete, then move on to a part of the framework.

Don't go it alone. If you cannot find at least two other people who are willing to put in as much effort as you, chances are pretty good you will be the only person ever working on the project. Let's be honest -- if you're the only person ever working on the project, chances are that the project will fail. It's not because you suck, or you don't want it... it's because you have a life!

Have a road map. If your project doesn't have definitive plans for what it will accomplish, how you will accomplish it, etc then the project will tend to meander. Feature creep will kill projects very quickly!

Be realistic. Only bite off as much as you can chew with the resources you know you have. If you only have one other person agreeing to work on the project, then don't tackle a project that requires five people. There's nothing more frustrating than feeling like you are spinning your wheels!

What else do you think will ensure a greater chance of a successful community project?

29 Comments

Sadly this seems to be a side effect of the expectation that everything should be provided by REAL and REALbasic.

And "since I already paid for it why would I pay extra for ..... "

A large portion of the RB community seems to expect that add on's should be free and so donations (to things like WFS) and DeclareSub are not in proportion to the value they bring to RB.

Oddly enough plugin authors don't seem to suffer from this same "it should be free" expectation.

A REAL sponsored project that community members could contribute to (say updating the LR) might be useful as REAL could edit/moderate the posts, who gets to post, etc and maybe that could supplement what already exists.

In the long run, RS has to decide how to create, use and enhance these community efforts. So far I've seen very little from RS that helps promote new community solutions.

Actions speak louder than words. When you say that the community efforts have failed, what has RS done for those efforts? With the exception of a few links on the website I don't see a lot of work to do that.

In fact, I think your efforts with getting the forums up and running shows the problem. Do you think it would be around today if it wasn't the first link on the support page? Would a "community" driven support forum even have a tenth of the traffic?

@Bob -- I disagree with your assertion that REAL Software should be officially affiliated with the community efforts. I'm talking about *community efforts* -- not REAL Software sponsored activities! REAL Software does promote things for the community (look at the Announcements section in the forums, or the press releases that RS sends out to news wires on behalf of customers). However, expecting RS to back these efforts(either with finances or manpower) is unrealistic. RS will certainly promote things if you ask them, but if they're going to spend money on it, they should own it (at which point, it's not a community project anymore).

For example, if some users want to have a totally awesome gaming engine written in REALbasic, then great! Start up a community effort to create one and make it happen. But assuming that's not the focus of REALbasic -- why should RS spend money on it? It can promote it, certainly, but expecting RS to donate money and manpower to it is just silly.

As for your point of the forums: there was a very healthy community site called realgurus that was around long before the official forums and did quite well. So yes, if RS didn't do their own forums, then there would still be a viable solution out there for users.

Aaron, my experience with OSS mirrors yours. The projects that are successful either have someone who would do it on their own for their own ends or they are backed by companies will to have staff work on them on company time. I think it is this latter avenue that RS should be trying to recruit some sponsors/backers for a community effort. RS could even act as a liaison to help find company's that could work together. The challenge there is that so many people using RB seems to be part of solo contractors or part of small companies. RS needs to find some larger backers to help get things going.

Just forget about it. I'm done talking about it.

I think Norman understands what I'm suggesting.

I agree with your post. It is also the same issue I have with just about every open source project. People in general like ideas but few do anything about them. The few exceptions are PostgreSQL and Firefox. Seems to be human nature.

@Bob -- sorry if I caused offense, that wasn't my intentions. I think community efforts are awesome -- I just want to see them succeed, and in order to do so, there has to be a realistic side to it.

No offense taken. What I've been proposing isn't all community and it isn't all RS. It's both working together to create something that's arguably not very good now.

The LR in the IDE is not very good for a lot of reasons. What I'm proposing is RS make the existing LR the basis for starting a wiki (in the past RS refused to give the rights to other wiki projects) so that users can contribute their hard earned knowledge to improve the LR.

The IDE when opening the LR will query the wiki for posts on the subject. This is how PostgreSQL and Java and some other OSS does it. There's the official documentation and the user contributions. In other words a better end user experience.

It won't succeed without official RS blessing because of the IDE integration and the copyright issues. Period.

@Bob -- Ah, I see what you're after. Personally, I think it's a good idea. I think this would be a neat topic to discuss over REAL World. :-)

I'll buy the beer/wine. :)

Aaron-
As you know already, I agree with your assessment of community projects. Even after publishing an article in RBD about the state of affairs with Reality Check, I've received only _one_ offer of help. >:P Lots of people seem to like Reality Check, but nobody wants to pay for it if it's closed source or offer help if it's open source!

I'd love to see the LR documentation opened up. As I've been updating my LR Parser app, I'm finding inconsistencies in formatting between pages, and errors that still have not been fixed despite bug reports. I'm spending a lot of time writing kludges to deal with these problems. A community effort might fix these problems, as well as add new sample code.

Likewise, the project file format information on the RS site is dated 2004! Maybe a community effort might help here.

On the other hand, could RS provide a (E)BNF grammar as part of its documentation? I've seen it offered by vendors of other languages.

This is a really great post about community efforts, and I think it explains what happens perfectly. This is an issue that affects all involved entities in varying degrees.

As a personal effort to get more involved in the RB community at large, I volunteered (with Bob) to help Paul/RBDevZone get the old RB articles from ResExcellence updated and uploaded to his site. I was very enthusiastic as I grabbed a few because I owe a lot of RB foundation to those articles and I had that "paying back the community" warm, fuzzy feeling. So, I updated the lot, started to get things uploaded (I got one done), but then out of the blue got hit with massive projects both at work and at home. That was months ago, and I'm only just now coming up for air, and with me gunning for a promotion I'm not sure how long I'll be "around".

I feel simply awful about pretty much abandoning Paul and his good work. But at the same time, what else could I do? At this point, RB is still a hobby (albeit time consuming and highly addictive) and I'm only just now beginning to make a little cash with my shareware (but still not enough to support my habit, mind you). So I often have to make the decision of eat lunch at my desk and work on my little shareware thingies or make the extra effort to meet my deadlines. I'm finally able to justify Real World this year, and I'm hoping after that to turn my hobby into some proper profit both at home and for my company. But again, it means some things have to get sacrificed and, sadly, the ResExcellence articles are usually the first to go (because if I chose those articles over my wife, I'd be a dead man walking. Know what I mean?).

As for Bob's suggestion about the LR, I think this is a brilliant idea that's a long time coming (and long debated). RS needs to do something and if they were able to release it for public editing under controlled conditions I think the whole community would benefit. In a perfect world, it would really be a help not only to users, but also to people considering using it.

The flip side, I think, is the notion of perhaps too many people contributing. The RB Forums, for example, are a great community resource. However, for every one person who helps there is another person to match it that is just posting varying degrees and shades of chaff for whatever reason they see fit. It seems to me that releasing the LR for public editing would take a lot of oversight on the part of RS to combat that same chaff. The LR is obviously a core document to RB and RS, and perhaps this is one of those things that management feels they really can't devote resources to over the long term to ensure it gets the attention it deserves should it go "public". It goes back to the "eat at my desk working on shareware thingies or meet my deadlines" and I don't think it's a hard to imagine a similar, yet broader, internal debate over at RS.

There's different ways that REAL could help build involvement in community projects that would vary in what they would require of REAL.

REAL could do a lot to help promote some community projects simply by having links to them on a portion of it's site. No more than that. That would raise the profile of those projects quite a bit. And it then also appears that REAL is "approving of" these projects.

The LR is a great example of something that could benefit from some community contributions with REAL's final editorial approval. Basically what Wikipedia has turned into where anyone can submit changes but only a small "approved" list of editors can actually commit those changes.

"Community" is not something that just springs forth. It requires fostering and cultivating. Guy Kawasaki has some great articles on building a community.

It'd be great to see RB's "community" move from just a bunch of users to something that actually helps promote RB, and can support and sustain more third party add on developers, and attracts and entices more third parties to support RB.
That is attractive to larger enterprises who might adopt RB more widely.

But it wont magically happen. It's like planting a garden. You have to cultivate it and assist it to grow. Just chucking seed on the ground doesn't grow a garden. You just get random patches of brilliant color scattered among the weeds :)

I understand the desire to have REAL Software assist with community projects in terms of "giving" things to it (manpower, copyright, etc). In an ideal world, that'd make sense. But I just don't see it as being realistic -- most companies just don't do that. For a community project, I think it's best to assume that you'll get no help from any corporate area. Then, if it does happen, it's a nice surprise (instead of a disappointing requirement).

As for RS not promoting links on their website -- they certainly do!

http://www.realsoftware.com/community/resources.php

They do have some ... except they are in some cases very dated (ie Freak and La Jolla)

In order to get the kind of "community" that REAL wants and needs it needs to assist in some way to make that happen.

Just have a read of

@Norman

Great link and I'd recommend everyone read it. Out of all 8 points in Guy's article I'd say RS only has 1 or 2 partially fulfilled.

Hi Aaron,

It is funny that you should post this now because I have created an open source project and have little to no success in getting people to help. The only person who has made any efforts so far has been Ben Blake and Tomis made a few suggestions on the RB forum.

I have found several sites where people have left code samples but have only seen "great work" post on the RB forum and have not signed on to do any testing or coding.

I did the project for my own software and not entirely for altruistic motives. But I was hopping to get some help if I offered it free to the community.

I will indeed finish it and I am also doing spreadsheet control. But I am just a bit frustrated because I saw so many request for charts.

I agree with Bob Keeney; over 12 years ago when VB came out with a "Pro" version; they sold it with a collection of 3rd party VBXs that would make professional programming quicker and easier. What I suggest is RB should define and loosely manage an array of controls open source and/or paid so that professional developers will select RB as their programming tool.

Lets face it, how many professional development teams will select a language where they have to "roll-their-own" chart control? I can tell you not many. I am doing a project on my own and I think RB is fantastic. My team at my company looked at a few years ago and said they would quit if I made the switch because there were no professional control like VB or Delphi or Java.

So, please take a look at the project and let me know what you think and let me know if you could offer suggestions or help.

Best,

Todd
New York City

This is a great topic!

To re-word what has already been said: Many of the "community projects" that we've seen haven't really been community projects by definition, since only one or two people have worked on them. Thats an awfully small community!

Warning, I'll use the forums in my example even though I believe it is the most successful community effort to date. Obviously a lot of credit to aaron and the fact that it exists on the rs website (does that make it not a "community project"?)

I think the reason these projects fail is that many people selfish, many are elitist, many are shy, many are too busy, and only few care about the community.

Just an honest self evaluation, I am probably a cross between selfish,shy and busy. So, I may be part of the problem.

IMHO, the first two are the problem. The selfish people are the leachers that use the projects and benefit from them but don't contribute (ie always asking questions at the forums but never answering others questions). Its obvious why that doesn't help the community.

The elitists are the people that completely destroy newcomers or anybody else that doesn't ask the right question or make the right suggestion. People are too scared to present a suggestion or snippit for fear of being violently corrected. I only recently began reading all these blogs, so maybe its been around a long time, but am I seeing a bunch of cases of "burnt out programmer veteranism"? I think since most of the time we communicate via keyboards, we forget there are people on the other end. We tend to be bolder and less kind than we would be in person. Lets not scare away all the really motivated but really shy contributers and be cool.

As for those who consistently contribute (many who already replied to this thread), try not to get discouraged. One of those "seeds" will eventually fall on fertile soil and take root.

Although unrealistic, I believe putting a links page with some of the up and coming community projects on the rs website would be help. The only manpower cost could be to screen the websites before posting them and checking the links by weekly.

This may have been already suggested, but as for the wiki style LR, why not use a plugin? Wouldn't that simplify the whole IDE integration problem?

@Joseph -- to me, the forums aren't really a community resource. They're hosted by RS, staffed by RS (for the most part; I see there are now user moderators too), and financed by RS. But then again, without the community asking and answering questions, the forums would be rather worthless. ;-)

And one thing I am thankful for is that I see very little elitism in the RB community as a whole. On the forums (not certain about the mailing lists as it's been a long time since I've participated on those), I see mostly people who ask questions, and people who answer them. It's been very fun watching people transition from one group to the other! :-)

I do think that RS could have a more prominent display of community efforts, but that's a really slippery slope. If the page lists all efforts, then the diamonds get lost in the rough. If the page lists only some efforts, then it makes the criteria for being listed rather tough.

I believe (and don't hold me to this since I don't know for certain) that right now, anyone can have their efforts listed on the RS web page so long as the effort benefits the RB community as a whole. If you want a link displayed, you should contact pr@realsoftware.com and ask.

"But then again, without the community asking and answering questions, the forums would be rather worthless. ;-)"

My point exactly. My idea of a community project is one that is mostly self sustaining. And even though its hosted and staffed by RS, I think it could last outside of the care of RS. I wouldn't suggest it, but I think it's possible. (This is me not actually knowing how much manpower RS puts into it.)

I agree that RS shouldn't/couldn't list all efforts. But the criteria could be simple enough and easily worded in some user agreement:

1. The project must always have a live website (links tested monthly if owners of dead links don't respond in a day or two, take them down)
2. The website can't have any derogatory/pornographic/illegal material or links to the like (tested monthly, zero tolerance on this one)
3. The project must be established (been online for at least a couple of months with a verifiable user list of 2 or more contributors)
4. The project must be updated at least once monthly or bimonthly (a simple form can be created/required that each site uses when contributors upload changes/suggestions)
5. Nothing commercial in the project or on its website(zero tolerance on this one)
6. Limited to the first 50 projects, the rest go on waiting list.

I can't imagine 50 projects could keep up with even these simple requirements but it may be wise to impose such a limitation.

Obviously screening the sites and following up on links will cost RS some. But it "may" benefit RS by way of more interest of potential customers and possible better retention of existing customers. But who knows?

Less time blogging.

More time into a community project if that's what is really wanted.


Go figure.

Hmmm....

@Anonymous -- I work on what interests me, not what other people tell me to work on.

@ Aaron Ballman.

Hi Aaron.

Boo.


Btw, I didn't mean you specifically. I meant in general there are many RB developers that spend a lot of time blogging and they say they want open source RB community projects but they don't contribute time to them.


:)

@Anonymous -- I think that blogs contribute a lot to the community though, so I see it as being perfectly reasonable. Personally, I love reading people's RB-related blogs, and do so on a daily basis.

Hell, I just wrote a long, rant-ish blog entry about community projects sucking instead of contributing my time to any. ;-)

Hi all,

back to the Language Reference (documentation):

1. users make bug reports / feature requests,
2. RS update the documentation (after verifying point 1)
3. back to point 1.

Unfortunately, this never really was the case.

If the "community" sees some working community effort, they will tend to participate in one way or another. Else, they rant (or stay silent).

Same (more or less) happens with RB (for me).

@Emile -- Seeing as how I'm the one to verify a lot of the documentation fixes, I have a hard time agreeing with you that the docs are never updated. If you file reports against the docs, they're usually worked on within a release period. That's not to say the docs are great, but they certainly are worked on when people report issues with them.

The whole improving the docs thing is great. But how many hundreds of posts in the forums consist of questions that are already answered in the docs? A lot of people barely read the docs.

Improving them may be a huge undertaking that isn't even utilized. Many of the proponents of such an improvement are people who already have a great understanding of the language anyway.

So who is the audience? Not the power users and not the lazy rookies... so really how large is the group that that will actually use it?

Besides, it only seems to be a hot topic for a small group. And that group would probably be the only ones posting useful changes.

I like the idea of community efforts, but not that one. To me it doesn't scratch the itch of enough developers.

@Aaron

The only way to report a documentation error is through the feedback system. I think it easy to argue that the feedback system isn't the most user friendly system in the world and discourages a lot of users from reporting anything.

User contributions are a way to help eliminate the problem. Another way to solve the documentation is to have a direct email address to the person who does the documentation - and I don't see that happening.

Leave a comment

Disclaimer

I'm currently an employee of REAL Software. My blog is mine. The opinions represented in this blog are mine as well and may not represent my employer's opinions. All original material is copyrighted and property of the author.

REALbasic® is a registered trademark of REAL Software, Inc. REAL SQL Server™ and Lingua™ are pending trademarks of REAL Software, Inc. All rights reserved.