The engineering and business platforms available on the market are becoming increasingly better, but they don’t solve 100% of a company’s problems and still need to be adapted and integrated into the organization’s systems. Despite the enormous versatility and usefulness of cloud services, it would be misguided to think that the cloud has everything a company needs to support all the technical aspects of its business. 

The company must have an engineering team to take care of the integration, checking if the interfaces with the cloud services are working properly and if the company’s use of the cloud is as efficient as possible. Therefore, a technology leader has to understand what is a commodity and what is a business advantage for the company, and where and how leadership is going to allocate human and financial resources—this is an important part of the platform mindset. 

A company should focus on features that give its business a competitive edge, and by using third-party platforms, the organization can focus the attention of engineering teams on competitive differentiators. 

Most technology companies won’t compete with Amazon, Microsoft, or Google, and they have no reason to do so. They must look for a different space from what these giants already occupy, and then innovate in that direction. There are, of course, engineering ideas that can be differentiating business ideas for companies, such as using artificial intelligence to predict server failures. A successful company implementing this idea could probably end up developing services that would be adopted by cloud providers. And in that case, the company’s competitive edge would be an engineering innovation. 

Microsoft thinks about its cloud systems, but doesn’t need, for example, to innovate in banking applications, while a fintech company must move in that direction. Intel innovation is on their processors, because they want servers to consume less energy, last longer, and be more resilient, but for their corporate customers, the processor is just a basic building block that allows them to achieve their business goals. 

Platform stacks have many levels of abstractions, and the investment on innovation will be on the level of abstraction that is the company’s competitive edge. 

A company should focus on features that give its business a competitive edge, and by using third-party platforms, the organization can focus the attention of engineering teams on competitive differentiators. 

Platform cycles

Platforms, and especially internal platforms, tend to be invisible to customers. It’s common to have one group of engineers building a service using version 1 of a platform, while another group is already thinking about version 2, maybe to gain more scale and efficiency. Improving a platform from version 1 to 2 can be very complicated and involve many technical aspects. It is like changing the wheels of the car while the car is still running. The change should happen without impacting the services that use the platform. 

Normally, developing and improving platforms is more long-term than delivering a new version of some functionality to clients. When planning the work for the teams, it is important to consider different cycles. Platform development may require longer cycles and less rigid delivery dates.

The general idea is to avoid major changes all at once and to implement incremental changes over time. This limits the potential impact to only micro-incidents, rather than macro-incidents. An example of this is to deliver a new feature for just a slice of the population, rather than all users.

Any problem with the deeper layers of the platform stack may have a large impact on the other layers, while a problem in a higher layer is less contagious for the whole. Using a house metaphor, a problem in the foundation may impact the entire house, while a problem in the hardwood floors may just require a few boards to be changed. 

Generic platforms are great for solving complex issues for several teams and have an undeniably multiplier effect, but if they fail, they also have a negative multiplier effect. A platform for developers, used by the entire company to write and test code, is a typical case. If it stops working, it becomes a huge problem, impacting on the work of all engineers in the company. 

Whenever you use a third-party platform, it never fits like a glove, and you must make adaptations. Some pros and cons need to be considered, such as cost and processing speed. The external platform can do 90% of the work, and the other 10% may need to be implemented internally. For example, the platform could be made by a foreign company that can determine quite accurately whether someone is a fraudster, but it still may need to be integrated into the local credit bureaus of a particular country. 

About the author

Marcus Fontoura

Marcus Fontoura is a technical fellow and CTO for Azure Core at Microsoft, and author of A Platform Mindset. He works on efforts related to large-scale distributed systems, data centers, and engineering productivity. Fontoura has had several roles as an architect and research scientist in big tech companies, such as Yahoo! and Google, and was most recently the CTO at Stone, a leading Brazilian fintech.