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.