HomeSubjectsUniversityBlogAbout

Software Development Practices

Topic in Programming

210 total MCQsShowing 30 with explanations10 Easy10 Medium10 Hard

About This Topic

Software development practices are the everyday habits and workflows teams use to write, review, integrate and ship code reliably and collaboratively. Questions focus heavily on Git: commits, branches, merge versus rebase versus cherry-pick, pull requests and resolving merge conflicts. You should recognise code smells and refactoring, coding conventions, documentation and code reviews. Delivery topics include CI/CD pipelines, staging environments, feature flags for gradual releases, and the four DORA metrics: deployment frequency, lead time for changes, change failure rate and time to restore service. Architecture-flavoured items cover domain-driven design, observability through logs, metrics and traces, and the strangler fig pattern for replacing legacy systems.

Below are 30 practice questions from a pool of 210 Software Development Practices MCQs, one of 16 topics in Programming. Each shows the correct answer with an explanation; when you are ready, take a timed quiz to test recall under exam conditions.

Practice Questions

Each question below shows the correct answer with a full explanation. Use these to build conceptual understanding before attempting a timed quiz.

Software Development PracticesEasy

Q1. What is agile development?

  1. A.A programming language designed for rapid application development tasks
  2. B.An iterative approach emphasizing collaboration and short delivery cycles✓ Correct
  3. C.A testing method for validating software behavior against requirements
  4. D.Developing software as fast as possible without any planning at all

Explanation

Agile uses iterative sprints, continuous feedback, and adaptive planning to deliver working software incrementally.

Report an error in this question

Software Development PracticesEasy

Q2. What is version control?

  1. A.Tracking and managing code changes over time✓ Correct
  2. B.Controlling which program version users access
  3. C.A testing tool for validating software behavior
  4. D.A deployment tool for releasing code to servers

Explanation

Version control tracks all changes to source code, allowing collaboration and reverting to previous versions.

Report an error in this question

Software Development PracticesEasy

Q3. What is Git?

  1. A.A distributed version control system for code✓ Correct
  2. B.A general-purpose programming language
  3. C.A database for storing application data
  4. D.A compiler for translating source to binaries

Explanation

Git is a distributed version control system that tracks changes in source code.

Report an error in this question

Software Development PracticesEasy

Q4. What is a merge in Git?

  1. A.Creating a new commit in the repository
  2. B.Splitting code into separate source files
  3. C.Combining changes from one branch into another✓ Correct
  4. D.Deleting a branch from the repository

Explanation

Merging integrates changes from one branch into another.

Report an error in this question

Software Development PracticesEasy

Q5. What is a branch in Git?

  1. A.An independent line of development from main✓ Correct
  2. B.A variable used to store temporary values
  3. C.A copy of a file in the project directory
  4. D.A function defined in the source code file

Explanation

A branch is a separate line of development allowing work without affecting the main codebase.

Report an error in this question

Software Development PracticesEasy

Q6. What is a code review?

  1. A.Deleting unused code from the codebase
  2. B.Having developers examine code before merging✓ Correct
  3. C.Writing documentation for the application
  4. D.Running automated tests on the source code

Explanation

Code review is the systematic examination of source code by peers to find bugs and improve quality.

Report an error in this question

Software Development PracticesEasy

Q7. What is a commit in version control?

  1. A.A deployment to the production environment
  2. B.A branch created for feature development
  3. C.Deleting code from the shared repository
  4. D.A snapshot of changes saved with a message✓ Correct

Explanation

A commit records a set of changes to the repository with a descriptive message.

Report an error in this question

Software Development PracticesEasy

Q8. What is a pull request?

  1. A.A data request sent to a server for information
  2. B.A build request to compile and package the application
  3. C.Pulling code packages from the internet registry
  4. D.A request to merge changes with review and discussion✓ Correct

Explanation

A pull request proposes merging changes, providing a platform for code review and discussion.

Report an error in this question

Software Development PracticesEasy

Q9. What is the purpose of code comments?

  1. A.To define variables inside the source file
  2. B.To make the code execute faster at runtime
  3. C.To handle errors during program execution
  4. D.To explain the intent and reasoning in code✓ Correct

Explanation

Comments explain why code exists and clarify complex logic, aiding maintenance.

Report an error in this question

Software Development PracticesMedium

Q10. What is Continuous Integration (CI)?

  1. A.A deployment method for releasing code directly to production servers
  2. B.Integrating code changes only once at the very end of development
  3. C.A branching strategy for organizing feature development work in Git
  4. D.Frequently merging code with automated builds and tests for feedback✓ Correct

Explanation

CI involves frequently integrating code with automated builds and tests to catch issues early.

Report an error in this question

Software Development PracticesMedium

Q11. What is Continuous Deployment/Delivery (CD)?

  1. A.Automatically deploying or making release-ready every passing change✓ Correct
  2. B.A testing strategy for validating software behavior before release
  3. C.A branching model for organizing development work into branches
  4. D.Manual deployment performed by operations team members only

Explanation

Continuous Delivery ensures code is always release-ready; Continuous Deployment automatically pushes passing changes to production.

Report an error in this question

Software Development PracticesEasy

Q12. What is documentation in software development?

  1. A.Only code comments written inside source files
  2. B.Written descriptions of software design and usage✓ Correct
  3. C.A testing tool for validating software correctness
  4. D.A deployment process for releasing to production

Explanation

Documentation explains the software's purpose, architecture, API, and usage instructions.

Report an error in this question

Software Development PracticesMedium

Q13. What is a sprint in Scrum?

  1. A.A fixed-length iteration for completing prioritized tasks✓ Correct
  2. B.A deployment window for releasing features to production
  3. C.A programming technique for optimizing code performance
  4. D.Running fast to meet project deadlines under pressure

Explanation

A sprint is a time-boxed iteration in Scrum methodology for completing prioritized tasks.

Report an error in this question

Software Development PracticesMedium

Q14. What is a code smell?

  1. A.Malicious code injected by an attacker into the system
  2. B.A runtime bug that crashes the application unexpectedly
  3. C.A surface indication suggesting a deeper design problem✓ Correct
  4. D.A syntax error detected during the compilation process

Explanation

A code smell suggests a deeper design problem, indicating refactoring is needed.

Report an error in this question

Software Development PracticesMedium

Q15. What is the YAGNI principle?

  1. A.A testing approach for validating code correctness
  2. B.A design pattern for creating reusable components
  3. C.A programming language for building applications
  4. D.Do not implement functionality until actually needed✓ Correct

Explanation

YAGNI advises against adding functionality based on speculation about future needs.

Report an error in this question

Software Development PracticesMedium

Q16. What is the KISS principle?

  1. A.A security principle for protecting sensitive user data
  2. B.A greeting or expression of affection between people
  3. C.A testing method for validating software behavior fully
  4. D.Keep It Simple: avoid unnecessary complexity in design✓ Correct

Explanation

KISS advocates simplicity in design, avoiding unnecessary complexity.

Report an error in this question

Software Development PracticesMedium

Q17. What is technical debt?

  1. A.Financial debt from purchasing technology equipment
  2. B.Server costs for hosting applications in the cloud
  3. C.The cost of future rework from choosing quick solutions✓ Correct
  4. D.A type of bug caused by incorrect logic in the code

Explanation

Technical debt accumulates when shortcuts save time now but require more effort later.

Report an error in this question

Software Development PracticesMedium

Q18. What is pair programming?

  1. A.Programming alone without any collaboration at all
  2. B.Writing duplicate code for redundancy and safety nets
  3. C.Two developers at one workstation: driver and navigator✓ Correct
  4. D.Programming with matched pairs of source code files

Explanation

Pair programming has two developers working together: the driver writes code while the navigator reviews.

Report an error in this question

Software Development PracticesMedium

Q19. What is the difference between waterfall and agile methodologies?

  1. A.Agile has no planning or structure and relies entirely on improvisation
  2. B.There is no meaningful difference between the two methodologies at all
  3. C.Waterfall is always faster than agile for delivering software to production
  4. D.Waterfall is sequential with fixed phases; agile is iterative and flexible✓ Correct

Explanation

Waterfall follows a linear sequence. Agile uses iterative cycles with continuous feedback.

Report an error in this question

Software Development PracticesMedium

Q20. What is a merge conflict?

  1. A.A deployment error when releasing code to production servers
  2. B.A runtime error that occurs during program execution in prod
  3. C.A syntax error caused by incorrect code in the source file
  4. D.When Git cannot auto-merge because branches changed same code✓ Correct

Explanation

A merge conflict occurs when two branches have made different changes to the same lines of code.

Report an error in this question

Software Development PracticesHard

Q21. What is the Twelve-Factor App methodology?

  1. A.Twelve testing phases that every software project must go through
  2. B.A math-based approach to solving programming problems algorithmically
  3. C.Twelve best practices for building scalable cloud-native applications✓ Correct
  4. D.Twelve programming languages that every developer should learn fully

Explanation

The Twelve-Factor App defines best practices for building SaaS applications.

Report an error in this question

Software Development PracticesHard

Q22. What is trunk-based development?

  1. A.A database design pattern for normalizing relational table schemas
  2. B.A branching strategy with single shared branch and short-lived branches✓ Correct
  3. C.Using tree data structures for organizing hierarchical information
  4. D.A testing strategy for validating software behavior systematically

Explanation

Trunk-based development uses a single shared branch with small, frequent commits and short-lived feature branches.

Report an error in this question

Software Development PracticesHard

Q23. What is the concept of 'shift left' in testing?

  1. A.Moving code directly to production without any testing or review
  2. B.Left-aligning all source code for consistent formatting readability
  3. C.Performing testing earlier in the development lifecycle for detection✓ Correct
  4. D.Moving test files to the left side of the project directory tree

Explanation

Shift left moves testing earlier in the development process to catch defects when they are cheaper to fix.

Report an error in this question

Software Development PracticesHard

Q24. What is the difference between monorepo and polyrepo strategies?

  1. A.Polyrepo is only suitable for small projects with limited source code
  2. B.Monorepo is always the better choice regardless of project requirements
  3. C.There is no meaningful difference between the two repository strategies
  4. D.Monorepo stores all projects in one repo; polyrepo uses separate repos✓ Correct

Explanation

Monorepo stores all projects together. Polyrepo uses separate repositories for isolation and independent lifecycles.

Report an error in this question

Software Development PracticesHard

Q25. What is feature flagging/toggling?

  1. A.A branching strategy for organizing feature development in Git
  2. B.A testing tool for validating feature behavior before release
  3. C.Deleting features permanently from the codebase and all traces
  4. D.Enabling or disabling features at runtime without deploying code✓ Correct

Explanation

Feature flags toggle features at runtime without new deployments, enabling gradual rollouts and quick rollbacks.

Report an error in this question

Software Development PracticesHard

Q26. What is Infrastructure as Code (IaC)?

  1. A.Managing infrastructure through configuration files not manual processes✓ Correct
  2. B.A programming paradigm for organizing code into functional modules
  3. C.Writing source code directly on production servers for deployment
  4. D.A coding standard for formatting and naming conventions in code

Explanation

IaC uses configuration files to define and manage infrastructure programmatically.

Report an error in this question

Software Development PracticesHard

Q27. What is the concept of 'toil' in Site Reliability Engineering (SRE)?

  1. A.Testing software to validate that it meets all specified requirements
  2. B.Manual repetitive automatable work scaling linearly with service size✓ Correct
  3. C.Hard work that requires significant effort and long hours from team
  4. D.Debugging code to find and fix errors in the application source

Explanation

In SRE, toil is manual, repetitive work that should be eliminated through automation.

Report an error in this question

Software Development PracticesHard

Q28. What is observability in software systems?

  1. A.A debugging tool for stepping through code execution line by line
  2. B.Watching code run step by step in a debugger tool window
  3. C.Monitoring only server uptime without any additional data collection
  4. D.Understanding system state from external outputs like logs and metrics✓ Correct

Explanation

Observability provides logs, metrics, and traces for understanding and diagnosing issues in complex systems.

Report an error in this question

Software Development PracticesHard

Q29. What is the strangler fig pattern for legacy modernization?

  1. A.Gradually replacing legacy systems by building new functionality around✓ Correct
  2. B.A refactoring tool for automatically restructuring legacy code
  3. C.A tree-related data structure pattern for hierarchical organization
  4. D.Deleting all old code at once and replacing with a new system

Explanation

The strangler fig pattern incrementally replaces a legacy system by routing new requests to new code.

Report an error in this question

Software Development PracticesHard

Q30. What is the CAP theorem and how does it affect development practices?

  1. A.A design pattern for organizing code into reusable modular components
  2. B.In distributed systems, only two of Consistency, Availability, Partition tolerance✓ Correct
  3. C.A coding principle for writing clean and maintainable source code
  4. D.A testing theorem for determining the minimum number of test cases

Explanation

The CAP theorem states that distributed systems can guarantee at most two of: Consistency, Availability, and Partition tolerance.

Report an error in this question

Ready to test yourself on Software Development Practices?

Take a timed quiz drawn from 210+ questions on this topic. No signup required — your progress saves in your browser.

Start Software Development Practices Quiz