As a Gartner analyst, I have the opportunity to interact with many enterprise architecture teams looking to improve their approach to architecture governance. The one software development trend I am seeing grow without an accompanying architecture viewpoint is the rise of polygotism.
In any software development lifecycle, time to develop software is a dominant factor for time to market where increasing nimbleness and agility is now an important success metric. Polyglotism is an approach where different parts of software are written in different languages. You may write a mobile application Objective C and expose business functionality in a service-oriented approach where the services themselves could be written in JRuby. Some of those services may even embed algorithms written in clojure, C++ or even an embedded calculation engine provided by a third party.
Polyglotism requires different approaches to solution architecture, software development and even potentially DevOps when compared to single language architectures. Some shops have used polyglot approaches as a risk management approach for managing required vs available skills and hence goes beyond architecture concerns.
If you have experience with polyglot approaches to solution architecture and have thoughts around any of the following, please do not hesitate to leave a comment.
- Managing polygot architectures without incurring excessive technical debt
- How do EAs and PMOs work together to both enable as well as erect guard rails around polyglot approaches.
- What languages and/or architecture patterns work best in a polyglot and which ones to avoid.