Application Lifecycle Management

Total Page:16

File Type:pdf, Size:1020Kb

Application Lifecycle Management

Introduction This paper discusses Application Lifecycle Management (ALM) to manage life of an application through its aspects of Governance, Development and Maintenance. The need for ALM processes and tools have increased with the ever-increasing complexity of software development. This paper also covers IBMs tool for Collaborative Lifecycle management (CLM) and its relationship to

ALM. It also covers the key tools of CLM : Rational Team Concert, Rational, Rational

Requirement Composer and Rational Quality Manager.

Application Lifecycle Management Application Lifecycle Management (ALM) is a broad term to creating and managing an application throughout its entire life cycle – from design through coding and testing, to maintenance and eventually to retirement.

Three Aspects Of ALM ALM can be divided into three distinct areas: governance, development, and operations. Figure 1 illustrates this, showing each of the aspects

Figure 1 Three Areas of ALM

An applications lifecycle is demarcated by significant events. It begins with an idea , which is then executed to ultimately build an application. The next big event is deployment when the application goes into production and finally when it no longer has significant business value, the application reaches end of life and is removed from service.

Governance, which encompasses all of the decision-making and project management for this application, extends over the entire life cycle. Development, the process of creating the application, occurs first between idea and deployment and it occurs again several times in the application’s lifetime, both for upgrades and for wholly new versions. Operations, the work required to run and manage the application, typically begins shortly before deployment and then occurs continuously until the end of the application. The application is terminated or replaced. Figure 2 A Closer View of ALM [1]

Governance

In ALM, the purpose of governance is to ensure the application satisfies business needs. Figure 2 provides a close-up view of ALM governance, providing more detail on what it entails.

The first step in ALM governance is business case development. As Figure 3 indicates, this analysis takes place before the development process begins. It addresses the business need that the project seeks to meet. It consists of expected cost, benefits and risks. Once the business case is approved, application development starts, and governance is now implemented through project portfolio management. Once the application is completed it is deployed and it becomes part of the organization’s portfolio of applications. Figure 3: Governance Extends over Entire Application Lifecycle [1]

An application is an asset like any other, and so the organization needs an ongoing understanding of its benefits and costs. Application portfolio management (APM) provides this, a way to avoid duplicating functionality among different applications. APM also provides governance for the deployed application, addressing things such as when updates and significant revisions make business sense. It contains business case development and project portfolio management for each of the revisions to the application as can be seen on the Development line in Figure 3.ECTS OF ALM: GO

Governance

Governance is the only activity that extends throughout the entire ALM time span. In many ways, it’s the most important aspect of ALM. The application cannot meet all its functionality in the given time if project manager fails to govern the project efficiently.

Development

While equating ALM to the software development process isn’t accurate, development certainly is a fundamental part of every application’s lifecycle. Figure 4 takes a closer look at this aspect of

ALM.

Figure 4 Development occurs in the first part of application’s lifecycle; periodically thereafter [1]

Once the business case is approved, the software development lifecycle begins. Development is a series of iterations as it can be seen in the figure. Each iteration contains some requirements definition, some design, some development, and some testing and deployment. (The exact activities depend upon the development methodology employed)

Once the SDLC process for version 1 of the application is complete, the application is deployed.

However it is not the end of the development, as the application needs periodic updates, as shown in the figure, and perhaps one or more full SDLC efforts to create new versions, as in this example. (Certainly from a business perspective, the developing business is still very much in the red financially and will be for some time after initial deployment. Only after the application is fully deployed and operational (and revenues are being received) will the development organization go into the black and start to experience a profit).

Operations

Every deployed application is monitored and managed. Figure 5 shows some of the important parts in this operations process.

Figure 5 Operations begin shortly before application deployed; continues until application removed from service. [1]

As with Governance, the Operations line is intimately connected to Development activity.

According to David Chappell planning for deployment likely begins shortly before the application is completed and the act of deployment itself is a fundamental part of operations. Usually deployment is the last step of development. Once deployed, application enters a maintenance phase (or operations). Once the application is deployed, it must be monitored, maintained and updated throughout its useful lifetime. Similarly, each update to the application must be deployed once it’s completed, as the figure indicates. Collaboration Lifecycle Management

Collaborative Lifecycle Management (CLM) is an integrated Application Lifecycle Management

solution by IBM. It provides integrations across Jazz-based products to connect the work of

analysts with developers and testers. Cross-product links support traceability, web-like

navigation, review, commenting, and status tracking across project repositories. CLM integrations

build on the Jazz™ Foundation to provide a common approach to artifact linking, dashboards,

security, and user interface frameworks. [2]

CLM integrations provide the following capabilities: [2]

• Link to existing artifacts across repositories in integrated products; for example, test cases are linked to work items and requirements. • Hover-over links to quickly check status of associated work; for example testers can monitor the status of a defect reported to the development team. • Add a viewlet to a dashboard to report query results from associated projects; for example, one may display requirements not yet assigned in test plans • Add comments to any artifact in an integrated repository. (Integrated Repository – It is workspace repository to hold copies of files and folders.)

Team members can use CLM integrations to achieve business objectives across the application

lifecycle, as shown in the Figure 6. Figure 6 Collaborative Lifecycle Management connects analysts, developers, and testers [2]

Figure 6 shows the three applications of CLM. Rational Requirements professional also know as

Rational Requirement Composer, Rational Quality Manager and Rational Team Concert.

In IBM® Rational® DOORS® Requirements Professional:[2] • Requirements are implemented in different iterations in Rational Team Concert and validated by test plans in Rational Quality Manager. • Analysts and other team members develop requirements that drive development work items, test plans and test cases.

In IBM Rational Team Concert: [2] • Project and development managers use iteration plans to create a development schedule • Iteration plan stories and other work items implement individual requirements. • Developers work on defects submitted by testers as a result of test execution.

In IBM Rational Quality Manager:[2] • The test team links requirements to test plans and test cases. • Testers link test cases to development work items to track development progress. • Testers submit defects in Rational Team Concert and verify the status of a defect or a build.

Jazz Platform

Jazz is an integrated development platform with an emphasis on team collaboration,

communication, and software development processes. [6]

Jazz is built on Eclipse technology and focused on integrating tasks across the software lifecycle

to improve the productivity of an entire team. This platform consists of architecture and a set of

application frameworks and toolkits, as shown in the Figure 7. [3] Figure 7 Jazz Platform [4]

The Jazz platform also supports simple artifact exchange and collaboration between developers by using higher value assets, such as complete change sets, as compared to the previous more time consuming exchange of source code files or mail with code snippets. Different types of collaboration such as instant messaging are present to support communication and presence awareness, and enable everybody to be informed of events important to the team or to the individual.

Live project health information can be drawn directly from actual work, rather than from time- consuming progress reports in the jazz platform. Traceability and auditability are automated by managing all artifacts and their inter-relationships across the life cycle. [3]

Project and Team Areas The Jazz platform provides basic concepts to creating and managing projects as illustrated in

Figure 8

Figure 8 Project and team areas in Rational team concert [3]

The following structures are used for project and team management in Rational Team Concert:

Project Area

“A project area provides definition for the project deliverables, team structure, process, and schedule.” [4]

Team Areas

“A team area manages team membership, roles assignments, and team artifacts.” [4]

Work Item Category

“Categories group work items by the various components or functional areas of the project and are associated with a team area.” [4]

Team process “A process is the collection of roles, practices, rules, and guidelines that are used to organize and control the flow of work. The Jazz platform is process aware, and the rules of process behavior validate preconditions and provide follow-up actions. A process can also define project reports, queries, and work item types” [4]

The CreditCheck Team Area that brings development team together on collaborative development in Rational Team Concert is shown in Figure 9. Some key Team Area properties are highlighted in the figure. For example, the Team Artifacts and Team Central views provide transparency to team health, the team members and their assigned roles, and the iteration structure with the current iteration plan that is selected. [4] Figure 9 The CreditCheck area in Rational Team Concert [3]

The following artifacts are used for agile planning in Rational Team Concert (Figure 9):

Development line

A development line represents an area of activity within a project that typically has its own objectives, deliverables, team, process, and schedule. Project intervals or phases are defined within a development line and are expressed as a hierarchy of iterations.

Iteration

Iterations are defined within a development line and are expressed as a hierarchy of project intervals. Iteration plans are used to express the details of an iteration in terms of work items.

Work item

A work item is a representation of the tasks and issues that a team needs to address during the development cycle. Work items are key for iteration planning and indicators of the health of the project. [3]

Rational Requirement Composer (RRC)

“RRC is a tool to define, collaborate and manage requirements for any size development or project team. Project teams can manage their requirements, write good use cases, improve traceability, strengthen collaboration, reduce project risk, and increase quality with it. It provides improvement in the following key areas:” [3]

 � Improved requirements definition, validation, and management of requirements change through the software development life cycle  � Increased and clearer communication among business stakeholders and IT delivery teams wherever they are located  Less project rework, faster project execution, and lower-cost delivery

Team members require a number of techniques in order to elicit requirements information.

Rational Requirements Composer assists in this area because it provides functions to capture sketches and storyboards, use cases, glossaries, and process models. Analysts can use these

functions to provide context information for requirements as shown in Figure 10.

Figure 10 Rational Requirements Composer [3]

Rational Team Concert

Rational Team Concert (Figure 11) is a Rational product on the Jazz team collaboration platform.

It provides the following key capabilities to support collaborative development:

 Integrates seamlessly the development task across the delivery life cycle for the team �  Facilitates team collaboration and coordination and helps the team develop applications more effectively and with less risk  Supports team collaboration across co-located and globally distributed teams �  Establishes and maintains traceability and audit trails, and automates bookkeeping so that teams are accountable �  Integrates into Eclipse for developers and provides Web access for external contributors  Makes collaborative development more enjoyable [3] Figure 11 Rational Team Concert [3]

Rational Team Concert supports and provides seamlessly integrated workflows, both for the application life-cycle assets managed by the Jazz repository, but also to assets managed by external repositories that are seamlessly integrated into the Jazz platform.

The following ALM domains are supported by Rational Team Concert (Figure 11):

 Source code management �  Work items management, including agile iteration planning �  Build management �  Team health and collaboration

Rational Team Concert provide integration into Eclipse for developers, and Web access to team collaboration capabilities for external contributors who require easy tool access with minimal setup.

Rational Quality Manager

Rational Quality Manager provides a test management system that puts the team in total control of their test efforts. Test planning, construction, and execution can be completed in Rational

Quality Manager. Decisions are managed in a database that enables the team to track against the plan.

One of the most critical questions the test team needs to answer is: “When are we done testing?”

Teams are better equipped to answer that question by placing an emphasis on the test plan, which enables a team to track their progress against the plan with Rational Quality Manager. A team can do as much or as little as they need.

The Rational Quality Manager product provides the following features:  A collaborative Web-based quality management solution �  A central repository for test planning, construction, deployment, and execution �  The ability to align the test effort with project requirements �  Quantifiable metrics for project tracking and decision making �  Keyword-driven manual test authoring and execution [3]

Rational Quality Manager works for simple test management needs and yet is sophisticated enough to scale to larger teams that share test assets across multiple releases of software.[3]

Most of the work item managed by the system can be assigned to a team member. A test plan can be broken down into sections and assigned to different owners. Test case and test script construction can be assigned and tracked to gauge the level of effort and progress in building the tests. Test execution can be assigned and tracked through the execution results. Test lab requests can be used for configuring test servers.

This assignment of work in all aspects of the test effort helps the team to ensure that all of the expected work is completed. It also gives them insight into their progress against the work effort.

References

[1] David , Chappell. White Paper, 2008 www.redbooks.ibm.com/abstracts/sg247622.html

[2]http://publib.boulder.ibm.com/infocenter/rqmhelp/v2r0/index.jsp? topic=/com.ibm.help.common.jazz.calm.doc/topics/c_calm_common.html

[3] Collaborative Application Lifecycle Management with IBM Rational Products December 2008

[4] https://jazz.net/story/about/about-jazz-platform.jsp

[5] http://www-01.ibm.com/software/rational/alm/collaborate/

[6] http://realsearchgroup.org/SEMaterials/tutorials/jazz/jazz_tutorial.html

Recommended publications