490 likes | 660 Views
Managing Information Technology 6 th Edition. CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT. Methodologies for Custom Software Development.
E N D
Managing Information Technology6th Edition CHAPTER 10METHODOLOGIES 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
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
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