The purpose of this assignment is engage in a discussion regarding Systems Development, Project Management, and Outsourcing. The seven phases of the systems development life cycle will be described. Relationships between the systems development life cycle and software development methodologies will be detailed. The phases in the SDLC, including activities associated with planning, analysis, design, development, testing, implementation, and maintenance, will be reviewed.
The characteristics of a well-defined project plan will be listed and described. Project manager strategies, specifically those that can be used to ensure a successful project, will be summarized. Lastly, three primary outsourcing options will be identified with the advantages and disadvantages of each explained.
The Seven Phases of the Systems Development Life Cycle, and Associated Activities
The Systems Development Life Cycle (SLC) is a methodology used to describe the process for building information systems, intended to develop information systems in a very deliberate, structured and methodical way, reiterating each stage of the life cycle. The SDLC process is used by systems analysts to develop information systems, including requirements, validation, training, and user ownership. According to Elliott & Strachan & Radford (2004), the SDLC “originated in the 1960s,to develop large scale functional business systems in an age of large scale business conglomerates.
Information systems activities revolved around heavy data processing and number crunching routines”. Systems Development Life Cycles can be broken down into seven phases. Phase One is the Planning Phase. The planning phase establishes a high-level view of the intended project and determines its goals. Phase Two is the Analysis Phase. The analysis phase defines project goals into defined functions and operation of the intended application, and analyzes end-user information needs.
Business requirements are usually defined during this phase. Phase Three is the Design Phase. The design phase outlines the desired features and operations in detail, including screen layouts, business rules, process diagrams, code requirments including pseudo code, and other documentation. Phase Four is the Development Phrase. The development phase is where the actual code for the system is written. It takes all the design information from the previous phase and transforms it into an actual system.
Phrase Five is the Testing Phase. The testing phase is where all the pieces of the system are brought together into a special testing environment, and checked for errors, bugs and interoperability. Segments of code that fail testing are referred back to phase four for further development to satisfy the operability requirements. Phase Six is the Implementation Phase. This is where the system is actually put into production and users begin real world utilization of the system.
Phase six is actually the last step in overall development, since the software at this point is put into production, and running actual business (Cummings, 2006). Phase Seven is the Maintenance Phase. The Maintenance Phase is where performance changes, additions, corrections, and upgrade modifications are performed. Essentially, this is what happens during the rest of the software’s life. This is by far the least glamorous, but is perhaps the most important step, in the life cycle of a system (Blanchard & Fabrycky, 2006).
Systems Development Life Cycle vs. Software Development Methodologies Where the Systems Development Life Cycle is a methodology used to describe the process for building information systems, a software development methodology is a framework that is used to structure, plan, and control the process of developing an information system. In simpler terms, a software development methodology describes how the systems development life cycle is implemented (Loucopoulos & Karakostas, 1995).
There are numerous types of software development methodologies, including Rapid Application Development (RAD), which centers around user involvement via prototyping to accelerate development, Extreme Programming Methodology (XP), which breaks down a project into segments, wherein development cannot move to a next segment until the existing segment is operational, Rational Unified Process Methodology (RUP), which breaks down development into four main stages, or “gates”, and Scrum Methodology, which breaks down development into “sprints”, or small 30-day programming segments. Well-Defined Project Plans
A project plan is a documented and agreed-upon functional specification that manages and controls the execution of a project. A well-defined project plan will define the scope, objectives, constraints, and assumptions associated with a project. A project will incorporate metrics into its objectives, so that success of the project can be measured. A well-defined project plan will include several key characteristics. First, the plan must be easy to understand. That is, both parties must be able to clearly comprehend the contents, including the outcome of the project, and the expectations of parties involved.
Second, the project plan must be easy to read. That is, the language must be clear, unambiguous, and use the least complex language necessary to define the project. Third, the project plan must be communicated to all key stakeholders, or participants. This is essential in each party understanding and agreeing to the expectations of the system, and the expectations of and by each stakeholder into the project. Fourth, the plan must be appropriate to the project’s size, complexity, and criticality. This is crucial to understanding the needs of time and resource management associated with the plan.
For example, it would be unreasonable to expect a simple two table database with 10 fields each to take four months or multiple IT resources to develop, and it is understandable for all stakeholders to agree on such a point (Elliott, 2004). Fifth, the plan should be prepared by a team, rather than by the individual project manager. The reason for this is that the project manager might not accurately estimate timeline or resource estimates, while team members responsible for those duties will have a better understanding of those resource requirements.
The Project Manager When implementing a project plan, it is beneficial to have a person assigned as the project manager. The project manager is charged with identifying requirements; establishing the objectives; balancing the demands of quality, scope, time, and cost; and adapting the specifications, plans, and approach to the different concerns and expectations of the various stakeholders (project members). A project manager will be responsible for managing three rimary areas: People (such as resolving conflicts and balancing human resource needs), Communications (maintaining, updating, and notifying with all parties the current disposition of the project plan), and Change (managing shifts in the individual steps and phases of a project when outside forces such as market shifts, crises, or changes in technologies). An effective project manager will have a cursory operational business knowledge, reasonable business skills, and effective in the art of communication. An effective project manager will mitigate, and not create, controversy.
Further he or she will understand that stakeholders who under promise but over deliver are much more satisfied in the process of project fulfillment. ? Primary Outsourcing Options On occasion, it is necessary to implement outsourcing to maximize its profits and restrain increasing costs. When this is necessary, there are three primary outsourcing options that can be set into place. The first option is onshore outsourcing. In this option, the organization will engage another company located within the same country as the outsourcing organization.
The advantage to this is that is can increase time efficiency and eliminate the need to invest in additional technology. However, labor material costs might not be significantly different. The second option is near shore outsourcing. In this option, the organization will engage another company located in a foreign country that is near the outsourcing organization. For organizations in the United States, near shore sources are typically Canadian or Mexican. This has the advantage of being able to keep a competitive edge and reduce labor costs, but material costs might not see significant savings.
The third option is offshore outsourcing. In this option, the organization will engage another company located in a foreign country that is considered a developing country, especially for code-writing and systems development. For organizations in the United States, examples of offshore sources are China, India, or the Philippines. The advantage here is greatly reduced labor costs. However, labor expertise is lower, and the likelihood of quality on a par with domestic development is often questionable (Engardio, Arndt, et al, 2006). ?