About Tech companies
For a company to be a tech company, it is not enough to think its business through technology, it has to think its operations through technology as well. It means that any process of the company shall be monitored, automated and optimized to ensure a steady growth of the business. The company business and operations shall be driven by technology. From the customer relationship to the operations passing by the product design, everything shall be digitized by design.
In a tech company, architecture design plays a key role and is tightly coupled to the business. When I talk about architecture, in its generalized term, I’m referring to application architecture, system architecture and enterprise architecture. Yet, I don’t want to follow those TOGAF monks who preach good patterns in the antic language Archimate. Enterprise Architects want an architecture dogma written in stone. I want it more open, fluid and dynamic.
To build a good architecture design, you need to understand what your business needs at this very right moment.
The 3 axis of growth
In theory, a business can grow on 3 axis:
- Customer Satisfaction : How well do you know your customer? How well do your product match its needs? How quickly can you adapt to your customer needs?
- Product Performance: How efficient your product is? How many cases can your product support? How much revenue can you get?
- Operations Excellency: How quickly can you update your product? How does it cost per unit of production? How fast can your business scale?
On each axis, the middle of the scale corresponds to the state-of-the-art of your industry. Do less and you’ll face difficulties from your competition. Do more and you’ll beat your competition. You shall first study your competition and position your company on those 3 axis. Is my company better or worse than my competition in customer satisfaction? product design? operations?
Yet, it is hard to do better than your competition on all the 3 axis as your resources are scarce. The money you invest on one axis is not invested on the 2 other axis. If you invest too much on one axis, your company might lose ground on the 2 other axis that are under-invested.
To be optimum in your strategy, you shall do at least as much as your competition on 2 axis and overperform on the third axis. That let you with an important choice to make : on which of the 3 axis shall your company focus on? This will impact your strategy, your organization and the alignment of your teams. Your architecture design shall reflect this choice.
Architecturing for startups
The startups have a peculiar challenge. They shall reach the state-of-the-art of their industry as quickly as possible on all the 3 axis.
The Chief Technology Officer (CTO) is the Head Architect of the company. He is responsible to build the product and in a small startup, he might help to find tools that improve the processes of the young company. Basically, architecturing for startups means to find on-the-shelf services that enable the new company to leap frog to its competition level.
Those tools can reach a large range of usages but 6 properties shall be observed for the future growth of the company:
- Relevancy : is the tool help to solve a problem or to speed up a process?
- Usage / Complexity : what is the percentage of features actually used compared to the richness of the features of the tool?
- Price / Usage : how much does the tool cost compared to its usage in the company?
- Portability : can the data of the tool be moved to another future good tool?
- Metrics : can the tool expose metrics in order to monitor its usage?
- Automation : can the tool be controlled by other tools?
Tools are used in bigger process pipelines that compose the activities of your company : development, sales, recruitment, business development and so on. Do not underestimate the metrics on the usage of a tool as they enable the monitoring of the complete pipeline and make it able to improve over time. This is actually the heart and the blood of a Tech company.
First, the young startup shall find a problem to solve. From a technical point of view, this requires rapid prototyping. In practice, the CTO might not be involved at this point as a lot of tools are easy enough to use for a CEO to present its product : mockup, landing pages, CMS… Yet, the best tools are the ones that gives you insight on the customers you try to reach.
Then, the startup works to build a first product that answers the customer needs. In the Lean Startup methodology, we talk about a Minimum Viable Product (MVP). An MVP just has enough features to be interesting for a potential prospect. The key here is to find a tool, flexible enough to build a custom product and quick to iterate with as the product market fit research is something inherently empirical.
For web companies, web frameworks might be your best bet here. They are flexible enough, yet they help the developers and the operations to be productive. Moreover, they embody some of the best practices of the industry : software updates, data handling, security… Here, the programming language is not as important as the size of the community behind the web framework and its maturity.
As soon as the customers take the bet, it is time to prepare for scaling the company. Most of the processes are handily-made, therefore inefficient. The more growth your business have, the more money will be used to handle the operations of your business. To scale a company that has an exponential growth, each process pipeline shall be carefully designed to reduce the cost by unit of growth and to avoid any bottlenecks. Automation is the key here.
DevOps is a set of practices that enables your company to not lose your Product Development pace when it comes to deploy new updates and to run your software. But, your company has other activity pipelines (sales, recruitment…) and automation can play a great role here as well.
On the 3 axis of growth seen above, automation makes it possible to do better on each axis with the same level of investment. Basically, this means that you can invest more on your strategic axis of growth while maintaining or even improving your level on the 2 other axis.
Based on the metrics of your tools and their automation, you can build complete automated pipelines for your company’s activities : deploy a new software, recover from an outage, customer recovery, accounting, recruitment and so on. Your architecture design shall make this automation easier :
- Have loosely coupled systems
- New systems shall exposes API
- Make the systems redundant
- Automate your systems upgrade and recovery
- Expose metrics on the usage of your systems
For web companies, while web frameworks make the product easy to develop, it might be increasingly difficult to operate and scale the system. The microservices architecture is an answer to this problem as it makes the architecture more modular and scalable. It has the following properties:
- Decompose a monolithic system in several coherent and manageable subsystems
- Expose APIs for all the subsystems to control and monitor them independently
- Favor the redundancy and the scaling of the subsystems
Yet, it is not really easier to operate and requires a fair amount of automation on the DevOps side to make it manageable. Startups who starts with a microservices architecture too soon might waste their resources to handle it.
Moreover, your scaling bottleneck might not be in your software runtime, but on other of your company’s pipelines. When you are about to scale, it is increasingly important to know where are your bottlenecks so you don’t waste resources on activities that don’t require it. At this point, you might be interested in drawing your company’s pipelines to identify your weak points. The Lean Manufacturing methodology helps you to identify and eliminate the waste in your processes by introducing or improving the tools in the pipeline.
For instance, for your recruitment pipeline, you might use emails, a spreadsheet and a video chat, but you can also connect them together to automate part of your process and remove some wasted time. Some integration service like Zapier can help you automate some simple tasks for your company’s activities like recruitment or accounting. Use online services as much as possible and invest your capital on the things that set you apart from your competition.
Architecturing for your company’s growth
Your company strategy defines on which of the 3 axis of growth your architecture shall focus on. Your architecture design shall support your strategy on one preferred axis of growth while keeping the 2 other axis at the state-of-the-art of your industry.
How do you decide on which axis to work for improving your company’s growth further?
- Find the weaker of your axis and improve it
- Select the next axis clockwise and improve it
- Continue to the next axis clockwise and improve it
- If you are satisfied of the 2 “non-strategic” axis, improve your strategic axis
- Restart from 1
There is some value to work iteratively on each axis clockwise on the 3 axis diagram :
- From the Customer Satisfaction axis, your new customer insights make your Product updates easier on the Product Performance axis
- From the Product Performance axis, your new product updates give you a chance to improve your operations on the Operations Excellency axis
- From the Operations Excellency axis, the usage of your product generates data from which customer insights can be extracted on the Customer Satisfaction axis
How can your architecture design can help in improving the customer satisfaction? Mainly, by improving the customer experience with customized interactions, responsive systems and garantees against malfunction.
The knowledge about your customer is the key here. Business analysts may require to analyze a big chunk of data to extract insights about your customers. Your architecture design shall then include an analytic platform.
If your strategy focuses on Product Performance, your architecture design shall help your software development team to iterate quickly on the product features. This requires software development tooling, loosely coupled systems and automated software updates.
Note that most of the software development teams don’t like void and focus mainly on the product independently of the company’s real strategy (if it has actually been defined). Therefore, your development teams get misaligned and their work on the product might become counterproductive for the company. This is the responsability of the CEO to align the teams on the company’s strategy.
If your strategy focuses on Operations Excellency to reduce the cost of production and to improve your delivery, your architecture design shall enforce automation, monitoring and redundancy of your systems.
Your architecture design shall support your company’s strategy. To make your architecture design relevant, your company shall then decide on which of the 3 axis of growth it has to focus on : Customer Satifaction, Product Performance or Operations Excellency. Your company has activities like recruiting, product development, business development that shall scale properly while your business is growing.
Architecture design for a tech company is about selecting the right tools and integrate them into automated and monitored pipelines that scale with your business growth.
Introduction to Marketing - Coursera, Wharton, the University of Pennsylvania.comments powered by Disqus