In order to drive the business’ competitive advantage, software architects need to mix three ingredients into the “evolutionary cauldron” if they want to keep up: agility, velocity, and modularity. The evolution of software architecture is the future, and software architects hold all the power, according to Mark Richards, an independent software architect who gave the keynote at this week’s O’Reilly Software Architecture conference in New York.
Richards, who has been in the software industry since 1983, took software architects and other attendees through the evolution of software architecture, starting back with hardware and ENIAC computers. ENIAC computers were the earliest forms of electronic computers, which could solve numerical problems through reprogramming. It was these computers that led to advancements like the mainframe, which as a result brought humans to the first parts of software programming, Richards explained.
Fast forward many years later, and now humans can process and store data, interact with computers and software, and retrieve data. We have social interactions, and we have the opportunity to collaborate with ideas and documents through the likes of Facebook and Twitter, said Richards.
But we wanted more, he said, which is why we live in a world of microservices, highly distributed systems, service based architectures, and the Internet of Things. According to Richards, these are machine-to-machine communications that it give humans the ability to communicate with our coffee makers, our refrigerators, and homes.
And Richards says this evolution isn’t going to stop because “we are always in a rush,” trying to do more and trying to do it faster.
“Certainly all this evolution ultimately leads to the question, what does those software architectures look like now and in the future to support this evolutionary cycle,” he said.
Richards again brought up the ENIAC computer, noting how it was used for tasks like calculating trajectories. It could complete these tasks in thirty seconds. This freed up time so humans could do more, and as this pattern continued, humans could automate more and more, as well as faster and faster. But, it’s this automation cycle that is hard to keep up with, he said.
The reason, according to Richards, is old approaches are slowing company growth. To solve this, software architects need to think about evolutionary architecture, and use those three ingredients — agility, velocity and modularity — or independent parts that can be combined to get that competitive advantage.
The bottom line, said Richards, is software architects can influence a company’s earnings and their ability to maintain a competitive advantage.
“If we think about it, and how much control you have, this is the secret sauce,” said Richards.
There is one more ingredient, though. As companies increase their competitive advantage, the more scalable systems need to be. Software architects need to create autonomic self healing systems, or systems that can monitor themselves and adapt to their environment. This lets the architects programmatically fix errors, handle big events like Cyber Monday, and handle repeating patterns.
Although it sounds futuristic, said Richards, all of this is available today. No special languages or tools required, he added.
“I’m calling you to stop spending effort and time on predictive analysis,” said Richards. “Stop thinking about where the business will be in three years; it’s moving too fast. Rather, refocus those energies on doing a better job on integrating data and functionality. This is the future of software architecture.”