Technology paradigms have been making shift through decades. Trends are moving fast in terms of offering agile & pivoting solutions to problems at hand.
From an engineering stand point I have seen following evolutionary trend as waves:
IT Application Engineering → Product Engineering → Platform Engineering
With every wave our approach on how we conceptualize a solution from self-build to best-of-breed has gone through ideological change:
IT Application Engineering
- Point-to-Point
- Narrow audience. Build for one works for one
Product Engineering
- Vertical in terms of features
- Broader Audience . Build for features serves many
- Customization may give birth to unmanageable monolith
Platform Engineering
- Horizontal in terms of features
- Wider Audience through knob controls on infrastructure seeding
- Extensible through API design
- Build on top of it and not within
- Scales
With the above evolution & need for diversity in addressing different problem statements , one needs to keep following points in mind :
- Cookie-cutter approach does not work for diverse business models
- “Thought partners” are required to co-develop solutions , listen and adopt design inputs instead of simply being vendors
- Need to address data infrastructure, visualization and distributed microservices
- Concepts around minimum viable product help understand customers’ journey at a high level and evaluate the technology needs
At such a massive scale, it is always beneficial to develop a set of design principles that can guide your decision-making.
- Choose tech solutions made by challengers and visionaries with an extensible, API-first mindset
- Avoid legacy companies that might be lagging behind as they try to evolve their monolithic platforms.
- Do lot of proof-of-concepts that build hands-on understanding
Platform approach comes with certain amount of decentralization embedded in it for use and extension thus allowing elasticity in solution to serve diverse needs :
When we start thinking on above lines it helps us to become creative across two major parameters:
- Expanding or Testing into a new market
- Expanding or Testing a new product line
Technology should enable this entrepreneurial spirit from start-up to scale across various sub-streams.
I hope this short read provides condensed view of how to evolve your technology stack.
Additional Reference
You can find more details and insights in my catch-up with Segment.com , that got published on their blog last month on How Our Stack Evolved At Cimpress . Thanks to Geoffrey Keating from Segment for taking the interview.
Pingback: Habit Forming Platforms Part I | Reflections @ Abhishek Dwivedi