InterviewStack.io LogoInterviewStack.io

Software Development Lifecycle and Tradeoffs Questions

Covers fundamental software development lifecycle concepts and the technical tradeoffs made during product development. Topics include the lifecycle phases of requirements gathering and analysis, design, implementation and development, testing, deployment, and maintenance, and awareness of different lifecycle models such as waterfall, agile and scrum, and iterative development. Also covers practical engineering techniques and tradeoffs such as feature flags, split testing, blue green deployments, canary releases, technical debt, and how decisions affect velocity quality and maintainability. Emphasis is on understanding how individual engineering work fits into the broader process and how to reason about tradeoffs between speed cost scalability and code quality.

MediumTechnical
108 practiced
Write a GitHub Actions workflow (YAML) that, on push to main: builds a Docker image, runs unit tests, pushes the image to a Docker registry with an 'rc' tag if tests pass, deploys that image to a staging Kubernetes cluster, runs smoke tests in staging, and then requires a manual approval step before deploying to production. Assume secrets DOCKER_USER, DOCKER_PASS, and KUBE_CONFIG are provided. Provide the key parts of the YAML (jobs, steps, conditions) and explain the artifact tagging strategy.
EasyTechnical
68 practiced
Describe the minimal stages and responsibilities of a CI/CD pipeline for a microservice team that deploys to production frequently. Include build, unit test, integration test, artifact publish, deployment to an environment, smoke tests, and rollback. For each stage mention one gating mechanism (e.g., test thresholds, manual approval) that protects production quality.
MediumTechnical
89 practiced
Describe semantic versioning (MAJOR.MINOR.PATCH) and how you would use tags, release branches, and CI automation to manage hotfixes, patch releases, and feature releases. Explain how to assign versions automatically in CI (e.g., based on commit history or pipeline metadata) and how to map semantic versions to environment labels like 'rc', 'staging', and 'prod'.
HardSystem Design
110 practiced
Describe a zero-downtime database migration strategy for adding a new column and backfilling its values across a large table used by multiple services. Include expansion and contraction phases, backfill orchestration, safe ordering of deploys across services, how to use feature flags to enable new code paths, and how to handle rollback if backfill or migration fails at scale.
HardTechnical
69 practiced
Create a CI/CD failure classification and automation playbook: how would you automatically classify failures (compile error, unit test regression, flaky test, infra/agent error, dependency fetch failure), notify the correct owners, and trigger automated remediation steps (retry with backoff, isolate flaky test, open issue, revert). Propose metrics to track MTTR and effectiveness of automation.

Unlock Full Question Bank

Get access to hundreds of Software Development Lifecycle and Tradeoffs interview questions and detailed answers.

Sign in to Continue

Join thousands of developers preparing for their dream job.