Software Development Concepts
Process models
The SDLC frames the work: planning and requirements, design, development, testing, deployment, maintenance. Waterfall is sequential with heavy upfront documentation; Agile delivers in short iterations with continuous feedback. Scrum adds roles (product owner, scrum master, team), artifacts (product backlog, sprint backlog, increment), and ceremonies (planning, daily standup, review, retrospective). Kanban visualizes flow and limits work in progress. DevOps blends development and operations through automation; CI/CD automatically builds and tests every change and releases frequently.
Version control and code
Git is distributed version control: commits record snapshots, branches isolate work, merges combine them, and pull requests add review. Code review catches defects before merge. Distinguish compiled languages (source converted to a binary ahead of time) from interpreted ones (executed by a runtime). An IDE bundles editor, debugger, and build tools.
Testing levels
Unit tests check a single function; integration tests check components together; system tests check the whole product; user acceptance testing confirms business fit. Regression tests confirm old features still work; smoke tests are quick sanity checks. Verification asks 'did we build it right?' while validation asks 'did we build the right thing?' Alpha testing happens in-house; beta testing happens with real users.
Worked example
A developer opens a pull request; CI runs unit and integration tests automatically; a reviewer approves; the merge deploys to staging. That pipeline is CI/CD.
Traps
- Agile does not mean no documentation or no planning.
- Unit versus integration test boundaries.
- Confusing verification with validation.