Software Development Life Cycle: Insource vs Outsource
After hearing the hype and realizing the alluring advantages of outsourcing, many companies are weighing the options of outsourcing vs insourcing when developing a software application. Software development requires intricate planning, skilled implementation, and thorough testing. Understanding the Software Development Life Cycle (SDLC) is important in order to track project progress throughout the software development whether this task remains in house or is outsourced overseas. This executive summary will first outline the eight steps of SDLC and then offer some suggestions about what to consider when deciding to outsource ACME Media’s CRM software or keep this development in house.
8 Steps of the SDLC methodology:
The first step to define the project is to check its feasibility. After testing the feasibility, requirements are gathered. The requirements phase focuses on what the software will do in an effort that views all stakeholders, including potential users, as important sources of information. The design phase considers the overall structure of the software and defines the strategy for its development. The requirements and design phase are believed to be the most critical part of the SDLC. Any flaw in this phase may prove very expensive for further stages of the life cycle. (Catherine, 2006) Once you have the design down the next step is to build the application. Testing is another crucial stage of SDLC that determines how the application functions and if it’s effective. This phase also identifies bugs or errors that are in the software. After the finished software is fully developed and tested it’s time for the installation. Once the application is installed properly the application can begin operating. While it’s nice to think that applications run smoothly for the life of the product, software maintenance is an unavoidable need. Below is a diagram from ScienceSoft, a professional software development company, which outlines these eight steps. (Retrieved from www.scnsoft.com/developmentprocess)
The first part of initiating an application development project is to make sure the project is feasible. “A feasibility study is important because it drives the development of your project proposal, which can be presented to senior management to gain their commitment to the project and to obtain project funding.” (Ambler, 2010) If resources are available internally then the application would be feasible to keep within the company. However, if the expertise is not on hand or have other priorities then it would be more practical to outsource the project.
Obtaining requirements is one of the most difficult tasks project managers face when developing an application. Misunderstandings always tend to happen whether everyone is in the same building or across the world. Personal agendas, conflicts about roles and priorities, and...