When Rapid Application Development is not rapid

Published November 12th, 2005

As mentioned in this article, I’ve been looking for a PHP development framework to help me get somewhere with a bunch of projects that have been stalled for, well, too long. After much deliberation, I settled on Cake — as much as anything because it seems to be in constant, active development, and the people involved seem committed to it. However I’ll still be keeping an eye on Qcodo, because I think it’s a promising project.

Many of the frameworks I looked at (Cake included) characterise themselves as Rapid Application Development (RAD) platforms. In this context that really means that they aim to speed up the process of prototyping and developing a new software project by simplifying/automating repetitive tasks (database operations, template rendering etc) and providing a formalised structure for development. When it works it can save huge amounts of time, but it’s not a magic bullet.

The biggest hurdle to achieving this goal is not the software itself — generally they work as advertised — but the learning curve of the framework itself. And missing, or poor quality, documentation is a huge factor in this (a tip for anyone who is writing, or thinking of writing, a complex piece of software: auto-generated API documentation is not a good learning tool).

In my day job I’ve been developing with the same framework for something like 18 months, during which time it has gone through three major versions — none of which have ever been documented in more than the most basic way. Consequently, I believe I’m ignorant of at least half of the software’s capabilities. And although it works, I’m probably doing some really arse-backwards things because I didn’t have time to root around in the source code to find out the ‘proper’ way to do it. I’m certain that this has had a negative effect on the project’s popularity.

Writing documentation is boring. I know, I hate it as much as anyone and will go to some lengths to avoid having to do it. But if you’re hoping to find a broad audience with your project, good docs are essential: to my mind, one of PHP’s greatest strengths is its extraordinarily extensive, and actively maintained, documentation.

Cake’s documentation is…how to put this politely?…patchy, at the moment — a disorganised mess of half-finished tutorials, rough wiki pages and API docs. However, the saving grace is the project’s IRC channel, where you can almost always find someone who will help you solve your problem. To be fair the project is still very much in its early stages and the code changes daily, so it makes some sense to hold off on the ‘official’ literature for the moment. But I hope that the developers realise that the project could stand or fall on the quality of the documentation.

Get a Trackback link

No Comments Yet

Be the first to comment!

Leave a comment

Comment Policy: First time comments are moderated. Please be patient.

OpenID

Anonymous