Topics In Demand
Notification
New

No notification found.

How Important is Application Architecture?
How Important is Application Architecture?

March 24, 2022

268

0

In my initial days at DLT Labs as a Software Developer, the question of whether application architecture added value came across my mind many times.

I often wondered why we were even going through this time-consuming process and not developing the application directly. I figured that producing these architecture models could be done during or after development, as well.

Later, I had an opportunity to work with some industry experts who primarily focused on an “Architecture First” ideology. This was a whole new experience for me, and I will try to answer this question based on the learning I received during those informative experiences.

What is Application Architecture?


For those who may not be familiar with software architecture, let me quote the definition of enterprise architecture from Wikipedia first.

Enterprise architecture (EA) is “a well-defined practice for conducting enterprise analysis, design, planning, and implementation, using a comprehensive approach at all times, for the successful development and execution of strategy”.

In this article, we will focus on one of enterprise architecture’s major pillars — application architecture. According to Wikipedia, “An application’s architecture describes the behavior of applications used in a business, focused on how they interact with each other and with users. It is focused on the data consumed and produced by applications rather than their internal structure.”

Most developers are already familiar with this definition. Theoretically at least. But in this article, I’ll try to introduce it in a very layman’s language. So, buckle up for a completely new experience.

Let’s think of the whole Software Development Life Cycle (SDLC) as the construction of a new house from scratch.

Yes, you read it right, a house.

After acquiring a plot of land for a house, what steps do we follow? Let us broadly classify them into 4 steps:

Collect requirements, based on specifications. For e.g., whether it should have 1,2,3 or more rooms, be designed as an apartment or a condominium, etc.

  1. Hire a building architect to design it accordingly.
  2. Hire an engineer to ensure proper quality and fulfillment of all the requirements.
  3. Finally, we have our home ready after final some cosmetic changes, like painting, getting appropriate furniture, etc.
  4. Now, skipping the requirement collection part, let’s focus on what an architect does.

The building architect gathers all the information provided by the client and then tries to design things in the best way possible, fulfilling all requirements efficiently with the best possible design.

For example, they may incorporate a design that determines what should be the way to access a room, hall, or kitchen. They may also look at designs that make the house safe. For e.g. they may design the house to make it difficult for burglars to trespass ensuring enhanced security for yourself and your important stuff.

Now, coming to the SDLC, the application architect designs modules that not only meet various performance considerations but also incorporate best practices like invoking minimum service and database calls, preventing circular dependencies, and providing responses in the most effective and timely manner.

Why Do We Need Application Architecture?


In a Scrum or a partial Agile environment, where requirements can change at a high rate, the development team sometimes bypasses this step of architecture development.

Although this might help them deliver the application by the deadline, it may introduce some major vulnerabilities in the application in the future.
This may be a convenient solution in the short run, but not the best solution in the long run. Think of this in terms of our home example: if we need an extra bathroom in our home, are we willing to make it near the kitchen since that makes plumbing the easiest and lets us skip the architect’s intervention?

Yes, it will solve our problem for now, but is it a good plan in the long run? Very possibly not!
However, what if we later receive an additional requirement where we need to attach that bathroom to an existing bedroom? This will create a problem that is impossible to solve without completely discarding work done towards our existing design.

This is the question every developer must ask themselves while developing an application.
While architecture won’t and shouldn’t plan for every future possibility, a bit of design up-front can make the difference between a system that is change-friendly and one that isn’t.

Conclusion

The major take-away from this article can be this:
Even if going through the process of architecture design affects the timeline of the project, it prevents the application from being exposed to unprecedented vulnerabilities, insulating it from becoming a cause for a fall in overall performance in the future. This can be improved drastically or prevented with proper architecture design.


I hope I have answered the question we picked in the beginning. Now we know why application architecture is an important building block and not an overhead in the SDLC.

Author — Prakhar Goel, DLT Labs™

About the Author: Prakhar is an IT practitioner, who has experience working with Node JS.


That the contents of third-party articles/blogs published here on the website, and the interpretation of all information in the article/blogs such as data, maps, numbers, opinions etc. displayed in the article/blogs and views or the opinions expressed within the content are solely of the author's; and do not reflect the opinions and beliefs of NASSCOM or its affiliates in any manner. NASSCOM does not take any liability w.r.t. content in any manner and will not be liable in any manner whatsoever for any kind of liability arising out of any act, error or omission. The contents of third-party article/blogs published, are provided solely as convenience; and the presence of these articles/blogs should not, under any circumstances, be considered as an endorsement of the contents by NASSCOM in any manner; and if you chose to access these articles/blogs , you do so at your own risk.


DLT Labs™ is a global leader in the development and delivery of enterprise blockchain technologies and solutions, as well as a pioneer in the creation and implementation of standards for application development. With a deep track record in innovation and one of the world's largest pools of highly experienced blockchain experts, DLT Labs™ enables the transformation and innovation of complex multi-stakeholder processes.

© Copyright nasscom. All Rights Reserved.