Exercise 3: Match the Scenario to the Right Tool — Possible Solution ==================================================================== (a) A five-person team needs identical environments regardless of each member's own OS. -> DEV CONTAINERS. Reasoning: this chapter's own comparison table names Dev Containers as "best for guaranteed-identical environments across a whole team — the most reproducible option," specifically because the environment is defined entirely by a committed devcontainer.json rather than by whatever each person happens to have installed locally. Remote-SSH would still leave each person connecting from their own differently-configured local client, and WSL is Windows-specific, useless for team members on macOS/Linux. (b) A data scientist needs a specific GPU physically installed in a lab server. -> REMOTE-SSH. Reasoning: a GPU is physical hardware that exists on ONE specific machine — this chapter's table names Remote-SSH as best for "working on hardware more powerful than your laptop... or code that must live on a specific server." A container can't conjure hardware that isn't part of the host it's running on, and this isn't a Windows-only scenario, so WSL doesn't apply either — the lab server itself must be the target, reached directly via SSH. (c) A Windows user wants to run Linux-only build tools without a VM. -> WSL. Reasoning: this chapter describes WSL specifically as "a real Linux environment inside Windows itself — no network involved," explicitly contrasted against needing "a full VM." Remote-SSH would require an actual separate remote machine to connect to (unnecessary complexity for tools that just need to run somewhere Linux, not somewhere ELSE), and Dev Containers would require Docker as an added layer where WSL alone already solves the stated problem directly. WHY THIS WORKS AS AN ANSWER ------------------------------ Each answer is justified by directly citing this chapter's own comparison table entry for that tool, rather than a generic guess — demonstrating the table isn't just a reference to skim, but something that actually resolves real scenario-based decisions when applied carefully to what each situation specifically requires (identical team environments, specific physical hardware, or Linux tooling on Windows).