Some guidance on what I mean by a few terms that might otherwise cause some confusion. For help with other terms not appearing below, see the Alphabetical Index.
- The terms architecture and design have very similar definitions, so in many contexts they are used to denote the same thing, and are used interchangeably. If we are to try to make a distinction, though, then architecture usually refers to a more elevated level of design, expressed at a higher level of abstraction, and/or an earlier stage of design.
- Someone who is paying for the software development, and/or will be a presumed beneficiary of the development, and/or has been designated to represent the interests of other presumed beneficiaries (such as a product owner or product manager). Note that the term “customer” is intended to include users of the software, but is not necessarily limited to those who directly use the software.
- Someone who participates in the software development process; some technical proficiency and ability to code are generally implicit, but the term is not meant to be narrowly synonymous with the reductive notion of a “coder.”
- One element of a product that can be described, developed and demonstrated with some degree of independence from other such elements.
- A short, regular cycle (usually 1 - 4 weeks) for producing working software; also known as a “sprint.”
- The regular, repeated steps followed by a development team as they engage in their work.
- The software being developed (aka “system” or “application”).
- A software development effort with a goal, customers, leaders and one or more developers.
- A short, regular cycle (usually 1 - 4 weeks) for producing working software; also known as an “iteration.”