How to Kill a Project in 1 Decision
Published: 02/23/2009
Programming, Rant, Code
It’s pretty sad how a single bad choice can make for a REALLY bad product. In designing the project the developer’s responsible for keeping the integrity of the project intact. There are all sorts of micro choices the developer has to make and if they aren’t good the project suffers. This was made very apparent after looking at Mambo Wiki...
My team was recently tasked with building an Intranet for one of our clients. If you’re not familiar with the term an Intranet is just a website that lives on an internal network; they’re, generally, not publically available. Now, the client just wanted your basic, generic, CMS with a Wiki component and a full administration panel for setting up users and groups. Since we didn’t have to work with an existing code-base we decided to take a look at a few OSS projects. Long story short; we settled on Joomla (this was a HUGE mistake).
As a quick aside I have to mention just how crappy the Joomla extension code is. If you thought WordPress was bad take a look at Joomla. Just one of the worst designed applications I’ve ever seen.
Anyway, Joomla met all of our requirements for a program except for the wiki component. While we were researching a platform we took note of the extensive module, plugin and extension community and were impressed at how much code was out there. There were a couple a couple wiki extensions out there but most were commercial, which we just didn’t have the budget for (and philosophically, WTF would I pay for any code for?), though there was one promising extension that seemed to fit the bill; Mambo Wiki.
First off, I want to apologize for what I’m about to do. I’m sure the developers of Mambo Wiki are smart and capable but… well… yeah…
That being said, Mambo Wiki is, hands down, one of the worst programs I have ever seen. Billed as an integration of MediaWiki and Joomla the design of the program actually prohibits usage of the program.
Let me be clear; the design of Mambo Wiki destroys any practical usage of the program as a wiki. How is that possible? By placing the wiki within an iFrame.
First, think about how and why you use a wiki. For me I usually go to a Wiki through a search or because someone sent me a link to a page. By stuffing the wiki into an iFrame this is impossible. The only way to use it is to browse which makes for a very simple wiki with very little content before it becomes impractical.
I’m really at a loss to figure out how this could be ok for the developers. I mean, they’re obviously skilled coders and they’re pretty active on the official site for the module yet the project could double as an example of what not to do (which I’m doing…).
Maybe it was pure stubbornness. They wanted to use MediaWiki and, dammit, they were going to do it whether it was a good call or not. God, I hope not, but like I said, I’m really at a loss on the “why”.
There’s a lesson in this though; make sure you don’t half ass the design. Be humble. If it looks like your design is going to hurt the usability of the program walk away and start over. It’s much better to never publish than to publish crap.