Picture from here
Just the other day I wrote about cloud computing versus SaS terminology. A web application isn’t necessarily a cloud computing or SaS platform. It can be one or the other, it can be both, it can be neither. Now that, that is out of the way let’s move on to the meat.
I think that all web application developers would do well to look at WordPress and the product they offer as key points for their own designs. Obviously, I use WordPress as a blog, I also use it as a CMS, a middleware application system, a database, a word processor and other uses. WordPress is extensible far beyond the original blog software it was designed to be.
The reason that WordPress is so transformative is the ability to use a fairly easy (well not for me but I suck at PHP and programming in general) API that the users can use to extend and transform the core product. This is done through the use of plugins. In theory, the expandability of WordPress would allow it to transform into any functional web application you can imagine. I’m not saying this should be done, however. WordPress plugins a lot of times just add band-aids to a product to extend it further than the core company can imagine or support.
Think of your ticket support system. Most of these are moving to a web-based interface. Easy to manage, no software to install on users’ computers, easily updated since you only have to update the core server – it’s a no-brainer to move everything you can over to a web-based centrally managed focus for a company.
Why can’t you extend it though?
Most of web application companies MAY ALLOW YOU to go as far as putting your company logo in the interface. Allowing you to brand a product to some extent is not the same as extending the product. I don’t want color changes. I don’t want a simple image swap. I want feature sets to be implemented without waiting 18 months to have it done. If you have a robust CRM application, in this modern time wouldn’t you want a spot to add a LinkedIn Profile section? This would be as easy as allowing customers custom fields that they can rename on the back end. What about adding an image? This would be a bit more difficult than a simple custom field, but still possibly doable. How about however a full blow plugin that looks up the LinkedIn contact info?
This is all hypothetical, but let’s say this is how the plugin would work in a generic CRM system.
1. Users logged into the CRM would associate their own – or a corporation profile with Linkedin
2. User plugins in the new contacts e-mail address
3. User is prompted with “Would You Like to Request Connection on Linkedin?”
4. If the user states yes the plugin would go into a state of “Waiting for Remote User to Confirm”
5. At this point the user could add in all the information they normally would in the CRM database
6. Later the user would receive a confirmation (or decline) of linking up on LinkedIn
7. If they receive a confirmation they could then pull in the information to the CRM application.
8. Then the CRM application would have connections and how they relate to each other in their database, home pages, Resumes, etc. – all from a couple of clicks.
That is a scenario that would appeal to sales personnel. Let’s look at something more urbane, a library look-up system. A library lookup system is something very simple and single task. It works well and returns (normally) the following information:
- Title
- Author
- Subject
- Location
- If it’s in or checked out
- Sometimes a Summary
- Sometimes an Image
Now let’s look at methods we can use to extend this functionality. The first thing I would make sure of is there is a public internet-accessible site that either the general public or the Library chooses just card members can access. Library users are normally people that live in the same town and there are a good number of them that know each other. What does that buy you? Word of mouth. What about a secondary revenue stream outside of donations or overdue fines? How can you leverage more people to show up at your fundraising drives? I’m assuming these are questions that library officials ask themselves. How can we turn that simple search to find a book into something more?
Let’s give the users an option to use the search page as a social platform. I would give the users a choice of using the old style simple search functions, but also give them a chance to leverage the public you are serving to work with you instead of you working for them.
Let’s go over an imaginary social library platform.
1. User opens up a search window in the library database and enters a query.
2. User gets back the title, author, and subject – then a link that states more information (this is where a plugin would take over)
3. On the plugin page users could get back an image of what they are searching for. They also see where it is located, if it’s in or not, and more. What about a sidebar that allows them to purchase the book/movie/CD at Amazon? Reviews from other library patrons? A list of who checked out which book (make this opt-in only on a per-title usage – don’t compromise a user’s privacy). A listing of library events where the author is signing books, giving a reading, or there is a book discussion covering these topics?
You just made something that is infinitely more “sticky” and lets the users interact with your site on a much larger scale than previously. They are no longer browsing alone, but in a group, with people they know from town.
All of this is possible with a platform that allows plugins. I’m not asking for web application developers to support any plugins directly. If a plugin breaks or crashes the core site (shame on the user that puts an untested plugin in a production environment) – the web application developer should tell the user they will not support the product with any plugins running at all. It doesn’t mean the framework, APIs, and access shouldn’t be there.
I’m pleading with web application developers that allow the users to have self-hosted servers to please build this extensibility into their products. I can hack around another platform and get these functions, but sometimes we just want to buy a program from a vendor with support. Currently, you are making us choose between function or support. It should not be that way. Opening up can only gain customer loyalty in the long run.