Approaches to System Development
Approaches to System Development
Learning Objectives
Predictive vs. Adaptive SDLC:
Compare assumptions and uses of predictive and adaptive system development life cycles (SDLC).
Predictive SDLC (e.g., Waterfall): Assumes comprehensive planning is possible upfront.
Adaptive SDLC (e.g., Agile): Employs iterative models to accommodate changing needs.
System Development Methodology:
Explain the components of a system development methodology, including the SDLC, models, tools, and techniques.
A methodology provides a structured approach with specific tools and techniques.
Agile Development:
Describe the key features of Agile development.
Agile emphasizes flexibility, collaboration, and delivering working software quickly.
The System Development Life Cycle (SDLC)
Two general approaches:
Predictive Approach:
Also known as the Waterfall model.
Assumes project planning can be done extensively in advance.
Assumes the information system can be developed according to the detailed plan.
Relies on a thorough understanding of requirements and stable technology.
Suitable when requirements are well understood and/or technical risk is low.
Change control is formal and rigorous.
Adaptive Approach:
Employs an iterative model.
Assumes the project must be flexible and adapt to evolving needs and discoveries.
Requirements are expected to change, and learning occurs throughout the project.
Suitable when requirements and needs are uncertain and/or technical risk is high.
Change is embraced, and iterations allow for continuous refinement.
Most projects fall between purely predictive and purely adaptive approaches;
A tailored hybrid approach is often best, blending elements of both predictive and adaptive methods to suit specific project needs.
Systems Development Methodology
A formalized approach to implementing the Systems Development Life Cycle (SDLC).
Includes specific steps, techniques, tools, and documentation standards.
Main types:
Waterfall Development
Traditional, sequential approach.
V-Model
Extension of Waterfall, emphasizing testing.
Parallel Development
Sub-parts of the system developed simultaneously.
Iterative Development
Develops the system in repeated cycles.
Rapid Application Development (RAD)
Focuses on speed and user involvement.
System Prototyping
Creation of preliminary models.
Throwaway Prototyping
Prototypes discarded after use.
Dynamic Systems Development Method (DSDM)
Agile approach focusing on user needs.
Agile Development
Emphasizes flexibility and collaboration.
Scrum
Iterative, team-based approach.
Extreme Programming
Focuses on code quality and testing.
Traditional Predictive SDLC
Earlier approach based on engineering principles.
Characterized by detailed upfront planning and sequential execution.
Typically has sequential phases:
Phases are related groups of development activities (e.g., planning, analysis, design, implementation, and deployment).
Planning: Define project scope and objectives.
Analysis: Gather and analyze requirements.
Design: Create system architecture and specifications.
Implementation: Develop the system.
Testing: Verify system functionality.
Deployment: Release the system to users.
Waterfall model:
An SDLC that assumes phases can be completed sequentially with no overlap or iteration.
Once a phase is completed, you proceed to the next phase without going back.
Relies on comprehensive documentation at each phase.
Traditional IS Development Phases
(The transcript refers to a diagram of Traditional IS Development Phases here.)
Waterfall Predictive SDLC
(The transcript refers to a diagram of Waterfall Predictive SDLC here.)
Modified Waterfall with Overlapping Phases
Offers more flexibility but still assumes predictive planning and sequential phases.
Some overlap between phases to allow feedback and adjustments.
Newer Adaptive SDLC
Emerged in response to complex requirements and uncertain technological environments.
Values flexibility, collaboration, and continuous improvement.
Always includes iterations where some design and implementation are done from the beginning.
Each iteration involves planning, design, implementation, and testing.
Some developers consider it the only viable way to develop information systems.
Promotes responding to change over following a rigid plan.
Some IS managers are skeptical due to the apparent lack of an overall plan.
Requires strong communication and coordination.
Adaptive Approaches
Incremental development:
Completes portions of the system in small increments and integrates them as the project progresses.
Each increment provides a working subset of the system.
Sometimes considered “growing” a system.
Allows for early and frequent feedback.
Walking Skeleton:
The complete system structure is built first but with bare-bones functionality.
Essential framework is established early.
Functionality is added incrementally.
Generic Adaptive Approach
Six Core Processes that go across iterations.
Multiple iterations as required.
Methodologies, Models, Tools, and Techniques
A Methodology includes a collection of techniques that are used to complete activities and tasks, including modeling, for every aspect of the project.
Methodologies, Models, Tools, and Techniques(Cont.)
Tools:
Software applications that assist developers in creating models or other components required for a project.
Examples: Visio, Figma, MySQL, Project, Word, etc.
Methodologies, Models, Tools, and Techniques(Cont.)
Technique:
A collection of guidelines that help an analyst complete an activity or task.
Learning techniques is the key to expertise in a field.
Agile Development
A guiding philosophy and set of guidelines for developing information systems in an unknown, rapidly changing environment.
Emphasizes collaboration, iterative development, and responding to change.
Chaordic:
A term for adaptive projects, describing them as chaotic yet ordered.
Agile Development Values
From the “Manifesto for Agile Software Development”:
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 Modeling Principles
Agile Modeling (AM) – 12 Principles
A philosophy – build only necessary models that are useful and at the right level of detail.
Focus is on creating models that add value to the project.
Agile Principles
Develop software as the primary goal, avoiding distraction by excessive documentation or models.
Enable the next effort as your secondary goal, being aware of next step versions or revisions.
Minimize your modeling activity.
Only build what helps move the project forward.
Embrace change and change incrementally.
Take small steps that keep you on track and that can be reversed if necessary.
Agile Principles (Cont.)
Model with a purpose; model to understand and communicate.
Build multiple models.
Look at problems from different perspectives.
Build high-quality models and get feedback.
Focus on content rather than representation; informal hand-drawn models are sometimes okay.
Always focus on stakeholder needs.
Agile Principles (Cont.)
Learn from each other with open communication.
Know your models and how to use them.
Adapt to specific project needs.
Maximize stakeholder ROI.
Agile Approaches
Unified Process (UP)
Iterative and incremental framework.
Extreme Programming (XP)
Focuses on code quality and customer involvement.
Scrum
Iterative, team-based approach.
SCRUM
Intense effort involving the entire team for a defined period.
Project is broken down into short iterations called sprints.
Product backlog:
Prioritized list of user requirements.
Product owner:
The client stakeholder who controls the backlog.
Scrum master:
Scrum project manager.
Scrum sprint:
A time-controlled mini-project to implement part of the system.
SCRUM Process Description
(The transcript refers to a diagram of the SCRUM process here.)
SCRUM Components
Product owner
Product backlog
Sprint planning meeting
Scrum master
Scrum team
Sprint backlog
30-day Scrum sprint
Incremental software result
Daily scrum
Scrum Practices
Scope of each sprint is frozen (but can be reduced if necessary).
Time period is kept constant.
Daily Scrum meeting:
What have you done since the last daily Scrum (during the last 24 hours)?
What will you do by the next daily Scrum?
What kept you or is keeping you from completing your work?
Summary
This chapter covers approaches to system development in more detail.
There are two approaches to the SDLC: Predictive and Adaptive.
A predictive SDLC, also known as the waterfall model, is used when it is possible to plan the project completely in advance.
An Adaptive SDLC, which uses