Skip to content

Software Engineering Glossary

Writing Python is only one slice of a working software developer’s job. The rest happens around the code: planning what to build, agreeing how the team will work, reviewing each other’s changes, getting code safely from a laptop to production, and keeping it healthy once it’s running. The Software Engineering Glossary collects the vocabulary that surrounds those activities.

These terms aren’t Python-specific, but they show up constantly in Python jobs, open source projects, and team conversations. Skim this area when you need to know what a flaky test, a hotfix, a software bill of materials (SBOM), or the ever-dreaded technical debt actually is.

Each entry gives a short, plain-language definition, a diagram and example where it helps, and pointers to neighboring concepts.

  • distributed tracing An observability technique that follows a request across multiple services, recording each step as a timestamped span on one shared timeline.
  • flaky test An automated test that passes sometimes and fails other times on the same code, eroding trust in continuous integration.
  • infrastructure as code (IaC) A practice of managing computing infrastructure through machine-readable configuration files, applied by tools like Terraform, Pulumi, or CloudFormation.
  • observability A practice for understanding a software system’s behavior from the outside by analyzing the signals it emits, grouped into logs, metrics, and traces.
  • smoke test A small, fast set of tests that runs after a build or deploy to confirm a system’s most critical paths still work.
  • software bill of materials (SBOM) A formal, machine-readable inventory of every component, version, and dependency that goes into building a piece of software.
  • staging environment A production-like environment used as the final gate before release, where a team verifies that a build behaves the way it will in production.
  • technical debt A metaphor for the accumulated future cost of an expedient software design, paid back later as slower changes, more bugs, and harder maintenance.
  • test pyramid A heuristic that spreads automated tests across layers, with many fast unit tests at the base and only a few slow end-to-end tests at the top.
  • threat modeling A structured security exercise that maps how a system works, identifies what could go wrong, and chooses a response for each risk.
  • twelve-factor app A methodology of twelve practices for building portable, scalable, cloud-deployable web services from a single shared codebase.