The Search for the All-in-One Design Data Management System
At this point, I have written several articles and spoken at AltiumLive 2019 about adopting software design methodologies for electronics design. As you may have noticed by now, I put a lot of emphasis on using a unified system for both electronics and software design. Tightly coupling these two pieces in a design process is key because they have become so intertwined. Consider any type of embedded system that consists of electronics (i.e. PCBA), embedded firmware, and software. When one piece changes, it is highly likely the other two pieces are affected. Imagine an IC changing on a design that is serial peripheral interface (SPI) addressable; the firmware will then need to be updated to reflect this change. If an interface changes on the firmware side, then the software may need to be updated as well.
All these changes are connected, which is why I propose to keep everything within the same ecosystem, but not within the same design data management system. There are some benefits to separating things into more than one (but still a small number) of data management systems, especially for PCB design.
The Wrong Way to Implement PLM and PDM
Rather than provide an example of how this ecosystem works, I would first like to illustrate an example of when it does not work. Consider multiple engineering groups within a mid-size company: Mechanical, Electrical, Embedded Firmware, and Software. All too often, I see the emphasis put on the need for “all-in-one” systems that “capture it all.” I, typically, find these all-encompassing systems to function as Product Lifecycle Management (PLM) or Product Data Management (PDM) systems with a series of expensive bolt-ons to integrate all the different pieces.
For example, one PLM/PDM might be designed natively for mechanical drawings but requires sophisticated add-ons to incorporate electronics designs. I have also seen numerous software systems that bend over backwards to incorporate large binary files but never quite get it right. To me, this seems counterproductive. I would prefer to stick with a native system designed specifically for that tool than to try and fit a square peg in a round hole. This would be, for example, using a PDM designed specifically to handle mechanical drawings or using source control tools designed specifically for software collaboration and not cramming in a bunch of other files that are not meant to be there.
More companies today are focusing on adopting software methodologies and principles in their day-to-day workflow. Now more than ever, PCB design is dependent on software so it would make sense to try and use a similar, if not the same, development process as one finds in the software engineering world. This becomes important when choosing a a design data management system/version control system for your product data. If you’re trying to integrate your software and hardware teams together, then having two completely different systems will make it challenging for them to collaborate effectively (especially in a remote environment).
How to Focus on What's Important
As mentioned above, attempting to force electronics designs into a software system not meant for it will not prove to be successful either. This is where systems such as Altium Concord Pro shine. Managed projects within Altium Concord Pro use a Git backend which means it can be mirrored to another Git server fairly easily (as discussed in this article). Additionally, light use of the SDK or direct calls to the Firebird database enables users to add hooks to their issue tracking systems (such as Jira).
I have found more success in focusing on the tools that work natively and then connecting them together in a lateral fashion versus having a single system to “rule them all.” For example, here is a common setup I typically will recommend:
In this example, you can see software folks get to still use Git for their version control system (typically a favorite and industry standard) and also use the company-wide issue tracking system. Note that the issue tracking system does not have any direct interface with the Git server; everything is mediated through Altium Concord Pro. Due to the nature of how Altium Concord Pro has been set up, it is easy to integrate laterally into both systems.
Consider the following block diagram of a PLM/PDM system showing some of the pieces:
In theory, this unified system is a great idea. It is a single system that enables designers from all different disciplines to work in a single ecosystem. In practice, however, this is extremely difficult to achieve. Even the best systems out there are still complex, difficult to manage, require many add-ons, and are extremely expensive. This makes sense if you think about it: you’re trying to mash up many different disciplines and tools into a single environment - something never intended by the original tool designers. There are also more “lateral friendly” tools such as MCAD CoDesigner that also attempt to link two worlds together yet still enable the electronics and mechanical folks to use the tool of their choice. Focusing more on tool-specific data management systems with linkages over all-in-one solutions seems to make more sense.
Each Design Data Management System Should Work Together
In this article, we reviewed the concept of linking multiple systems together versus using the all-in-one Swiss Army knife design data management system. While the Swiss Army knife, in theory, makes the most sense it never usually functions as well as systems tailored towards their specific disciplines and toolsets. Rather than use a unified system it is recommended to the user to stick with the system they’re comfortable with but then link it together with the other systems as best as they can.
Altium Concord Pro already integrates well with software systems with very little effort., and it gives designers instant access to design data directly in Altium Designer. By integrating these systems together engineers are able to keep their designs tightly coupled between different disciplines and work more effectively within their teams. You don't need a single design data management system, you just need systems that are designed to easily work together.
Would you like to find out more about how Altium can help you with your next PCB design? Talk to an expert at Altium.