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