Near-human Tasks

Softwareengineering
2006-07-04

This morning I was writing a test plan document. It contained lots of technical nitty-gritty and detail, but a lot of it was the same stuff repeated over and over again. It was very tedious to write (and hence undoubtedly error-prone), but necessary. I kept thinking how useful it would be if I could automate the process. I knew it was just a little too complex, and contained a few too many exceptions, though, that writing a program to do it would be more trouble than it would be worth.

This led me to thinking about ’near-human’ tasks. Perhaps we can classify tasks into three board areas:

It wouldn’t surprise me to discover that near-human tasks are an already-understood concept, probably in the field of AI or some other computer science theoretical field (possibly something I should already know!), and that I’m reinventing terms here. But maybe they an area that we can focus on more in order to overcome some frustration with the menial tasks that annoy us?

One possible example, although more automatable than my original one, is that of detecting spam. Relatively good spam filters now exist for email, with ~1% false negative rate and next-to-no false positives. These spam filters have been probably been technically possible for some time (although they still eat a fair amount of compute resources), but have only risen to prominence in the past few years because the rising tide of spam has made them necessary. They are still not perfect, which in my mind is what keeps them out of the fully-automatable category (the writers are always one step behind the spammers, and would have to do more work than is worthwhile, or maybe even possible, to get a 0% false negative rate), but they are getting closer.

What other examples of near-human tasks exist? What should the bright software engineers of tomorrow be working on to make our lives easier?

Comments

I should have perhaps clarified that this post has nothing to do with 'Human Tasks' in WebSphere Process Server or similar. I'm talking about computability and programmability here.