Gerald Ajam

Library / Glossary / The craft glossary

Software development for non-engineers glossary

46 terms from R11, Software development for non-engineers — 22 defined in the guide itself and 24 more from the field around it. Every term the guide teaches links to the slide that teaches it.

The whole craft glossary

R11 · How to build

Software development for non-engineers

What is actually happening when engineers build?

Every term below is defined in the words of software development for non-engineers, guide R11 of craft guides for educational technologists, and opens the guide at the slide where it is taught. 24 of the 46 are the field’s vocabulary rather than the guide’s own: words a reader will meet around this subject, defined here because the guide assumes them. 2 terms are also defined by another guide in the series; where the two differ, both wordings are given. The whole craft glossary holds all of them together.

TermDefinitionReferred to inRead further
A
API

Application programming interface: the published set of requests a system will accept from other software.

B
Back end

The servers and databases that hold a system's rules and records, out of the user's sight.

Black-box monitoring

Checking a live system from the outside, as a user would, for example with an automated login.

  • Beyer, B., Jones, C., Petoff, J., & Murphy, N. R. (Eds.). (2016). Site reliability engineering: How Google runs production systems. O'Reilly Media. sre.google
Blameless postmortem

A review of an incident that looks for contributing causes without blaming individuals (Beyer et al., 2016).

  • Beyer, B., Jones, C., Petoff, J., & Murphy, N. R. (Eds.). (2016). Site reliability engineering: How Google runs production systems. O'Reilly Media. sre.google
Branch

A separate line of work in version control, where changes can be made and tested without affecting the main line until they are merged back in.

  • R11Software development for non-engineersFrom the field · not in the guide
  • Loeliger, J., & McCullough, M. (2012). Version control with Git: Powerful tools and techniques for collaborative software development (2nd ed.). O'Reilly Media.
Brooks's law

Adding people to a late software project makes it later, because new people must be trained and must coordinate with everyone else (Brooks, 1975).

  • Brooks, F. P., Jr. (1975). The mythical man-month: Essays on software engineering. Addison-Wesley. Anniversary edition published 1995. informit.com
C
Cache

A store of recently fetched or computed results kept close to where they are needed, so that repeat requests are answered faster and put less load on the system behind it.

  • R11Software development for non-engineersFrom the field · not in the guide
  • Fielding, R., Nottingham, M., & Reschke, J. (Eds.). (2022). HTTP caching (RFC 9111). Internet Engineering Task Force. doi
Capacity planning

Forecasting the demand a system will face, including its predictable peaks, and making sure enough computing resource is in place, tested and paid for before that demand arrives.

  • R11Software development for non-engineersFrom the field · not in the guide
  • Beyer, B., Jones, C., Petoff, J., & Murphy, N. R. (Eds.). (2016). Site reliability engineering: How Google runs production systems. O'Reilly Media. sre.google
  • Government Digital Service. (2017, February 6). Test your service's performance. GOV.UK Service Manual. gov.uk
Client–server model

The arrangement behind most web software: a client, such as a browser or app, sends requests, and a server holding the shared data and rules sends back responses.

  • R11Software development for non-engineersFrom the field · not in the guide
  • MDN Web Docs. (n.d.). How the web works. Mozilla. Retrieved September 17, 2026, from developer.mozilla.org
  • Fielding, R. T., & Taylor, R. N. (2002). Principled design of the modern Web architecture. ACM Transactions on Internet Technology, 2(2), 115–150. doi
Cloud computing

Rented computing resources that can be added or released quickly with little effort (Mell & Grance, 2011).

  • Mell, P., & Grance, T. (2011). The NIST definition of cloud computing (NIST Special Publication 800-145). National Institute of Standards and Technology. doi
Code review

The reading of one developer's changes by another before they are merged, to find defects, improve the code and spread knowledge of it across the team.

  • R11Software development for non-engineersFrom the field · not in the guide
  • Bacchelli, A., & Bird, C. (2013). Expectations, outcomes, and challenges of modern code review. In Proceedings of the 35th International Conference on Software Engineering (pp. 712–721). IEEE. doi
Conway's law

The observation that a system's structure comes to mirror the communication structure of the organisation that built it: three contracted teams tend to produce a system in three parts.

  • R11Software development for non-engineersFrom the field · not in the guide
  • Brooks, F. P., Jr. (1975). The mythical man-month: Essays on software engineering. Addison-Wesley. Anniversary edition published 1995. informit.com
  • Conway, M. E. (1968). How do committees invent? Datamation, 14(4), 28–31.
  • Skelton, M., & Pais, M. (2019). Team topologies: Organizing business and technology teams for fast flow. IT Revolution Press.
D
Database

The part of a system that stores records, such as students, classes and marks.

  • Codd, E. F. (1970). A relational model of data for large shared data banks. Communications of the ACM, 13(6), 377–387. doi
Domain Name System (DNS)

The internet's directory, which turns a name such as a school's web address into the numeric address of the server to contact. A DNS fault makes a working service unreachable.

  • R11Software development for non-engineersFrom the field · not in the guide
  • MDN Web Docs. (n.d.). How the web works. Mozilla. Retrieved September 17, 2026, from developer.mozilla.org
  • Mockapetris, P. (1987). Domain names: Concepts and facilities (RFC 1034). Internet Engineering Task Force. doi
E
End-to-end test

An automated test that drives the whole running system as a user would, for example by logging in through a browser and submitting work. Slow and fragile, so kept few.

  • R11Software development for non-engineersFrom the field · not in the guide
Error budget

The amount of failure a reliability target allows over a period; one minus the target.

R12 The amount of unreliability a service may have in a period before releases pause (Beyer et al., 2016).

  • Beyer, B., Jones, C., Petoff, J., & Murphy, N. R. (Eds.). (2016). Site reliability engineering: How Google runs production systems. O'Reilly Media. sre.google
F
Four golden signals

Four signals worth watching on any live service: latency, traffic, errors and saturation (Beyer et al., 2016).

  • Beyer, B., Jones, C., Petoff, J., & Murphy, N. R. (Eds.). (2016). Site reliability engineering: How Google runs production systems. O'Reilly Media. sre.google
Front end

The part of a system that runs in the browser or app and that users see and touch.

R03 The early, uncertain stage of design where a team decides what to design, if anything (Sanders & Stappers, 2008).

  • Sanders, E. B.-N., & Stappers, P. J. (2008). Co-creation and the new landscapes of design. CoDesign, 4(1), 5–18. doi
  • MDN Web Docs. (n.d.). How the web works. Mozilla. Retrieved September 17, 2026, from developer.mozilla.org
G
Git

The most widely used version control system. Each developer holds a full copy of the project's history and exchanges changes with a shared copy, usually on a hosting service.

  • R11Software development for non-engineersFrom the field · not in the guide
  • Chacon, S., & Straub, B. (2014). Pro Git (2nd ed.). Apress.
  • Loeliger, J., & McCullough, M. (2012). Version control with Git: Powerful tools and techniques for collaborative software development (2nd ed.). O'Reilly Media.
I
Integration test

An automated test that checks several parts of a system working together, such as the code and its database, rather than one unit on its own.

  • R11Software development for non-engineersFrom the field · not in the guide
  • Fowler, M. (2012, May 1). Test pyramid. martinfowler.com. martinfowler.com
  • Myers, G. J. (1979). The art of software testing. Wiley.
L
Latency

The delay between sending a request and receiving the response. Users feel it as slowness, and it usually climbs steeply as a system nears its capacity.

  • R11Software development for non-engineersFrom the field · not in the guide
  • Beyer, B., Jones, C., Petoff, J., & Murphy, N. R. (Eds.). (2016). Site reliability engineering: How Google runs production systems. O'Reilly Media. sre.google
  • Kleppmann, M. (2017). Designing data-intensive applications: The big ideas behind reliable, scalable, and maintainable systems. O'Reilly Media.
Legacy system

An older system that an organisation still depends on but finds hard to change, because its technology is outdated, its authors have left or it lacks tests and documentation.

  • R11Software development for non-engineersFrom the field · not in the guide
  • Feathers, M. C. (2004). Working effectively with legacy code. Prentice Hall. doi
  • Bisbal, J., Lawless, D., Wu, B., & Grimson, J. (1999). Legacy information systems: Issues and directions. IEEE Software, 16(5), 103–111. doi
Load balancer

A component that spreads incoming requests across several servers, so that no single one is overwhelmed and a failed server can be taken out of use.

  • R11Software development for non-engineersFrom the field · not in the guide
  • Beyer, B., Jones, C., Petoff, J., & Murphy, N. R. (Eds.). (2016). Site reliability engineering: How Google runs production systems. O'Reilly Media. sre.google
Load test

A test that sends a system realistic or higher-than-expected traffic to see how it copes and where it breaks.

  • Government Digital Service. (2017, February 6). Test your service's performance. GOV.UK Service Manual. gov.uk
  • Office of Inspector General. (2016). HealthCare.gov: Case study of CMS management of the federal marketplace (OEI-06-14-00350). U.S. Department of Health and Human Services. oig.hhs.gov
  • U.S. Government Accountability Office. (2014). Healthcare.gov: Ineffective planning and oversight practices underscore the need for improved contract management (GAO-14-694). gao.gov
M
Microservices

An architecture that splits a system into small services, each run and deployed separately and talking over a network. The alternative, one application deployed as a whole, is called a monolith.

  • R11Software development for non-engineersFrom the field · not in the guide
  • Newman, S. (2015). Building microservices: Designing fine-grained systems. O'Reilly Media.
Migration

Moving existing data or systems into a new structure or location.

    N
    Non-functional requirement

    A requirement about how well a system works, such as speed, reliability or security, rather than what it does.

    • ISO/IEC. (2023). Systems and software engineering — Systems and software Quality Requirements and Evaluation (SQuaRE) — Product quality model (ISO/IEC Standard No. 25010:2023). International Organization for Standardization. iso.org
    O
    Open-source software

    Software whose source code is published under a licence that lets anyone use, study, change and redistribute it. Most modern systems are built largely from open-source components.

    • R11Software development for non-engineersFrom the field · not in the guide
    • Raymond, E. S. (1999). The cathedral and the bazaar: Musings on Linux and open source by an accidental revolutionary. O'Reilly Media. doi
    P
    Product quality model

    The international model of nine characteristics of software quality, among them functional suitability, reliability, security, maintainability and safety (ISO/IEC, 2023).

    • ISO/IEC. (2023). Systems and software engineering — Systems and software Quality Requirements and Evaluation (SQuaRE) — Product quality model (ISO/IEC Standard No. 25010:2023). International Organization for Standardization. iso.org
    Pull request

    A proposal to merge a set of changes from a branch into the main code, which teammates can discuss, review and test before it is accepted. Some tools call it a merge request.

    • R11Software development for non-engineersFrom the field · not in the guide
    • Chacon, S., & Straub, B. (2014). Pro Git (2nd ed.). Apress.
    • Gousios, G., Pinzger, M., & van Deursen, A. (2014). An exploratory study of the pull-based software development model. In Proceedings of the 36th International Conference on Software Engineering (pp. 345–355). ACM. doi
    R
    Refactoring

    Improving the structure of existing code without changing what it does; a common way to repay technical debt.

    • Cunningham, W. (1992). The WyCash portfolio management system. In Addendum to the proceedings on object-oriented programming systems, languages, and applications (OOPSLA '92) (pp. 29–30). ACM. doi
    • Fowler, M. (1999). Refactoring: Improving the design of existing code. Addison-Wesley.
    Regression test

    A test re-run after every change to confirm that features which used to work still do. A regression is a fault introduced into something that previously worked.

    • R11Software development for non-engineersFrom the field · not in the guide
    • Myers, G. J. (1979). The art of software testing. Wiley.
    REST

    Representational state transfer: the architectural style of the web, in which clients act on named resources through a small uniform set of requests. Most web APIs today are described as RESTful.

    • R11Software development for non-engineersFrom the field · not in the guide
    • Fielding, R. T. (2000). Architectural styles and the design of network-based software architectures [Doctoral dissertation, University of California, Irvine].
    • Fielding, R. T., & Taylor, R. N. (2002). Principled design of the modern Web architecture. ACM Transactions on Internet Technology, 2(2), 115–150. doi
    Rising cost of defects

    The popular claim that a defect costs up to 100 times more to fix after release; the original data were thin, and 171 projects showed no consistent effect (Menzies et al., 2017).

    • Menzies, T., Nichols, W., Shull, F., & Layman, L. (2017). Are delayed issues harder to resolve? Revisiting cost-to-fix of defects throughout the lifecycle. Empirical Software Engineering, 22(4), 1903–1935. doi
    • Bossavit, L. (2015). The leprechauns of software engineering: How folklore turns into fact and what to do about it. Leanpub. leanpub.com
    S
    Scalability

    A system's ability to handle more users, data or requests by adding resources, without being redesigned. Scaling up uses a bigger machine; scaling out uses more machines.

    • R11Software development for non-engineersFrom the field · not in the guide
    • Kleppmann, M. (2017). Designing data-intensive applications: The big ideas behind reliable, scalable, and maintainable systems. O'Reilly Media.
    Service level indicator (SLI)

    A defined measure of some aspect of a service, such as the share of logins that succeed.

    • Beyer, B., Jones, C., Petoff, J., & Murphy, N. R. (Eds.). (2016). Site reliability engineering: How Google runs production systems. O'Reilly Media. sre.google
    Service level objective (SLO)

    A target value for a service level indicator, such as 99.9% of logins succeeding each month.

    • Beyer, B., Jones, C., Petoff, J., & Murphy, N. R. (Eds.). (2016). Site reliability engineering: How Google runs production systems. O'Reilly Media. sre.google
    Single point of failure

    A part of a system with no backup, whose failure stops the whole service. Reliable designs remove them by duplicating components.

    • R11Software development for non-engineersFrom the field · not in the guide
    • Kleppmann, M. (2017). Designing data-intensive applications: The big ideas behind reliable, scalable, and maintainable systems. O'Reilly Media.
    Software architecture

    The main parts of a system, how they connect, and the early decisions about them that are costly to change later. It largely decides qualities such as speed, reliability and ease of change.

    • R11Software development for non-engineersFrom the field · not in the guide
    • ISO/IEC. (2023). Systems and software engineering — Systems and software Quality Requirements and Evaluation (SQuaRE) — Product quality model (ISO/IEC Standard No. 25010:2023). International Organization for Standardization. iso.org
    • Bass, L., Clements, P., & Kazman, R. (1998). Software architecture in practice. Addison-Wesley.
    Software as a service (SaaS)

    Software that the supplier runs on its own cloud infrastructure and customers use over the internet, usually by subscription, with nothing to install or upgrade themselves.

    • R11Software development for non-engineersFrom the field · not in the guide
    • Mell, P., & Grance, T. (2011). The NIST definition of cloud computing (NIST Special Publication 800-145). National Institute of Standards and Technology. doi
    T
    Technical debt

    The future cost of a shortcut taken now, paid as extra effort on every later change until it is repaid (Cunningham, 1992).

    • Cunningham, W. (1992). The WyCash portfolio management system. In Addendum to the proceedings on object-oriented programming systems, languages, and applications (OOPSLA '92) (pp. 29–30). ACM. doi
    • Kruchten, P., Nord, R. L., & Ozkaya, I. (2012). Technical debt: From metaphor to theory and practice. IEEE Software, 29(6), 18–21. doi
    • Fowler, M. (2009, October 14). Technical debt quadrant. martinfowler.com. martinfowler.com
    Technical debt quadrant

    A sorting of technical debt two ways, reckless or prudent and deliberate or inadvertent; the useful distinction is between prudent and reckless debt (Fowler, 2009).

    • Fowler, M. (2009, October 14). Technical debt quadrant. martinfowler.com. martinfowler.com
    • Kruchten, P., Nord, R. L., & Ozkaya, I. (2012). Technical debt: From metaphor to theory and practice. IEEE Software, 29(6), 18–21. doi
    Test pyramid

    A guide to balancing automated tests: many small unit tests, fewer broad ones (Fowler, 2012).

    U
    Unit test

    An automated check of one small piece of code, usually run in seconds on every change.

    User acceptance testing (UAT)

    Testing by the customer or the intended users, before go-live, of whether a system does what they need in their own setting. Often a formal condition of accepting and paying for delivered work.

    • R11Software development for non-engineersFrom the field · not in the guide
    • Myers, G. J. (1979). The art of software testing. Wiley.
    V
    Version control

    A system that records every change to a set of files, who made it and why, so that earlier versions can be recovered and several people can work on the same code.

    • R11Software development for non-engineersFrom the field · not in the guide
    • Loeliger, J., & McCullough, M. (2012). Version control with Git: Powerful tools and techniques for collaborative software development (2nd ed.). O'Reilly Media.
    Singapore