One day soon a robot will replace me. I'll be focused on some gnarly coding problem, happily munching on green grapes and slouching like the meatbag I am, when the interaction designer, call her Alice, will walk by and ask me if I want to go look at the neat new system she just installed. She'll say, "It's going to make our job much, much easier!"

The system will be matte grey and smooth like a river stone. We'll feed it a description of what we want and it will ask us some questions about what we're trying to accomplish. It will show us mock-ups and system diagrams and we'll give them the thumbs up or down. And then, after about three minutes of waiting and listening to the best hold music I've ever heard, out will pop a really good program. We'll tell the robot to give it a few more tweaks but really it will be fine to begin with. I'll try to look at the code but it won't be human readable.

The next week, the rest of the dev team and I will be let go. Alice will look bashful but relieved that she still has a job. I will move to the desert and start a business fabbing artful robot bodies.

Consider all of the startup people who have already been mostly replaced by robots: the IT team has been replaced by the cloud, the visual designer has been replaced by Twitter Bootstrap, the JS framework hacker by Dart, the DB guy by ORMs...

I can hear all of my literally minded peers screaming about the exceptions to that last paragraph. You're right, except that you're wrong. During the dot.com boom at i-drive we shipped a web site which could support a few million active users and we needed a team of 20 devs burning themselves out to make it happen. This year, two kids with fresh CS degrees and I shipped a site which can not only support a few million active users but also uses machine vision and crowdsourcing in a computationally intensive and complex manner.

All of that has happened in the time before engineers really put their minds to replacing themselves.

Like sectors on disks, checksums in packets, and registers on CPUs, we'll abstract away the manual labor of startup coding until most projects need only an interaction designer and the occasional consultation from a freelance computer scientist. It's what we do until we aren't needed to do it.