Not doomed but challenged

Dreamwidth had a rocky start but has persevered. Here's how it stacks up against the "How to tell if a FLOSS project is doomed to FAIL" checklist, and some of the steps Dreamwidth takes to mitigate the problems.

=Size= The source code is ginormous.

+10

Mitigation: Dreamhacks, hosted development environments for anyone who would like to try development; experts in IRC who can often assist in locating the part of the code that the developer is looking for. +5 if you're using a Dreamhack.

=Source Control= Currently using github.

+5 for git's learning curve.

Mitigation: git is the mitigation. So sorry.

=Building From Source=
 * Documentation exists, but is dodgy, +10
 * Configuration is not fun +15
 * Oh god the build +150
 * Oh god the tests +5

Mitigation: Dreamhacks. Dreamhack application process is +2.

=Bundling= I think we're good here.

=Libraries= (someone who knows the code better, please evaluate and rate)
 * Your code only builds static libraries [ +20 points of FAIL ]
 * Your code can build shared libraries, but only unversioned ones [ +20 points of FAIL ]
 * Your source does not try to use system libraries if present [ +20 points of FAIL ]

=System Install= This is a behemoth of code and it all needs to be exactly where it goes.

+50 for general pain and suffering

Mitigation: Dreamhacks. +5

=Code Oddities= +10 for unspecified Brad-ness

=Communication=
 * +15 no mailing list

Mitigation: All developers are expected to be users of the site; releases are announced in an on-site community dw_dev which can be configured to mail if so desired. Major releases are announced in the dw_news community, which mails to all site users by default. If you're a Dreamwidth user by preference, this is not a problem.

=Releases= (someone who knows more about the versioning should look at this and evaluate)

+50 absurd number of directories


 * Your project does not do sanely versioned releases (Major, Minor) [ +10 points of FAIL ]
 * Your project does not do versioned releases [ +20 points of FAIL ]
 * Your project does not do releases [ +50 points of FAIL ]
 * Your project only does releases as attachments in web forum posts [ +100 points of FAIL ]
 * Your releases are only in .zip format [ +5 points of FAIL ]
 * Your releases are only in OSX .zip format [ +10 points of FAIL ]
 * Your releases are only in .rar format [ +20 points of FAIL ]
 * Your releases are only in .arj format [ +50 points of FAIL ]
 * Your releases are only in an encapsulation format that you invented. [ +100 points of FAIL ]
 * Your release does not unpack into a versioned top-level directory (e.g. glibc-2.4.2/ ) [ +10 points of FAIL ]
 * Your release does not unpack into a top-level directory (e.g. glibc/ ) [ +25 points of FAIL ]
 * Your release unpacks into an absurd number of directories (e.g. home/johndoe/glibc-svn/tarball/glibc/src/) [ +50 points of FAIL ]

Mitigation: there's a process to update the Dreamhack against current.

=History= +50 for the pain and suffering involved in forking this from LJ

+15 for the ~10 years of lj-com and lj-com-int or whatever the proprietary branches were; it's 50% because the lj branch was public-and-open-source.

Mitigation: the blood, sweat, and tears of Mark, denise , fu , exor674 , and most assuredly others. See dw_dev 's ~2008 entries for a taste of some of the anguish. +3 currently.

=Licensing= I think we're mostly good here.

+2 on general principle.

=Documentation= This is generally dodgy but getting better.

+20

Mitigation: The development community is actively working on converting the answers to neophyte developer/new-to-the-codebase questions into actual documentation on the wiki; questions asked in IRC have a good chance of getting splatted up on the wiki where they can be more formally expanded upon.

=Culture= This is not a topic touched on by the original. FLOSS communities in general have a reputation for abrasive cultures that discourage new developers from contributing code unless the code is already good enough, and for rejecting code with blatantly unhelpful remarks. Dreamwidth prefers a more constructive approach to developing new developers, and routinely rates bugs by their expected difficulty level, and picks out some specifically for beginning developers. Code reviews are intended to be constructive and educational, never personally insulting. IRC culture is intended to be friendly, welcoming, and minus the sexism, racism, disablism, and other misfeatures commonly present in FLOSS IRC areas by general reputation.

=FAIL METER=

397 by my count if you try to install it yourself.

It's a miracle this project got off the ground, and installing it for development on your own machine is neither pleasant nor fun. The reality show can be found at.

In the 102 range (THE FAILBOAT HAS ARRIVED) if you use a Dreamhack but prefer mailing lists; 87 (kittens die) if you use a Dreamhack and prefer Dreamwidth communities.

Mitigation: The development community tries to be supportive, especially to beginning developers.