JREAM

Refresher: SDLC

I recently had a job interview and was asked some great quickfire questions. Some were about programming principals and basic OOP knowldge. 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 Commmit `(eg: husky)
  • Deployment
    • Continuous Deployment (CD)
      • Based on Deployment Branch.
      • GitHub Actions