Skip to content

sunwaytechclub/STC-Tech-Night-1---SDLC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 

Repository files navigation

STC Tech Night #1 - SDLC

Welcome to STC Tech Night #1 🥳!

Here, we will learn about Software Development Life Cycle (SDLC) and a few models of Software Development Methodologies

Disclaimer : Any materials used here are extracted and compiled from online resources for your convenience, this session is ultimately meant for sharing information only.

Before we jump straight into the session, allow me to introduce ourself, do watch this short 1 minute video to know more 🎇!

intro video

Without further ado, let's get started!

The slides for this session is here, alternatively, you can download it here


Table of content 📄

  1. Software Development Life Cycle
  2. Waterfall Model
  3. Agile Models
  4. Kanban
  5. Scrum

Software Development Life Cycle

  • A framework that defines a sequence of steps in the software development process
  • Serves as a guidance for Software Developers
  • Involves 6 steps in total
    • Planning
      • Allocation of resources
      • Project scheduling
      • Cost estimation
    • Defining Requirements
      • Requirements analysis
      • System requirements
      • Client requirements
    • Designing
      • Software architecture
      • User interface
    • Software Development
      • Coding
      • Development
      • Methodologies
    • Testing/Prototyping
      • Code quality
      • Performance
      • Security
    • Deployment & Maintenance
      • Pushed to market
      • Services for end-users
      • Maintenance and updates
    • Click for References

Waterfall Model

waterfall model
The Waterfall Model is the Oldest Software Development Model. It is also referred to as a linear-sequential life cycle model. In a waterfall model, each phase must be completed before the next phase can begin and no backtracking in the phases.

5 steps in total

  • Requirements definition
  • System and software design
  • Implementation and unit testing
  • Integration and system testing
  • Operation and maintenance
  • More information

Application

  • When requirements are very well documented
  • The project is short
    • Assignments are typically the perfect target to implement the Waterfall model because
      • Short-termed (2 weeks - 1 month)
      • Fixed system requirements prepared by lecturer
      • Documentation are well-written
      • Organised operation
      • Rare cases of changes

Disadvantages

  • Unsuited in real-life projects like freelance or company projects
  • Hard to accomdate to changing requirements which leads to
    • Exceeding planned cost
    • Project failure
    • Slower development
  • Not usable and no review on software until the end of process
  • Not practical to use in the current developing industry
  • Slower than agile methods

Kanban

kanban model Features/Components of the system are represented by sticky notes and placed underneath separate swimlanes like "To Do", "Doing", "Done". Members in the Kanban model have equal rights over the project development, everyone is free to choose which components to work on and be responsible of it.

Core Practices

  • Visualize the flow of work
  • Limit WIP (Work in Progress)
  • Manage Flow
  • Make Process Policies Explicit
  • Implement Feedback Loops
  • Incremental development

Why use it?

  • When softwares are developed or upgraded by increments
  • When visualization of work is important
  • To encourage feedback loops after every completed components (sticky notes)
  • To have better workflow and throughput (Optimal WIP)

Disadvantages

  • Unsuited for long projects as it floods the Kanban with stickers
  • Require members with high skillset to be able to take on the tasks

Example of Application

  • When the group assignment can be broken down into several components and features for every member to individually tackle and less worry on the integration of everyone's contribution.

Tools

More Information

Scrum

scrum model
Scrum is an agile project management methodology or framework used primarily for software development projects with the goal of delivering new software capability every 2-4 weeks.

Terms

  • Product Backlog
    • A dynamic list of features, requirements, enhancements, and fixes that acts as the input for the sprint backlog. It is, essentially, the team’s “To Do” list.
  • Sprint Backlog
    • List of items selected from the Product Backlog to achieve in the current Sprint cycle.
  • Sprint
    • 2 - 4 weeks of committed development on the software's increment
  • ScrumMaster
    • Scrum leader that ensures process is followed and provides guidance
  • Scrum
    • A daily meeting of the Scrum team during the Sprint period to review progress and prioritizes work to be done that day.
  • More definitions

Summarised Process of Scrum

  • Create Product Backlog
  • Sprint Planning and Create Sprint Backlog
  • Sprint Execution & Daily Scrum
  • Sprint Review
  • Sprint Retrospective and Repeat

Advantages

  • Higher productivity
  • Client satisfaction
  • Time efficient

Disadvantages

  • Requires high commitment from Scrum members
  • Requires an experienced team of developers
  • Indefinite project end-date

When to use?

  • Long term project
  • Communication with client is crucial
  • Rapid developement is required
  • 7 - 12 Experienced member

Application

  • Not ideal for short-term uni assignments (2 weeks - 1 month)
  • Ideal for Final Year Projects (FYP) & Company Projects
    • Where clients' opinion are heavily considered during the Sprint Meeting to understand better about the system requirements

Traditional Model vs Agile Models

Waterfall Model (Traditional Model)

  • Straightforward, simple and easy to use
  • High risk of project failure
  • Not practical
  • Not flexible
  • Cannot Accomodate change

Agile Models

  • Realistic approach to software development
  • Promotes teamwork and cross training
  • Functionality can be developed rapidly and demonstrated
  • Suitable for fixed or changing requirements
  • Bad for documentation and very high individual dependency
  • Transfer of technology to new team members may be quite challenging due to lack of documentation

There are many other more Agile Models, learn more about it here!

Thank you for attending the session !

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages