November 27, 2019

What Is Component Based Development?

Version Control

Component based development is growing in popularity. And it presents a viable alternative to choosing between a monolith and microservices

Here we cover what component based development is and how to move to it.

What Is Component Based Development?

Component based development is an approach to software development that focuses on the design and development of reusable components.

You can break your monolith into components:

  • Using a producer/consumer model.
  • Reusable/shared libraries.
  • By front-end/back-end.

Breaking up software into components is the right thing to do. No one can argue that. It’s what the Agile revolution is all about. And using components can better serve business needs than microservices.

Why Use Component Based Architecture?

Component based architecture stays up-to-date — without rebuilding it from scratch. That makes component based architecture a better fit for companies with complex, monolithic codebases. 

Using components turns a monolith into software building blocks. And these components can be combined, reused, and versioned.

How to Move to Component Based Development

Here's how to move to component based development from your existing monolith. 

Build the Right Approach

You’ll want to construct a new environment that incorporates both your legacy codebase and plans for the new system.

Here are 4 key tips for building the right approach.

Assess low-hanging fruit.

Break-off and refactor after you migrate.

Attack a component/package/service in a logical order.

Adopt new tools throughout the process.

Your goal should be to support both the old and the new models simultaneously.

[Related Webinar: Should You Break Up Your Monolith?]


8 Steps to a Successful Migration

When it comes to breaking up your monolith into component based development, there are 8 steps that will be critical for success.

  1. Start with capabilities of the monolith that are decoupled and don’t require changes to customer-facing apps.
  2. Focus on software delivery approaches and upskilling team members.
  3. Build out the minimum infrastructure needed to deliver independently deployable components (e.g., containerized microservices) that expose self-service APIs.
  4. Start tracking technical issues for new and legacy, including:
    • Counting errors released to production.
    • Service availability.
    • Time to remediate.
  5. Consider cloud deployment options (as appropriate).
  6. Implement basic monitoring for new and legacy.
  7. Implement automation wherever possible.
  8. Migrate in atomic steps.

Build Component Based Architecture With Helix Core

You can’t just dump the monolith. But you can modernize it and get it working the way you need it too. And that’s by building component based architecture with Helix Core.

Helix Core can handle your entire codebase as-is, without requiring major refactoring first. All you have to do is import and go. There are no barriers or risk. And there is no immediate need to break it up.

Once you’re working in Helix Core, you can methodically attack a component (or package or service) one at a time. The tooling and process will support your transition seamlessly.

This means you can move the legacy codebase over. You can modernize as you go. And you can bring it all together in one unified system.

Features like Perforce Streams further support component based development. Streams provide the automated building blocks you need for component based development. This makes it easier to pull related codelines together for a build. And it enables IP reuse because files are easier to locate.

And, if you want to support teams building components in Git, Perforce supports that, too. You can bring those components in seamlessly with Helix4Git without impacting the build and release process.

Component Based Development + Helix Core

See for yourself how Helix Core will help you modernize your codebase — and move into component based development. You can get started for free for up to 5 users and 20 workspaces.

Try Helix Core