Better quality and agility with collaborative design
Jean-Louis Marechaux, IBM Rational
Last updated: January 6, 2012
Build basis: Rational Software Architect Design Manager 3.0.1, Rational Software Architect Design Manager Client Extension 3.0.1
Success in agile development comes from teamwork. No matter which agile process you apply, collaboration is always at the heart of recommended best practices. Quality systems are also based on good design to make them easier to maintain and extend. This article demonstrates how Rational Software Architect Design Manager enhances collaboration on design activities.
Based on a typical agile scenario, we explore key features to share and manage design information across the application development lifecycle. We also explain how collaborative design leads to better quality and agility. The article shows one specific usage scenario, but the Design Management (DM) platform is flexible to adapt to your different needs.
A simple agile scenario
The importance of architecture and design
A whole team approach to design
Share design information for teamwork
Stakeholder collaboration on design
Iteratively refine design
Communicate design information with dashboards
For more information
About the authors
YummyRation is a fictitious software vendor that provides solutions for online catering services. The product owner has identified a need for a new feature to satisfy customers. In addition to online catering menus, YummyRation wants to offers a venue reservation service to its clients.
Even if YummyRation are all located in the same town, some are working from home a couple of days per week. Others are sometime traveling to meet customers. As a result, team members are unable to meet in a room on a regular basis and need to find other ways to collaborate efficiently.
Over the past few months, YummyRation has applied Agile principles to iteratively develop and deliver enhancements. Here is a summary of some design-related activities:
- During the initial iteration, the development team analyzes the major technical concerns that affect the solution. They create simple design elements to capture the significant requirements, goals, and constraints.
- Design information is centralized and shared with a larger audience to facilitate collaboration.
- Early feedback on design is collected from different stakeholders. Comments are used to refine the design for the next iteration.
- When a major milestone is reached, formal review sessions are organized. It is great opportunity to adapt the design to the needs of the development team.
- Anytime during the development lifecycle, the team accesses real-time design information on dashboards.
- Design is refined over time as the team progress on developing the product.
Let's imagine that you work at YummyRation. Your team has been assigned to develop the new "Venue Finding" feature for the Yummy Online Catering system. In each iteration, you design, develop and test your implementation. Multiple iterations are needed to deliver the new feature. For simplicity's sake, we will focus on design activities in the rest of the article. But design is part of your development effort and is never done in isolation
Architectural analysis is a set of activities to build and improve the software architecture of a system. When conducted iteratively, this architectural thinking helps uncover and address issues during software development without requiring significant up-front architectural effort. Architectural analysis activities are crucial for every software-intensive system.
Despite what dogmatic agile development coaches might say, your team thinks that there is no successful software development without architectural analysis. At YummyRation, you never build a system without thinking about it.
But you can not deliver a system if you keep thinking about it forever. Architectural work must be integrated to the development lifecycle. Architecture is intentional because you make deliberate decisions based on what you know when you start a project.
Architecture is also emergent because you always uncover new technical challenges during iterative development.
As stated in the Agile Manifesto, "the best architectures, requirements, and designs emerge from self-organizing teams". Architectural activities are not meant to be conducted in isolation. Successful teams collaborate on architecture and design during the whole product lifecycle. They coordinate regularly to ensure that technical challenges are addressed. Small and collocated teams usually work in open spaces or meeting rooms for best efficiency.
The environment at YummyRation is a bit more complex. Michael, the product owner, is often at customer site for meetings with different stakeholders. Yianna, a team member, had a new baby girl last year. To balance work and family life, she is working from home twice a week. Craig has flexible working hours (he lives far from the office and tries to avoid peak traffic period). So for many good reasons, key members of the team are not always able to meet in the same workspace.
Because people at YummyRation understand the constraints they are facing, they have adopted Rational® Software Architect Design Manager V3.0. Now they efficiently collaborate on design even when it is difficult to find common time slots at the office. The following sections describe typical design-related activities in the YummyRation specific environment.
As a member of the YummyRation team, you have decided to draft the design of the new "Venue Finding" feature with another teammate, Colin. You both create some sketches using the Rational Software Architect V8.0 Eclipse client, then you post your model on the Design Manager centralized platform. Because the import engine has been configured once, an import definition is already available on the Design Management Server.
Everything is configured to import design elements and all you have to do is request an import from the Design Management Server web page.
Once the import completes, the design information that you have created locally is available on a Design Manager central repository. Others can browse the Yummy Online Catering project to "Venue Finding" design activities.
You want the whole team to be aware of the new model posted on the central Design Management Server. So you decide to create a headline on the YummyRation project dashboard. This way, people are aware of the new model even before you can talk to them.
Jason is working at BookYourVenue.biz, a business partner managing dining rooms for special events. Milang is a key YummyRation client. He is using the YummyRation software for the web site of his restaurant franchise called Pensgo.
Both are project stakeholders interested in providing feedback on the new "Venue Finding" feature. All they need if a reviewer DM license to get access to the model through a web browser.
Stakeholders post comments on the Design Management Server to start a discussion on the "Venue Finding" design. They even go a step further and draw directly on diagrams to share their feedback with the whole team. Project stakeholders also subscribe to the design resource to receive email notifications when someone else is posting feedback.
This activity concludes the first iteration for the project. Based on the "Venue Finding" design, the team has developed a small prototype to demonstrate the new feature to customers. Early feedback is captured to be incorporated into the next iteration.
Based on the feedback collected, your team modifies the initial design of the "Venue Finding" feature. You review the comments on the design elements from your local workspace where you have installed the Rational Software Architect Design Manager Client Extension. You adapt the design to align it with stakeholders' requirements discovered during the previous iteration.
Then you import the updated model into the Design Management Server. During the import, you create a snapshot to clearly differentiate your new design increment from the old version.
Joanne, the ScrumMaster, wants to help your team obtain an approval for the new design increment. This time the review needs to be a bit more formal as any delay or misunderstanding would affect the result of the current iteration.
Joanne creates a review on the Design Management Server. She specifies the resources to review and identifies the participants.
Reviewers are notified when the review starts. They can access the design resources from a web browser, they can submit comments, and they can mark the items complete as their review moves forward.
At any time during the review, Joanne can track progress. She has access to the overall status for the review, but also to fine-grained information for each participant and each design resource.
The Design Management Server facilitates review management. No need to exchange documents or to explore long email threads. Everything related to the "Venue Finding" review is centralized to improve collaboration among the different participants.
Just like everyone involved in the YummyRation project, you need to make decisions quickly. But what you want above all is to make smart decisions based on facts. So you consult the YummyRation dashboard on a regular basis to get real-time status on the "Venue Finding" feature. This dashboard is a simple web component. It is populated with information automatically extracted from the YummyRation project, such as recent links, recent comments, or design reviews.
You can also customize the dashboard with many widgets available out of the box.
On the YummyRation dashboard, you click the "VenueFinder M3 Review" link to access the review details. Going back to the dashboard, you examine the examine the "Recent Comments" section. A simple click allows you to drill down and access the commented design resource.
You also decide to integrate data from your business partner. You add a "News Feed widget" to the dashboard to get information from the BookYourVenue.biz site.
The dashboard is also accessible to external stakeholders. People at BookYourVenue.biz and Milang, your key client, no longer work in isolation. Everyone has access to the same information on the "Venue Finding" feature, which facilitates collaboration during iterations.
The Agile Manifesto values individuals and interactions over processes and tools. People are the most important assets in any organization, and best applications are developed when all the team members work efficiently together. But with Rational Software Architect Design Manager, the tool plays a key role in collaboration. It helps you achieve better quality as design correctness and alignment to needs is verified by all the stakeholders. Design Manager improves communication on design and allows your team to react quickly to changes or feedback. It provides a central platform for successful collaborative design management.
- Twelve principles of the Agile manifesto
- Design Management project page
- Design Management forum
- Online training: Introduction to Collaborative Design Management
Jean-Louis Marechaux works as a software engineer for IBM Rational in Canada. His main areas of interest are software architecture, Java EE technologies, SOA, and Agile software development practices. He published several articles on these subjects in the past and contributed to the Practical Guide to Distributed Scrum in 2010. Before joining the Rational group, Jean-Louis worked as an IT architect for the IBM Global Services group and other IT organizations, where he was involved in application architecture, design, and development. You can contact him at firstname.lastname@example.org.
Copyright © 2012 IBM Corporation