This page contains a list of often difficult or specialized words, their common abbreviations, and their definitions as used throughout the rest of this website. You can use this as a quick reference, or to share definitions with others. Where applicable, the source material the terminology was retrieved from is included as references.
Ability to rapidly change what we’re working on, The organization’s ability to quickly change direction.
Cognitive load refers to the amount of mental effort required to process information or complete a task. It can be influenced by factors such as task complexity, the individual’s working memory capacity, and the design of learning materials or environments.
Continuous improvement is an ongoing effort to enhance products, services, or processes by making small, incremental changes over time. It is a fundamental concept in quality management methodologies like Lean and Kaizen, aiming to boost efficiency and reduce waste.
Melvin Conway wrote: ‘Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure’. The law originates from the observation that software is built by teams of people who are organized in a specific way. In order to build software effectively, these groups must work together to achieve their shared goal. Therefore, the software produced by these teams will invariably resemble the structure of the teams themselves. As an example, a company with two separate teams working for different departments (invoicing and sales) will likely produce software that is divided into two separate modules, one for invoicing and one for sales. These modules will probably interact with each other along pre-defined interfaces. Much like the teams interact with each other along pre-defined communication channels. If the teams are working in isolation, the software will likely be built in a similar way, with the two modules being designed in a way that allows them to be deployed and changed as independently as possible.
Domain-Driven Design is a set of principles and schemes aimed at creating optimal systems of objects. Reduced to the
creation of software abstractions, which are called models of subject areas. These models include business logic that
establishes a link between the real conditions of the products’ application area and the code.
Domain-Driven Design is about creating shared understanding of the problem space. This shared understanding is reinforced ubiquitously via conversations,
code and diagrams. DDD’s Shared understanding enhances synergy and alignment, increasing the ability to deliver value sustainably — ideally over the lifetime of a product.
Efficiency refers to the ability to achieve maximum output with minimum input. It involves optimizing the use of resources (such as time, energy, and materials) to accomplish tasks in the most effective and economical manner, thereby reducing waste and increasing overall productivity.
Feedback loops are the mechanisms through which changes in one part of a system are amplified or dampened by the system itself. It is important to understand the different types of feedback loops, as they can have a significant impact on the behavior of a system.
The time it takes to deliver a piece of work from start (concept) to finish (delivered value in hands of end-users. The amount of time between the initiation of some process and its completion, e.g. the time required to manufacture or procure a product; the time required before something can be provided or delivered.
Systems Thinking is an approach to understanding and solving complex problems by viewing them as parts of an interconnected whole rather than in isolation. It involves recognizing patterns, relationships, and feedback loops within systems to better anticipate the impact of decisions and actions, thereby enabling more holistic and effective solutions.
A type of psychological stress that occurs when there is less (perceived) time available than is required to complete a task.