TYPICAL APPROACH OF
SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)
SABBIR HOSSAIN RUPOM
PRESENTATION OUTLINE
 Traditional SDLC
 Common & Popular SDLC Models
 Agile & Scrum
 Kanban Work-flow
 Extreme Programming (XP)
 DevOps CI/CD
TRADITIONAL SDLC APPROACH
WHAT IS SDLC?
 A methodology with clearly defined processes
for creating high-quality software
 Focuses on the following general phases of
software development:
 Planning
 Requirement specifications
 Architect & design
 Development
 Testing
 Deployment
PLANNING & REQUIREMENT ANALYSIS
SOFTWARE REQUIREMENT SPECIFICATIONS
DESIGN & ARCHITECT
DEVELOPMENT
TESTING
DEPLOYMENT & MAINTENANCE
 Approve the software to go live
 Prepare production environment and deploy software
 Maintain system performance and improve functionalities
 Continuous bug fixing and evolve
SDLC MODELS
 Models are ways or framework to follow during
the software development phase
 A number of SDLC process models exists
 Each process model follows a series of phase
unique to its type to ensure success in the step
of software development
AGILE DEVELOPMENT
 Facilitates rapid, continuous delivery of useful software
 Customers, developers and testers constantly interact with each other, thus communication gap reduces
 Working software is delivered frequently (weeks rather than months)
 Continuous attention to technical excellence and good design
 Regular adaptation to changing circumstances
 Most ideal approach for mid & large scale software development over other SDLC models
AGILE & SCRUM
SCRUM ENTITIES
 Scrum team
 Product owner
 Scrum Master
 Product backlog
 Sprint planning meeting
 Daily Scrum
 Sprint review meeting
 Sprint retrospective
 Source: https://www.mountaingoatsoftware.com/agile/scrum/resources/overview
KANBAN WORK-FLOW
 Principle 1: Start With What You Do Now
 Principle 2: Agree to Pursue Incremental,
Evolutionary Change
 Principle 3: Respect the Current Process, Roles &
Responsibilities
 Principle 4: Encourage Acts of Leadership at All
Levels
EXTREME PROGRAMMING (XP)
 Focuses on functionalities rather than design
complexity
 Handle dynamically changing software requirements
 Overcome risks caused by fixed time projects using
new technology
 Stresses the importance of the appropriate kind of
communication, increases team performance
 Facilitates software improvements through constant
feedback
 Encourage team efforts through taking challenges
and respects to each other
GITFLOW WORKFLOW
 A develop branch is created from master
 A release branch is created from develop
 Feature branches are created from develop
 When a feature is complete it is merged into the
develop branch
 When the release branch is done it is merged
into develop and master
 If an issue in master is detected a hotfix branch is
created from master
 Once the hotfix is complete it is merged to both
develop and master
CODE REVIEW & ACCEPTANCE
 Review own code before merging
 Create merge / pull request for review
 Approve / Delete pull request after review
 Integrate with CI
DEVOPS CI/CD PIPELINE
CONTINUOUS
INTEGRATION -> DELIVERY -> DEPLOYMENT
THANK YOU
REFERENCES
 https://www.tutorialspoint.com/sdlc/sdlc_overview.htm
 https://reqtest.com/requirements-blog/requirements-analysis/
 https://www.javatpoint.com/software-requirement-specifications
 https://www.tutorialspoint.com/sdlc/sdlc_overview.htm
 https://www.perforce.com/blog/alm/what-software-testing
 https://www.itproportal.com/features/how-to-prepare-for-software-deployment-and-maintenance/
 https://www.javatpoint.com/software-engineering-iterative-model
 https://www.guru99.com/what-is-spiral-model-when-to-use-advantages-disadvantages.html
 https://www.openxcell.com/blog/agile-methodology-important-start/
 https://www.360logica.com/blog/agile-development-advantages-disadvantages-and-when-to-use-it/
 https://www.mountaingoatsoftware.com/agile/scrum/resources/overview
 https://www.atlassian.com/agile/kanban
 https://www.agilealliance.org/glossary/xp
 https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow
 https://blog.codacy.com/how-to-code-review-in-a-pull-request/
 https://www.youtube.com/watch?v=m0a2CzgLNsc

Typical Approach of Software Development Life Cycle (SDLC)

  • 1.
    TYPICAL APPROACH OF SOFTWAREDEVELOPMENT LIFE CYCLE (SDLC) SABBIR HOSSAIN RUPOM
  • 2.
    PRESENTATION OUTLINE  TraditionalSDLC  Common & Popular SDLC Models  Agile & Scrum  Kanban Work-flow  Extreme Programming (XP)  DevOps CI/CD
  • 3.
  • 4.
    WHAT IS SDLC? A methodology with clearly defined processes for creating high-quality software  Focuses on the following general phases of software development:  Planning  Requirement specifications  Architect & design  Development  Testing  Deployment
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
    DEPLOYMENT & MAINTENANCE Approve the software to go live  Prepare production environment and deploy software  Maintain system performance and improve functionalities  Continuous bug fixing and evolve
  • 11.
    SDLC MODELS  Modelsare ways or framework to follow during the software development phase  A number of SDLC process models exists  Each process model follows a series of phase unique to its type to ensure success in the step of software development
  • 16.
    AGILE DEVELOPMENT  Facilitatesrapid, continuous delivery of useful software  Customers, developers and testers constantly interact with each other, thus communication gap reduces  Working software is delivered frequently (weeks rather than months)  Continuous attention to technical excellence and good design  Regular adaptation to changing circumstances  Most ideal approach for mid & large scale software development over other SDLC models
  • 18.
  • 19.
    SCRUM ENTITIES  Scrumteam  Product owner  Scrum Master  Product backlog  Sprint planning meeting  Daily Scrum  Sprint review meeting  Sprint retrospective  Source: https://www.mountaingoatsoftware.com/agile/scrum/resources/overview
  • 20.
    KANBAN WORK-FLOW  Principle1: Start With What You Do Now  Principle 2: Agree to Pursue Incremental, Evolutionary Change  Principle 3: Respect the Current Process, Roles & Responsibilities  Principle 4: Encourage Acts of Leadership at All Levels
  • 21.
    EXTREME PROGRAMMING (XP) Focuses on functionalities rather than design complexity  Handle dynamically changing software requirements  Overcome risks caused by fixed time projects using new technology  Stresses the importance of the appropriate kind of communication, increases team performance  Facilitates software improvements through constant feedback  Encourage team efforts through taking challenges and respects to each other
  • 22.
    GITFLOW WORKFLOW  Adevelop branch is created from master  A release branch is created from develop  Feature branches are created from develop  When a feature is complete it is merged into the develop branch  When the release branch is done it is merged into develop and master  If an issue in master is detected a hotfix branch is created from master  Once the hotfix is complete it is merged to both develop and master
  • 23.
    CODE REVIEW &ACCEPTANCE  Review own code before merging  Create merge / pull request for review  Approve / Delete pull request after review  Integrate with CI
  • 24.
  • 25.
  • 26.
  • 27.
    REFERENCES  https://www.tutorialspoint.com/sdlc/sdlc_overview.htm  https://reqtest.com/requirements-blog/requirements-analysis/ https://www.javatpoint.com/software-requirement-specifications  https://www.tutorialspoint.com/sdlc/sdlc_overview.htm  https://www.perforce.com/blog/alm/what-software-testing  https://www.itproportal.com/features/how-to-prepare-for-software-deployment-and-maintenance/  https://www.javatpoint.com/software-engineering-iterative-model  https://www.guru99.com/what-is-spiral-model-when-to-use-advantages-disadvantages.html  https://www.openxcell.com/blog/agile-methodology-important-start/  https://www.360logica.com/blog/agile-development-advantages-disadvantages-and-when-to-use-it/  https://www.mountaingoatsoftware.com/agile/scrum/resources/overview  https://www.atlassian.com/agile/kanban  https://www.agilealliance.org/glossary/xp  https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow  https://blog.codacy.com/how-to-code-review-in-a-pull-request/  https://www.youtube.com/watch?v=m0a2CzgLNsc