Change apps quickly with Rational Team Concert

Use a collaborate development platform and DevOps to make applications more scalable

Make changes to an application more quickly and make the application more scalable, using a collaborative development platform that makes it possible to apply an agile DevOps approach to continuous operations of an application. Consider four methods of modernizing an application: hosting it on a different platform, migrating it to a database management system, dividing it into smaller, service-related components, or using a combination of methods in a hybrid approach.

Share:

Judith M. Myerson (jmyerson@verizon.net), Systems Engineer and Architect

Judith M. Myerson is a systems architect and engineer. Her areas of interest include enterprise-wide systems, middleware technologies, database technologies, cloud computing, threshold policies, industries, network management, security, RFID technologies, presentation management, and project management.



15 April 2014

Also available in Chinese Russian

Introduction

When you need to change the behavior of an application, consider using a DevOps approach to help you extend continuous agile development to the operation of the application. With agile practices, you can make changes quicker, you can implement changes that make the application more scalable, and you can develop and deploy the changes more collaboratively. This article describes how to modernize your application using several options.

Use the methods outlined in this article to make changes to the application quickly and collaboratively. Start by comparing the options for how to modernize your application. Consider which option offers the best return on your investment. Next, create a plan using IBM® Rational Team Concert™. After you have the plan in place, identify the members of the team who are to work with Rational Team Concert. The last step is to create threshold policies that suit your change requirements.


Step 1. Compare application modernization options

Applications that work well inside the organization or enterprise do not always work well in the cloud. To accommodate the needs of the cloud environment, consider using one of the following options or a hybrid approach:

  • Host the application on a different platform.
  • Migrate the application to a database management system.
  • Divide the application into smaller, service-related components.

Host the application on a different platform

You can host an existing application on a new platform. This move might require changes, either major or minor, to the application. If running the existing application is resource-intensive and time-consuming and if the application does not scale well, you might have to make major changes to the application.

Use a DevOps approach to make the changes to the application, regardless of the changes need to be made. Focus on incremental development of iterations until the application successfully deploys on a different platform in a production environment.

Migrate to a database management system

You can migrate a flat, database file application to a relational database system application. Because a flat database file has only one table, users typically experience slow responses to queries. However, a relational database file has many tables. These tables are related to each other through key values.

By organizing the tables to minimize data redundancy and dependency, database normalization can result in:

  • Faster query responses
  • Low latency when connecting to a remote database server
  • Efficient use of resources

To ensure the success of database migration, use a DevOps approach to migrate to a database management system from an existing database. Focus on incremental migration of iterations until the database system is successfully deployed in a production environment.

Divide a mainframe application into smaller components

You can extract service components from existing systems and combine them into fewer, single-service functions that can be incorporated into an application. The ease of extracting service components in an existing system depends on how the source code is written and how often it has been updated to fix bugs and logic problems.

Depending on the skill level of the development team, untangling the component dependencies and avoiding excessive fragmentation of the legacy system can be a complex task. After you find the dependencies you can opt to accept, reject, or combine them into fewer service components.

Accepting loosely-coupled dependencies between service components doesn't always result in accepting service components as they are, because some components might be outdated or redundant. When you implement changes to meet particular requirements, you might need to restructure the service components.

Organize the service components into a hierarchy in a loosely-coupled manner. Loose coupling means that service components do not need to be available all of the time. One service component can be called by another when needed. Tight coupling, however, implies that a group of service components are highly dependent on one another and must be available at all times. The relationships of one component to another depends on the functions of each component.

When you build the application from the extracted components, develop the following thresholds:

  • User threshold level: Sets the maximum number of users concurrently accessing the application. The application consists of the accepted or restructured service components that are the result of dividing an existing system.
  • Data requests threshold level: Sets the maximum number of data requests that users can concurrently send to the application.
  • Resources threshold level: Sets the maximum amount of resources (for example, CPU, storage devices, and disk space) that can be allocated to each user and developer.

Step 2: Create a plan using Rational Team Concert

Users, developers, IT operators, and IT managers need to work collaboratively to plan for application changes by using Rational Team Concert. You can use Rational Team Concert, part of the Rational® solution for Collaborative Lifecycle Management, to work with IBM® Rational® Requirements Composer.

With Rational Team Concert, all members of the team can participate in building a plan.

  • Users can go to IT operators directly (without working through developers) to determine whether there are operational problems for the type of application users want to access.
  • Developers can go to users to find out if the list of requirements is complete or if changes are required to meet users' expectations.
  • IT operators and managers can go directly to developers to find out why the application is unstable or is causing frequent spikes in the production environment.

The participants in the process collaborate with one another to ensure that the application remains stable in the production environment and meets users' expectations when it is released.

User expectations

Users expect the Rational Team Concert plan to include requirements that make it possible for the application to:

  • Include an organizational policy on regulatory compliance requirements
  • Respond quickly
  • Offer fast backup systems by IT operators and maintainers

Users who access the application in the cloud environment need to collaborate with developers and IT operators and managers to ensure that the application works well in the that environment.

Developer expectations

The Rational Team Concert plan needs to accommodate the following needs:

  • Obtain adequate performance measurements and metrics from IT managers and operators
  • Help users meet regulation compliance requirements
  • Collaborate with users and IT managers and operators
  • Choose an application modernization option that yields the greatest return on investment

Developers on geographically distributed development teams use the development platform as a service to develop the applications. These developers often invite users of the application in the cloud environment to test the application to ensure that it works well in that environment.

Changes to an application include the following types of requirements:

Functional requirements
Changes to the behavior of the application.
 
Non-functional (quality-of-service) requirements
Changes to the conditions under which the application must remain effective.
 
Implementation requirements regarding different platforms
Changes to requirements about how the application should work on a different platform. These requirements define the changes that are necessary to ensure that the application performs well in a new environment, such as the cloud platform.
 
Business requirements
Changes to the goals, objectives, or needs of an organization for an application.
 
User requirements
Changes to the needs of stakeholders who describe how they want to interact with an application under development.
 

IT operator and manager expectations

The IT operator and manager expect the plan to cover requirements that:

  • Provide for fast failover support
  • Make it possible to collaborate with developers and other stakeholders
  • Help users meet regulation deadlines

IT operators and managers need to collaborate with developers to ensure that the application works well in a cloud-based production environment.


Step 3. Identify Rational Team Concert participants

The participants include members of the agile team, the DevOps team, and users of the application in the cloud environment. The agile team includes:

Product owner
Makes the final decision on questions about requirement changes and scalability thresholds. The product owner is responsible for ensuring an adequate return on the development investment and effort.
 
Scrum master
Facilitates scrum meetings but is not a project manager. The scrum master and the scrum team use the Rational Team concert Taskboard view (sprint backlog), which serves as checklist for the scrum master. The view shows the status of tasks (not started, in progress, or completed). It also shows whether issues have been resolved.
 
Application development team
A cross-functional group, which attempts to build a product increment at each sprint. Members collaborate with one another by using the My Work view in the IDE in Rational Team Concert. Members include geographically-distributed developers who use Rational Team Concert to collaborate and users of the application in the cloud environment.
 
Stakeholders
Includes C-level executives. By using Rational Team Concert dashboards, stakeholders can check on the project's progress. For a more specific overview, the stakeholders can refer to three types of dashboards: product owner, scrum master, and development team member.
 

The DevOps team consists of:

Business planners
Provide continuous business planning that helps a company to start small and continuously update its plan.
 
Developers and testers
Collaborate and communicate with IT operators and managers on matters related to continuous development and testing. Developers and testers seek to meet users' expectations. Developers have access to Rational Team Concert throughout the application life cycle, including the testing stage. Business, development, and the quality assurance organizations collaborate with one another. Automatic testing procedures can be set up to reduce the cost of testing.
 
 Note: Application developers are considered part of the agile team and the DevOps team. DevOps principles focus on communication and collaboration between the application development team and IT operators and managers.
 
IT operators and managers
Collaborate and communicate with the developers and testers on operational and performance issues they have detected in the testing environment. After the issues are resolved, they release the code for deployment to production.
 

The users of the application in the cloud environment include:

End users of the application
Includes individuals, businesses (small or medium), and government agencies. These users can only access the application in the cloud.
 
Geographically-distributed developers who use a development platform such as Rational Team Concert to develop applications
Control and protect the applications that are part of the entire business life cycle. A developer can be a member of the scrum development team who builds and tests a custom-ship arrival and departure management application, for example. As a scrum team member, the developer can collaborate and communicate with the IT operators and managers.

Step 4. Create policies on scalability thresholds

Setting scalability thresholds helps you determine the extent of requirement changes. You can add thresholds to your customized dashboard. These thresholds are an important factor in determining how well an application performs when there are spikes in resource usage, user accesses, and data requests, for example.

Create a resource threshold policy when requirement changes involve resource usage. This policy ensures resource usage is balanced dynamically in the cloud. The threshold level is set below the maximum number of additional resource instances that can be used.

When the use of resources exceeds the threshold level, additional resource instances are allocated. When the demand returns to normal or falls below the threshold level, the additional resource instances are made available for other uses.

Create a user threshold policy when requirement changes involve user access. This policy ensures developers have concurrent access to the application during spikes. During development, the threshold level is set below the number of developers who need to access the application concurrently.

When the number of developers exceeds the threshold level during a spike in workload demands, additional resource instances are allocated. When the demand returns to normal or falls below the user threshold level, the additional resource instances are made available for other uses.

Create a data request threshold policy when requirement changes involve the data request limit. This policy ensures data requests to the application can be processed immediately. The threshold level is set below the maximum number of data requests and the maximum size of data requests that developers and users can send concurrently. If the number of data requests exceeds the threshold level, additional resource are allocated.


In conclusion

Changing the way an application behaves requires pre-planning to resolve issues and to determine how to use DevOps and agile development principles with Rational Team Concert. Consider the expectations from users, developers, IT operators, and managers before you start planning to make changes to an application. By using Rational Team Concert and applying DevOps principles, you can implement the changes faster, make the application more scalable, and make it possible for team members to collaborate more effectively. You can create threshold policies to suit requirement changes. You can pick the platform that suits you best. If you are new to Rational Team Concert, you can access a development-use-only version of Rational Team Concert on Jazz.net.

Resources

Learn

Get products and technologies

Discuss

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into DevOps on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=DevOps, Rational
ArticleID=968059
ArticleTitle=Change apps quickly with Rational Team Concert
publish-date=04152014