|
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:
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
|