Richard M Marshall
I'm not a robot
We’re technologists, we’re the magicians that make the modern world work. We perform at the intersection of creativity, engineering and craft. Surely our roles are safe from the robots that are coming to claim the jobs? Actually, no, we’re not. We live in a world where intelligent systems are getting better and better at working with humans. While the ingredient lists for Cognitive Cooking with Chef Watson and the AI-written script for the AI in Progress Bar might be amusing novelties today, they are serious first steps towards a broader approach to augmenting humans.
The way we create software has already changed dramatically over the last couple of decades. Access to endless libraries and repositories on line mean that someone else has already done almost everything you can think of component wise. Vast hoards of open-source software avoid manually digging the foundations without recourse to commercial vendors. We take this for granted today, but it is all very new. Building software has become clicking modules together and wrapping them in layer of specific code to do what was required. No need to continually reinvent wheels.
Three more waves of change are already happening. The first is with smart tools that automate the creation of much of that custom layer. Robotic process automation, RPA, describes a set of tools that watch how people use existing applications and then layer faster, easier interfaces over them. This lets staff be more productive rather than fighting with the usually horrible interfaces enterprises inflict on them. It also removes the need for developing new interfaces to these systems and, perhaps more importantly, it uses actual usage data to optimise delivery rather than what the developers think would work best. UIPath is a specialist new entrant, while existing process-software vendors are also playing for example Pegasystems Infinity.
The second wave of change is the move towards self-service development, simplifying the process of creating typical apps to the point where those with basic computer skills can build what they need. While this isn’t new – Visual Basic is a classic in this area – however the tools are getting smarter and better at integrating with existing backends. Alpha Software’s TransForm is a perfect example. Start by simply typing in a list of the information you want to capture, and it will build you an initial app from that. It’s inspired because that’s the first step anybody is going to make no matter how it is built. TransForm also recognises that fitting in with IT is key, and it allows full extension through a configuration language, while data handles offline storage and backend connections.
Lastly, there is finally a whole new set of specialised programming languages emerging for the bits that do need human construction. Dedicated to a given task, compact rather than verbose, and designed to have mechanical sympathy with cloud architectures, these languages will allow humans to keep up with automation for a while. Some of these languages are new, such as Golang, others, such as Erlang and R, are finding wider adoption after being in use for decades. New languages allow the creation of domain specific languages, for example Kotlin to make programming faster, easier and with fewer bugs.
But watch out even here for automation, as new, automatic frameworks emerge. Google’s AdaNet is machine learning to build better machine learning algorithms – automatically. AutoML – a software robot that builds software robots.