The advent and proliferation of internet-enabled and connected devices, paired with old legacy architecture, is causing integration and data control headaches for the modern organization. How can your company address these challenges and prepare for the future at the same time? I’ll argue: if you do nothing, you’re in big trouble.
From Legacy Turns Complexity
If your company is like many others, your business services live in multiple silos. You may have different databases and web services to handle your product database, CRM, your transactions, your marketing, loyalty, rewards, payments, and so on. In addition, many companies host some databases and business services on premise using legacy systems, with other databases and business services provided by 3rd parties, or are hosted privately in the cloud.
This should not be a surprise. Over time, decision-makers with varying perspectives come and go. Different business groups and stakeholders are given autonomy to select solutions for their needs, while at the same time risk-averse IT groups defend keeping legacy architecture in place (not surprising as migrating from legacy architecture to a modern framework takes time and non-trivial investment). Technologies, integrations, and business services end up in silos and have accumulated technical and architectural debt that makes it hard to move forward with the requirements of the business.
The Silo Problem
While silos may have worked for some organizations in the past, this is not sustainable. Here’s why:
- Engineers, DevOps, and product managers end up managing a messy array of end-user (client-side) digital products, webservices and databases, which each havedifferent:
- data architecture (SQL or NoSQL),
- data transfer structures (XML, JSON, etc.),
- authentication requirements,
- types and degrees of API documentation quality (good, OK, and bad),
- data structure (meaning data that is not normalized and consistent across disparate siloed locations),
- server environments and server software,
- webservices technologies (Node.js, Django, PHP, .NET, etc.), running SOAP, or REST APIs,
- security protocols, and
- different client-side technologies (.NET, js, HTML, CSS, HTML5, PHP, Objective C, JAVA, PhoneGap, Xamarin, etc) to run end-user applications, such as Websites and native mobile applications.
- Organizations that are stuck managing a tangled web of technologies (noted above) fear change. Why? Change becomes complex, slow, and costly and over time, exponentially more challenging and risky.
- Over a product’s life, as new applications and endpoints are added into the product stack, these applications are often integrated on a one-off basis with the webservices and databases they need to interact with. The result looks like this:
- In the above product stack image, what happens when something changes with the Payment API (shows as the cylinder labeled “Payment”)?
- Mobile engineers have to change the mobile integration.
- Web engineers have to change the Web integration.
- IoT engineers have to change the IoT integration.
- These integrations are all siloed and require different technical competencies and expertise to manage (you’ll need a whole team of people to figure this out).
- Consumers are adopting new technologies faster than ever. Consider device and technology proliferation. Businesses have to figure out how to connect these new technologies to their existing architecture (shown below):
- Augmented Reality & Virtual Reality
- Wearables
- Artificial Intelligence
- Conversational UI (natural language speech and text)
- If an organization were to integrate each one of the end-user interfaces above, with each one of the business service API’s below on a one-to-one basis, they’d have a massive technical headache on their hands (and someone would likely get fired for having no future-looking vision).
Modern Enterprise Architecture for the Future
While I’ve painted a picture of many problems above, there are now elegant technology solutions which address all the pain points. Enter the MEAN Stack (Mongo, Express, Angular.js, Node.js) or the React Stack, (React.js, Mongo, Express, Node.js).
At the heart of these modern frameworks: Javascript. Why is this so important? Javascript end-user applications can be packaged to run beautifully across many different platforms. A full-stack javascript engineer, which is much easier to find than other developer skills, can build an application with the intent to package components of a singular central application to run:
- In a mobile app on iOS, Android, Amazon Kindle, and other mobile devices
- In a wearable, such as a smartwatch or health monitoring device
- In a regular browser as a website
- Conversational UI communication experiences
- Augmented Reality experiences
- Communications with Artificial Intelligence engines
- Internet of Things devices
First, let’s paint a picture of what this looks like:
I don’t know about you, but to me that looks sexy!
Next, let’s add in the integrations with an organization’s different business services. Angular.js components removed on purpose to de-clutter:
There are common challenges which, when addressed using the architecture shown above, provide huge technological advantages:
- Common Challenge:
- APIs for the CRM, Payment gateway, Loyalty service, Rewards service, etc., may all use different protocols (SOAP, REST), different data structures (XML, JSON), and have inconsistent data formatting.
- Advantages:
- By feeding all disparate 3rd party APIs into a single orchestrated webservices API host middleware application, we can normalize all the data and provide a clean, organized, coherent single-source API (built on Node.js) for the Angular.js application to talk to. This removes a lot of complexity between the server-side application and client applications.
- Angular.js components can then be dropped directly into client (end-user) applications, such as mobile apps, websites, etc., without having to rewrite the front-end application in multiple different languages (like HTML5, CSS, Objective-C, JAVA, etc.).
- Once all the business services and data are under control via the API host, we can apply business logic and rules, content management, and controls in an engine that lives on top. This allows product owners to monitor the health and status of their business services, control which services are on or off based on different business rules, gain valuable insights and analytics on their product performance across multiple platforms and much more.
Finally, let’s see what happens when an organization needs to change. In the image below, the CRM provider made a change to its API, which caused a new requirement for how the CRM must connect to all of the organization’s end-user applications. With this modern architecture in place, the change is a relatively straightforward adjustment to one adapter, which can be handled by one full-stack engineer and propagate to the entire enterprise (see the highlighted connection in red).
I changed one connector and magically everything in my end-user applications just worked. Boom!
Quantifying the Impact
In working with a client this year, I ran into a similar situation with the challenges outlined above. I inherited and became responsible for managing the client’s existing legacy product (not built by me), which came with some serious technical debt. Understanding the challenges ahead, I recommended to the client that we move them to a Modern architecture.
Below, I’ll use the term “Legacy,” meaning 1) a siloed approach to product architecture and integration, 2) not using a modern middleware API host, 3) using different technology stacks for different end-user applications, 4) different technologies for separate databases, and 5) different data structures without normalization, 5) different implementation methodologies and standards. I’ll use the term “Modern,” meaning a MEAN stack approach with a modern middleware API host, data normalization, and Angular.js-powered end-user applications.
To help quantify the impact of moving to a Modern enterprise architecture, I ran some in-depth analyses and built a business case including a 2-year total cost of ownership model. The name of the client, type of their end-user applications, and actual costs have been omitted for confidentiality.
Here’s a summary of what I found:
- Implementing new features on the Legacy architecture would take on average 3x longer and cost 3x more than implementing new features the Modern architecture.
- While the initial CapEx (investment) to build the Modern architecture was ~ 45% more than the initial CapEx for Legacy, the total cost of ownership over 2 years for Modern architecture was 120% less (including considerations for planned launch of the Modern architecture into a new market with a new brand).
- Planned extensions of the Angular.js end-user applications on the Modern architecture to mobile applications would cost 60% less than building custom native iOS and Android mobile applications from scratch.
Separately, during management of the client’s technical-debt-ridden Legacy product, I had an engineer get so frustrated with the state of the product that they asked to be moved off of the project. I had to put them on another product team in order to avoid engineer churn.
The Churn Problem
IT managers, engineers, and DevOps hold the keys to business-critical infrastructure. Over time, these team members tire of managing old, cumbersome legacy architecture and seek out new employment where they’ll be afforded the opportunity to leverage faster, more extensible, reliable, easier-to-use and easier-to-manage modern technologies. No one, whether an internal employee or vendor, enjoys or is challenged by maintaining and building upon aging technology. This causes employee churn in IT, which is one of the most costly areas of churn for a company because of the high cost of personnel and intense market competition for the talent.
In Closing
David Girouard, former President of Google Enterprise Apps who is well-known for building his group at Google into a $1B+ global business, said:
“I’ve long believed that speed is the ultimate weapon in business. All else being equal, the fastest company in any market will win. Speed is a defining characteristic — if not the defining characteristic — of the leader in virtually every industry you look at.”
While the future is uncertain, there is absolute certainty in this: change is happening and technology is moving at breakneck speeds. All businesses need to prepare to move fast. If you don’t, your competition will, and they’ll win. Prepare your business for the future with a modern, extensible enterprise architecture to ensure you can move as fast as your customers demand.
If your organization is ready to move to a modern enterprise architecture, contact us at Stuzo. We’d love to hear about your challenge.