3 Reasons Why You Should Invest in a Component-based Architecture

Francisco Afonso
OutSystems Experts
Published in
4 min readJun 26, 2017

“Instead of building every application from scratch and requiring a whole team of experts and developers to work together synchronously, the work can be divided into smaller pieces.”Marko Lehtimaki

Low-code platforms shorten application creation and delivery times. Developers can reuse code and create component libraries. These tools allow developers to build high-quality app components (also known as modules and patterns) and share them with others, boosting application development time and reducing code fragmentation. There was a time when a component-based architecture was a novelty, but now Gartner includes components in the list of criteria for qualifying for their 2017 Magic Quadrant for Mobile App Development Platforms.

What is a Component?

A component is a reusable object that speeds up application creation and delivery and provides additional features. It turns code for common use cases, such as accessing a device’s GPS or calling an employee directory, into a module. Developers can easily add this module to applications so they don’t have to repeat themselves. They don’t need to write custom code for a common feature or capability that numerous applications require, which significantly reduces time and effort.

Components are multifaceted. They can serve as infrastructure pieces for your factory, added to more than one application. They can also live in a public component repository so multiple apps and developers can use them. Publishing them to a repository helps a number of people in numerous scenarios.

Generally speaking, components can be dedicated to specific application layers, such as back-end or user interface. For example, JavaScript libraries provide a great front-end experience, while connectors allow easy and fast integration.

Because of their structure and what they do, components have a number of benefits that are strengthened by a component-based architecture. Here are my three favorite benefits.

1. More Control and Lower Maintenance Costs

Say goodbye to searching for other applications where similar code might be used.

Components enable the centralization of specific pieces of code. Because code is in one place, developers have more control over it. And, every time there’s an update or a fix, every implementation of their code will be updated and bug-free without that extra effort that can haunt their dreams.

Now, imagine an architecture based on components. Your team or teams only have to debug, update or perform tests in one implementation, considerably lowering the maintenance cost of your factory. Dependencies are no longer a nightmare; they are just a part of a very manageable process.

2. Faster Development to Save Time and Increase Revenue

Because of the reusability aspect, a component-based architecture reduces the number of developers needed to quickly create amazing apps. Logic components are context-free and UI components come with great UX and UI by default. Therefore, developers can focus on implementing (only) the glue between them, in accordance with the application’s business rules.

Not only that, but system attributes such as security, reliability, performance, maintainability, scalability and usability (known as non-functional requirements or NFRs) are also guaranteed. As a result, your developers only have to consider them once. Afterwards, your developers can rest easy, knowing that things like performance, scalability, and security are already taken care of.

3. Take Advantage of Specialized Skills

Broadly speaking, developers have specialized skills. For example, there are JavaScript masters, CSS gurus and .NET experts. However, this doesn’t mean that your developers can’t build an application that requires skills other than their own. That’s the beauty of a component-based architecture.

With this model, developers can visit other developer communities and search their repositories for the component that suits their scenarios the best!

Component-based architectures allow for easier, faster and robust development. Companies with libraries of solid and ready-to-reuse components are able to shorten the duration of projects. By combining well-thought-out components with low-code platforms, a successful project sees the light of day a lot faster!

Using a component-based architecture not only shortens production and delivery time, but it also frees up the resources required to ensure a quality delivery. For example, there is more time for code review and testing.

Remember that the easier it is to use your component, the less code you need! And the less code you need, the easier it is to create and publish.

If you want to give this architecture a try, you can download such a platform that allows you to quickly develop components and applications. If you’re interested in what Gartner has to say about components and custom mobile app development, you can learn more here.

The ideas shared in this post resulted partially from the research project RADicalize, which was supported by the EU and PT2020.

--

--

Francisco Afonso
OutSystems Experts

Cloud Team Lead at OutSystems R&D. Lover of collecting and creativity. Philosophy & psychology reader. CEO of my house (wife disagrees)