Quiz: Software Development Essentials
Test your understanding of how software is built, from source code and programming languages through version control, code review, and collaboration workflows with these review questions.
1. What is source code?
- The compiled binary files that a computer executes directly
- The human-readable set of instructions written by developers that defines how a software application behaves
- The documentation that accompanies a software project
- The configuration files used to deploy software to production servers
Show Answer
The correct answer is B. The chapter defines source code as the human-readable set of instructions written by developers that defines how a software application behaves. It is text files containing logic, data structures, and algorithms that a compiler or interpreter translates into machine-executable instructions. When engineers talk about "the codebase," they are referring to the entire collection of source code files that make up a product.
Concept Tested: Source Code
2. Which three core technologies does the chapter identify as the foundation of frontend web development?
- Python, SQL, and REST APIs
- React, Angular, and Vue.js
- Git, GitHub, and Bitbucket
- HTML, CSS, and JavaScript
Show Answer
The correct answer is D. The chapter states that frontend development relies on three core technologies in web browsers: HTML (HyperText Markup Language) for defining structure and content, CSS (Cascading Style Sheets) for controlling visual appearance and layout, and JavaScript for adding interactivity and dynamic content. React, Angular, and Vue.js are frameworks built on top of these core technologies, not the foundational technologies themselves.
Concept Tested: Frontend Development
3. According to the chapter's programming language categories table, which language category is described as affecting "platform coverage and development cost" for PMs?
- Frontend (browser) languages
- Backend (server) languages
- Mobile languages
- Data and Analytics languages
Show Answer
The correct answer is C. The chapter's programming language categories table lists Mobile languages (Swift for iOS, Kotlin for Android, React Native, Flutter) with a PM relevance of "Affects platform coverage and development cost." This reflects the decision of whether to build native apps for each platform or use cross-platform frameworks, which directly impacts how many platforms the product reaches and how much it costs to develop.
Concept Tested: Programming Languages
4. What does Git being a "distributed" version control system mean?
- Git distributes code across multiple cloud servers for redundancy
- Git requires a constant internet connection to function
- Every developer has a complete copy of the entire project history on their local machine
- Git automatically distributes tasks among team members based on their expertise
Show Answer
The correct answer is C. The chapter explains that Git is a distributed version control system, meaning every developer has a complete copy of the entire project history on their local machine. This design makes Git fast, resilient, and capable of supporting offline work. Unlike centralized version control systems, no single server holds the only copy of the repository.
Concept Tested: Git Basics
5. Why does the chapter state that understanding code review culture matters to technical PMs?
- Because PMs are expected to approve all code changes before they ship
- Because code review directly affects development velocity, and PMs must factor review time into planning timelines
- Because PMs need to evaluate the technical quality of every code commit
- Because code review is the only way to prevent software bugs from reaching production
Show Answer
The correct answer is B. The chapter explains that understanding code review culture matters because it directly affects development velocity. Teams with healthy review practices ship more reliable code but may take longer per feature. The chapter specifically advises that when planning timelines, PMs should factor in review time, noting that a feature is not "done" when the code is written but when it is reviewed, approved, and merged.
Concept Tested: Code Review
6. What is the difference between frontend and backend development as described in this chapter?
- Frontend runs on the server while backend runs in the browser
- Frontend handles visual presentation and user interaction while backend handles data processing, business logic, and integrations
- Frontend is written in compiled languages while backend uses interpreted languages
- Frontend is responsible for database management while backend manages the user interface
Show Answer
The correct answer is B. The chapter defines frontend development as focusing on everything users see and interact with directly in their browser or mobile app, including layout, visual design, and responsiveness. Backend development handles everything behind the scenes: processing requests, managing data, enforcing business rules, authenticating users, and communicating with external services. This distinction matters for product decisions about where complexity lives in the stack.
Concept Tested: Full Stack Overview
7. According to the chapter, what five problems does version control solve for software development teams?
- Compilation, testing, deployment, monitoring, and alerting
- Collaboration, history, reversibility, branching, and accountability
- Scheduling, estimation, prioritization, tracking, and reporting
- Authentication, authorization, encryption, auditing, and compliance
Show Answer
The correct answer is B. The chapter lists five critical problems that version control solves: Collaboration (multiple developers working on the same codebase simultaneously), History (every change recorded with who, when, and why), Reversibility (any change can be undone), Branching (developers can work on experimental features without affecting stable code), and Accountability (changes attributed to specific individuals, enabling code review).
Concept Tested: Version Control
8. Which component of a well-structured pull request provides traceability back to the original requirements?
- Title
- Code changes
- Linked issues
- Reviewer assignment
Show Answer
The correct answer is C. The chapter's pull request components table identifies Linked Issues as the component that provides traceability to requirements, with the example "Closes #342, relates to #298." This connection between code changes and original issues or requirements is essential for tracking whether product requirements are being implemented as specified and for understanding the full context of a change.
Concept Tested: Pull Request
9. An engineer tells you during sprint planning, "We need to refactor the authentication module before we can add the SSO feature, and it will take an extra sprint." Using what you learned about source code organization and the development process, how should you interpret this statement?
- The engineer is trying to avoid building the SSO feature and should be overruled
- The existing code structure needs to be reorganized to accommodate the new feature, and this prerequisite work adds legitimate time to the timeline
- The engineer wants to rewrite the entire codebase from scratch before adding any features
- The authentication module has a critical bug that must be fixed before any new work begins
Show Answer
The correct answer is B. The chapter explains that understanding software development fundamentals changes how PMs operate. Specifically, it notes that during sprint planning, a PM should understand when an engineer says "we need to refactor this module first" because they know what source code organization looks like. Refactoring means restructuring existing code without changing its behavior to make it better suited for new additions. This is legitimate engineering work that affects timelines.
Concept Tested: Software Development
10. Comparing the roles that code repositories play beyond simple code storage, which of the following best captures the full scope described in this chapter?
- Repositories only store source code and version history, while all other collaboration happens in separate project management tools
- Repositories serve as a central hub containing source code, README files, configuration files, issue trackers, and documentation for APIs and architecture decisions
- Repositories are primarily used for automated testing and deployment, with code storage being a secondary function
- Repositories function as communication platforms where engineers discuss features through real-time chat integrated into the codebase
Show Answer
The correct answer is B. The chapter describes code repositories as more than just code storage, identifying them as the central hub for engineering collaboration. Specifically, repositories contain source code organized by feature or module, README files explaining setup, configuration files for build tools and testing frameworks, issue trackers for bugs and feature requests, and documentation for APIs and architecture decisions. Technical PMs regularly interact with these repositories for reading pull requests, tracking issues, and reviewing release notes.
Concept Tested: Code Repository