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-Steps | SDCL 4-Steps (Example) |
|---|---|
| 1. Plan | 1. Plan/Define |
| 2. Define | |
| 3. Design | 2. Design/Build |
| 4. Build | |
| 5. Test | 3. Test |
| 6. Deploy | 4. 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
- Deployment Branches:
- Peer Review
- Branch Merging
- Git Branches:
- Testing
- Unit Testing
- Autorun Before Commit `(eg: husky)
- Deployment
- Continuous Deployment (CD)
- Based on Deployment Branch.
- GitHub Actions
- Continuous Deployment (CD)