You are on page 1of 16

Telelogic White Paper

Agile Development: Meeting the Enterprise Challenge


Dominic Tavassoli, Telelogic Version 1 February, 2007

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

Ti i rear e . wc e t teoow io lg a r d fewom e si e m lc . l . . lc e d a lg t g o g r k s Ti e c l e

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

Source: Shine Technologies Pty Ltd, Agile Methodologies Survey

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.

Streamlining Agile Development


Agile development at the enterprise level implies using a robust change and configuration management solution as complex large scale developments can include distributed projects with compliance requirements such as traceability and documentation; customer and business stories; requirements; and change requests2. All these elements need to be captured in a central, scalable repository, ideally with a configurable workflow and a Web interface to ensure that objectives and priorities are recorded and analyzed in a consistent, repeatable fashion. Task-based Configuration Management Once priorities have been agreed upon and features and fixes assigned to releases, the development team can start working. To limit overhead and guarantee traceability, enterprise change management is integrated with configuration management by linking tasks to the change requests. Developer tasks are stored in the CM repository. This provides a consistent mechanism for communicating among team members, a much better solution than the unreliable mix of emails, phone calls, sticky notes, and conversations in a corridor. The developer simply selects the task in his to-do list and all work is automatically grouped in a consistent change set. To deliver changes to the rest of the team, the developer just checks-in the task. This provides full traceability while minimizing overhead.

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

Figure 2 Streamlining development with a task-based CM solution


Task-based CM Boosts Productivity An ISV using agile methods found that after moving to an advanced change and configuration management system and taskbased CM, the time spent by each developer on unproductive activities was reduced to an insignificant amount. For example, no more time was spent recovering from unwanted/unexpected changes. Managing parallel development required little effort. Writing change documentation and establishing traceability was also streamlined.3

Based on customer surveys conducted at the Telelogic user conference 2006

Bringing the Agile Team Together


As the number of developers increases, inevitably they are distributed across multiple sites and time zones, and have different languages and cultures. At this point, in order to assign tasks and provide status updates, it is necessary to move beyond face-to-face contact, emails, phones calls, paperwork, and sticky notes. Collective ownership and flexible roles are only possible if team members can immediately view the status of all tasks in the system. This instant access should be available no matter what the circumstances the team member's location, whether or not the task is being worked on or ready to be pulled into a build, or even if the task has been assigned to a resource who has just called in sick. Task Status Reporting Task-based configuration management solutions allow agile teams to assign tasks in a consistent, accountable fashion. Real-time task status reports provide the high-level insight required to stay in control of change, no matter what its source.
Creating a Global Collaborative Environment A global manufacturer of analytical laboratory products needed a way to create a worldwide collaborative development environment and leverage distributed team member expertise across the organization. A recent series of mergers and acquisitions had resulted in development teams being located in the US, United Kingdom, Germany, and Romania. After implementing an advanced task-based configuration management solution, the manager in charge of global software development noted that "[Task-based CM] really helps bring together all our developers based around the world, in the same team, working on the same product, with the same process. In essence they have a 15-hour project working day."4

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.

Source: Telelogic User conference 2006, Denver, USA

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

Figure 3 Bringing the team together with a task-based CM solution

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

Combining Quality with Agility


Although the rate of change may be high, agile development requires rebuilding and testing early and frequently to ensure high quality across the lifecycle. Continuous integration strategies are the heartbeat of the agile process. These include very frequent builds that pull in all the latest changes, checking for conflicts and errors, and running automated tests. On large scale projects, bringing in numerous changes from all over the world can be challenging, as thousands of modified objects are pulled in each day.

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.

Source: Customer interview 2005.

Agile Power Tools for Managing Complex Configurations and Releases


Content Control The round-trip traceability provided by advanced change and configuration management solutions are also invaluable for helping organizations manage complex, distributed, or critical projects. By displaying common and different contents, agile teams know exactly where content is in each stage of the process. This agile method allows team members to: and confirm which features and change requests have been added or removed between two builds View which changes are only partially present Identify that no unwanted changes are present Check Roundtrip traceability provides compliance reports that reflect the accurate state of configuration content.

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

Source: Customer interview 2005.

10

Managing and Coordinating the Agile Project


Agile development leverages constant and frequent communication as a key factor for success, a best practice that is challenging to implement when the team grows and is distributed across sites, countries, and time zones. Real-time Status Reports When teams work with task-based configuration management, all activity is automatically logged in a central repository. Agile teams can view real-time reports on finished tasks, those being worked on, and those in the queue. The change request status in the lifecycle (i.e., integration, system testing, and in production) can also be displayed in an actionable Web-based interface. The team can make on-line decisions during the meeting, instead of deferring actions until later. A daily Scrum meeting, for instance, is easily set-up and expedited across the enterprise. During the meeting: Automatic reports display what each team member has done since the last meeting discussions focus on what has impeded work, noting suggestions directly in the change request or task Team description Automatic reports display which tasks remain to be worked on, as well as their priorities Resource assignments can be accomplished online. Powerful reporting improves both developer and project team collaboration. For example: Test reports indicate exactly what has changed between two baselines, helping focus test resources reports indicate the functionality added to a build, helping debug as well as confirm project progress (percent of Build desired features added to build) Delivery reports automatically provide the release notes of a project, a list of all features, and bug fixes or enhancements included in a given release or iteration. Compliance These capabilities dispel one of the myths about agile development that the methodology's low level of documentation makes it unsuitable for critical projects or meeting compliance requirements. If the team works with appropriate solutions, the levels of reporting and metrics automatically ensure the team is in control and has all the backup documentation required by the compliance mandates.
Pharma Efficiently Meets Compliance Mandates An international pharmaceutical and medical device manufacturer needed to improve communication of change across the enterprise and enforce process. At the same time it had to comply with FDA regulations that specify that all documentation relative to any application/process and/or manufacturing change must be captured and maintained for audit purposes. By implementing automated change reporting across the organization, the company realized a return on investment in just five months, saving approximately $1 million in annual costs. Now it responds more quickly and efficiently to FDA audits.8

Source: Telelogic User Conference Presentation, Hollywood, USA, 2005

11

Figure 5 Viewing real-time project progress

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

Remaining Customer Focused


Agile development stresses the importance of dialog with the customer, and capturing good requirements in the form of stories and use cases. But when multiple customers present their needs, which content should you focus on? An executive decision should be based on business objectives that take into account cost, strategy, acceptable risk, and the competitive landscape. Prioritization and Assessment Integrated product portfolio and requirements management solutions can provide a Web-based interface for project stakeholder collaboration. This allows the organization to capture, analyze, and prioritize customer needs in order to make the right decisions. These solutions enable agile teams to swiftly leverage both quantitative and qualitative information from a single repository to determine the scope of a project and its probable impact on the business. In addition, the project's requirements should be associated as early as possible with verification and validation tests. Not only does this help guarantee the quality of the requirement, it also increases the overall quality of the project.
Shorten Time-To-Market A global cellular phone manufacturer needed to add innovative new features to their product in order to remain competitive. The organization's overall goals were to shorten lead times, accelerate product launches, increase pricing freedoms, and lengthen the time that a product remains profitable. Development time had to balance the value of adding the lifestyle features their customers expected against the resources it would take to build the new features. They decided to implement an integrated product portfolio and requirements management solution. "Shortening the lead time by a week can increase sales by several million. With support from [our integrated product portfolio and requirements management solution], we make better decisions, faster, during the entire development process. This saves valuable time and has a positive impact on our bottom line."9

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.

Figure 6 Identifying the ideal contents of a release plan


9

Source: Customer interview 2006.

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

About Telelogic products for agile development


Telelogic products that enable enterprise-level agile development include: Telelogic Synergy: A task-based configuration management solution that helps development teams work faster and easier by accelerating the release management and build management processes, maximizing the efficiency of limited development resources and uniting distributed development teams. Synergy offers a flexible and powerful distributed repository and a proven, team-oriented workflow approach to software development. Telelogic Change: A Web-based, fully integrated change management and workflow solution for request tracking and reporting. It increases quality by reducing the risk of unwanted or unauthorized changes being implemented and increases accountability by comprehensively tracking all change requests. Telelogic Focal Point: A Web-based decision support platform that enables organizations to manage agile requirements and make better product development decisions. It supports the market-driven product management model, its processes and techniques. Telelogic Dashboard: A decision-making dashboard for project management that gives project managers quick insight into project risk, status and trends by automating the collection, analysis and reporting of measurement data.

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

You might also like