Agora  

Home >> Insight

Improve Your Software Development Practice Through Application Lifecycle Management (ALM)

Kevin Walker

Enterprise application development is a complex task.  Today’s enterprise applications are responsible for keeping the organization functioning smoothly and driving revenue.  Mistakes in the development process can have catastrophic impacts in production.  Even less dire mistakes can still result in significant and costly inefficiencies in the development process.  The most effective way to manage the risk of these mistakes is through the implementation of a comprehensive Application Lifecycle Management (ALM) process in your software development.

ALM means the administration and control of an application from inception to its eventual replacement.

It embraces requirements management, system design, software development and configuration management and implies an integrated set of tools and processes for developing and controlling every project.

Although that sounds like a formidable challenge, the basic building blocks to start implementing ALM in your organization are fairly straight forward.

Assessment

Every ALM engagement starts with an assessment.  The assessment provides an objective look at your organization’s development strengths and weaknesses. The assessment offers specific recommendations for improvement and reveals the measurable impacts that these changes will have, along with the following deliverables:

  • Development Objectives

  • Capability Maturity Model

  • Prioritized Initiatives

  • Action Plan

ALM Tool Pilot

An integrated ALM tool such as Microsoft® Team Foundation Server (TFS) is fundamental to the success of your ALM initiatives.  Effective use of a tool such as TFS can save developers significant time and ensure high quality projects.

In a pilot project, a selected group of developers uses a tool such as TFS in either a lab setting or on a production application.  The lab pilot is intended to demonstrate features within the tool whereas the production pilot is intended for organizations that are preparing to deploy a tool widely to their full team.

The successful pilot would include installation and configuration of the tool, customization of the process templates, development of a code promotion strategy, development of an automated build strategy and development of an organization wide deployment plan.

Build Management

For some organizations 20%-30% of software development project time can be spent building and deploying applications.  Building an application for deployment is generally a non-value add task for a developer.  Every minute spent working on a build or a deployment is a minute that could have been spent adding value to the project.  Worse, the build and deployment tasks are rarely accounted for in the original project estimates.

An automated build management system addresses this issue and results in a repeatable, dependable process that will ensure builds are done in accordance with best practices.

Release Management

The strategy for releasing an application to production is a process that is often overlooked.  It is critical that development teams understand the best practices for version numbering and build numbering.  Also, today’s web and Windows applications have a variety of deployment options that can have a dramatic effect on the end user experience.

Once an application has been deployed to production, changes to the application will eventually be required.  Defects will be found or additional requirements may be discovered.  In either case, the development team needs a solid plan for maintaining the existing application and working on future releases.

Workshops for Non-Developer Team Members

Having the entire team understand the development process is a critical factor in the success of the project.  Project managers, business analysts, testers, and even the business stakeholders must understand the process in order to be able to gauge the project’s progress.

A workshop for non-developer team members would include overviews of the applicable development frameworks and tools, project documentation best practices and the change request process.

Application Lifecycle Management, when properly implemented in your software development practice, can result in very significant Return on Investment through more efficient use of resources and reduction in errors.

Kevin Walker is Technology Director and a founder of Agora.   He can be reached at kwalker@agorainc.com

Download PDF Version 
 

Services  Case Studies  About Us  Contact Us
© 2011 Agora Consulting Partners Inc.