Are We There Yet?
Mainframes were born in the 1960s, along with the first computer languages: COBOL, ALGOL, and FORTRAN. Minicomputers arrived in the ’70s, along with BASIC, PASCAL, and C. PCs came of age the ’80s, along with languages that were so simple we figured anyone could use them. This led to many a disaster—from bloated, unmaintainable corporate systems to medical device failures. And so the ’90s became the decade of heavy process, as we tried to get software under control. Then along came Y2K, which brought us the internet, agile, and the decade of teams. Try as they might to be autonomous, the teams inherited monolithic databases and deep dependencies. To solve these problems, the 2010s became a decade devoted to flow (DevOps) and architecture (microservices). Now, as we start the 2020s, our problem has become this: How do you coordinate all of these small services and their autonomous teams to deliver something big? Nope, we’re not there yet—but we’ll figure it out; we always do.