Tuesday's Tip: 10 Suggestions For A Successful Open Source Apps Strategy (Based On Personal Experience Blowing Up My Blog)


Blogging Platforms Provide A Good Showcase For The Power And Benefits Of Open Source
Over the past 3 years, I've had the pleasure and privilege of experimenting with a variety of blogging platforms.  For my day job, I use TypePad and at night I build this blog with WordPress.  (Prior to that, I used Blogger.)  Without going into the pro's and con's of each platform, I can say that blogs are by far a great example of what can be accomplished with open source.  Each blog platform builds with an open source pedigree.  Delivery is via SaaS or on-premise.  Support comes from an active community of users willing to lend a hand to help the next person out.  An ecosystem of developers builds the latest and greatest widgets that can be added to the next release and extend functionality faster than any software vendor could ever go to market.  Early adopters take one for the team (TOFTT) and provide extensive testing and report bugs.  The benefits are definitely there and as an individual blogger, I've come to appreciate the community and group effort.
Personal Blog Crisis Highlights Potential Open Source Concerns For Enterprises

So while on vacation the last two weeks, I decided it would be a great idea to update to the latest version of WordPress 2.7.  While I was at it, I figured there'd be no harm in updating to the latest and greatest version of my Atahualpa Theme.  After 3 months of virtually no issues with upgrades and the application of widgets, I thought this would be just another simple upgrade.  Boy was I wrong!  In fact, I managed to both hose my existing database, restore the database via disaster recovery, and then blow up my existing blog again with a screwed up deployment of the latest theme.  Not apparent to most subscribers was the fact that the website had been rendered inoperable for 2 weeks.  While content could be viewed, no new content (i.e. links, comments, posts, users, etc.) could be created.   After a week of struggling to find the right post in a support forum, testing out the latest "fix"and failing miserably, learning codex for dummies, I ended up with a plea for help in twitter.  Thanks go out to Adam Metz, J A di Paolantonio, and fellow Forresterite Jeremiah Owyang in directing me to the right professional help - John Wiseman, who actually was the pro in troubleshooting what would become evident as some serious user errors!
Now all this makes me wonder what an enterprise who deploys an open source ERP or any enterprise app would have to do to:

  • Procure the right level of support
  • Determine the key selection criteria for an open source app
  • Recruit the right level of talent to maintain and extend functionality
  • Mitigate risks during upgrades or changes

Open Source Lessons Learned From My WordPress Experiences Applicable to Enterprises

Mea culpa is a Latin phrase that translates into English as "my fault", or "my own fault"
Source - Wikipedia

So what I'm about to list as a top 10 is probably not new to open source aficionados so don't flame but feel free to add your comments.  Truth be told - it's a list of many things I failed to do - some items were advice I often gave my clients about enterprise apps in the day job.  So, learn from my mea culpa, I certainly have!

  1. Choose a widely supported platform. Thanks to the sage advice of friends, I started with a solid hosting provider.  Props go to Media Temple for real live person support and a good knowledge base.  Equally important is an application with rich support and strong community.  I had evaluated 5 major blogging platforms and ended up with WordPress because of the richness of the tool, support community, and the wide range of widgets and theme options.


    Personal
    lesson learned: Reduce risk by choosing a widely adopted platform.  You'll get the benefits of a community ecosystem.  You can't pay enough money for that kind of level of support.

  2. Keep abreast of release changes. The pace of innovation is much faster with open source projects.  Releases often follow agile methodologies with frequent updates from small but powerful teams.  With so many releases and bug fixes in play, users should keep abreast of changes on a weekly basis, at a minimum.

    Personal lesson learned: The process of cramming 3 months of change information in a week was just insane.  Now I keep an RSS feed of the themes, widgets, and application updates.

  3. Contribute to the community as much as possible. The power of open source is with the community.  This assumes an active and vibrant community that benevolently shares information.  This collective urban tribe requires active participation and that means you should contribute as much as you can when you can in an effective manner.

    Personal lesson learned: Understand the community dynamics by trolling for a few weeks. Then get involved where you can with that perspective.  Contribute early before you need help and like other community organizations, you'll find a receptive and thankful core group with a long memory.

  4. Upgrade only when needed. No need to upgrade to the latest and greatest release.  Focus on key requirements and upgrade when requirements pop up.

    Personal lesson learned: Ignore all those tempting red icons that tell you to upgrade.  Consider upgrade when you have time set aside for extensive testing.  You'll live without the latest and greatest widget!

  5. Adapt a less is more philosophy. With so many different widgets from different programmers, reduction in complexity will work in your advantage.   Coding standards vary and interest among developers range from personal hobby to professional.  Certification programs are nascent and most deployment is based on reputation.  Keep in mind, most open source products are free.  So quality is based on personal pride.

    Personal lesson learned: Moving from 25 widgets down to 10 core widgets makes isolation of bugs and testing much easier.  Less is truly more in the long run.

  6. Maintain separate environments. Very obvious to an enterprise to have test and production.  Not obvious to an individual despite his/her background in the industry... ;)  Development environment would also make sense for those with heavy custom dev resources.

    Personal lesson learned: Test and production now up and running.  New widgets and upgrades will be tested before roll out to production.

  7. Test, test, test. This goes without saying.  You can never test enough.  Key approach is to test in isolated parts as widgets, themes, and other new code is introduced.  If you can find automated testing tools, put them to use!

    Personal lesson learned: Introduce new versions, widgets, and themes one at a time.  Test between new introductions.  You never know what will break.

  8. Backup often. Mistakes will be made.  However, a good backup plan minimizes data loss and is a good risk mitigation strategy.  Schedule automated backups as often as possible.

    Personal lesson learned: Backup all components on a frequent basis.  Make all backups before upgrades or new installations.

  9. Evangelize success. As with identifying bugs, sharing successful strategies helps strengthen the community.  Successful adoption of open source is based on best practices and experiences from others.

    Personal lesson learned: You can blog, tweet, or use any other Web 2.0 tool or social media approach.  Share the wealth!

  10. Don't be afraid to seek professional help when all else has failed. Despite all the richness of the ecosystem and support, sometimes it's no longer possible to do-it-yourself (DIY).  You may face scenarios where you are ahead of the curve and there is no support forum for your scenario.  In some cases, consider professional organizations delivering support as part of the selection criteria.

    Personal lesson learned: Keep a running list of experts on your platform.  Continuously seek references from peers about key resources.

The bottom line - open source will take some work but could be an alternative in today's economic climate
Heard enough?  Contemplating open source for your enterprise apps?  Given today's economic climate, there could be a greater case and trend for open source.  If you take the plunge, keep in mind the lessons learned and be prepared for some DIY and a certain level of ambiguity.  It can work, you just need to do your homework like any other packaged apps strategy. However, I can see open source working best in enterprise scenarios when there's a common and dominant "competitor"  such as the case in operating systems with Linux vs Windows.  Enterprises need one throat to choke but maybe with this economy the views may be changing.
Your POV.
Have you had similar experiences with open source and support for your open source products. Post here or send me a private email to [email protected].
Copyright © 2009 R Wang. All rights reserved.