Tuesday, 27 September 2011

Bootstrapping 2: Why are there so many tools?

Have we created more tools and techniques than we really need?

Last week I described how the capabilities of our MA2 product are developed within MA2 itself, and that we are currently bootstrapping a fully-fledged product from an initial core. This bootstrapping does not just cover product features, like survey tools and reporting tools. It covers sets of questions, website content, documentation, and even administrative tools such as contact forms and bug tracking. We are using MA2 to create all of these within MA2.

Because we are using the same tool for everything, we end up using pretty much the same techniques all the time. Everything we create requires the definition and structure of information, writing content, considering how users will interact with the system, and occasionally hand-crafting processing rules. This is true whether you are writing a survey tool, or presenting a handbook on the web, or creating a bug tracking utility.

Different types of requirement can easily share the same solution. We created a shortcut menu to make it easy to develop questionnaires, and found it was just what we needed when replying to questionnaires. If we had different tools, we would not have seen the similarity and would have two solutions.

The issues that we hit are much the same. For example, MA2 is extremely flexible, and we have to think how much flexibility we expose for each different use. How many different ways should we give people for defining survey questions, or for specifying what links should be available from pages, or what should be in the API for a scripting library? Without tool limitations to make the decisions for us, we face the same issues for different types of requirement.

Even the problems are the same. MA2 automatically recalculates data when the information on which it depends is out of date. Normally this works in the background without disrupting the user. But some bulk activities, such as generating thousands of tailored questionnaires for a survey, can be slowed down by the constant recalculation of pages that index the surveys. To get around this, we added options to control whether and when indexes are updated. Later, we found we had the same problem developing strongly interlinked metadata libraries, because everything changes when anything changes. We could use the same solutions to get round the problem, even though the requirements are different.

Different activities, such as development of product features, development of assessment content, writing web pages, and setting up administration functions, are much more similar than we usually think. All of them can use the same tool, require the same techniques, raise the same issues, and share the same problems and solutions.

This has really made me think. Do we have lots of different tools and techniques because we have lots of different types of requirement? Or do we just think we have lots of different types of requirement because in the past we have used lots of different tools and techniques? Maybe we have made IT much more complicated than it really needs to be.

© Copyright 2011 Minimal IT Ltd. See the Minimal IT website for the original newsletter and copyright information.

Tuesday, 20 September 2011

Bootstrapping 1: Speed and consistency

What happens when you write software in itself?

It always brings a smile to my face that we use the word "boot" to mean "start the computer". The word boot, or bootstrap, is a metaphor based on the nonsense of pulling yourself up by pulling up the straps of your own boots.

Nonsense though it may be, bootstrapping has come to mean any self-sustaining process which does not require external inputs.

I have been doing a lot of bootstrapping recently, and it has given me some really interesting insights into the fundamentals of IT.

To give some background, a few weeks ago we put in a new version of our Metrici Advisor software, which we call MA2. It is a web-based platform for assessment and advisory solutions, such as surveys and consultancy tools. It combines surveys, database management, expert systems, web content management, screen handling, data analysis, reporting, and integration. The requirements for assessment and advisory solutions are very variable, and so the software has to be very flexible.

To meet the requirements for functionality and flexibility, we adopted an unusual design. None of the capabilities we need are built into the underlying software. Rather, we built a flexible engine that allows these capabilities to be defined within MA2 itself. Defining new capabilities, such as a survey tool or reporting library, uses exactly the same features that are used when consuming those capabilities, such as filling in a survey or viewing a report.

When we went live, MA2 had a small set of fundamental capabilities, just enough to recreate the functionality of the earlier version. From this, we are now in the process of bootstrapping a fully-fledged product.

This bootstrapping covers lots of different things. It covers different solution types, from simple surveys to expert assessments. It covers the materials for assessments, such as standard questionnaires. It covers multiple types of analysis, reporting and charting, and new features in the user interface.

As well as bootstrapping the product itself, we are bootstrapping our own business support within MA2. We have created content management capabilities in MA2, so that we can use MA2 to publish our own website. We have also created our own internal administration, such as customer contact, and problem management, within MA2.

Doing this work, two things have struck me:
  • Consistency. Instead of using separate design tools, database tools, programming tools, web editors, content management systems and admin applications, we can do all this work in a single tool.

  • Awesome speed. We set out to make it easier to define the structure, content and interaction of assessments. The solution we created has ended up being an extremely productive mechanism for doing pretty much anything you can do with a computer.

This combination of consistency and speed is unlike anything I have seen before. But I am not saying this just to boast. Usually we plod through work slowly using multiple tools. But when you speed through lots of different work in the same tool, you get a very different perspective. Next week I will cover some of the things we have seen from this new perspective.

© Copyright 2011 Minimal IT Ltd. See the Minimal IT website for the original newsletter and copyright information.

Tuesday, 13 September 2011

Rise of the robots?

The purpose of IT is to impose structure, not just to make computers easy to use.

A chatbot is a computer program which can converse like a human. I recently came across an entertaining article about two chatbots having an argument. Although amusing, articles like this worry me because they make me wonder how much computers will eventually take over from us.

I do not worry about total computer-led slavery of the human race, as in the Matrix films. I worry about something much more mundane. If computers can already have semi-intelligent conversations, it is only a matter of time before they can have convincing conversations. Once they reach that point, how long before computers take over a lot of knowledge-based industries and jobs, not least the IT industry itself. If a business can discuss its IT needs directly with the computer, and the computer can configure itself to support the business, what future is there for the IT department?

I know nothing about developments in artificial intelligence, but what I know about human intelligence and IT makes me think that this is an unlikely future.

Most of our experience with IT is far from ideal. Organisations are stuck with IT that does not do exactly what they want, but the costs and disruption of changing it are too high. Governments struggle with implementing major systems like tax or healthcare. Even on a personal level, we struggle to use the programs on our PCs.

It is tempting to think that a more human interface to the computer could fix these problems. It could interpret what we mean, rationalise our requirements, and configure IT to support business. It could weight up competing political interests. It could even format pages properly.

Although there is certainly scope for applying new technologies to make computers easier to use, I do not think that they will be taking over any time soon.

Because we are human, we have complex motivations, we are emotional, we are ambiguous, we do not express ourselves clearly, we misunderstand each other, we forget what we are doing, and we don't do what we are told.

However, to support our sophisticated lifestyles, we have to overcome this human nature to an extent. To help us do this, we have created many different structures: language, mathematics, science, politics, organisations, laws, finance, contracts, procedures, the highway code, fishing licenses, and so on. Over the past few decades we have added to these with computer systems.

These structures help us live more complicated, sophisticated lifestyles. However, because of who we are, we resent the structures we put on ourselves. We do not want to be completely consistent, rational and structured.

This fundamental antagonism between the need for structure and our unstructured nature is at the root of our role, and any knowledge-based role. Our job is to bridge the gap between the real, irrational, empathetic human world and the artificial structures that we create.

This role is extremely hard, which is why we continue to have problems with IT. It takes much more skill than just being a good conversationalist. And this is why our jobs are not going to be taken away by computers any time soon, no matter how chatty they are.


© Copyright 2011 Minimal IT Ltd. See the Minimal IT website for the original newsletter and copyright information.

Tuesday, 6 September 2011

Don't use Facebook

Services like Facebook can be a useful medium for public contact, but using them exclusively is a dereliction of commercial sense or moral duty to communicate freely with the public.

I live in a small village and have four children who go to four different schools. Getting them there would be a logistical nightmare if it were not for the transport provided by the local authority.

My wife and I therefore take a keen interest in local authority policy for home to school transport. When changes were proposed earlier this year, which could potentially have withdrawn transport for any or all of our children, we were keen to contribute to the public consultation exercise and remind the authorities how much people like us rely on the school transport service.

As a follow-on exercise to this year's consultation, possibly because many people like us expressed concerns, the local authority launched a "conversation" about it over the summer.

Now, I have absolutely no idea what they mean by "conversation". I understand writing to officials and politicians to help them understand the impact and strength of feeling of proposals. I guess "conversation" means a less formal consultation exercise, without the same obligation to consider contributions fairly.

Although I could read about the "conversation" on the local authority website, I could not actually contribute to it through the website. I had to somehow find it on Facebook, and "join in".

This is wrong in so many ways.

To start, any involvement in this exercise requires a computer and an Internet connection. Although I welcome use of electronic means as part of the political process, to mandate them is discriminatory. Proper consultation exercises allow contributions on paper.

Second, even if I have a computer and an Internet connection, I have to use Facebook. I have to sign up to another, unrelated, service, and submit my comments through an intermediary over which neither I nor the authority have any control.

Third, even if I am happy to use Facebook, it is nearly impossible to find the information. There is no permanent link. I had to search through pages and pages of self-congratulatory press releases until I found the item about the "conversation" and the comment link on it.

Fourth, having found the item, I could not comment. The comment link went to a sign on page, and after I signed on, the comment link disappeared. I imagine I simply don't understand how to use Facebook, but that should not exclude me from the democratic process. (I did, however, find something that let me suggest changes to the name and address of the local authority, so I did that instead. I am not sure my suggestions were very constructive.)

Organisations should be very cautious of using Facebook, or similar services. Although some might find it convenient and trendy, for others it will be a barrier, much more so than a simple website and email. There is nothing wrong with using Facebook as a channel for communication, but if you use it exclusively you will cut off potential customers, and will not meet moral (or legal) duties to consult fairly with the public.

© Copyright 2011 Minimal IT Ltd. See the Minimal IT website for the original newsletter and copyright information.