An often raised question on drupal.org is, "when will release x.y be done?". And most often the first answer received will be "It is done when it is done." Or it is just as likely the answer will be phrased in a somewhat less friendly manner: "When is the last time you patched a bug or tested a patch?". While one of these is a question, both qualify as good answers to the question "when willl it be done?". This is because software development in the Open Source differs in some important points to traditional software development. In this posting you can read what the difference is and how you can make, be, that difference.

Software Development

Traditionally, software development is characterized by a triangle with three criteria:

  • functionality
  • time
  • resources

Functionality being what the program offers, time the development period from scratch to when the product ships and resources the number of man-hours (and other less scarce resources like computers or CPU power) you have available for the project.

In traditional software development, the project leader juggles with these three criteria to get the product ready. Most often the time schedule of the release is fixed because of marketing reasons or rigid roadmaps. So to make the release date, the project leader can hire more resources and/or lose functionality. This method is known as timeboxing, often used in Agile Software Development.

Another way of completing a project would be by setting both the number of man-hours ("resources") and the release date ("time") as fixed constants and change the offered functionality if and when needed. This method is knows as the DSDM(ethod). Here the project leader has to discuss the MoSCoW functionality with the customer to fit in the fixed constraints. Other methods as described exist and might fit the needs of a project.

With Open Source software development however, such as is the case with Drupal’s developments, there are no fixed constraints. The number of resources is not known, people might join to code or leave with uncompleted work. People might promise to do some work but will never finish it and someone unknown might step in and deliver bulks of golden code. Neither is the release date known or fixed. We do have a tradition of delivering two or three major releases per year, but we don’t have a marketing division that wants to ship 12.0 before the competition ships 11.6. As for the offered functionality, as long as code is in CVS status, anyone can add (proposed) code for Drupal core or modules. Once the project leader Dries announces a freeze no more functionality can be added. Now the focus is shifting to debugging, optimizing, and documenting the code. This doesn’t mean that no functionality can be added to the project however. Since a stable Drupal version will be supported and used by the general public for over a year, late changes can be added tro make sure the code is reflecting the changes that are happening in the rest of the world. For example, when the new feed icon "standard" was established, new code was quickly submitted and added to the frozen Drupal code.

Making waves

So does this lack of a formal software development method makes us coding cowboys? No, not at all! While there is not one method used within the Drupal project, multiple methods help multiple people to deliver quality code. Most Drupal coders will probably feel comfortable with Agile software development though other methods are used as well within the Drupal community. Often people are amazed by the fact that there is no formal roadmap. "If you don't know where you're going, any road will take you there" seems to be their mantra. Dries often publicly stated that there is no need for a formal roadmap. In retrospect one could arguably say that some releases seem to focus on Search Engine Optimization, others on scalability. The release that will be out soon ("when it is done"), 4.7, seems to focus on both usability with AJAX, and on the developer with a complete new "forms’ API". Upcoming releases might focus on ease of install and themability. But there is no formal roadmap where these releases are plotted.

Does this lack of a roadmap mean we are drifting in the ocean of hypes, grabbing every ship that passes by? No. The Drupal community is riding the waves, not thrown around by it or looking at others surfing the waves. At its best, Drupal is even creating the waves. We have often set the standards (in technology, in functionality and in the way we communicate and interact) for others to watch and follow. Drupal -being liquid- is all about generating the waves, surfing the waves. And on this ocean of waves, a compass is of far more use than a roadmap.

”Me too”

So to get this compass pointing in the right direction, you should step in. For example, by applying for a CVS account and contribute code. But even if you are not a coder, there a zillions of ways of helping us out by becoming "us". You could help in Drupal forums, file bugs, test code, review patches, convince friends to use Drupal, help friends install Drupal, setup a local Drupal User Group, organize events, learn from the Drupal IRC channels, create themes, promote Drupal or write pages for the handbook. There is a lot you can do, without coding one simple line. All for the Great Cause, establish Drupal World Dominance!

So, "It is done when it is done". Become the "done" part and stop being part of the "when" by joining us and become part of the Drupal team.

Comments

jbrauer’s picture

Even if you're a coder and don't have CVS access you can contribute patches.

------------------------
Adding Understanding

--

shane’s picture

...you can contribute by any number of other means! (testing, documentation, translation, useability, etc...)!

scroogie’s picture

Thank you for writing this article! Maybe we could integrate it in the handbooks?

capmex’s picture

I started visiting more often drupal forums to help others with their questions and problems. I would really like to be more involved in drupal development, but I'm still learning. In the near future I would like to contribute some themes and modules.
--
Webmaster Resources | Canadian Directory

Steve Dondley’s picture

Haha!

--
Get better help from Drupal's forums and read this.

Dries’s picture

Now squash those pesky bugs and help us improve the documentation.

drumdance’s picture

;)

The following sentence is true.
The preceding sentence is false.
http://www.askderekscruggs.com

Rainy Day’s picture

It seems to me there are two sides here. From the developer’s perspective, you don’t want to promise a delivery date you may not be able to keep. From a user’s perspective, some idea of what kind of timeline to expect is more useful than having no inkling whatsoever.

Keeping people in the dark, as you are essentially advocating, and as seems to be the custom of the Drupal developers, works against human nature. You are inviting the question “when’s the next release?” The best way to avoid being asked that is to be proactive and answer it first. You do not have to promise a solid delivery date, but you could provide your best “ball-park estimate.” Knowing that the next release is likely to be days, weeks, months, years or decades away is helpful.

Now a prominent link on the Drupal home page to a page containing both the current best-guess timeline for the next rev release, along with a list of expected/planned new features would be very nice. If it’s stated that dates and/or features are subject to change, people will understand.

spazio’s picture

Hey! Bert! Of course, you are completely right! And everyone can do his part. Already small things like putting up a link to drupal on your footer are already supportive and give credit to the community. Ok, keep going and all the best from Berlin!

www.perspektive89.com

StuartDH’s picture

I think I'm probably like most people in that I use the software and would really like to help out but I don't know how to.

Is there a To Do list anywhere that could maybe give people some ideas on working on Drupal? I'm always very strapped for time, but whenever I can spare the odd hour I'd be more than happy to help if I knew what I could spend the hour doing to be productive.

Also, would it be feasible to provide some sort of estimates to the release date based on current and preferred staffing levels. For example:

With current (x) number of people involved - 6-8+ weeks to release date
With 10 more people involved - 4-5 weeks to release date
With 50 more people involved - next week?

That might also inspire people to chip in and provide some extra help - hopefully they'll be more likely to want to contribute if they can see a target that they help work towards.

Cheers

Stu

http://www.wildaboutbritain.co.uk

yvelle’s picture

projects, select the Drupal project, and the cvs version. Then click on bug an feature requests. Then just browse for things you think you could help with, this will greatly depend on your knowledge. If you think you have a suggestion post the code you think would fix it, even if you don't know how to make actual patches.

If you do the leg work and can provide the code fix, someone else can then quickly make the patch and get the bug fixed. This is how us non-techies can help.

Bèr Kessels’s picture

Whe all know that our clients, those whow pay, do want some sort of insurance. Both in planning as in "what" they will get. And if not, you are one lucky coder :)

So, eventhough the thing Bert points out is true, it does not have to be the best way. The "bigger" OSS projects (no, the more successfull OSS projects) have some sort of timeframe. the most strict ones I could find are:
http://developer.kde.org/development-versions/kde-3.5-release-plan.html
http://www.ubuntulinux.org/ubuntu/releases
http://live.gnome.org/TwoPointThirteen

The point is, that if you need to built professional projects on top of something very uncertain, you will choose for the most certain thing: Drupal 4.6.
That results in less resources working on 4.7, after all, they are building 4.6 sites for their clients, and thus cannot contribute to 4.7 while doing that.
Because less people are available, things can slow down, which results in more uncertainty (hey, you promised to have our site online by now, but its still full of bugs. Yes, sorry, but Drupal has still not released, as I thought it would have been). Which makes more people turn towards stable branches. It can turn against you. Debian found that out the hard way.

I wrote about this recently on my blog.

I am not saying that what we did is wrong, or that we should have done it different. I am only pointing out that that "when its done is done" has its downsides too. And that it is not the standard in OSS development.

---
Bèr Kessels
Professional www.webschuur.com
Personal bler.webschuur.com

Rainy Day’s picture

The OpenBSD project produces a major release just about every six months, like clockwork.

neofactor’s picture

When people ask the question... "when will it be done"
They ask because there is no clear outline promoted of the following:

1) What new features are to be included
2) What the status of each of these are.
3) What the phases are of development release.
4) What the projected time period is for each phase.

They ask these questions because they need want to know the basic question... do I develop my clients new site with the current version or due I wait a few more days for the big release.

The answer I would give is... work on your clients site right now with the current version... because there is no hard-fast timetable for the new version... plus all of the modules you may want to use will take months to be fully supported... not worth the wait... get moving.

If there is a page that highlights the new release with a time line.... please promote it better under the downloads section.... otherwise if it is not built I would love to see one.

SO in the end... Drupal users... if you are not actively contributing to modules and the CVS head version... DO NOT EXPECT a release anytime soon... just be surprised. Download and use the current stable version.... and get moving on contributing.

I appreciate all that you developers do and I am glad to be a contributer along your side...

David McIntosh
neofactor.com

Bèr Kessels’s picture

A quick calculation tells us tha there are over 500 issues to be solved before the release of 4.7. With the current rate of ten per day we have got 50 days to go untill a release. That is nearly two months.

Now, if you consider that from these 500+ issues probably around 200 are duplicates, silly bugs, or stupid mistakes made by the reporter we can get tis quickly down to around 300. That is a month!!

So take the issue queue from teh back, start here: http://drupal.org/project/issues/drupal?page=29&projects=3060&versions=9...

And just close silly or duplicated issues. No coding skills needed.

---
Bèr Kessels
Professional www.webschuur.com
Personal bler.webschuur.com

Steve Dondley’s picture

Usually I can do several more except when I find a particularly hard bug. If just 20 peope did that, we'd be done in no time.

--
Get better help from Drupal's forums and read this.