Monday, September 21, 2009

Do it yourself software

Recently I refreshed my memory on a company my friend Alef Arendsen, then at SpringSource, pointed out to me. Charles Simonyi of Intentional writes that “all too often the knowledge and insights gained during the development disappear into the details of the code”.

Although Intentional as a company has been around since 2002, and its ideas date back to the 90’s, this is still very much where business software is at today. The need for specialized engineers to get involved to build applications or websites, comes at a loss of direct influence and knowledge about the things that you need to build. Companies that are able to successfully bridge this gap, can produce stunningly usable software that others just don’t seem to get right: Google and Apple are the obvious examples.

In this light Content Management Systems have always been about putting direct control back into the hands of business. When trying to create web pages, back in the early/mid ‘90s, I had to teach myself a bit of HTML for even the simplest piece of green text on a black background. With business software this is no different. While years back for every 1 or 0 you needed a team of programmers, now many of us with simple development skills can create very complex and powerful applications.

Most of these developments stop short of one final step: new technology has empowered the developer, but you still need programming skills to get sophisticated enterprise applications up and running. The business users or ‘lay programmers’ as Martin Fowler calls them here, remain dependent on the IT community to realize their ideas. Hence business users stretch the boundaries of the tools they control: multi billion dollar projects with 1000s of people are entirely managed with cleverly designed spreadsheets.

The first step in CMS development was to take the developers out of the loop in changing content on the website. With this 'Do-it-yourself' software a company did not only dramatically reduce the cost of maintenance, it also enabled business users to control the content directly. This in turn solved many of the translation problems on early websites. With a CMS it was immediately clear what a text would look like online. Text could be correctly fitted and the author could place pictures exactly where he wanted.

Today even the simplest CMS has solved this problem and it is time to push the bar a bit higher: giving business the power to change and build complex websites integrating existing applications without IT support: so it does not require a project proposal and 4 months queuing time to get a new site live. And yes, it would be nice if it could all run on an invisible internal or external cloud infrastructure, so you would not have to worry about plugging in an extra server or getting the backup hooked up.

The benefits are clear: No more ridiculously detailed requirement sheets, no more blame game when the results don’t meet expectations in spite of this effort, and much, much shorter cycles – removing an entire layer of ‘friction’ between customer and producer.

None of this is new – but in practice many challenges remain. While those in the know seem to be able to develop great looking, complex integrated sites in a matter of days or weeks; the average business user still fumbles with his Excel spreadsheet. And while the developer community has largely embraced the open source development model, participation of business users is notably low. With business users largely sidelined, there is a permanent danger for open source projects to lose track of the ‘business intent’ of a project. In projects where the engineers and business end users are one and the same, this danger is relatively low, but with any software that moves up the enterprise ladder, the dangers of a disconnect grow. On the bright side: if successfully tackled there seems to be a terrific opportunity for open source companies to involve more business users in their projects.

Ideally the end result of such a project is not only a CMS driven website or a content driven portal, but a system that allows users to use this as a starting point, with easy to use interfaces for creating additional websites and/or portals.

Here are a few things we do at Hippo make it easier for our partners and customers to build such environments:

  • Provide direct and user friendly access to administrative interfaces; eg, drag and drop Portlet selector for Jetspeed Portal 2
  • Give access to functionality previously only available to programmers through a user friendly UI: eg, Nested Template Picker, Site control functions in CMS 7 or space creation in Jetspeed Portal 2.
  • Involve end-users in ongoing road map meetings, not just during the requirement / delivery phase
  • And of-course: Develop products with a keen eye on keeping things clean and nimble for the daily user

So we're not quite at the full realization of Simonyi’s lofty goals yet, but rapid development environments and the rise of cloud infrastructures provide an opportunity to involve business users in different ways than before. Companies definitely seem eager to embrace it.