Application development and maintenance (ADM) is the part of IT that works closely with business to develop new software, keep it running, and make ongoing improvements. Within this part of IT, business analysts and software developers communicate with executives on the business side to understand their requirements for new and existing applications. In most companies, ADM teams are organized around application areas (for example, customer relationship management) rather than business functions.
Software enables business organizations to develop, manage and exploit information for profit. Typically, business organizations use a combination of “commercial, off-the-shelf” (“COTS”) software and proprietary software. To deal with changes in hardware platforms, software operating systems and commercial and regulatory requirements, all software needs ongoing changes. The software may become a SaaS (Software As A Service) product and possibly be integrated into the cloud. The developed software is created in order to meet the needs of the enterprise.
In outsourcing, “application development and maintenance” means the process of managing the design, coding, testing and ongoing improvements and debugging of software. Business organizations that use proprietary software may use internal resources – subject matter experts (“SME’s”) and process managers – to prepare and update the overall business requirements definitions (“BRD’s”) for new software. Then they can outsource the coding, testing and implementation of new BRD’s on a work-for-hire basis.
Outsourced software applies to many aspects of a business. Including, but not limited to:
- Human Resources
- Information Technology
- Knowledge Management
- Legal Department Management
- Sales Force Management
There are two approaches to developing software; the waterfall approach and the rapid development (or scrum) approach.
- The waterfall approach entails a customer coming up with a spec to which the vendor has to deliver. Once the vendor delivers that spec, the first milestone is completed, and the partnership moves on to the next step, which is additional functionality within the application. The waterfall approach is a milestone driven, sequential process.
- The rapid development (or Scrum) approach to the development of software involves different people designing different modules at the same time, having it come together almost like a jigsaw puzzle.
Need for Application Maintenance
Software Maintenance is defined as: “the process of modifying a software system or component after delivery to correct faults, improve performances or other attributes, or adapt to a changed environment.” Categories of maintenance include:
Corrective maintenance: reactive modification of a software product performed after delivery to correct discovered faults.
Adaptive maintenance: modification of a software product performed after delivery to keep a computer program usable in a changed or changing environment.
Perfective maintenance: modification of a software product performed after delivery to improve performance or maintainability.
Emergency maintenance: unscheduled corrective maintenance performed to keep a system operational.
The software maintenance definition refers to changes for defect correction, performance improvements, or adaptations to a changed environment (enhancements). According to this definition, if we build software that is defect-free, performs well, and contains user-controlled parameters to adjust processing rules in response to changing requirements then most maintenance would not be necessary.
Cut Costs by over 50%
Optimizing application development and maintenance (ADM) can cut costs by more than 50%, according to research by Gartner, Inc. Sourcing managers can develop and implement sourcing strategies, metrics and processes to help CIOs cut costs in half by eliminating legacy applications, complex architectures and outdated approaches to staffing.
Gartner estimates that ADM accounts for 34% of IT budgets. Most organizations tend to assume that the cost of ADM can only grow over time due to rising labor costs and the increasing complexity and number of applications. The ADM unit cost can be significantly optimized over time, provided that best practices across the application and sourcing lifecycle—strategy, selection, negotiation and management—are followed.
Few organizations use a comprehensive, methodical approach to their sourcing strategies for application services and only 11% of organizations master sourcing. Most organizations source application work tactically, asking a few known service providers to size the work and compete for it on price and daily rates. Few organizations master sourcing, and most still use staff augmentation for ADM work inefficiently.
The Outsourcing Option
Large global organizations can establish captive software development centers in any location. Smaller organizations can outsource their ADM to developers with particular talents in software development languages, industry verticals or functionality. Outsourced ADM enables cost efficiencies, speed to market and ongoing support.
Organizations can now achieve a more cost-efficient way of having the software maintained by outsourcing it to companies who specialize in this area. It allows for greater efficiency and focuses on the organization’s goals because it eliminates the trivial tasks it takes for maintenance and training of the new software being used.
Using software for services also allows an organization to get tasks done faster and with uniformity. Software has a lot of benefits because it allows for uniformity throughout the organization by allowing information to become more organized and easier to access.