Last time, I wrote of my conversation with Grady Booch, a legendary thinker who first made his mark in the mid-1990s (as co-inventor of the Unified Modeling Language and contributor to the Rational Unified Process). He continues to be on the cutting edge of development in his role as IBM Fellow.
He spoke of a new generation of information worker who’s not afraid to roll up his sleeves and get dirty in code. With websites such as Code.org, Booch said he sees “an effort to teach the average person coding as a skill. There is a degree of fragility in non-programmers building things, and it produces a security risk as well. You might meet a short-term need, but you don’t realize the technical debt as people build on it in ways that were never intended.”
Meanwhile, professional developers have a responsibility to deliver up frameworks that can glue many existing systems together, he said. “Like sewers and plumbing, they don’t get press but they are essential. Building large software systems is more like city planning. Facebook and LinkedIn had it great for a long time because they had no legacy code. [Facebook founder Mark] Zuckerberg would say, ‘Move fast and break things often.’ Now, they don’t want to break things as often” because of all the legacy code.
“Even Facebook is starting to begin having legacy issues,” said Booch. “It’s not a lot of fun dealing with [code] hygiene. It’s also easier not to floss, but you suffer the consequences if you don’t. In software, that means incurring technical debt, creating legacy code…”
Businesses today underfund their legacy systems, Booch said, because they see more of a competitive edge in Web and mobile user experiences. He noted a “transit point you see in startups”: as a company grows in maturity, they see the tedious stuff involved with software. And that has led to a rise in such things as microservices and containers: small piece of configured code that can easily be swapped for other microservices in other containers.
Booch pointed out that it’s challenging to build large systems in today’s world of agile development and continuous software delivery. “So today we build lots of small systems,” he said. “We build systems we teach and that learn, and that becomes an element of software design we didn’t have in the past.”
Systems that learn. Artificial intelligence. The rise of the machines.
Some fear a takeover by super-intelligent machines that could lead to the extinction of the human race as foretold in books and films, such as “Ex Machina.” Philosopher Nick Bostrom is the founding director of the Future of Humanity Institute and has done work on the existential risk of artificial intelligence. “I don’t fear the rise of robotic overlords,” Booch said. “I fear the shaky software on which today’s world exists.”