Software: Application Development and Maintenance

Definition:

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.

Examples:

Outsourced software applies to many aspects of a business.  Including, but not limited to:

–          Human Resources

–          Information Technology

–          Finances

–          Knowledge Management

–          Legal Department Management

–          Sales Force Management

Technical Requirements:

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.

Benefits:

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 focus 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.

On the negative side, outsourced ADM requires significant project management investment to ensure that milestones are met, that the product works and it conforms to specifications as well as nuances after beta testing.