Professional Documents
Culture Documents
This document contains information that is proprietary to Telelogic AB. Use of the information contained herein or copying or imaging all or part of this document by any means is strictly forbidden without the express written consent of Telelogic AB.
Table of Contents
Overview Introduction Streamlining Agile Development Task-based Configuration Management Workspace Management Concurrent and Parallel Development Bringing the Agile Team Together Task Status Reporting Peer Reviews Refactoring Combining Quality with Agility Working with Consistent Change Sets Round-trip Traceability Agile Power Tools for Managing Complex Configurations and Releases Content Control Feature-driven Release Management Managing and Coordinating the Agile Project Real-time Status Reports Compliance Management Dashboards Remaining Customer Focused Prioritization and Assessment Traceability from Needs to Code Conclusion About Telelogic Products for Agile Development About Telelogic 3 4 5 5 6 6 7 7 7 8 9 9 9 10 10 10 11 11 11 12 13 13 13 14 15 16
Overview
Enterprises are increasingly interested in the agile development approach for handling complex software engineering projects. These organizations are hoping to bring more efficiency to the development process by keeping costs and schedules under control, and at the same time deliver valuable content that meets their customers' needs. Agile development has an excellent track record for small projects where the team involved are in close proximity. It emphasizes real-time communications between the developers and their customers the end users. The challenge is how to apply this approach in an enterprise setting where the development team involved might be scattered across multiple sites and time zones, use different languages, and are working on multiple parallel releases and variants. Adding to the complexity at the enterprise level is the fact that organizations adopting agile software development approaches still need to address issues of governance, compliance, and regulations, as well as meet diverse customer needs and business objectives. In this paper we discuss how the use of software solutions, such as advanced change and configuration management, dashboards, and agile requirements capture and management, enable organizations to realize the benefits of agile methods at the enterprise level. "88% of organizations having adopted agile processes found an increase in the quality of their applications; 93% measured an increase in productivity" 1
Introduction
Many of today's larger organizations are investigating agile software development approaches in order to control costs, shorten development cycles, and deliver applications that meet both their customers' needs and the enterprise's business requirements. Agile development isn't new. Scrum dates back to 1986 and many other methods such as Extreme Programming (XP), Adaptive Software Development, and DSDM were introduced in the mid- to late 1990s. The Agile Alliance was formed in 2001 to identify common principles and the canonical definition of agile development. Since then, agile approaches have helped development teams increase their efficiency, customer focus, and ability to deliver high-quality software while remaining responsive to change. Agile methods are based on a different assumption from the traditional "waterfall" development approach a predictive methodology that locks steps through a rigid pre-planned sequence of requirements capture, analysis, design, coding, and testing. Instead, the agile approach realizes that: Requirements, particularly those for innovative projects, are generally not fully understood at the beginning of the process No system or software is built perfectly in the first try change is inevitable Traditional processes become unpredictable when new tools, technologies, and architectures are used organizations cannot afford the investment and overhead of large scale process improvement (such as the Many Capability Maturity Model [CMM]) Given that agile development methods have an excellent track record when applied to small, co-located projects, the question is how to ramp up these successful recipes to the enterprise level. Specifically: can a large number of developers e.g., 20 or more work together in an agile fashion? How can you ensure communication and collaboration across distributed projects with multiple sites, time zones, and How languages? Can large-scale projects continue to focus on quality without sacrificing time-to-market? Can teams remain agile even when managing complex configurations, such as parallel releases and variants? Can organizations use agile approaches on a critical project or in a compliance situation? can management maintain control of agile projects? How can teams ensure their focus is correct when they must address multiple customer requirements and various How business objectives? Although software products are not the main concern of small-scale agile development teams, at the enterprise level, software solutions can help organizations keep their development efforts on track and reap the full benefits of agile methodologies. For instance, in a large agile development project, a number of activities are taking place in parallel and products are being delivered at a very fast rate. Under these circumstances, a good configuration management implementation is essential for controlling tasks and products during the development process. In this paper, we explore the role of advanced configuration and change management solutions in supporting agile software development at the enterprise level. We also discuss how management dashboards and linked requirements management solutions help organizations realize the full potential of the agile approach.
Figure 1 Traceability from change request to task to impacted objects Advanced configuration management systems provide invaluable functionality for agile developers. For instance, if a developer has been assigned an urgent task while half-way through another task, he can switch to the urgent assignment and automatically back-out the work in progress. Once the urgent work is delivered, he can retrieve the previous, unfinished edits with a simple click, without losing data or traceability. Also, a developer can drag and drop a task from another team member into his project for immediate conflict detection and compatibility testing. When teams need to rapidly deliver quality software, advanced configuration management solutions reduce team downtime and rework effort by giving developers the means to quickly identify problems early on.
Note: In this document, "change request" is used to refer to designate requirements, stories, bug reports, and enhancement requests.
Workspace Management As the number of team members and the rate of change increases, developers need access to stable workspaces where they can make changes and perform unit testing. Each developer may have multiple workspaces in order to validate edits against multiple environments before delivery. Questions the developer may consider include: do the modifications work with the different customer variants and for each platform; and are they compatible with the parallel releases the team is producing? Advanced configuration management solutions provide this workspace support, allowing team members to work in insulated but not isolated environments. These workspaces are typically updated on-demand, displaying not only a list of all the object changes, but also the entry or removal of tasks and change requests. This visibility gives the developer a better understanding of what has changed and why, and eliminates the downtime due to unwanted edits or lost changes. Concurrent and Parallel Development Agile development teams generally accept one of the trade-offs of concurrent (or parallel) development i.e., allowing a colleague to make changes to an object that has or is being edited, and then merging the changes later - to increase speed of development. When members of the development team are geographically dispersed, advanced configuration management functions help reconcile these changes. Specifically, the CM capabilities: notification of parallel versions as soon as a developer tries to check-out (and later, check-in) an object, which Provide enhances communication and coordination each team member to see which edits are being made, as well as the reason (since the edited object is linked to a Allow task) by checking the history view also provided is who to contact for more information, if necessary the time to complete a task resulting in a faster process that lessens the time it takes to reconcile two parallel Shorten versions
Time spent by development team
Hours/ week
5 4 3 2 1 0 Recovering from unwanted change Managing parallel development Before Synergy With Synergy Documentation and traceability
If a resource is unavailable (on sick leave for instance), tasks assigned or in progress can be swiftly identified and reassigned to a different person. This ensures that no changes are lost, even across continents the new assignee can easily view the full history, traceability, and existing changes, and then finish the work. Peer Reviews Peer reviews, treated with tasks, can also be facilitated. Completed tasks are first transferred to the reviewer for check and approval in an intermediate control area before they are distributed to the rest of the team. If necessary, the peer reviewer may create and assign a "fix task" before further distribution. An alternative is to have the task reviewed before it is even completed an approach that can be combined with large scale pair programming.
Refactoring A key agile activity is keeping the code base clean and lean, for instance through refactoring. This activity should also be carried out inside a task and tracks code changes, directory modifications, and renames. This ensures all the development team members understand exactly what has happened to the code structure and can refrain from applying the refactoring task until an appropriate time for example, when a stable personal build is completed.
Time spent by Team Leaders
Hours /week 30 25 20 15 10 5 0 Task assignment Status update tracking Before Synergy With Synergy CM admin
Time Saver Organizations measured the time spent by team leaders keeping track of assignments, before and after the use of an advanced task-based configuration management solution.5 They found that: spent on assigning and explaining tasks to the development team was cut by a factor of five Time Collecting status updates became effortless Virtually no time was spent on tool administration activities
Source: Based on customer surveys conducted at the Telelogic User Conference 2006
Working with Consistent Change Sets By applying task-based configuration management, agile teams benefit by always working with consistent change sets. Because developers are delivering tasks instead of individual objects, they never forget to check-in a file, avoiding one frequent source of broken builds. Agile teams can automatically pull in all completed tasks, check for conflicts, and run the build process with an application like the open source CruiseControl, for example. Large, distributed projects are able to build efficiently, with repeatability and consistency.
Reverse Revenue Loss A US-based provider of multi-service HR business process outsourcing, recently identified issues that were causing major loss of revenue for their organization. These included builds that were frequently unstable because of missing files, incomplete changes, and conflicting modifications, which limited the speed at which they could deliver new applications. This throttled innovation and stunted the company's growth. To increase build quality and control, they needed a solution that guaranteed change set consistency without creating extra work for the developers. According to the organization's CM team leader, "Task-based configuration management provides this capability and allowed us to reduce 90 percent of the resources dedicated to unproductive efforts, such as fixing broken builds. This resulted in an increase in development productivity of over 18 percent."6
Round-trip Traceability The most advanced change and configuration management solutions provide round-trip traceability. They can do much more than identify which files have changed between two builds they can indicate which tasks, change requests, bug fixes, or even stories and requirements have been added or removed between two builds, baselines, iterations, or releases. The team can clearly see the real progress status of the project.
Figure 4 Comparing the contents of two iterations (baselines) Testing teams appreciate easily seeing exactly what changes should be tested for, allowing resources to be spent as efficiently as possible.
Feature-driven Release Management Feature-driven release management is one of the most important power tools for organizations that wish to embrace change while staying in control. With appropriate tool support (e.g. drag and drop), team members can build new project configurations simply by indicating which tasks or features to include. Unwanted or destabilizing changes can be backed out with a simple click, while powerful algorithms check consistency and dependencies across the configuration. Aided by this functionality, agile teams can tackle some of the most complex challenges across the enterprise. These include: building customer-specific patches Swiftly Managing multiple platform- and customer-specific variants, while keeping the code footprint lean Validating development changes across parallel releases (or streams) early in the process, limiting rework, and integration effort Backing-out and moving back suspect tasks, features or fixes to isolate unwanted behavior and analyze broken builds, making it faster and easier to produce quality software Backing-out or adding tasks, features or fixes to produce a desired release even late in the process, providing the agile team with the means to embrace change throughout the lifecycle
On the Development Fast Track To cope with a highly competitive market, a leading UK-based financial services group, moved to an agile DSDM process to help them produce complex projects for their e-business platform. Because these projects took longer to deliver, time-to-market and increased responsiveness to change requests was key. With round-trip traceability and feature-driven release management, the group is now able to control change across multiple releases, and projects are being delivered on time. "The main benefit we gained through [our advanced configuration management solution] is the ability to do 24 x 7 development for fast-track projects. The tools and processes that this solution provides helped us get a new e-commerce offering out to market in a few months, rather than the year it would have taken."7
10
11
Management Dashboards When agile methods are deployed at the enterprise level, senior management needs feedback to confirm that projects are on track. They need this data throughout all stages of the agile development cycle as part of their normal due diligence and in order to reassure all stakeholders that the project is progressing according to plan. If there are a large number of projects involving numerous developers and changes, there is always the risk that too much feedback will hide important issues. The data inside configuration management and enterprise change management systems can be extracted, analyzed, cross-referenced, and summarized as metrics. These may be displayed in a dashboard, showing both current indicators (i.e., number of open bugs, and percentage of requirements implemented), and trends (i.e., build stability over time). A dashboard allows all team members, from senior executives to developers, to view precisely the level and scope of data they need, and manage by exception, identifying and responding rapidly to abnormal metrics and trends.
12
Traceability from Needs to Code Once the agile team and the customer have allocated features and bug fixes to releases, the next step is to create requests for the development team covering implementation, build, assembly, and delivery. This bi-directional traceability and impact assessment helps agile teams adapt to changes in priorities, and ensure they deliver the right product, at the right place, at the right time.
13
Conclusion
The benefits of agile development such as efficient, customer-focused development, increased quality, and responsiveness to change can be achieved at the enterprise level with help from modern software solutions. Particularly effective are: Task-based configuration management solutions Enterprise change management solutions that are integrated with configuration management dashboards Metrics requirements management solutions Agile Using a combination of these tools and following the fundamental premises of agile software development can help ensure successful enterprise development. These out-of-the-box agile processes and templates greatly increase the likelihood that the enterprise development process will move along quickly and smoothly, despite challenges presented by scalability, geographical distribution of human resources, project criticality, and compliance requirements.
14
15
About Telelogic
Telelogic is a leading global provider of solutions for automating and supporting best practices across the enterprise from powerful modeling of business processes and enterprise architectures to requirements-driven development of advanced systems and software. Telelogics solutions enable organizations to align product, systems, and software development lifecycles with business objectives and customer needs to dramatically improve quality and predictability, while significantly reducing time-to-market and overall costs. To better enable our customers drive towards an automated lifecycle process, Telelogic supports an open architecture and the use of standardized languages. As an industry leader and technology visionary, Telelogic is actively involved in shaping the future of enterprise architecture, application lifecycle management and customer needs management by participating in industry organizations such as INCOSE, OMG, The Open Group, Eclipse, ETSI, ITU-T, the TeleManagement Forum, and AUTOSAR. Headquartered in Malm, Sweden, with U.S. headquarters in Irvine, California, Telelogic has operations in 20 countries worldwide. Customers include Airbus, Alcatel, BAE SYSTEMS, BMW, Boeing, DaimlerChrysler, Deutsche Bank, Ericsson, General Electric, General Motors, Lockheed Martin, Motorola, NEC, Philips, Samsung, Siemens, Sprint, Thales and Vodafone. For more information, please visit wom w io wc .l. . t g e c l e
Global Headquarters P.O. Box 4128, SE-203 12 Malm, Sweden P:+ 46 40 650 00 00 F:+ 46 40 650 65 55
Americas Headquarters 9401 Jeronimo Road Irvine, CA 92618 USA P:+ 1 949 830 8022 F:+ 1 949 830 8023
Offices across Europe, America, Asia and Australia. Distributors worldwide. info@telelogic.com www.telelogic.com
2007 Telelogic AB. Telelogic Synergy, Telelogic Change, Telelogic Dashboard and Telelogic Focal Point are trademarks of Telelogic. All other trademarks are the properties of their respective owners.
xxxx_x_xxxx_xx