After months of hard work, the team was finally ready to flip the switch on the new heads- up display on a vehicle prototype. The system would be supplied to a major automotive manufacturer and would make or break the company. The CEO and VP of engineering were present to see it working for the first time. All the subsystem tests were flawless and it should only be academic at this point. Just flip a switch and time to celebrate. But something was amiss and no display was seen. After several hours of debugging it was discovered that the display team missed a change in the angle of the windshield causing the display to not work. The supply contract was awarded to the competition and the team started working on their resumes. This fictional story is one that plays out all too often in developing today’s complex systems.
Delivering innovative products to market requires diverse teams to collaborate, including technical and non-technical disciplines such as hardware, software, testing, mechanical, management, marketing, and sales. However, development teams each use a diverse set of tools and applications to suit their own particular department, often with a proprietary data format. The team shares information by manually creating document based reports or point to point tool integrations.
Collaborative Design Management (CDM) allows teams to share, search, link, analyze, and review design information across tools using linked lifecycle data and principles from the Open Services for Lifecycle Collaboration (OSLC) community. CDM also helps cross-discipline teams collaborate earlier in the development process to avoid design pitfalls and costly errors uncovered later during integration.
Innovation in a Complex World
As technology consumes our lives, the complexity of the designs realizing innovative product concepts grows with it. Consumers expect high quality products using the latest technology. Companies need to deliver or face the fury of a social networking onslaught. Complexity is one of the biggest challenges facing companies as found in a report from a 2010 IBM global survey “Today's complexity is only expected to rise, and more than half of CEOs doubt their ability to manage it." (Source: Capitalizing on Complexity: Insights from the IBM 2010 Global CEO Study)
While the physical size of many products is getting smaller the number of features, functions and interconnections are also increasing, making the designs themselves more complex. The architecture of software and systems, as well as the behavioral characteristics, are increasingly difficult to understand. Each new requirement for extended functionality increases the complexity. Add to this the need to interconnect software and systems to other systems, and the design complexity rises even further.
The complexity is evident and shows itself with the inability to rapidly assess the impact of a potential change on the design due to a limited understanding of the design by those who are often most deeply affected by the result of a change: the stakeholders and customers that are external to the development team. Trying to design these systems through traditional code-centric approaches, pounding out code, can lead to a fragile architecture that can be difficult to maintain, further compounding the complexity.
Organization and Process Complexity
The environment and organization of development teams today also increases the complexity facing companies. Barriers exist both internally (among divisions, locations, disciplines, and teams) and externally (with suppliers, customers, and other organizations) that influence the products, software, and systems that are being built.
Decisions about the direction of the business, the priorities of the organization, line of business structure, and IT infrastructure needs are often made without the right information being available and without collaboration with the right stakeholders in a timely fashion. This is due to a number of factors, such as manual, error-prone updates to relevant information, disconnected and undocumented plans and teams, and reports that contain either too little information or a wealth of information that hides the relevant content.
The organizational structure is often complex and misaligned. People who need to work together often work in their own disjoint silos with little communication while making assumptions of what the other team is doing. Too often problems arise during system integration because of teams incorrectly interpreting a requirement and delivering inconsistent interfaces. Reporting chains hinder the flow of information between teams, and it is often difficult to determine the right stakeholders to involve in discussions because of these problematic organizational structures.
Different organizations also may have different processes and procedures which need to somehow mesh together and align at critical junctures, whether software only or software-intensive systems involving hardware and software. From agile development, to hybrid iterative, to heavily regulated waterfall approaches, teams involved in design, development, delivery and maintenance activities face challenges with the process. Various types of processes need to integrate across organizations. Business processes, software and systems development processes, and operational processes all need to flow seamlessly into each other.
In some cases government, industry or process guidelines must also be met, such as CMMI, DO-178B for commercial avionics systems or ISO-26262 for automotive electronics, adding another layer to the complexity in the development process. The increasing complexity of the designs makes passing audits and demonstrating compliance with regulatory and corporate standards more difficult. Processes need to scale to manage the increase in information and artifacts required to track the design during its lifecycle.
Manual processes, lack of integrations of tools throughout the lifecycle, and a lack of traceability of artifacts used in specifying, designing, constructing, deploying, and maintaining software and systems all hinder the ability to deliver the right information in the right format to document compliance and satisfy regulatory requirements.