Complexity is everywhere, and it is increasing rapidly. The report of a 2010 IBM global survey of CEOs (see Resources) states "Today's complexity is only expected to rise, and more than half of CEOs doubt their ability to manage it."
Applications, systems, and products are now complex in and of themselves, with rapid improvements in performance, intelligence, and capability. However, they no longer work in isolation. Now they interconnect to offer new services and drive new business and societal value, in ever more complex systems of systems. Organizations need to come together and even reach beyond development teams to collaborate on these systems to meet the demands of an increasingly complex marketplace. Regardless of the industry or cross-industry projects that organizations are developing for, the challenges that complexity brings to companies are the same.
This article focuses on three distinct types of complexity: organizational, process, and design. It then describes how the new extended capabilities of IBM® Rational® design and development applications address each of them.
Three types of complexity that affect software and systems designers
Organizational complexity deals with the barriers that 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 organizations, 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 are siloed on different, disconnected teams. Reporting chains hinder the flow of information between teams, and it is often difficult to determine the right stakeholders to involve in discussions because there are problematic organizational structures.
Process complexity deals with the inherent complexity in the process for creation or evolution of products, 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. Moreover, 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. Striking a balance between simplicity on one end and compliance and reliability on the other end can make it difficult to pin down the best process.
Facing audits and demonstrating compliance with regulatory and corporate standards is often difficult due to the inability to gather information from across the large set of designs and lifecycle artifacts that are produced in the process of software or system creation or enhancement. 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.
Understanding where the project is relative to the plan is complicated by process complexity, making progress assessment and predictability in meeting milestones mere guesswork. This typically stems from the lack of metrics for the entire lifecycle and team effort. Manual tracking of progress across teams is onerous, error-prone, and subject to inconsistency. It introduces a level of complexity into the process that blocks creativity and lessens productivity.
Design complexity deals with the increasing demands being placed on the software, systems and products themselves, whether features and functions or connections to external systems. This complexity is experienced by large and small teams alike. It shows itself in the inability to rapidly assess the impact of change and act on it, as well as in a limited understanding of the design by those who are often most deeply affected by the result: the stakeholders that are external to the team.
The architecture of software and systems, as well as the behavioral characteristics, are increasingly difficult to understand. Each new requirement for increased functionality increases the complexity. Add to this the need to interconnect software and systems to other systems, and the design complexity increases even further. Trying to design these systems through code-centric approaches, without modeling and a means to visualize the design at all levels of abstraction, and without employing automation, leads to project delays, uncertain feature compliance, and broken interfaces and systems.
Five challenges that result
IBM has a rich set of design and development solutions that help organizations design, build, and deliver software-intensive systems and products. Teams, large and small, use solutions built around IBM® Rational® Software Architect and IBM® Rational® Rhapsody® to create and collaborate on designs. They choose these particular products because they need to see significant results in simplifying application and systems complexity, to identify issues and defects early in the lifecycle when they are cheapest to fix, and to document and communicate what they intend to build to stakeholders.
However, even with the best design tools, significant challenges still exist. These problems can be grouped into the following five areas:
- Design teams work in isolation from a significant portion of project stakeholders. This too often results in designs and delivered software and systems not meeting expectations, and this is symptomatic of design and organizational complexity.
- Design elements are loosely tied to other artifacts in the lifecycle, such as project plans, requirements, test plans, test cases, operation and maintenance guides, and customer guides and manuals. This makes the impact of change uncertain, which is symptomatic of process complexity.
- Designs are difficult to review and are seldom maintained after development begins. Often, they are abandoned. This causes a significant disconnect between the requirements and the delivered product, which is a symptom of design and process complexity.
- Predictability and effectiveness in the design process is uncertain. This leads to delays in release and inefficient use of the development resources, which are directly related to process complexity issues.
- Reporting and documenting of the design, as it relates to the entire project, is labor-intensive and error-prone. This results in audit failures and an inability to show compliance with standards and regulations. Again, this is symptomatic of process complexity.
We are at a critical point in the areas of modeling, design, and architecture. Model-driven development (MDD) and model-based systems engineering are fundamental for designing smarter products and for systems of systems. However, design teams have been struggling to keep up with the requirements of today's development constraints, particularly in an agile world that is fast-paced and collaborative. To address these challenges,
How new Collaborative Design Management features help
IBM is addressing these challenges with the next evolution of our design software and Collaborative Design Management. This approach extends collaboration beyond the team and traceability throughout the lifecycle into the architecture and product design discipline. We have extended the capabilities of Rational Rhapsody and Rational Software Architect design and modeling tools so that design is integrated with artifacts from the rest of the software and systems development lifecycle, from requirements definition through testing, even to operational assets. Furthermore, all relevant stakeholders are engaged in the design process through a highly collaborative environment built on the IBM® Rational® Jazz™ technology, and featuring a web-centric, intuitive interface.
Collaborative Design Management features
- Jazz technology-based central design hub for design storage, making all designs searchable and accessible at central locations
- Intuitive web client for easy access to designs from anywhere, enhancing stakeholder collaboration
- Automated design reviews with comment and markup of design elements through the web or rich client
- Automated document generation and reporting, with dashboards for progress tracking and automated reports pulling data from all relevant sources using Open Source Lifecycle Collaboration (OSLC)
- OSLC-based linkage to other software development lifecycle artifacts to enhance impact analysis and reporting
How these features address the five complexity challenges
Let's explore how these Collaborative Design Management capabilities can be applied to the five complexity challenges described previously.
- Design teams work in isolation from a significant portion of
project stakeholders, causing designs and delivered software and systems to not
- Complexity addressed: design, organizational
- Collaborative Design Management features used: stakeholder collaboration; central design hub, review and markup, relationship diagrams
Figure 1. Web-based review and markup of designs by extended team members
Collaborative Design Management (CDM) software automates the ability to provide input for stakeholders from all areas interested in the software or system under development, including customers, analysts, quality assurance professionals, suppliers, and operations personnel, along with architects and developers. Reviewers external to the design team can search, review, comment on, and mark up designs stored in the central design hub by using the web client. With CDM, design teams no longer work in isolation but have constant, constructive feedback from stakeholders throughout the design and development process. Stakeholders have self-serve access to design milestones, which improves their understanding and the quality of designs. Stakeholders can determine how their tasks and areas of concern relate to designs with traceable links to work items, requirements, and test cases.
Multiple designs can be searched and filtered in relationship diagrams, allowing for the complexity of the overall design to be simplified in specific views that are relevant to each stakeholder's point of view. The organizational complexity that is evident from the siloed teams is addressed through the easy access that all stakeholders have to the central design hub and web client, which facilitates their collaboration on the designs.
- Design elements are loosely tied to other artifacts in the
lifecycle, such as project plans, requirements, test plans, test cases,
operation and maintenance information, and customer guides and manuals, which
makes the impact of change uncertain.
- Complexity addressed: process
- CDM features used: central design hub, OSLC-based traceability, relationship diagrams
Figure 2. Design links through OSLC to requirements, test plans, and other designs
With CDM, stakeholders can use OSLC to create links from design elements to requirements, test plans, test cases, project plans, and tasks. This provides traceability throughout the lifecycle to the important aspects of the design, thus helping to address the overall process complexity issues. These links are available to reviewers, designers, and developers through automated reports and on relationship diagrams, thereby enabling them to assess the impact of change involving any linked artifact on the design or related artifacts. Team members are informed of tasks stemming from these changes and can make the required updates based on the impact assessment. The traceability throughout the lifecycle also facilitates the creation of comprehensive reports and documents to satisfy regulatory or corporate standards requirements and audits.
- Designs are difficult to review and are seldom maintained after
development begins, causing a significant disconnect between the design and the
- Complexity addressed: process, design
- CDM features use: central design hub, relationship diagrams, automated design reviews
Figure 3. Web-based, automated review tasks involving the extended team
Using CDM, stakeholders from across the organization and throughout the lifecycle can access the central design hub to search, analyze, and review designs. The can even access multiple designs in the same search so they can fully explore and understand the relevant aspects of the design, using the intuitive web client.
Designers can kick off the automated reviews by specifying which designs and stakeholders to include. Stakeholders can view the design and attach comments and markups by using either the web or rich client. Design reviews can be linked to IBM® Rational Team Concert™ work items for planning and tracking. This automated review process, involving all relevant stakeholders, simplifies the design and development process and helps address the complexity issues in the design by involving the right subject matter experts at the right point in the process.
- Predictability and effectiveness in the design process is
uncertain leading to delays in release and inefficient use of the
- Complexity addressed: process
- CDM features used: automated design reviews, automated document and report generation
Figure 4. Personalized dashboards show project status at a glance
By using Collaborative Design Management, teams begin to collaborate and work toward the implementation of the solution as soon as the requirements are finalized. The design process becomes a team activity where frequent changes, constant validation, and feedback help solidify the direction of the development activity. Because they have more visibility, stakeholders get a better idea of the team's work at an earlier stage and can be kept up to date with the team's progress and output even before any "executables" are delivered. Most importantly, designs are treated the same as other lifecycle artifacts, with the ability to associate and track activities against them throughout the entire development process.
- Reporting and documenting of the designis labor-intensive and error-prone, which leads to audit
failures and an inability to show compliance with standards and regulations.
- Complexity addressed: process, design
- CDM features used: central design hub, automated documentation and reporting, OSLC traceability
The Collaborative Design Management products, Rational Software Architect Design Manager and Rational Rhapsody Design Manager, are both integrated with IBM® Rational® Publishing Engine, which automates document generation from disparate applications (see Figure 5). This means that most of the customizable parts are created automatically and dynamically. This is a bonus for keeping designs up to date, and for quickly and easily creating documents for formal reviews, contractual obligations, or proof of compliance with standards and regulations.
Figure 5. Automated reporting, drawing from multiple OSLC-linked sources
A major benefit of designs is the ability to produce documentation that helps teams gain insight into the workings of a software or system. Collaborative Design Management encourages teams to keep them current and up to date as the software or systems evolve through automation and integration into their day-to-day work. Not only does this help produce documentation that can be used for maintenance or future expansion of the project, but it can also serve as a way to ensure and validate compliance with industry standards during development audits.
By creating designs in Rational Software Architect or Rational Rhapsody design and modeling tools to create designs and taking advantage of the integrated authored using IBM's market leading design and development tooling, Collaborative Design Management features, organizations can address the significant challenges with the ever-increasing complexity of software and systems delivery. CDM brings together a broad set of interested stakeholders, including customers, line of business managers, operations teams, and others from different disciplines and organizations to contribute and influence the design of products, software, and systems. This helps drive improved quality and increases the likelihood of achieving desired business outcomes.
Collaborative Design Management brings these stakeholders together around the design process through an intuitive, web-based and Jazz-based user experience that lets them achieve three critical objectives:
- Maximize productivity and lower costs by providing a central location for designs, enabling reviewers to search, view, analyze, and identify reuse opportunities across multiple designs from a variety of sources.
- Improve solution quality through collaboration on design reviews that involve all stakeholders,
- Accelerate project delivery through living, dynamic designs, metrics, and reports.
- Capitalizing on Complexity: Insights from the IBM 2010 Global CEO Study: 1500 face-to-face interviews, companies of all sizes across 60 countries, representing 33 industries (PDF)
- Collaborative Design Management page on IBM.com
- Check the Rational Software Architect Design Manager overview To learn more about Rational Software Architect, start at the developerWorks page. Also explore the product overview and the information center, where you'll find installation and use instructions.
- Read the Rational Rhapsody Design Manager overview. To learn more about this Rational Rhapsody software for collaborative, model-driven development for embedded systems, start with the Introduction to Rational Rhapsody and the Rational Rhapsody page on IBM developerWorks.
- Also see the Rational Rhapsody 7.6 information center and explore the various versions.
- Start with the developerWorks page for Rational Publishing Engine to learn more about how to automate document generation across applications.
- See the Design Management, the collaborative architecture design and analysis project on Jazz.net
- Visit the Rational software area on developerWorks for technical resources and best practices for Rational Software Delivery Platform products.
- Stay current with developerWorks technical events and webcasts focused on a variety of IBM products and IT industry topics.
- Attend a free developerWorks Live! briefing to get up-to-speed quickly on IBM products and tools, as well as IT industry trends.
- Watch developerWorks on-demand demos, ranging from product installation and setup demos for beginners to advanced functionality for experienced developers.
- Improve your skills. Check the Rational training and certification catalog, which includes many types of courses on a wide range of topics. You can take some of them anywhere, any time, and many of the "Getting Started" ones are free.
Get products and technologies
- Download either or both versions for a trial: Rational Software Architect Standard Edition or Rational Software Architect for WebSphere Software.
- Download Rational Rhapsody Developer and try it free for 30 days.
- Evaluate IBM software in the way that suits you best: Download it for a trial, try it online, use it in a cloud environment, or spend a few hours in the SOA Sandbox learning how to implement service-oriented architecture efficiently.
- Join the discussions in the Rational Development Tools forum, the Rational Rhapsody forum, and the Rational Publishing Engine forum.
- Join the Jazz Community and explore Jazz.net.
- Share your knowledge and help others who use Rational software by writing a developerWorks article. You'll get worldwide exposure, RSS syndication, a byline and a bio, and the benefit of professional editing and production on the developerWorks Rational website. Find out what makes a good developerWorks article and how to proceed. Start by finding out what makes a good developerWorks Rational article.
- Follow Rational software on Facebook, Twitter (@ibmrational), and YouTube, and add your comments and requests.
- Ask and answer questions and increase your expertise when you get involved in the Rational forums, cafés, and wikis.
- Connect with others who share your interests by joining the developerWorks community and responding to the developer-driven blogs.