Software Development Fundamentals
What this domain tests
Software Development Fundamentals covers how a full stack project moves from requirement to running code: SDLC phases and Agile/Scrum, Git and GitHub collaboration, HTTP as the browser–server contract, and test-driven development. Questions are scenario-based - pick the branch, the commit, or the status code that fits.
Core rules and concepts
- SDLC: requirements → design → implementation → testing → deployment → maintenance. Agile delivers in short iterations; Scrum adds roles (Product Owner sets backlog priority, Scrum Master removes blockers, Developers build), artifacts (product backlog, sprint backlog, increment) and ceremonies (planning, daily standup, review, retrospective).
- Git has four places for code: working directory, staging area (
git add), local repository (git commit), remote (git push). git fetchdownloads new commits without touching your branch;git pullis fetch plus merge, which is why it can produce conflicts.- Undo:
git revertadds a new commit that reverses an old one and is safe on shared branches;git reset --hardrewrites local history and discards work. - HTTP:
GETis safe and idempotent,POSTis neither,PUTandDELETEare idempotent. 2xx success, 3xx redirect, 4xx client error, 5xx server error. - TDD: red → green → refactor.
Worked example
Requirement: a password must be at least 8 characters. Write the test first: expect(validatePassword('abc')).toBe(false). Run it and watch it fail - a test that has never failed proves nothing. Write the smallest implementation that passes, return password.length >= 8, and run the suite again (green). Add a second test for a required digit, watch it fail, then extend the code. Refactor only while every test stays green.
Traps that cost marks
- Assuming
git pullonly downloads; it merges. - Using
reset --hardto fix a pushed commit on a shared branch. - Confusing the sprint review (demo to stakeholders) with the retrospective (process improvement).
- Treating
POSTandGETas interchangeable for retrieving data.