Daniel Sherwood is a software specialist in Sepura's Device & Drivers Development team, Cambridge, UK.
Sepura is a global leader in TETRA digital radio products, delivering mission-critical communications to customers in the public safety, military, transport, utilities and commercial sectors. The company offers a broad range of both standard and specialist radio products, with customised solutions and new introductions, meaning that software development updates are regularly required. Sepura chose Perforce as it provides the best fit for its software configuration management (SCM) needs and supports a development team operating across multiple locations.
Keeping Collaboration On Track
TETRA (Terrestrial Trunked Radio) has become the de-facto professional radio standard for simultaneous mobile voice and data communications for many professionals, particularly in the public sector. Established in 2002, Sepura has risen to own 48% of the European market, employing over 300 people.
Daniel Sherwood, a software specialist in Sepura's Device & Drivers Development team, explains some of the challenges its developers face: "There is on average one major new software release per year, but the number of tailored products we need to support keeps us pretty busy. Customers may need a particular product configuration ahead of the new release. We also need to be able to support legacy products, so sometimes there is a code refresh on an old model."
"This means that there are a variety of different code branches and variants, so it is vital that we can capture these accurately into the coding history."
One of the main ways Sepura's embedded software development team keeps track of these demands is through software configuration management (SCM). SCM systems record all versions of all files that have ever existed in a project. The system tracks changes to each and every file and controls access so individual team members know who has edited, or is currently editing, any file in any project.
When Daniel first started working at Sepura, there were several separate development teams using different SCM systems. The decision was made to amalgamate these into one, but spread across several different locations. This prompted the decision to adopt a common SCM framework that would support collaboration across the entire team, regardless of individual members' locations.
"The selection criteria were simple: the SCM system needed to be able to support multi-site work and it had to be able to provide proper support for a merge history. None of the products we were using at the time were scalable enough, so we evaluated other options."
Perforce is Best Fit
After careful evaluation Sepura chose Perforce. Daniel explains, "Some products didn't provide the functionality we needed, while others were too expensive in terms of ongoing hardware and support costs. Perforce was the best fit for our needs."
Perforce's ability to track changes across dispersed teams proved to be a winning advantage. Daniel adds, "Perforce enables us to collaborate across UK sites—including Reading, Bristol and Cambridge—and outsourced support. The Perforce Proxy keeps a local cache of the files that developers need so they always get a fast response from the system. Perforce also gives us the merge history capabilities we require."
Daniel was impressed with how well the implementation went. "The transition proved pretty seamless—all our developers are familiar with the principles of SCM and Perforce is easy to use. We've been using it for around five years now."
"We have around 120 users and most of those are developers, although managers do have access to the system for reporting and planning purposes. Because Perforce has a web interface, it is readily available to those who need it, regardless of their location."
A typical scenario might be a developer working on a task that involves 5 or 6 different variants. Within Perforce, the inter-relationships of those actions can show, for instance, where a bug fix needs to be propagated. Developers and managers can easily track and resolve bugs as Perforce enables a complete audit trail to be preserved within the system.
Apart from supporting merge histories and multiple sites, Perforce is relatively easy to manage and provides significant cost savings compared to some other 'high end' SCM systems. "Perforce involves minimal additional hardware, managed by just a couple of people and doesn't need someone managing it full-time—that's important for us." Sepura's Perforce repository consists of approximately 45,000 files, equating to around 100 GB in size.
Supporting Third Party Tools
Most of Sepura's development work is conducted using both Solaris and Linux operating systems, Microsoft solutions for testing activities and support tools, plus other third party tools for modelling and build management. Daniel says, "We also use Perforce to synchronise all the other tools we need in the development process. So when users go into the system, they are presented not just with the code they need, but with all the other tools and development environments required."
The tools Sepura currently uses include Matlab (a high level technical computing language) and Simulink for simulated modelling. The company has just begun using UML, the Universal Modelling Language and also use TeamCity, the distributed build management tool, in conjunction with Perforce SCM.
Daniel adds: "We've taken advantage of the APIs that Perforce supports to build our own scripts. For instance, we have one that defines workspaces, so we can control how they are utilized and others that assist with code reviews."
"Basically, wherever code is involved, we use SCM. In today's development environments, it would be unthinkable to work without SCM. Perforce meets our needs today and has the ability to scale if our requirements evolve in the future."
All trademarks or registered trademarks are property of their respective owners.