@madpilot rants

Why do open source web apps suck?

I’m a professional web developer, so it goes without saying that I’ve seen my fair share of off-the-shelf open source web applications. I’ve also seen my fair share of web design companies take these applications and modify them up the wazoo to fit with clients requirements… Well, sort of. It is probably more likely that the sales staff have managed to convince the client that their requirements should fit in with what the open source project does. On behalf of all the web application developers out there who get lumped cleaning up the mess: STOP IT.

Modifying open source software seems like a perfect solution to managers – the solution is almost done, so surely it is just a matter of a few tweaks here and there, a splash of paint and Bob’s you uncle. Yeah – nah.

Here is somethings to think about before modifying an off-the-shelf to your next client.

  1. You can’t guarantee the code. Unless your developers has spent A LOT of time working with the application, they aren’t going to know the code. For them to become familiar, they are going to have to spend a lot of time getting to know it. This doesn’t save time, it wastes it.

    “But they will know it for the next client!” I hear you cry. Don’t bet on it. Unless you are doing the same mods for another client, they are going to have to spend the same amount of time investigating it next time.

  2. Making core changes to a system is just asking for trouble – I hope the time you saved by using the system is re-allocated to testing the FULL application – you have no idea what you will break.
  3. Skinning pre-built applications sucks. Trying to modify some else’s CSS is worse than someone else PHP. Just like modifying core code libraries and hoping for the best, it is really hard to know what you will break. That is of course assuming the application isn’t a spaghetti of tables, and includes that have little structure (Xoops, osCommerce, Joomla – I’m looking at you).
  4. Open source developers are very narrow minded – their contributions are to suit their specific need, which means every developer will try to include their feature, and unless the leads are ruthless, you end up with a application that has everything that opens and shuts, but that doesn’t really open or shut very well.

    Not only that, you end up with a situation where there are thousands of different modifications that do the same thing. osCommerce is the perfect example of the mess this creates – I had to find a gift voucher module – and found at least 12 different variations of the same plugin, none of which worked. If I see YMMV on the end of one of these modifications I’m going to hit someone.

  5. As soon as you modify software, forget about updating it. If there is a security fix, or a new feature, you will basically have to spend a similar amount of time re-patching the new version with your changes. If you wrote your own application, you can add a feature much more easily.
  6. “Modules” are a misnomer, I am yet to see a decent module system for anything but the most basic feature – they all involving modifying code to work, which is you ask me, isn’t a module.
  7. The documentation will never be up to date. On of the selling points of open source software is that you have thousands of developers at your disposal to fix and add features quickly – unfortunately, the documentation never keeps up. You better get used to reading source code.
  8. Open source apps are hacked not engineered. Design by committee never works, design by ad-hoc anarchy REALLY never works – if the project doesn’t have a clear leader who has a vision and is ruthless in implementing it, you are going to end up with a mess.
  9. Support. You don’t get any. Budget time for your developer to scour the ‘net for an obsure german forum where someone has found a solution to the similar problem you have had that may or may-not actually work.

So when is open source the right thing to use? If the system does exactly what you want, then go for it. Want a blog? WordPress is an excellent blogging system, but it isn’t a content management system, so don’t expect it to work like one.

Let me state that I’m making a big differentiation between applications and frameworks or libraries. I encourage the use of frameworks and libraries, because you can still control your code. You are leveraging low-level code, which is the boring stuff (for some) and you are left with building a system that your client actually wants.

So please, continue using Rails or PHP or Apache or MySQL, but leave osCommerce and Xoops at the door. If you still want to use the latter, make sure you give your developers enough time to work through the issues you will have – about the same amount of time that you would have quoted on a custom solution in the first place should suffice.

24 comments

  1. Pingback: Man with no blog » To use Open Source of not
  2. All 9 points are absolutely spot on! Don't let that put you off though - there ARE some very good open source solutions out there, but they are the exception rather than the rule.



    I've found more success by searching out the smallest possible component (and not the most feature rich). There's less to go wrong, and less code to pour over when/if it does.
  3. I think you should better name this post "Top 9 Mistakes when extending Open Source Apps and how to avoid them" instead of blaming open source apps in general with those points ..
  4. Saw the twitters on PayPal. I'd like to try to help out if I can (pb at paypal dot com).



    You can send money to an unregistered email address on the live system, too! That's basically the key feature that made PayPal so successful. Ebay buyers were able to send Ebay sellers payments even before the Ebay sellers had PayPal accounts.



    Regarding this thread, I just installed Magento for the first time today and it looks pretty slick. I'm a little nervous about it being on Zend Framework but there you go.



    Also, SugarCRM is pretty nice.
  5. Pingback: Hey Raena » Open source sucks… sometimes
  6. Why MOST open source web apps suck? Because MOST of its contributors don't using tests (TDD or BDD).



    Application must be controlled by something. It can be strict project manager which will say 'remove this crap from SVN immediatelly or you are fired/removed from this project/etc'. In the open source there no project manager so tests are incredibly important.



    No tests == Failed project
  7. Huh? Low flying quantifiers? You mean closed source doesn't suck by its nature? Well, maybe those desn't suck because in their case You cannot modify anything but trivial aspects? C'mon, please stop spreading this nonsense. All above points are perfectly valid for all crappy applications, regadless of license. I've seen enough crappy closed source apps...
  8. Hmm, it seems you have been hit by reality on some projects, and are a bit mad and angry on someone else, now!? :-)



    You can be right in some of it, but there is nothing to say, that this is not the same problem with commercial, extendable software.



    And BTW: Your point 5 about modification, what you really should/could do, was contribute the changes back into the main repository. If accepted.



    And on point 8 about hacked not designed. Maybe, maybe not. Many commercial, closed source, apps are spaghetti/hacked, you just don't see it. Actually, I think there are many opensource apps, that are well designed and not hacked. They tend to grow first from developer demands, and then from user needs.



    Even though you seem struck by a bad experience at the these times :-) I think you are wrong in the basic assumption, that opensource webapps are bad.
  9. IMHO your title is misleading, you're discussing why USING open source web apps and CUSTOMIZING them is a bad thing...

    I like open source apps a lot and have customized a few (wordpress, Joomla..) and I agree that it's not easy, but most of your arguments could be applied to closed source projects which you'd like to customize...



    Simply put: customizing some else's app is always a pain in the ... if it lacks good organization (leaders, testing, documentation...)
  10. Having just done a modified osCommerce installation, I agree ;)



    I think off the shelf solutions have many of the same problems, though.



    If someone's going to use an Open Source app, they really should plan to use it absolutely out of the box. If not, they certainly shouldn't think it won't cost a lot of time and money to modify it. It's only the base application that's free after all...
  11. I cringe every time I need to use Joomla for all of those reasons. I've been using cmsmadesimple.com and it is a breath of fresh air - real control over your OWN html/css, modules that are truly modules and don't overwrite code, and a small and dedicated group of developers keeping the product up to date and working smoothly. Easy to upgrade b/c there are those nasty nested tables, and crazy templates for every modification.
  12. @karaznie This isn't a comparison of open vs closed software. And yes, modifing any sotware is a pain in the arse. Although you tend not to get this problem with closed source because you can't get in and modify the code. What I'm saying is that you shouldn't see open source software as a silver bullet to speed up development by modification.



    @Tony @Christoph Well the title should probably be "Selling modifications to open source software instead of building what the client actually wants is a bad idea" but that is a little long.



    @Tech Per you're damn right that I've been stung by this - time and time again. Every time I've had to look into modifying one of these system I have been stung. It is such a disappointment.



    In regards to point 5, unfortunately, trying to merge changes back into the core project isn't always a good idea - if you need to change something really specific for a client, there is nothing to say that anyone else needs that mod. If the project leaders let these sorts of changes back in you end up with a bloated, unusable piece of software that tried to do everything, but does nothing well. By all means, if you find an obvious discrepancy or security fix, submit a patch - but even then, don't expect it to get in.



    And yes, there is some well engineered Open Source applications. They tend to be ones that have strict commit controls, project leads who drive the vision and standards.



  13. This is the most uninformed article I have ever read.



    So, you're saying that you would suggest buying a product like vignette or building a custom CMS instead of implementing Drupal? Generally, businesses support the reuse, buy, build methodology.



    If you're going to write such a bold article, you should back it up with examples, not just say that every open source app sucks. In my experience, I could confidently state the exact opposite.



    Can you honestly tell me that Apache, Postgresql, MySQL, Ruby, Python, and PHP (all open source) suck? This would be a bold statement for someone who is running Wordpress, most likely on a Linux server, and using MySQL as a backend.
  14. @Jason Palmer Did you read the last part of my post? I made the differentiation between WEB APPS and WEB FRAMEWORKS (and for that matter server/desktop software).



    I love things like Rails, Ruby, PHP, Apache and MySQL. I'm writing this comment using Firefox on Linux - my point is, open source WEB APPS are complete systems - they shouldn't be used as a basis for a system, they SHOULD BE as the system.



    If a client wanted a blog, I would still use WordPress. If a client wanted to add a shopping cart to their WordPress install, I wouldn't do it. When was the last time you modified the source of Python because your client needed it to do something different? You wouldn't do that, because you can write a library that DID do it properly - the purpose of the sofware is different. This post is ALL about fitness of purpose.



    And no, unless vignette does exactly what the client wants, I wouldn't buy it.



    So just read things a bit more closely before you start calling people uninformed.
  15. I would highly suggest taking a look at http://www.andromeda-project.org I think it will change your mind.
  16. @Donald Andromeda is a framework, not a web app - as this blog post is about web apps, it's not going to change my mind
  17. Sounds like someone's keeper is having second thoughts about the expense of custom proprietary software and is desperate to justify thier existence.



    Unfortunately the reality is that most of the Internet, and the commerce that it nurtures, owe a great deal more to open source, off the shelf software solutions, than it does to proprietary software.
  18. Your right on the ball Myles.



    I know I have spent many long nights searching for workarounds to do seemingly easy thing with a open source app.



    At the end of it I'm like I'm never going to do this again... :(



    In terms of PHP frameworks whats your take on Symfony/Cake?
  19. Hey Dan,



    I haven't used CakePHP in a couple of years, although I really liked it and did a number of projects in it.



    I'm looking at Symfony at the moment and I'm not hugely impressed yet, it seems kind of bloaty (Lot's of configuration files, lots of generated classes). We'll see what happens after I play with it some more. It seems to fit in at the ASP.NET end of the scale, by trying to be everything to everyone, which is fine if that is what is trying to be achieved.



    I'm sure I'll form a better opinion after I've played more.
  20. After reading this, I have to agree with you. But still, I find it easier to destroy something than create. 'Destroy' meaning dumbing down an open-source solution to fit the needs of the client. It definitely would be easier than building a custom solution from the ground up, especially considering the open source solution having a considerable amount of time to mature, whereas your custom code has not withstood the masses.
  21. As some other commenters have stated, the title is a bit misleading, but the points you make are spot on. 95% of the time, using "off-the-shelf" open source components to build a site will mean more work, not less. I have grown to dislike words like module, component and widget because of it. These abstractions almost always leak like a sieve because they're way too high-level.
  22. You should change the title of this article to 'The world's most obvious point'. The body of the article should read 'If you modify the source code of an application to suit a client you are an idiot'.



    Also for the record, saying "Open source developers are very narrow minded" is a pretty narrow-minded thing to say.
  23. well this is really a bad article about real open source apps.. you should avoid using them insetead of writting so much crap about them
  24. Check out xSellit eCommerce Storefronts at goxsellit.com. The company who developed this system have been software/web developers for over 17 years. Their monthly fees are lower than most hosted packages out there and you own the store! It is an all-in-one complete eCommerce storefront - all inclusive - with NO hidden monthly fees. They give you everything you need to sell online and are truly seo friendly.

Leave a comment