Upload
philippa-mckinney
View
215
Download
1
Tags:
Embed Size (px)
Citation preview
Building Software to Support an Agile Organization
CHAPTER 17
Copyright © 2013 by The McGraw-Hill Companies, Inc. All rights reserved.McGraw-Hill/Irwin
LEARNING OUTCOMES
1. Identify the business benefits associated with successful software development.
2. Describe the seven phases of the systems development life cycle.
3. Summarize the different software development methodologies.
4. Explain why software problems are business problems.
17-2
THE CRUCIAL ROLE OF SOFTWARE
• Software that is built correctly can transform as the organization and its business transforms
• Software that effectively meets employee needs will help an organization become more productive and enhance decision making
• Software that does not meet employee needs may have a damaging effect on productivity and can even cause a business to fail
17-3
THE CRUCIAL ROLE OF SOFTWARE
• As organizations’ reliance on software grows, so do the business-related consequences of software successes and failures including:
– Increase or decrease revenue
– Repair or damage to brand reputation
– Prevent or incur liabilities
– Increase or decrease productivity
17-4
THE SYSTEMS DEVELOPMENT LIFE CYCLE (SDLC)
• Systems Development Life Cycle (SDLC)—The overall process for developing information systems from planning and analysis through implementation and maintenance
Planning Phase—Involves establishing a high-level plan of the intended project and determining project goals
17-5
THE SYSTEMS DEVELOPMENT LIFE CYCLE (SDLC)
Analysis Phase —Involves analyzing end-user business requirements and refining project goals into defined functions and operations of the intended system
Design Phase —Involves describing the desired features and operations of the system including screen layouts, business rules, process diagrams, pseudo code, and other documentation
17-6
THE SYSTEMS DEVELOPMENT LIFE CYCLE (SDLC)
Development Phase—Involves taking all of the detailed design documents from the design phase and transforming them into the actual system
Testing Phase—Involves bringing all the project pieces together into a special testing environment to test for errors, bugs, and interoperability and verify that the system meets all of the business requirements defined in the analysis phase
17-7
THE SYSTEMS DEVELOPMENT LIFE CYCLE (SDLC)
Implementation Phase—Involves placing the system into production so users can begin to perform actual business operations with the system
Maintenance Phase—Involves performing changes, corrections, additions, and upgrades to ensure the system continues to meet the business goals
17-8
SOFTWARE DEVELOPMENT METHODOLOGY
• Waterfall Methodology —An activity-based process in which each phase in the SDLC is performed sequentially from planning through implementation and maintenance
• Agile Methodology —Aims for customer satisfaction through early and continuous delivery of components developed by an iterative process– Iterative Development —Consists of a series of tiny
projects
17-9
WATERFALL METHODOLOGY
17-10
AGILE METHODOLOGY
17-11
SOFTWARE DEVELOPMENT METHODOLOGY
• Rapid Application Development Methodology (RAD)—Emphasizes extensive user involvement in the rapid and evolutionary construction of working prototypes of a system to accelerate the systems development process
• Fundamentals of RAD:
– Focus initially on creating a prototype that looks and acts like the desired system
– Actively involve system users in the analysis, design, and development phases
– Accelerate collecting the business requirements through an interactive and iterative construction approach
17-12
SOFTWARE DEVELOPMENT METHODOLOGY
• Rational Unified Process (RUP) Methodology—Provides a framework for breaking down the development of software into four gates
– Gate One: Inception– Gate Two: Elaboration– Gate Three: Construction– Gate Four: Transition
• Extreme Programming (XP) Methodology—Breaks a project into tiny phases, and developers cannot continue on to the next phase until the first phase is complete
17-13
SOFTWARE DEVELOPMENT METHODOLOGY
• SCRUM Methodology—Uses small teams to produce small pieces of deliverable software using sprints, or 30-day intervals, to achieve an appointed goal
• Implementing Agile Methodologies– The Agile Alliance Manifesto:
• Early/continuous delivery of software will satisfy the customer
• Changing requirements are welcome• Business people and developers work together• Projects need motivated individuals• Use self-organizing teams• Reflect on how to become more effective
17-14
SOFTWARE PROBLEMS ARE BUSINESS PROBLEMS
• Primary reasons for project failure include:– Unclear or missing business requirements– Skipping SDLC phases– Failure to manage project scope
• Scope Creep—occurs when the scope increases• Feature Creep—occurs when extra features are
added– Failure to manage project plan– Changing technology
• Find Errors Early: The later in the SDLC an error is found - the more expensive it is to fix
17-15