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.
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.
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
- Non-functional (quality-of-service) requirements
- Changes to the conditions under which the application must remain
- 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
- 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
- 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
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.
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.
- Get details on IBM Rational Team Concert.
- Learn how to improve project governance using agile development and metrics.
- Read other articles by Judith M. Myerson on cloud computing.
- Take with you a Scrum Reference Card on scrum roles, meetings, artifacts, team self-organization and other information at your fingertips.
- Compare the versions of Rational Team Concert clients.
- Read IBM approach to DevOps to help you eliminate waste and rework.
- Read a quick guide to using Open Services for lifecycle Collaboration for reading and writing information to work items in IBM Rational Team Concert using Java.
Get products and technologies
- Get a sample of the scrum master's checklist to help you get started.
- Check out DevOps services where you can get free public projects in 2014.
- Pick your
platform. Your team can collaborate on requirement changes using:
Eclipse IDE to provide developers with a development environment for building and delivering software artifacts.
- Microsoft Visual Studio IDE allows .NET developers collaborate across teams, plan milestones and releases, track projects, manage source code and defects, and automate builds.
- Web client for casual or occasional users who do not wish to install special software on the client machine.
- Windows Explorer shell share, deliver, and manage change to source code all from within Microsoft Windows Explorer.
- ISPF (Interactive System Productivity Facility) client for z/OS use the standard ISPF editor to edit, delete, load, reload files, resolve conflicts and repair metadata.
- Command line interfaces provide command line access to three RTC components: Source Control Management CLI, Repository Tools CLI and Jazz Build Engine CLI.
- Microsoft Source Code Control Interface (MS-SCCI) control your source by enabling Source Control systems to interface with Microsoft Windows applications.
- Find answers and get help in the Rational Team Concert forum.
Dig deeper into DevOps on developerWorks
Get samples, articles, product docs, and community resources to help build, deploy, and manage your cloud apps.
Crazy about DevOps? Sign up for our monthly newsletter and the latest DevOps news.
Software development in the cloud. Register today to create a project.
Evaluate IBM software and solutions, and transform challenges into opportunities.