Application Lifecycle Management
Overview
Software engineering
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...
made possible by tools that facilitate and integrate requirements management
Requirements management
Requirements management is the process of documenting, analyzing, tracing, prioritizing and agreeing on requirements and then controlling change and communicating to relevant stakeholders. It is a continuous process throughout a project...
, architecture
Software architecture
The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both...
, coding
Computer programming
Computer programming is the process of designing, writing, testing, debugging, and maintaining the source code of computer programs. This source code is written in one or more programming languages. The purpose of programming is to create a program that performs specific operations or exhibits a...
, testing
Software testing
Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software...
, tracking
Issue tracking system
An issue tracking system is a computer software package that manages and maintains lists of issues, as needed by an organization...
, and release management
Release management
The release management process is a relatively new but rapidly growing discipline within software engineering of managing software releases....
.
Proponents of application lifecycle management claim that it
- Increases productivityProductivityProductivity is a measure of the efficiency of production. Productivity is a ratio of what is produced to what is required to produce it. Usually this ratio is in the form of an average, expressing the total output divided by the total input...
, as the team shares best practices for development and deployment, and developers need focus only on current business requirements - Improves quality, so the final application meets the needs and expectations of users
- Breaks boundaries through collaborationCollaborationCollaboration is working together to achieve a goal. It is a recursive process where two or more people or organizations work together to realize shared goals, — for example, an intriguing endeavor that is creative in nature—by sharing...
and smooth information flow - Accelerates development through simplified integration
- Cuts maintenance time by synchronizing application and design
- Maximizes investments in skills, processes, and technologies
- Increases flexibility by reducing the time it takes to build and adapt applications that support new business initiatives
Opponents of application lifecycle management claim that it
- Increases an application's whole-life costWhole-life costWhole-life cost, or Life-cycle cost , refers to the total cost of ownership over the life of an asset . Also commonly referred to as "cradle to grave" or "womb to tomb" costs. Costs considered include the financial cost which is relatively simple to calculate and also the environmental and...
- Increases vendor lock-inVendor lock-inIn economics, vendor lock-in, also known as proprietary lock-in or customer lock-in, makes a customer dependent on a vendor for products and services, unable to use another vendor without substantial switching costs...
- Single point of failure
- Requirements AnalysisRequirements analysisRequirements analysis in systems engineering and software engineering, encompasses those tasks that go into determining the needs or conditions to meet for a new or altered product, taking account of the possibly conflicting requirements of the various stakeholders, such as beneficiaries or users...
- Requirements ManagementRequirements managementRequirements management is the process of documenting, analyzing, tracing, prioritizing and agreeing on requirements and then controlling change and communicating to relevant stakeholders. It is a continuous process throughout a project...
- Feature managementFeature (software design)The Institute of Electrical and Electronics Engineers defines the term feature in IEEE 829 as "A distinguishing characteristic of a software item ." - Feature-rich :...
- ModelingModel-driven engineeringModel-driven engineering is a software development methodology which focuses on creating and exploiting domain models , rather than on the computing concepts...
- DesignSoftware designSoftware design is a process of problem solving and planning for a software solution. After the purpose and specifications of software are determined, software developers will design or employ designers to develop a plan for a solution...
- Project ManagementProject managementProject management is the discipline of planning, organizing, securing, and managing resources to achieve specific goals. A project is a temporary endeavor with a defined beginning and end , undertaken to meet unique goals and objectives, typically to bring about beneficial change or added value...
- Change management
- Configuration ManagementConfiguration managementConfiguration management is a field of management that focuses on establishing and maintaining consistency of a system or product's performance and its functional and physical attributes with its requirements, design, and operational information throughout its life.For information assurance, CM...
- Software Information Management (for ALM Tool Integration)
- Build managementSoftware buildIn the field of computer software, the term software build refers either to the process of converting source code files into standalone software artifact that can be run on a computer, or the result of doing so...
- Software TestingSoftware testingSoftware testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software...
- Release ManagementRelease managementThe release management process is a relatively new but rapidly growing discipline within software engineering of managing software releases....
- Software DeploymentSoftware deploymentSoftware deployment is all of the activities that make a software system available for use.The general deployment process consists of several interrelated activities with possible transitions between them. These activities can occur at the producer site or at the consumer site or both...
- Issue management
- Monitoring and reporting
- WorkflowWorkflowA workflow consists of a sequence of connected steps. It is a depiction of a sequence of operations, declared as work of a person, a group of persons, an organization of staff, or one or more simple or complex mechanisms. Workflow may be seen as any abstraction of real work...
- Open Source License Management
As the Integrated Development Environment
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...
(IDE) continues to evolve, tool vendors are increasingly integrating their products to deliver suites.