Achieving effective design collaboration
The question is, why do so many organisations accept inefficient collaborative practices? It's clear that there's a fundamental problem here, but the solution is far more involved than it would appear on the surface. The electronic design world needs more collaboration, and collaboration toolsets need a few key features to help designers climb the proverbial mountain.
Tools must provide visibility into others' work. This probably seems like a no-brainer. How could anyone work in a team environment without seeing their teammates? Yet we find that our CAD tools are either incapable of doing this, or are functionally limited when they do.
Real-time visibility of design changes would seem to be the ultimate feature for every system, but this isn't the case. Collaboration can be more useful and effective by playing to the strengths of designers and how they actually work. It's much more natural to portion out work areas beforehand, and check in design changes periodically. Much like a version control system, a good collaboration system provides the same sort of back end tools for conflict resolution.
Differencing and merging of changes
The natural way to think about collaborative design is like a group of designers working on a single document, but in reality, this isn't the case. In reality, each designer holds a separate copy of a document, and changes from those documents are compared and merged into a single master copy at the end (or periodically throughout). Therefore, it's absolutely essential to have an intelligent system for differencing, i.e., comparing differences between versions, and merging changes together.
For collaboration toolsets, this relies on a scheme that, once again, works much like a version control system. That is, each user designs along their own line of development (branch), split from the mainline (trunk). Independent changes from several designers on separate branches can be compared with the trunk, and either merged into a new head revision or discarded. The effectiveness of this stage depends on the granularity of changes to be accepted or discarded. A comprehensive system covers both ends of the spectrum. Fine details and individual items can be reviewed, but at the same time, high level views can also be used to expedite the collaborative process.
A unified environment for seamless design flow
Interactions between designers in different areas of a single tool must be simple and painless. Board designers, engineers, librarians, and many others collaborate within the same design space, and often within the same software environment. Bidirectional support between areas of this environment is essential.