DevNet Associate study materials
DevNet Associate study resources

DevNet Associate: Software Development and Design

DevNet Associate · Work through your exam, one topic at a time.

All guide sections

Software Development and Design

What the exam expects

Software development questions on this exam are mostly vocabulary and tradeoffs rather than deep coding. Know the software development lifecycle stages (requirements, design, implementation, testing, deployment, maintenance) and be able to contrast waterfall (sequential, heavy upfront documentation) with agile/iterative delivery (short sprints, continuous feedback). Understand why version control matters: commits are snapshots, branches isolate work, a pull request plus code review gates a merge, and merges reconcile divergent histories.

Know the Git plumbing that appears in questions: git clone copies a remote repo locally, git fetch downloads new commits and updates remote-tracking branches but leaves your working tree alone, and git pull is fetch plus a merge (or rebase). git commit is local; git push publishes.

Design vocabulary: modularity, separation of concerns, DRY, refactoring, and patterns such as MVC and observer. Object-oriented basics - class, inheritance, encapsulation, polymorphism - show up as definitions. Understand TDD (write a failing test, make it pass, refactor) and the unit versus integration versus functional test split, plus CI/CD pipelines that automate build, test, and release.

Data formats are a reliable source of questions: JSON (double-quoted keys, no comments, strict), XML (verbose, schema-validated), YAML (indentation-sensitive, comment-friendly). In Python you parse them with json, xml.etree.ElementTree, and yaml.safe_load.

Traps: confusing fetch with pull, assuming JSON supports comments or single quotes, or forgetting that YAML forbids tabs. Rule of thumb: machine-to-machine payloads → JSON; human-edited configs (Ansible, CI, Kubernetes) → YAML.