Home > Software Quality Tips > Software Project Management > Successful application lifecycle management: Setting the foundation
Software Quality Tips:
EMAIL THIS
 TIPS & NEWSLETTERS TOPICS 

SOFTWARE PROJECT MANAGEMENT

Successful application lifecycle management: Setting the foundation


Dominic Tavassoli
08.12.2008
Rating: --- (out of 5)


Software quality news and advice
Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google


Implementing best practices for key areas

Editor's note: This is the first in a series of articles that will explore how organizations can best prepare to adopt application lifecycle management (ALM) for software and systems development. To begin, we will look at an overview of ALM and five important areas of process maturity that support it.


As software continues to be the "make or break" differentiator between many competitive products, the stakes have never been higher. Recalls ruin reputations, and product failures impact stock prices. Even the smallest hiccup can create a big delay that can ripple throughout an organization.

To remain competitive, organizations need to improve the efficiency of their software development processes and learn from their experiences. This will allow developers to become more efficient, predictable, and agile -- while fostering innovation and helping the organization comply with standards and regulations. This the fundamental reason for adopting an application lifecycle management (ALM) approach to development.

However, successful ALM initiatives don't just happen. Adopting an integrated approach to managing the lifecycle of software applications requires a careful, step-by-step process. Focusing on individual areas of challenge is a logical first step for improving the software development process before embarking on an ALM program. But as you implement these more effective processes, keep in mind that this is just one step of many toward the goal of maturity, for instance, following the Capability Maturity Model Integration (CMMI). The goal is not to have perfected, isolated silos, but rather to bring these established practices together in an integrated environment.

There are advanced disciplines in five areas that have proven to be a successful foundation for a mature ALM solution.

1. Requirements management
There is no blanket approach to ma


Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google


RELATED CONTENT
Software Project Management
Extending application lifecycle management to the enterprise
How project managers can recover from worst case scenarios
Developing the best IT project response strategy
How to handle IT project management in a recession
The value of a project manager: Why a PM is the CEO's best friend
The challenges of dispersed software development
Techniques for managing multiple software projects
What are the traits of a successful project manager?
Integrating application lifecycle management (ALM) processes provides additional benefits
How to estimate project completion times

Software project management methods and approaches
Five roles test managers play in agile development: Tutorial, part one
Budget-friendly Web app performance testing, monitoring tips
IBM strengthens ALM line, as Micro Focus buys competitors Borland, part of Compuware
Extending application lifecycle management to the enterprise
Agile software development tutorial: Agile project management, tools
Agile and waterfall neck and neck as business side fails to engage
Software testing metrics for a medium-sized project
How project managers can recover from worst case scenarios
How Covad made the switch to a distributed agile development process
Developing the best IT project response strategy

RELATED GLOSSARY TERMS
Terms from Whatis.com − the technology online dictionary
collaboration diagram  (SearchSoftwareQuality.com)
Gantt chart  (SearchSoftwareQuality.com)
PERT chart  (SearchSoftwareQuality.com)
rapid application development  (SearchSoftwareQuality.com)
Software Process Improvement and Capability dEtermination  (SearchSoftwareQuality.com)
work breakdown structure  (SearchSoftwareQuality.com)

RELATED RESOURCES
2020software.com, trial software downloads for accounting software, ERP software, CRM software and business software systems
Search Bitpipe.com for the latest white papers and business webcasts
Whatis.com, the online computer dictionary


naging requirements. The level of requirements management depends on the unique needs of each industry and its customers. In an aerospace industry project, for example, the higher-level requirements tend to be stable, but the supporting complex hierarchy of sub-requirements may shift. In contrast, consider high-innovation projects such as a website for online banking or online shopping. Here, requirements may be simple and straightforward, but they typically change as customers experience beta versions of the website and provide feedback or development teams discover new technology to enhance the site. Management must recognize this and pursue process improvements that complement the approach that fits their business or the way their developers really work.

Whatever the nature of the project, a supporting requirements management tool would certainly help multiple teams capture, analyze, and decompose requirements in a central repository, which should also include a process for managing changes to requirements and assessing the impact of change. The goal is to help users identify and avoid inconsistencies to ensure that all stakeholders, regardless of where they are located, have access to the latest requirements.

2. Test management
Because there are many reasons to test throughout the development lifecycle, the best approach is to test at multiple levels. Integration testing is critical whenever software, electronics, and mechanicals come together in a product because it ensures that developers at every level are on the same page. This eliminates costly rework that can delay project delivery.

Verification and validation are two higher levels of testing that answer different kinds of important questions about the performance of requirements. Verification is an internal check and analysis of requirements that confirms that the software works the way you expected it to. Validation puts the testing in the hands of the customer or other end users, who validate that the product fulfills its intended use.

One of the biggest roadblocks to testing maturity is to confine testing at the end of development when bugs are more costly to fix, resources are low, and time is short. Recognizing the value of testing as a discipline brought in naturally throughout the lifecycle is the best preparation for ALM. In all cases, traceability of requirements can enhance the reliability of the testing process. A best-practice approach includes mapping requirements to test cases to ensure that they match project specs, meet with customer demands, and comply with regulations and standards.

3. Configuration management
Configuration management helps globally dispersed developers and teams meet modern customer-focused demands. People who use software and manufacturers of products whose advanced functions are based upon embedded applications have come to expect multiple versions, regular patches, service packs, variants for different platforms and geographic areas, as well as variants for different models of products.

Configuration management should provide the process backbone for software development as it coordinates teams, changes, versions, and configurations. When integrated with change management systems, teams have a central repository in which to implement a repeatable process across the organization for change control -- not only for software, but all configuration items. Most importantly for global ALM initiatives, configuration management helps distributed teams operate seamlessly regardless of location.

4. Change management
As organizations look to become more agile, they must get better at managing change. Enterprise change management allows organizations to implement a repeatable, documented, and reliable process for capturing both defect data and change requests of all types, on software and hardware -- and from all possible internal and external sources. In addition, the change data that is collected can be analyzed to identify trends and learn from past mistakes. As such, it is possible to gain quality benefits not only on the current project, but also build upon them for the future.

5. Modeling
Disciplines for modeling, or model-driven development (MDD), are unique to each industry. For development of embedded systems and other high-tech instruments, for example, a mature approach in modeling is extremely important because it delivers a high-level view of the system without having to deal with individual lines of code. As today's applications and systems become increasingly complex and must evolve quickly, organizations need the high level of abstraction that modeling provides.

Implementing a change in an MDD environment enables developers to simulate a model and refine issues upfront and then generate code. Implementing changes at the model level, with automatic code generation, is time- and cost-effective, especially in highly technical areas.

Setting the stage for Phase 2

The benefits of ALM are critical to success in today's competitive world. Bear in mind that strong executive leadership and clear direction are key to success in all process improvement initiatives. The timeline and areas of focus must be based on each organization's challenges and past experiences. Most important of all, keep in mind that the goal is to eventually integrate these best practice areas in a cohesive ALM solution.

Once you've built this foundation, how can you leverage these newly improved processes for greater consistency, better cross-team collaboration, and more powerful analysis capabilities? What are the tangible business benefits of bringing these areas together as part of a broader ALM initiative? Find out in the next article in this series ("Integrating ALM processes brings additional benefits") where you'll discover how ALM integration provides traceability, automated processes, and consistent reporting across the lifecycle -- and ultimately a better, more efficient software development process.

-----------------------------------------
About the author: Dominic Tavassoli is vice president of Telelogic, an IBM company.


Rate this Tip
To rate tips, you must be a member of SearchSoftwareQuality.com.
Register now to start rating these tips. Log in if you are already a member.


Submit a Tip




DISCLAIMER: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.



Software Design & Testing - Project Management
About Us  |  Contact Us  |  For Advertisers  |  For Business Partners  |  Site Index  |  RSS
SEARCH 
TechTarget provides technology professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective purchase decisions and managing their organizations' technology projects - with its network of technology-specific websites, events and online magazines.

TechTarget Corporate Web Site  |  Media Kits  |  Site Map




All Rights Reserved, Copyright 2006 - 2009, TechTarget | Read our Privacy Policy
  TechTarget - The IT Media ROI Experts