Approaches to Systems Development

Approaches to
Systems Development
Chapter 10
Outline
Introduction
 Systems Analyst
Ch 10 - Approaches to System Development
 SDLC
− Predictive vs Adaptive Approaches
 Agile Methodologies
2
Systems Analyst
3
Systems Analyst
Organizational role most responsible for
the analysis & design of information systems.
 Translates a _________ __________ into an
___________ ___________ ___________ .
 Job Titles
− vary by organization; read the job description
• Systems Analyst
• Business Analyst (client-facing)
4
Systems Analyst
…more of a business problem solver
than a technical programmer
Knowledge & Skills
• DB, Programming, Computers Hardware, Networking,
TECHNICAL
Operating systems, and utilities, Communication &
collaboration technology
• SDLC techniques
BUSINESS
• Organizational knowledge, Management techniques,
Functional work processes
PEOPLE
• Communication skills, Interpersonal Skills
• Roles: Negotiator, Teacher, Mentor, Collaborator, Manager
5
Development Projects
& the SDLC
6
Information System Development Project
 What is it?
− It's a planned undertaking
− Has fixed beginning and end
− Produces desired result or product
 It can differ in…
− Features
− Size
− Cost
− Resources
7
SDLC: SYSTEMS DEVELOPMENT LIFE CYCLE
 Provides overall framework for managing systems development
process
 All projects use some variation of SDLC
Phase
Core Process
Project Initiation
1. Identify the problem/need & obtain approval
Ch 11
Planning
2. Plan & monitor the project
Ch 11
Analysis
3. Discover & understand the details
Ch 2-5
Design
4. Design the system components
Ch 6, 8-9,12-13
Implementation
5. Build, test, and integrate system components
Ch 13
Deployment
6. Complete system tests and deploy solution
Ch 14
8
2 Approaches to the SDLC
Predictive SDLC
Adaptive SDLC
•
Waterfall Model
•
Spiral Model
•
Modified Waterfall
•
Incremental Development
Assumptions
• can be planned in
advance
• system can be
developed
according to the
plan
Assumptions
• Iterative
• Must be
flexible &
adapt
9
Predictive Approaches
Project
Initiation
Waterfall

Planning
One phase begins when another completes;
Specifications are frozen
Problems

System requirements “locked in”

Limited user involvement

Too much focus on milestone deadlines
Analysis
Design
Implementati
on
Deploymen
t
Support
Modified Waterfall


Overlapping phases
Can go backwards
Project
Initiation
Planning
Analysis
Design
Implementation
Deployment
Support
10
Adaptive Approaches
Spiral Model
 An iterative approach
 Spiral until project completion
− Then, deployed!
 Project Management:
− managed differently than a waterfall approach
Note: An iteration contains the complete SDLC
11
Adaptive Approaches
Incremental Development
 Also, an iterative approach
 BUT…System is built in small increments; it is "grown"
• As an iteration is completed it is integrated to the whole
• Partially deployed in steps
 Advantage
− some functionality gets
into the user's hands
much earlier
12
Methodology
A comprehensive guideline to follow for completing
every SDLC activity
Abstraction used
to separate out
aspect
Models
Methodology
Software to
create models
or other project
components
Tools
Techniques
Guidelines
or instructions
13
Agile Methodologies
14
Agile Philosophy
A guiding philosophy and set of guidelines for :
 developing information systems
in an unknown, rapidly changing environment
− complements Adaptive SDLCs & Methodologies
− makes sure developers are fast to respond to changes
“Manifesto for Agile Development”  agilemanifesto.org
−Value responding to change over following a plan
−Value individuals and interactions over processes and tools
−Value working software over comprehensive documentation
−Value customer collaboration over contract negotiation
Agile Methodologies
These are complete adaptive development
methodologies that incorporate Agile principles:
 Unified Process
 Extreme Programming
 Scrum
 They are iterative, incremental, and agile
16
Unified Process (UP)
Unified Process (UP)
 An object-oriented systems development methodology
 Invented by 3 Amigos:
− Grady Booch, James Rumbaugh, & Ivar Jacobson
• Rational Software, which is now owned by IBM
• Also, invented UML
17
Unified Process (UP)
4 Phases
9 Disciplines
Incepti
on
Elaboration
Scope & A&D of Core
Prelim Reqs
est.
-Use Cases
Construction
Coding
Solve Tech, Perf,
Reliability
concerns
Transiti
on
User acceptance
testing,
Deploying
Each phase can consist of one or more iterations.
18
Extreme Programming (XP)
XP
 An iterative and incremental agile SW development
methodology
− With frequent releases in short development cycles: 2-week iterations
− Main Concepts:
• 4 Core Values
• 12 Software Engineering Practices
• extends these “to the extreme”
• Emphasizes
Software quality
Keep it simple
4 Core Values
Open & frequent
From Client,
users,
developers
Courage to do it right;
re-do if necessary
19
XP's 12 Software Engineering Practices
 Planning – quick rough plan; develop user stories; heavily involve users
 Testing – "user story" tests written before coding; can be re-run anytime
 Test-Driven Development & Automated Testing
 Pair Programming – one writes (driver), one inspects (navigator), trade turns
 Simple Designs – few classes & methods, no duplicate code
 Refactoring – improving code quality without changing what it does
 Owning Code Collectively – allows anyone to improve code
 Continuous integration – unit-tested code is integrated daily
 On-site customer – customer must commit to the project
 System metaphor –have an easily-understood vision in laymen's terms – e.g. assembly line
 Small Releases – small & frequent deployment
 40-Hour Work Week – don’t overload the developers
 Coding standards – follow standards
20
Scrum
 Scrum
 An iterative and incremental agile SW development methodology
− frequent releases in short development cycles: 2-week sprints
− Main Concepts:
• Team has complete control over organization & work processes
• Product Backlog - Prioritized list of user requirements
Organization
• Product Owner - client stakeholder who controls the Product Backlog
• Scrum Master - Scrum project manager
• a facilitator, removes impediments, resolves issues
• However, the Scrum Team does the schedule
• Scrum Team - 5 to 9 developers, testers, architects, designers, etc.
• Small self-organizing teams; have all the skills necessary
• They ultimately decide what goes in a Sprint
• Can have more than 1 team in larger projects
21
Scrum Sprint
Sprint - A time-controlled mini-project to implement part of the system
•
Scope is frozen (but can be reduced)
• Time period is kept constant
Task Board
Product
Backlog
ToDo
Done
Sprint
Backlog
50
Sprint
Planning
Meeting
Product
Owner
WIP
7
Scrum master
Scrum team
Incremental
Software
Product
2 to 4-wk.
Sprint
Sprint
Sprint
Review Retrospective
(“Demo”)
Daily Scrum
(“Stand-up”)
22
Scrum Meetings
Time: assumptions are for a 1-month sprint
 Sprint Planning - 8 hours before the Sprint
 Purpose: Creating the Sprint Backlog
− Part I: Product Owner presents the desired set of User Stories & the acceptance criteria for each story.
− Part II: Dev Team takes each story & breaks them into tasks; creates time estimates per task;
finalizes the user stories they can commit to.
• Dev Team gets to say if there are details lacking in the user stories & cannot commit to certain stories
− Attended by: Scrum Master, Development Team, Product Owner
 Daily Scrum (“Stand-Up”) - 15 mins @ beginning of day
 Purpose: Daily status update between the development team: Yesterday, Today, Barriers
− Attended by: Scrum Master, Development Team, Product Owner
 Sprint Review (“Demo”) – 4 hours at the end of the Sprint
 Purpose: a demo to inspect & adapt the product; additions to product backlog may be
identified.
− Attended by: Scrum Master, Development Team, Product Owner PLUS: stakeholders, management and
developers from other teams
 Sprint Retrospective - 3-hours at the end of the Sprint
 Purpose: process improvement - lessons learned, successes and failure
− Attended by: Scrum Master, Development Team
23
XP vs Scrum
XP
Scrum
Work Units

Iteration = 2 weeks

Sprints = 2 to 4 weeks
Rate of Change

Can add a feature of equal size
(for an unstarted feature within
an iteration)

Order of
Features within
an iteration

Features prioritized by the
customer
Must work on features in order!

No additions allowed
once sprint has started
but can remove a
feature
Features prioritized by
the Scrum product
owner

SW Engineering  12 Principles: test-driven
Practices
development, pair programming,
etc.

Team determines the
sequence (but typically
works on priority)

No engineering practices
prescribed

But it can be combined
w/XP practices
24
Review these slides
with the textbook
25
XP Project Approach
26
Project
Iteration #
User
Stories
Iteration1
5
Iteration2
2
Iteration1
3
 Create all acceptance tests
Iteration2
4
 Plan all releases
Iteration3
1
XP Project Approach
Release #
Project1
Release1
 Outer layer – 1x per PROJECT
Release2
 Create all user stories
 Create system metaphor
 Loop thru each RELEASE (Middle Layer)
 Middle Layer – 1x per RELEASE
 Plan all iterations
 Loop thru each ITERATION (Inner Layer)
 Acceptance testing of the Release
 Deploy the Release!
Project ends when the
final release is deployed!
 Inner Layer – 1x per ITERATION
 Code & unit test each user story
 Integration testing of user stories
27