Managing Information Technology 6th Edition CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
Methodologies for Custom Software Development Although firms are likely to purchase software packages whenever they can, the development of custom software is still highly important and in demand Different approaches to developing customized applications Traditional Systems Development Life Cycle (SDLC) Evolutionary Prototyping Rapid Application Development (RAD) Agile Development
SYSTEMS DEVELOPMENT LIFE CYCLE The SDLC steps Highly structured process for developing customized applications Most often requires a lot of documentation Outputs from one step inputs to next Often referred to as the “waterfall” model Key characteristic is extensive formal reviews at the end of each major step
SYSTEMS DEVELOPMENT LIFE CYCLE The SDLC Waterfall Definition Feasibility Analysis Requirements Definition Construction System Design System Building System Testing Implementation Installation Operations Maintenance
SYSTEMS DEVELOPMENT LIFE CYCLE The SDLC steps Extensive up-front time spent determining requirements to avoid expensive changes later
SYSTEMS DEVELOPMENT LIFE CYCLE Definition phase The first phase of the SDLC is the definition phase This phase contains two steps: Feasibility analysis Requirements definition
SYSTEMS DEVELOPMENT LIFE CYCLE Definition phase – Feasibility analysis Three types of feasibility are assessed Technical Primary responsibility of the IS analyst Based on Knowledge of current and emerging technological solutions IT expertise of in-house personnel Anticipated infrastructure needed to both develop and support the proposed system
SYSTEMS DEVELOPMENT LIFE CYCLE Definition phase – Feasibility analysis Three types of feasibility are assessed (cont’d) Operational Primary responsibility of the business manager Entails assessing the degree to which a proposed system addresses the business issues that gave rise to the idea for a new information system
SYSTEMS DEVELOPMENT LIFE CYCLE Definition phase – Feasibility analysis Three types of feasibility are assessed (cont’d) Economic Business managers and IS analysts work together to prepare a cost/benefit analysis IS analyst responsible for establishing the developmental costs for the project
SYSTEMS DEVELOPMENT LIFE CYCLE Definition phase – Feasibility analysis Deliverable is a 10-20 page document: Executive overview and recommendations Description of what system would do and how it would operate Analysis of costs and benefits Development plan
SYSTEMS DEVELOPMENT LIFE CYCLE Definition phase – Requirements Definition Focuses on processes, data flows, and data interrelationships rather than a specific physical implementation Requirements are gathered by: Interviewing individuals or groups Reviewing documents Observing employees doing their jobs
SYSTEMS DEVELOPMENT LIFE CYCLE Definition phase – Requirements Definition Deliverable is a system requirements document: Detailed descriptions of inputs and outputs, processes used to convert input data to outputs Formal diagrams and output layouts Revised cost/benefit analysis Revised plan for remainder of project
SYSTEMS DEVELOPMENT LIFE CYCLE Construction phase The second major phase of the SDLC is the construction phase This starts after the systems requirements document from the definition phase is approved The phase contains three steps: System design System building System testing
SYSTEMS DEVELOPMENT LIFE CYCLE Construction phase – System design Includes: Deciding what hardware and software to use Designing structure and content of databases Defining programs and their interrelationships Good design is critical for the quality of the system
SYSTEMS DEVELOPMENT LIFE CYCLE Construction phase – System design Deliverable is a detailed design document: Models, such as diagrams of system’s physical structure Descriptions of databases Detailed specification for each program in the system Plan for the remaining steps of the Construction phase
SYSTEMS DEVELOPMENT LIFE CYCLE Construction phase – System building Includes: Producing the computer programs Developing or enhancing the databases and files to be used by the system Procuring new hardware and support software
SYSTEMS DEVELOPMENT LIFE CYCLE Construction phase – System testing Might require as much time as writing the code for the system Involves testing by IS specialists, then user testing Multiple steps: Each module of code is tested Modules are assembled into subsystems and tested Subsystems are combined and entire system is integration tested
SYSTEMS DEVELOPMENT LIFE CYCLE Construction phase – System testing User acceptance testing Ensures that the system performs reliably and does what it is supposed to do in the user environment Documentation Major mechanism of communication among members of the project team
SYSTEMS DEVELOPMENT LIFE CYCLE Implementation phase The final phase of the SDLC is the implementation phase The success of this phase is dependent upon business managers The three steps in this phase are: Installation Operations Maintenance
SYSTEMS DEVELOPMENT LIFE CYCLE Implementation phase – Installation Includes: Building files and databases Converting relevant data from one or more old systems to the new system Training system’s end users
SYSTEMS DEVELOPMENT LIFE CYCLE Implementation phase – Installation Conversion from an old system to a new system can be difficult Several transitioning strategies are commonly used to assist in this change: Parallel: organization operates old system in parallel with new system until new system is working sufficiently Pilot: new system is introduced to only one part of the organization first
SYSTEMS DEVELOPMENT LIFE CYCLE Implementation phase – Installation Transitioning strategies (cont’d) Phased: new system is implemented one component at a time Cutover: old system is totally abandoned as soon as the new system is implemented
SYSTEMS DEVELOPMENT LIFE CYCLE Implementation phase – Operations New application begins operation in “production mode” Project team is usually disbanded Requires adequate documentation System documentation for IS specialists who operate and maintain the system User documentation for those who use the system
SYSTEMS DEVELOPMENT LIFE CYCLE Implementation phase – Maintenance The process of making changes to a system after it has been put into production mode Reasons for maintenance Correct errors in the system Adapt the system to changes in the environment Enhance or improve the system
SYSTEMS DEVELOPMENT LIFE CYCLE Implementation phase – Maintenance Maintenance makes up about 80% of total costs over a system’s life
SYSTEMS DEVELOPMENT LIFE CYCLE Implementation phase – Maintenance Problems with maintenance: Documentation may not be updated when changes to the system are made, causing problems for future maintenance Changes to one part of the system may have an unanticipated effect on other parts of the system (i.e., ripple effect ) Maintenance is considered low-status work by programmers, so typically only new programmers are assigned the job
SYSTEMS DEVELOPMENT LIFE CYCLE Implementation phase – Maintenance Problems with maintenance (cont’d): Maintenance may introduce new errors into the system If resources are not available, business managers may suffer long delays before needed changes are made
SYSTEMS DEVELOPMENT LIFE CYCLE The SDLC project team Usually temporary Includes personnel from IS and business units Has a project manager Traditionally from IS Can be from business unit May be one from each Responsible for success of project – delivering quality system on time and within budget
SYSTEMS DEVELOPMENT LIFE CYCLE Managing an SDLC project Critical success factors: Manageable project size Accurate requirements definition Executive sponsorship
SYSTEMS DEVELOPMENT LIFE CYCLE SDLC advantages and disadvantages
PROTOTYPING METHODOLOGY Takes advantage of fourth generation procedural languages and relational database management systems Enables creation of system (or part of system) more quickly, then revise after users have tried it Is a type of evolutionary development process Can be used as a complete alternative to the SDLC or within an SDLC process
PROTOTYPING METHODOLOGY Prototype examples: Input and output screens developed for users to test as part of requirements definition “First-of-a-series” – a completely operational prototype used as a pilot “Selected features” – only some essential features included in prototype, more added later
PROTOTYPING METHODOLOGY The prototyping steps
PROTOTYPING METHODOLOGY The prototyping project team Representatives from IS and user management necessary Need team members who can quickly build systems using advanced tools Requires dedicated business user roles
PROTOTYPING METHODOLOGY Prototyping advantages and disadvantages Advantages: Only basic requirements needed at front end Used to develop systems that radically change how work is done, so users can evaluate Allows firms to explore use of new technology Working system available for testing more quickly Less strong top-down commitment needed at front end Costs and benefits can be derived after experience with initial prototype Initial user acceptance likely higher
PROTOTYPING METHODOLOGY Prototyping advantages and disadvantages Disadvantages: End prototype often lacks security and control features May not undergo as rigorous testing Final documentation may be less complete More difficult to manage user expectations
PROTOTYPING METHODOLOGY Prototyping within an SDLC process Two ways in which prototyping is usually incorporated into an SDLC process: Used in the Definition phase to help users define system requirements
PROTOTYPING METHODOLOGY Prototyping within an SDLC process Two ways in which prototyping is usually incorporated into an SDLC process: Includes a pilot implementation of a working prototype
NEWER APPROACHES Rapid applications development (RAD) Hybrid methodology combines aspects of SDLC and prototyping Goal is to produce a system in less than a year
NEWER APPROACHES Rapid applications development (RAD) Advantages and disadvantages
NEWER APPROACHES Agile methodologies Alternative methodology for smaller projects Objective is to deliver software with very low defect rates Based on four key values: Simplicity Communication Feedback Courage
NEWER APPROACHES Agile methodologies eXtreme programming (XP) Programmers write code in pairs Use simple design and frequent testing Three traits characterize the program design System must communicate everything you want to communicate System must contain no duplicate code System should have the fewest number of components as possible
NEWER APPROACHES Agile methodologies Scrum Based on well-orchestrated movement between team members Similar to the coordination in a rugby scrum Emphasizes: Independent project teams Coordination and communication between and within teams Iterative and continuous monitoring of work Highly efficient work methods
MANAGING SOFTWARE PROJECTS USING OUTSOURCED STAFF Advantages of outsourcing: Helps keep software development costs down Make use of technical expertise not available in-house Can hire capacity above baseline for current amount of development work Frees up internal resources to work on more strategic or proprietary projects Can often complete projects more quickly
MANAGING SOFTWARE PROJECTS USING OUTSOURCED STAFF Onshore outsourcing: contracting with companies within the same country or region Offshore outsourcing: contracting with companies not within the same country or region Driven by price because labor costs are typically much lower Risks include loss of some control, language and cultural barriers, and threats of piracy of intellectual property
MANAGING SOFTWARE PROJECTS USING OUTSOURCED STAFF Offshore outsourcing is a good alternative when: System requirements well-defined and remain stable Time is of essence and 7x24 hour availability of resources a good idea Cost of project important
MANAGING SOFTWARE PROJECTS USING OUTSOURCED STAFF Guidelines for managing offsite outsourcer: Manage expectations, not staff Take explicit actions to integrate the offsite workers Communicate frequently Abandoning informal ways may result in increased rigor Create a centralized project management office Begin with pilot projects Hire offshore legal expertise Use secure and redundant communication links