JREAM

Refresher: SDLC

I recently had a job interview and was asked some great quickfire questions. Some were about programming principles and basic OOP knowledge. I thought I'd explain how I see SDLC.

Simple SDLC

One term that any Senior of Full Stack developer should be familiar with is the Software Development Lifecycle (SDLC). This is a way that developers follow a standard process to reduce complications and work together better.

The specifics will be different for different teams or companies.

SDLC Phases

I have usually worked on small teams or solo so the lines are blurred. There are generally six phases but on most teams I've worked on there are more like four.

SDCL 6-StepsSDCL 4-Steps (Example)
1. Plan1. Plan/Define
2. Define
3. Design2. Design/Build
4. Build
5. Test3. Test
6. Deploy4. Deploy

I find in most small to medium cases that things seem to go with 4 steps. This isn't an official thing to memorize. It's just an idea of how to have a smooth process. Small to medium teams often do not have dedicated resources for Project Managers and Q/A Testers.

Developer Point of View

In my shoes when I think of SDLC as a Sr. Developer or Full Stack Developer (whichever title I have at the time) I look at it a bit like follows..

  • Documentation
    • Write basic summary of plan (markdown)
    • Write important instructions (markdown)
    • Write code comments as I go
  • Front/Backend
    • Git Branches:
      • Deployment Branches: main, develop, staging
      • Ticket Branches: #-issue, #-feature, #-bug
    • Peer Review
    • Branch Merging
  • Testing
    • Unit Testing
    • Autorun Before Commit `(eg: husky)
  • Deployment
    • Continuous Deployment (CD)
      • Based on Deployment Branch.
      • GitHub Actions