5 Single Source of Truth Examples For Version Control
Many teams in many industries use the concept of a single source of truth. But, what is it?
What Is a Single Source of Truth (SSOT)?
A single source of truth (SSOT) is the practice of structuring information so that everyone uses the same data.
In version control, a single source of truth means storing all code, configuration, and other digital assets in a way that everyone can access them in a common location.
Why Is SSOT Important?
Maintaining a single source of truth is important for many reasons.
- Information is siloed.
- Productivity decreases as team members go looking for information.
- Errors are common and costly.
- Information is easily discoverable.
- Productivity accelerates as everyone knows where to go to find information.
- Errors are less likely and less costly.
In version control, a single source of truth is especially important. It’s critical for teams who need to share different types of assets, possibly from different version control systems. And it’s vital for globally distributed teams, especially when they already need to overcome time zone differences.
How to Get a Single Source of Truth For Version Control
Now that you know why a single source of truth is important for version control, how do you get one?
Using Git — or distributed version control in general — makes it difficult to create a single source of truth. There are often many repositories. And entire repos are stored on a single local workstation. This makes it challenging to get a single source of truth. And it keeps teams from collaborating effectively.
With Perforce Helix Core, you can use a monorepo for your single source of truth. Everyone works off the latest version of the files — and can access the information they need. Plus, you get the advantage of scale. A monorepo in Helix Core can grow as your assets grow. And you can keep it all together regardless of size.
5 Single Source of Truth Examples in Helix Core
Here are 5 single source of truth examples we see every day from teams using Helix Core.
Different Types of Assets
You might need to bring multiple types of assets together in a single source of truth. This includes:
- Source code.
- Binary files.
- Hardware designs.
- And more.
The need for a single source of truth across different types of assets exists in many industries. Take game development, for example.
Developers, designers, and artists are working with large files. There’s source code. But there are also other files and assets:
Binary files (which can comprise 90–95% of a game’s final content). Raw artwork. “Baked” textures. Models. Animations. Sounds. Pre-rendered cinematics.
That’s a lot of different types of assets to manage in one spot. Getting a single source of truth can be difficult. Unless you use Helix Core.
With Helix Core, you can get a single source of truth across all types of assets. That’s because Helix Core can store source code, binary files, artwork, and any other type of digital asset in one repository.
Multiple Version Control Systems
You might have multiple version control systems — which can get in the way of a single source of truth. How will you enable teams to collaborate when they’re put into silos?
For instance, you might have an internal development team working in Helix Core. But you also have a third party development team that’s working in Git. This could easily hinder collaboration and prevent you from achieving a single source of truth. Until you add Helix4Git alongside Helix Core.
Helix4Git is a Git server inside a Perforce server. It works in the background to bring the source code the third party team is working on into your pipeline. Git teams can then get code from you and contribute back to your projects — without a learning curve.
This creates a single source of truth across multiple version control systems.
You might have teams that are distributed around the globe.
For instance, AAA game development studios often have teams of hundreds of artists, developers, and contributors. Bringing all of that talent together in the same location is impossible. Globally distributed development is the answer. But how do you enable everyone to access the same files — without sacrificing speed?
With Helix Core, you can do just that. Team members on opposite sides of the world can collaborate on files just as quickly as they could if they were sitting next to each other. Helix Core’s scalable architecture — Perforce Federated Architecture — makes it possible. This technology enables fast replication, no matter where team members are located.
You also might have different teams working on independent components that must all come together in the end.
For example, you might have teams working via a component based development. They need a single source of truth for configurations, including:
- A list of products to deliver and the list of components from which each product is built.
- A list of active development streams to maintain, e.g., a mainline and two maintenance releases.
- A list of component versions needed for each stream.
- Workspace configurations for developers and official builds.
With Helix Core, you can manage your configuration with your code. All of those best practices you use around versioning and managing source code can be applied to your configuration.
For example, you might manage 8 global design studios making firmware for SSD drives that are sold to OEMs. You start with base configurations for all your products. These are then customized working with the OEM.
With Helix Core, everyone can work be assured they are working on the right set of components. They get updates when they need them without having to hunt. And they’ll always know they are using the correct versions over a project lifecycle.
Plus, you can test new versions of configuration in isolation — without breaking builds. This would otherwise negatively impact overall velocity. This gives you a single source of truth for your configurations and your source code, together.
Hardware and Software Assets
You might be working for a company developing embedded systems. That means you likely have hardware and software teams who need to collaborate on assets.
For instance, you might be developing a system on a chip (SoC). You’ll have hardware and software teams who need to be able to work together — and share assets — across the design and integration process.
With Helix Core, you can get a single source of truth across hardware and software teams. They can share assets easily. Plus, Helix Core securely versions design files and software files for tape-outs. So, all changes are tracked, traceable, and compliant.
Get a Single Source of Truth Today
Helix Core provides the single source of truth that your team needs, whether you’re:
- Collaborating on multiple types of assets.
- Using multiple version control systems (with Helix4Git and Helix TeamHub).
- Managing teams spread around the globe.
- Working on different components.
- Needing to share hardware and software assets.
See for yourself how Helix Core can help your team. You can try it out for free for up to 5 users — and scale it up as your files and teams grow.