Posts Tagged ‘Web Development’

Content Is King – Picking the Right CMS: Part IV, True Open Source

Tuesday, March 16th, 2010

Lock, Key & Chain by sravi in (Busy at work) via flickrIn the last post I discussed commercial open source CMS which are open source in that their code base is available to the public but are not entirely free like open source.

True Open Source is where popular systems like drupal and joomla and others live. These systems don’t have any paid components (core or extensions) and their code base is entirely open to the public. For the big players (like Joomla, Drupal, and Plone), the library of community-contributed extensions can be mindblowing. (Joomla alone has over 4,300 extensions.)

In my experience, true open source CMS tend to evolve the most quickly, and are likely to stay up with current trends (integrations with social media, new web apps, etc.). A great number of the extensions contributed were initially designed by developers to solve a unique problem they had when working on a specific problem. When thought of this way, you’re not just looking at a massive amount of code, but a massive amount of intellectual capital – that is, people using technology to solve their problems and sharing those solutions on the web.

Open Source has many of the same advantages that commercial open source has. Cost avoidance can be achieved by maintaining the code yourself, and you can’t be left out in the cold even if the community dies (which does happen) since you have the code base and can maintain it yourself.

Recognize, of course, that not every extension is safe to use. This is the primary reason that open source CMS get a bad rap for security. (IBM Internet Security 2008 Year Trend Stats – Drupal, Joomla, make top 10 vulnerability list.)

But if you stick to the core and do some due diligence yourself on any extensions you use, open source is going to be a good option for your CMS.

Content Is King – Picking the Right CMS: Part III, Commercial Open Source CMS

Tuesday, January 26th, 2010

In the last post I wrote a bit about commercial proprietary CMS.  These are “pay to play” CMS which come with licensing fees meant to compensate the company for their intellectual property.

Somewhere between commercial proprietary (100% paid) and true open source (100% free) lives commercial open source.  It should be noted there is a fine line between commercial open source and commercially backed open source.

open sources 2point0 by josh bancroft via flickr

Let me give an example:  SugarCRM is a popular CRM which has an open source version that can be installed, maintained and extended by your team and you’ll never pay Sugar a dime.  That said, there are features of Sugar which are not available in the open source version and a paid version is pushed hard by the company.  In commercially backed open source, by contrast, everything is 100% free, but the project itself has a corporate sponsor who is usually interested in offering professional services or being a certified hosting partner.  DjangoCMS is an example of this.

Concrete5 is a popular CMS that offers paid extensions to their system, and I have seen this with other CMS as well.  This is a trend I hope continues.   As with any software I use for my company, I want SOMEONE to be making money so they stay motivated and can keep the lights on.  Concrete5 is an example of a company inventing a new kind of commercial open source, fully featured open source versions with paid extensions, cool.

The advantages to commercial open source CMS are similar to those of true open source, with a few additions.  The code can be manipulated and extended by internal resources, and cost avoidance can be achieved by hosting the solution yourself.  The supporting community of developers means faster evolution of the product, and people’s monetary incentive keeps them motivated to put out quality product as well as gives them resources for things like outside security audits.

The disadvantages are fairly obvious.  Of course, the solution is not entirely free, so costs will still be incurred.  Also, you need to be careful to make sure the open source version of the solution actually has the basic features required to be useful.  Even though there is no direct cost to installing the software, it will suck to find out after spending hours on the installation that the open source copy doesn’t contain versioning.   Lowered morale, and lost confidence does have a cost, especially in IT.   Also, the usual open source suspects such as security vulnerabilities rear their head.

money grab by steve wampler via flickr

Still, I still like this model the best.  I want people to be incentivized monetarily to produce a great product, and I will always be more comfortable with organizations that have incoming revenue to offset costs and solve problems.  (Note: I don’t think incoming revenue and incoming donations are the same thing.)  The open source version gives us a chance to test drive the product and tells me something positive about the developer’s confidence in their product.

Content Is King – Picking the Right CMS: Part II, Commercial Proprietary CMS

Tuesday, November 24th, 2009

How does a business choose the right CMS on which to build their site? This blog post is part II in a series designed to outline the different tiers of content management systems available and their pros and cons.

In my last post, I defined some terms, so make sure you check out that post if, as you’re reading, you start thinking, “Wait a second, what about…”

So today, we’re going to review what is a commercial proprietary CMS.

Commercial proprietary CMS means there is a licensing fee for initial use of the CMS, as well as (typically) annual maintenance fees. It also means the code is not open to the public, and if there is the ability for third parties to make code contributions, it’s not open to just anyone.

Commercial Proprietary CMS are the oldest and typically most mature tier of content management system. Oddly enough, it’s the group I’ve had the least contact with. It’s most common to see programming languages like .Net and Java in this space, although PHP has produced a fair number of CMS in this tier.

Le kiosque de Sitecore by Frederic Harper via flickr

Le kiosque de Sitecore by Frederic Harper via flickr

Names like SiteCore and Immediacy are popular names in space (both .Net).

The advantages of this tier are fairly obvious. As mentioned earlier, these platforms are highly stable, mature, and have a great deal of experience “built in.”

What I mean is that SiteCore and Immediacy have been used on a lot of BIG websites, and presumably what they learned from those experiences are built into current releases (both are on version 6). They also come with strong corporate support, which is important to companies whose website is actually getting traffic (this eliminates most organizations) and needs to be kept online at all times. It’s always a plus to be able to call someone when something breaks. It’s also unlikely that these platforms will disappear tomorrow. This is a significant risk with open source as hundreds of communities are born and die every year.

Another significant advantage to these platforms is they tend to be secure, and their vulnerabilities are not nearly as public as some of their open source counterparts. (I’ll review this more in later posts.)

On the down side, this software can be expensive. Really expensive. Licenses can easily run $10,000 one time plus $2,000 annually. On larger installations, this number can be significantly larger. And this doesn’t even include installation. The total bill for integrating a commercial proprietary CMS into your website can run into the hundreds of thousands of dollars. But then again, what’s the only constant brand presence your company has worth to you?

Another down side is that your internal programming resources (if you have any) can’t extend these applications as easily as they can extend open source software. Everyone has heard “wouldn’t it be nice if the CMS could do X? Most of these CMS’ have certified partners that can help you write extensions, but it does not compare to the ease and cost-effectiveness of extending Open Source.

Lastly, there aren’t scores of developers contributing new, creative modules to these platforms every day (although scores of developers could also be viewed as a security threat). A quick glance through the extension libraries of Drupal and Joomla will give you an idea of just how much intellectual capital has been thrown at this software by its contributing members.

That’s my outline for commercial proprietary CMS. As I mentioned above, this is the category I have had the least experience with. If there’s something you’d like to add, please do.

We’ll cover true open source, and agency or professional services (in house) CMS in future posts.

Content Is King – Picking the Right CMS: Part I, Definition of Terms

Thursday, November 19th, 2009
King's solitude - La soledad del Rey by Manuel Marin via Flickr

King's solitude - La soledad del Rey by Manuel Marin via Flickr

Content is king, so it’s no surprise that content management systems have become one of software’s fastest growing industries with hundreds (if not thousands) of offerings. As the primary means for non-technical workers to update a website, web content management systems have become part of the everyday work lives for tens of thousands of employees.

So how do you choose which content management system to run with? Better yet, where should you even start looking?

If you want to make sure you’ve made the right choice, I recommend that you start by outlining the different tiers of content management systems available, and the pros and cons of each. Once you’ve decided on a tier, it will make drilling down to a particular CMS much easier.

Over the next few articles, I’m going to do just that. These articles will be geared to help a business person make a decision on which tier of content management system to investigate further.

NOTE THIS DISCLAIMER! This is not intended to be a comprehensive comparison of the feature/functionality of any particular CMS or CMS’. I’m also not trying to argue one way or another about the validity of content management systems themselves. For these articles, I’m assuming they’re a worthy investment. Let’s just run with that assumption. Maybe someday I’ll write about who really needs a CMS in the first place. That won’t be discussed during these articles.

To start it all off, we really need an operational definition of “content management system” so that we can all understand exactly what I’m writing about. For the purposes of these articles, we’re going to use the term “content management system” or “CMS” to refer to web content management systems like drupal, joomla, concrete5, etc., and NOT true enterprise content management systems like SharePoint and Confluence. The difference between them is that web content management systems only allow users to edit pages on the website, whereas enterprise content management systems help employers manage and collaborate on everything content including documents, spreadsheets, slides, and the website. In terms of a CMS, the basic functionality we’re looking for is a text editor (WYSIWYG or WYSIWYM), Navigation Manager, Form Builders, Template Engine, and File Storage. So, when you’re reading these articles, remember that we don’t mean enterprise CMS systems – so that there’s no confusion.

Now that we’ve defined what we’ll mean by “CMS” for this article, I can list the tiers we’ll discuss in upcoming posts. The different tiers of web content management (at least for my purposes) are commercial proprietary, commercial open source (there is a fine line between commercially backed open source and commercial open source), true open source, and agency or professional services (in house) content management systems.

Check back for the next article and we’ll start discussing the different tiers.

Why Your Site Bounces So Much Traffic

Friday, November 6th, 2009

If you’re looking at your site and thinking: “It really looks great – the design is wonderful; people are sure to want to visit and learn more about us now,” then you’re probably going to be in for a big disappointment.

Library Services Hierarchy by herzogbr via Flickr

Library Services Hierarchy by herzogbr via Flickr

The fact is that while design can improve a site’s performance, it can only do so on sites where the information hierarchy has already been established. People already spread their time too thin, to expect them to search your site for the relevant piece of information they need is unrealistic. They want what they want, and they want it NOW, or they’ll leave. Period.

When you’re setting up your site, the number one thing you need to consider is what your target is actually looking for, and then provide it – in quickly absorbable, bite-sized chunks. So many of the businesses I talk to are under the misguided impression that the goal of their site should be to cause people to go deeper to get what they need – if they learn more about the company, they’ll want to do business with us, right? Wrong.

By providing what the visitor needs quickly and up front, you’ll demonstrate an understanding of their needs. They can learn more about you later – if they decide they need more incentive. Determine what it is about your company that is most compelling, and what your target absolutely needs to know to do business with you. Put that in the premium position on your site – on your home page. Then, develop a hierarchy for everything else you think the visitor wants to know, and what you want them to know, with what the visitor wants always coming first.

Remember, it’s all about QUICK, QUICK, QUICK, and what the visitor wants to know. Having additional support content can be good, but as secondary & tertiary pages the visitor can discover if they so desire. Determining what’s most important to impart is the key to reducing your bounce rate.

How’s your hierarchy working?

Why CMS Might Be Right For You

Wednesday, April 15th, 2009

If you’re going to build a new site – or even revamp your existing site – you’re going to want to be sure you’re building it so that it will work for you next week and next year, as well as it does today. And to do that, you’re going to want to build it with a content management system (CMS).

A CMS allows you to create, edit, manage, search and publish pages on your website without having to learn a programming language PHP or even markup languages like HTML/CSS. A good CMS platform has a simple administrative interface that makes creating, storing, and publishing pages easy, so you can keep your site up to date.  Another important part of a CMS is extensibility.  If your site is more than a simple informational site, you’re may want to build functionality on or around the CMS.

Here are four benefits to implementing a CMS on your site:

CMS systems save you time and effort: Using a content management system drastically reduces the time and effort needed to update your website.

CMS systems help manage costs: Without a CMS, you will likely have to pay someone in-house or out to update the content of your website. With a CMS, anyone can easily keep the content current.

CMS systems help you keep your site current and meaningful: Because you can do it yourself, a CMS makes it easy for anyone at your company to update content. You can update it as frequently as you want.  That means you can ensure your site has new information to visitors keep coming back.   You don’t want to miss business opportunities because you are unable to add timely or topical content to your site.

CMS systems can help you manage your SEO: A good CMS is built with the search engines in mind. By standardizing layouts and properly labeling content and structure, your CMS can help search engines like Google index and rank your website. Additionally, regularly adding new content to your site will give search engines more to crawl and improve your ranking.

Is your website doing everything it can for you?

IKIWISI – How to solve the "I'll know it when I see it" dilemma

Tuesday, March 3rd, 2009

IKIWISI!
“I’ll know it when I see it!” That seems to be the current mantra in software/web development.  It means stakeholders don’t know what they want their final web product to be until they see it.

Software and web developers have tried to accommodate these make-it-and-we’ll-see requests through technologies like the WYSIWYG (what you see is what you get) editor.  Products like Protoshare, IRise, and Axure have taken this a step further, creating clickable prototypes which not only gives stakeholders a visual representation of what the site will look like, but can also provide an indication of how it will “breathe” – or to put it in other words, what it will be like for a user to traverse the site: Will it be intuitive? Crowded? Does prioritization of items on the home page make sense? You get a basic answer to these questions with these products.

But it’s an uphill (and unnecessary) battle to try to take specs, create the product in its entirety, show the stakeholder the final version, and expect a quick approval. In fact, since most people (including sophisticated software developers) don’t know what they want until they see it, there’s a good chance that all your work will end with a, “Hmmm. No. That’s not it. Try again.”

So how do you solve the puzzle of what your customers really want, so that you can both be profitable?

I think the solution is to create the final product iteratively.  This high-level chronology is what I use to create websites, and it’s worked well. The process goes like this:

  1. Create the Site Map: This includes agreeing on the goals of the homepage, and should incorporate the most recent specs. Without a site map one has almost no framework to work from. The site map will also help you see how the pages relate and will give you an idea of flow through the site. (You will need to communicate that flow through discussions.)
  2. Design the homepage and any pages with unique functionality or unique user interface.  This can includes search pages, search results pages, user input pages (forms), etc. Share the designs, make sure that the customer agrees with the overall look and feel. Details can be worked out as you’re moving forward.
  3. Begin building the “shell” of the website with live links/navigation and on a server that all stakeholders can easily access.  Usability testing (at least informally) can begin to take place at this point.  If you expect stakeholders to start understanding what they want at this point, you’ll realize that they’re going to request changes.  It’ll still be early enough in the process at this point where you can embrace those changes – which will make your client very happy.
  4. Code the remaining functionality of the site.  Unit tests can be written between steps 3 and 4 if that is something your organization engages in. Upon completion of the coding, all unit tests should be passed, and post-production testing should take place. I like to show the client the un-skinned functionality to make sure we’re on the right track.
  5. Skin the site.  That is, do any visitor-side programming that needs to be done (CSS/HTML). Make the site look pretty.  Get final approval from the stakeholder.
  6. Push the site to live.

Following this order in production of a site can help eliminate the IKIWISI issue from killing your man hours. And remember, keeping stakeholders in the loop throughout the whole process will save developers/designers hundreds of hours of re-dos, redesigns, revisions, etc.

Quietly Taking Over The World

Friday, January 23rd, 2009

Welcome to Leading the Nerd Herd.

Technology keeps advancing. It’s vital to it to stay on top of the advances because the importance of those who understand and know how to use it will only continue to grow.

Those in the herd live by this fact. We stay online and connected. We revel in the latest and greatest. We’re the early adopters who alpha and beta test, so that the rest of the world can have products that are easier to use.

I’m lucky enough to not only be a member of the herd, I’ve taken a position in helping to develop tech. On this blog, I’ll post thoughts about technology, web development, and business entrepreneurship.

Got a question? Just send it to me.