First, let’s define what software architecture is. According to Ralph Johnson, it is “the decisions you wish you could get right early in a project.” There are various formal definitions. However, I prefer this one from Ralph. You may often hear this term tossed around by software architects and developers when firing up a new project or revamping an existing one. Like forming a physical structure, software needs a blueprint to guide the engineers throughout the development of the application.

Speaking of architecture, one of the most frequently used ones is N-Tier (or three-tier architecture). If you’re a developer, there’s a considerable chance that you’ve already seen this sort of design.

To provide you with an analogy, this architecture could be accurately portrayed by a game called Jenga.

 

 Jenga Michal Parzuchowski
Photo by: Michał Parzuchowski

 

Now, if you’re not familiar with Jenga, it’s a game where your objective is to raise the structure as high as possible without it falling over. This kind of mirrors how the engineers are in a constant battle when developing applications.

You might be thinking, “What’s wrong with this architecture?”

The typical problem scenario is when a developer implements a new feature or modifies an existing one. There’s a tremendous chance of unintentionally affecting other components, especially if these layers have these inadequately written codes. Oh, and of course, if there are no unit tests.

That’s where the slice architecture can shine. It decouples the components by effectively making the features an independent slice of its own, unlike N-tier, where the services are classified based on their functions.

You can imagine it like a pizza.

 

Pizza Slices Ivan Torres
Photo by: Ivan Torres

 

Jimmy Boggard coined the term slice. He’s also the creator of Mediatr. If you’re accustomed to that library, chances are you’re also practicing the command query responsibility segregation (CQRS) pattern in .NET as well. Guess what? CQRS fits well on slice architecture too! This architecture is excellent for proof of concepts and small to mid-size projects without that much complexity.

If you are building an application from scratch, an architecture may already be in place. What’s a better complement, of course, is a blueprint for that structure.

That’s where the template comes in.

Templates are helpful if you ask me. You get the bare minimum to start. You don’t need to adjust or configure the bells and whistles on the project. You start writing codes right away.

Think of it as a recipe. Wouldn’t you want a formula that works already?

With the help of proof of concepts (POC) and small projects, prototyping quickly is advantageous because you can pull out the stuff that you don’t need. Just like when you’re using a recipe, you can tweak the ingredients depending on your taste.

But be wary – templates can be a dual-edged sword; some people like them, some don’t. I can’t blame them. People have their preferences. I understand, but tweaking or creating a project from scratch demands time and resources, and seldom do we have the luxury of possessing them. In these moments, I can recommend to start with the template and slowly chip away at the elements that you don’t need. Concentrate on starting so you won’t fall into a state of analysis paralysis.

Advantages for the developers

A question might be lingering in your mind: What’s the advantage for developers? Have you ever wondered why open-source projects are popular? One crucial aspect of it is that it’s open for everyone. People can gain information based on the knowledge of the people who have contributed to that project. Imagine: if you wish to implement something that you haven’t achieved before, the template can serve as a reference project. Do you want to create a containerised application? Want to see a functional test? How about a build pipeline YAML file? These can be extremely useful, especially to those who haven’t experience creating or implementing it before.

These benefits are not only for developers; many of them serve the organisation as well. A template tailored for creating a new project is a huge relief. You don’t need to prioritise figuring out the things that you need to include. Instead, you can immediately begin focusing on writing business logic instead of tinkering with what needs to go here and there. Also, you can churn out POCs faster. In my opinion, the odds of getting a new client increase when you can demonstrate that you’re capable of doing the things you said you could do in a fast manner.

As a gentle reminder, you always need to be mindful of how you architect your solution. The templates serve as guidance, not a silver bullet in every situation. The N-tier architecture is not necessarily bad as long as it’s not misused. Every architecture has its pros and cons. Knowing different types of architecture and templates gives us more flexibility when starting new projects and landing potential customers.

News from ERNI

In our newsroom, you find all our articles, blogs and series entries in one place.

  • 27.09.2023.
    Newsroom

    Unveiling the power of data: Part III – Navigating challenges and harnessing insights in data-driven projects

    Transforming an idea into a successful machine learning (ML)-based product involves navigating various challenges. In this final part of our series, we delve into two crucial aspects: ensuring 24/7 operation of the product and prioritising user experience (UX).

  • 13.09.2023.
    Newsroom

    Exploring Language Models: An overview of LLMs and their practical implementation

    Generative AI models have recently amazed with unprecedented outputs, such as hyper-realistic images, diverse music, coherent texts, and synthetic videos, sparking excitement. Despite this progress, addressing ethical and societal concerns is crucial for responsible and beneficial utilization, guarding against issues like misinformation and manipulation in this AI-powered creative era.

  • 01.09.2023.
    Newsroom

    Peter Zuber becomes the new Managing Director of ERNI Switzerland

    ERNI is setting an agenda for growth and innovation with the appointment of Peter Zuber as Managing Director of the Swiss business unit. With his previous experience and expertise, he will further expand the positioning of ERNI Switzerland, as a leading consulting firm for software development and digital innovation.

  • data230.08.2023.
    Newsroom

    Unveiling the power of data: Part II – Navigating challenges and harnessing insights in data-driven projects

    The second article from the series on data-driven projects, explores common challenges that arise during their execution. To illustrate these concepts, we will focus on one of ERNI’s latest project called GeoML. This second article focuses on the second part of the GeoML project: Idea2Proof.

  • 16.08.2023.
    Newsroom

    Unveiling the power of data: Part I – Navigating challenges and harnessing insights in data-driven projects

    In this series of articles (three in total), we look at data-driven projects and explore seven common challenges that arise during their execution. To illustrate these concepts, we will focus on one of ERNI’s latest project – GeoML, dealing with the development of a machine learning algorithm capable of assessing road accident risks more accurately than an individual relying solely on their years of personal experience as a road user, despite limited resources and data availability.

     

  • 09.08.2023.
    Newsroom

    Collaborative robots revolutionising the future of work

    The future of work involves collaboration between robots and humans. After many years of integrating technology into work dynamics, the arrival of collaborative robots, or cobots, is a reality, boosting not only safety in the workplace but also productivity and efficiency in companies.

  • 19.07.2023.
    Newsroom

    When the lid doesn’t fit the container: User Experience Design as risk minimisation

    Struggling with a difficult software application is like forcing a lid onto a poorly fitting container. This article explores the significance of user experience (UX) in software development. Discover how prioritising UX improves efficiency and customer satisfaction and reduces risks and costs. Join us as we uncover the key to successful software applications through user-centric design.

  • 21.06.2023.
    Newsroom

    How does application security impact your business?

    With the rise of cyber threats and the growing dependence on technology, businesses must recognize the significance of application security as a fundamental pillar for protecting sensitive information and preserving operational resilience.