No better time to be an Application Architect than now

It is a fascinating and exciting experience to build an IT application from scratch. Many of us always wanted to be part of a ‘AD’ (aka Application Development) project. We always loved such experience, but most of you may have seen the decreasing number of AD projects in the last decade (since 2010). Some of us may have thought about switching to alternate areas like ERP (Package/Product Implementations, Package/Product Customizations). This post analyzes on why the decline had happened and then elaborates the resurgence of Application Architecture/Bespoke applications as of 2020.

Context

In the early 2000s, most of the applications were being built from scratch across the Enterprises, also called Bespoke Applications or Custom Applications and all of us have had a great time in building several applications, adopting newer technologies thereby in this process. Gradually, enterprise needs which originally met through custom/bespoke applications, were being catered to by Commercial Off The Shelf products (COTS)/Enterprise Resource Planning software. Evolution of Software as a Service (SaaS) has further reduced the number of custom/bespoke Enterprise Apps being developed. At one point of time, COTS/SaaS products catering to the implementation of Line of Business Systems, and functional systems, have made Custom/bespoke Application at Enterprises to a very minimal level, barring very few cases, it was needed to develop an application from scratch. After reading thus far in this post, you must be wondering and looking forward eagerly towards the subject of this post.

Circa 2020 - Application Architecture back in vogue

Thanks to the confluence of cost effective offerings in the Cloud PaaS/Serverless/Cloud Native, and fueled by the growth of AI/ML/NLP across the enterprises, there has been a clear trend of resurgence in the number of custom applications being built over the last few years. Moreover, in situations, where functionality fitment of Commercial off The Shelf (COTS and Software as a Service (SaaS) is not in reasonable range (<70%), then custom application are being preferred since operating cost is very low and velocity of development is high, in Cloud PaaS and Serverless deveopment stacks.

Below table summarizes this resurgence trend and it interesting to see Application Architecture skills are now needed in IT systems other than Bespoke. Indicative.

As the role of Application Architect - across a different type of Systems - is getting indispensable, the following are few examples that substantiate this trend.

  • For simple/canned reporting, insetad of a free or commercial BI Tool, a Cloud Native Serverless solution - workloads like Reports Filtering, Querying, Display, Excel, PDF. Such solution costs a very low $$ post Go LIVE with thousands of users accessing the system.
  • A raw NLP algorithm bundled into a full-fledged enterprise bespoke application through AWS Serverless Architecture. Raw AI/ML/NLP algorithm generally warrants a custom application to wrap the algorihtm around, and Application Architecture skills are vital here.
  • Instead of implementing integrations via Mulesoft, develop a cloud native custom integration solution using PaaS features of AWS like Batch/Fargate, S3, SQS (OR) a Serverless Stack. Such solution can be at par or cost effective than a Mulesoft based solution.

Catching Up

Are you excited at the plethora of opportunities for ever-green skills of Application Architecture? If yes, please do follow these 3 steps:

  • Foundation: Deep dive into your existing stack/programming language/experience
    • .NET, J2EE, Django/Flask, Node JS… Broaden your knowledge to areas other than the ones you have touched upon in past projects.
    • No need of frantically learning a new language like Go, Rust. Understand your existing programming language thoroughly. Can be Java or C# or Python or Node JS. Java or C# are preferred in Enterprises, though.
    • Analyze the library/frameworks eco-system of your respective programming language in the areas of AI/ML/NLP/Analytics
  • Embrace Cloud Native Journey
    • Pick up a cloud provider from your client’s IT landscape or your choice. Mostly – from among { Azure or GCP or AWS }
    • Pick up a paradigm from your client’s IT landscape or your choice. Containers or Serverless
    • Enable yourself On The Job and/or Self Learning.
  • Become a Full Stack Architect/Full Stack Developer – FSA/FSD
    • Front End - Learn React or Angular or Vue or … & Be comfortable with JavaScript
    • Back End - Please refer to the first bullet - 'Foundation: Deep dive into your stack/experience’

For your reference - here are the choices I made and learnings achieved since 2017.

  • Foundation: - Since I have predominantly been programming and architecting in VC++/.NET Framework/ASP.NET, I picked up Core Java and Python (client project needs) as additional languages. Strengthened my .NET experience by learning .NET Core. Learnt and applied several of NLP/Analytics libraries in Python.
  • Embrace Cloud Native Journey – Picked up AWS (my client’s strategic landscape), and Serverless paradigm. Pro-actively proposed Serverless in several proposals and implemented 6 production systems so far. Also architected one container based application.
  • Become a Full Stack Architect/Full Stack Developer – Have become Full Stack Architect/Developer by learning ReactJS.

Please check Systematic Learning - GLAD Framework for streamlining your learning process in areas suggested above.