Table of Contents
- Agile and Ops Glossary
- Introduction
- Entries
- ACID
- Action priority matrix
- Agile
- Analytics
- Andon Cord
- Anomaly Detection
- Antifragility
- API
- Asynchronous
- AWS
- Backend
- Backlog
- Business As Usual (BAU)
- BAG (Big Audacious Goal)
- Bimodal IT
- Black-box
- Blameless Post-Mortem
- Blue-Green Deployment
- Brownfield
- Business intelligence (BI)
- Business logic
- Canary Release
- CAP Theroem
- Capital Expenditure (CapEx)
- Chaos Engineering
- Chaos Monkey
- Cloud computing
- Close of Business (COB )
- Cohesion
- Complex Event Processing (CEP)
- Container
- Conway's Law
- Context-Driven Architecture
- Continuous Integration (CI)
- Continuous Delivery (CD)
- Coupling
- Cover Your Ass (CYA)
- Cynefin
- Dark Launch
- Dashboard
- Deliverable
- Devops
- Disagree and commit
- DNS
- Docker
- Domain-Driven Design
- Egress
- Enterprise service bus (ESB)
- Ephemeral infrastructure (or systems)
- Estimation
- Extract, Transform, Load (ETL)
- Event sourcing
- Event-Driven Architecture (EDA)
- Expand/Contract Pattern
- Failure Demand
- Fan-out
- Feature Toggle
- Forward Fix
- Frontend
- Greenfield
- Ilities
- Immutable Infrastructure
- Information Radiator
- Infrastructure as Code
- Internet
- Ingress
- Integration
- Kafka
- Kanban
- Knight Capital
- Latency
- Lead time
- Lean development
- Load
- Load Balancing
- Logging
- Mean Time Between Failures (MTBF)
- Mean Time to Failure (MTTF)
- Mean Time to Recovery
- Mean Time to Repair (or recovery) (MTTR)*
- Message queue
- Metrics
- Microservice
- Middleware
- Monitoring
- Monolith
- MoSCoW Method
- Name, Blame, Shame
- Non-functional Requirement
- Observability
- One throat to squeeze
- Online Analytics Processing (OLAP)
- Online Transaction Processing (OLTP)
- OODA Loop
- Operationg Expense (OpEx)
- Optimistic Concurrency
- Percent Complete and Accurate
- Polyglot Persistance
- Post mortem
- RED method
- Relational Database Management System (RDBMS)
- Rewrite
- Rollback
- Rolling update
- Resilience
- Retrospective
- Scrum
- Serverless
- Service discovery
- Shift left
- Service Level Agreement (SLA)
- Service-Oriented Architecture (SOA)
- Site Reliability Engineer
- Six Sigma
- Statement of Work (SOW)
- SOAP
- Sharding
- Software development life cycle (SDCL)
- Strategy
- Synchronous
- Systems Thinking
- Sytemantics
- Tactics
- Technical Debt
- Telemetry
- Test Driven Development (TDD)
- Testing Pyramid
- Theory of Constraints
- Three Pillars of Observability
- Throughput
- Time-series database
- TINA (There is no alternative)
- Total cost of acquisition
- Toyota Production System
- Tracing
- Triage
- Trunk-based Development
- Turnkey Solution
- Two Pizza Team
- Undifferentiated Heavy Lifting
- Uptime
- USE Method
- User Story
- Value Stream
- Wardley Maps
- White-box
- Work in Progress (WIP)
Agile and Ops Glossary
Introduction
This is a repository of concepts frequently used and referenced in agile development processes and ops. The aim is to provide an interlinked list that can be browsed and discovered, serving as a tool for thought and communication.
Compiled and written by Ulaş Türkmen. Feel free to contact me for corrections or omissions.
Entries
ACID
A set of properties transactional databases should offer if they are to be taken seriously: Atomicity, Consistency, Isolation and Durability. Atomicity is a transaction being committed as a whole, i.e. either all statements in a transaction being applied or none. Consistency is the property of the database accepting only transactions that don't violate various invariants, such as constraints and triggers. Isolation is multiple transactions that affect the same tables appearing to run sequentially, even when they are being executed in parallel. Finally, durability is the capability of the system to present the state after a successfully committed transaction in the case of system failures.
Action priority matrix
A simple visual tool used to do quick comparisons of available tasks and prioritize them. Tasks are placed in a Cartesian graph, with the X axis as effort and Y axis as impact. The plane is then divided into four areas, as follows. INSERT GRAPH. The advantage of this simple method is that it will give you a very quick and simple comparison, which can be used for prioritization, without having to go through any expensive estimation exercises. It will not, however, replace a proper planning workshop, as it cannot be used to break apart epics, and carry out negotiations with product owners.
Agile
A revolutionary software development methodology that was a victim of its own success, and fell into disrepute after becoming an enterprise buzzword. Agile development was a result of the frustrations of the traditional ways of building software, which relied on processes and metrics taken over from other business areas, and experimentation with more human-oriented and dynamic methods of development.
Analytics
Analytics is the sum of the processes and tools for gathering, analyzing and displaying concrete data to understand an enterprise. Any interaction can be subjected to analytics, but the most important ones have the properties that they generate a significant amount of data, need to be followed to understand them, and have some hidden state that is not directly observable. Examples are website visitors, marketing campaigns, development processes.
Andon Cord
The Andon cord is a device through which workers that take care of a production line can notify others of a quality issue on the line, and stop the line in order to fix it. It is part of the Toyota Production System.
Anomaly Detection
A process by which anomalies can be determined.
Antifragility
A concept popularized by Nasim Nicholas Taleb of Black Swan fame, antifragility refers to the ability of systems to increase their robustness and resilience as a result of stressors, shock, volatility, noise or faults.
API
Asynchronous
A mode of processing in which IO requests do not block a language runtime. Compare to synchronous.
AWS
Amazon Web Services, the biggest provider of cloud services, the company that pretty much invented it.
Backend
The part of an online application that runs on application servers, providing the necessary API to the frontend, the part that runs on the client's computer. In modern times, the frontend is usually the part that runs on the browser and is written JavaScript, but this is doesn't necessarily have to be the case.
Backlog
In product planning, the list of features or tasks that need to be completed to reach certain goals.
Business As Usual (BAU)
An expression used to classify tasks that are relatively mundane, have to be manually executed, and provide the background in front of which business-relevant processes are executed.
BAG (Big Audacious Goal)
A big target in the future that can be used to motivate the workforce, state the goals of a company.
Bimodal IT
The idea that modern companies run two kinds of IT, the first being (Type 1) focused on transactional systems that are internal, and necessary to the functioning of the whole company, whereas the second (Type 2) is more exploratory, and targets user engagement. Type 1 is limited by correctness criteria and regulations, whereas Type 2 is more limited by getting attention and rapid development.
Black-box
Any method that involves no knowledge of a system, and only the user-facing surface. For example, there is black-box testing, monitoring, hacking etc. For the opposite, see white-box.
Blameless Post-Mortem
A kind of post-mortem in which people refrain from pointing fingers, and putting blame on individual people or teams. The intuition behind blameless post-mortems is that human error should be accounted for in the design of onlien systems, and should not lead to faults.
Blue-Green Deployment
A method of deployment where two installation of an application are alternated
Brownfield
This is a term used in urban planning to denote land that has been previously used for industrial or commercial purposes, and might have soil contamination due to hazardous waste. In software development, brownfield development refers to cases where new software has to coexist with existing legacy software, or legacy software has to be updated for new functionality. Compare with greenfield.
Business intelligence (BI)
??
Business logic
The native, significant logic of a business domain that needs to be implemented in software.
Canary Release
CAP Theroem
A theorem in theoretical computer science that states that, in the presence of a network partition, a distributed data store cannot simultaneously provide both consistency and availability.
Capital Expenditure (CapEx)
Funds used by a company to acquire assets. These can be tangible assets such as land, buildings or technical equipment, or intangible assets, such as copyrights, patents etc. Capital expenditure appears on the balance sheet as investment, rather than as expenditure. The opposite is Operating Expense. Tax-wise, capital expenditure has to be capitalized (??) or written off (??) over time, in comparison to operating expenditure, which can be written off completely.
Chaos Engineering
A practice of testing large highly-available systems by intentionally introducing system failures, and observing the behavior of the system.
Chaos Monkey
A tool invented and popularized by Netflix that intentionally introduced random failures in the application cluster, thereby testing the resilience of the application.
Cloud computing
A computing paradigm where resources are ran on a centralized, remote center (the cloud) and can be arbitrarily commissioned.
Close of Business (COB )
The point at which the business day ends, generally 5 PM in a given timezone. Contrast with End of Day.
Cohesion
Contrast with coupling.
Complex Event Processing (CEP)
??
Container
A packaging method for delivering software. The most widely used implementation is Docker.
Conway's Law
"Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations".
Context-Driven Architecture
??
Continuous Integration (CI)
The automated and validated merging of new code into existing code. CI is one of the central practices of agile development and devops. Through the automated testing of their new code pushes to the central repository, which triggers a test run, developers get rapid feedback to their changes, and are aware of bugs or dead ends before they have dug themselves in, or forgot why they made the change in the first place.
Continuous Delivery (CD)
??
Coupling
A central concept in system design, coupling refers to the degree to which multiple systems are affected by the operation and failures of each other. Coupling can be contrasted with cohesion.
Cover Your Ass (CYA)
??
Cynefin
Dark Launch
A pattern of launching a feature used by heavily used sites where requests to the feature are made in order to test load conditions and correctness, but the results are not displayed to the user.
Dashboard
An information radiator that displays relevant information about a website, business process or similar.
Deliverable
???
Devops
???
Disagree and commit
Bezos invented it.
DNS
Domain Name Service is one of the most important building blocks of the Internet.
Docker
An implementation of containerization technology.
Domain-Driven Design
???
Egress
Process and interfaces through which data is exported from a system. This term derives from network terminology, where egress traffic refers to requests that start inside a system and end outside it.
Enterprise service bus (ESB)
Event queue with logic, as used in enterprise systems.
Ephemeral infrastructure (or systems)
Systems or infrastructural elements that are provisioned and destroyed regularly, in comparison to long-lived components.
Estimation
Extract, Transform, Load (ETL)
A process in database usage, described by the named steps.
Event sourcing
A pattern of development where every change to the state of an application is captured and recorded in the order they happened. This later enables things like auditing, reverting or replaying these changes. There are persistency tools that support this out of the box, such as Datomic.
Event-Driven Architecture (EDA)
??
Expand/Contract Pattern
A method of developing individual components of an application over interfaces.
Failure Demand
Demand caused by a failure to do something or do something right for the customer. Failures in one part of a system can create demand somewhere else.
Fan-out
Feature Toggle
Forward Fix
Opposite of a rollback.
Frontend
Greenfield
In urban planning, greenfield land is undeveloped land that is used for agriculture, landscape design, or simply left to evolve naturally. In software development, a greenfield project is one where no concern for existing software or systems has to be taken, and the development can start and continue in a brand new environment. Compare with No description for this link.
Ilities
An alternative name for non-functional requirements, as many of them, such as stability or portability, end with -ility.
Immutable Infrastructure
An infrastructure paradigm in which the computing components (i.e. servers, containers etc) are immutable. That is, no change is applied to them once they are in operation. The changes that are prohibited are things such as configuration managements, stopping and starting of services, or modifying code. Instead of such modifications, the components are swapped with new ones with the required changes.
Information Radiator
???
Infrastructure as Code
A practice in which all infrastructure is created and maintained using programmatic tools such as scripts or provisioning software, and the code for these tools are maintained in a repository just like code.
Internet
The network of networks.
Ingress
The processes and interfaces through which data is ingested, i.e. sucked into a system. The term derives from network terminology, where a request that originates from outside of a sytem but ends on the inside is called ingress traffic.
Integration
???
Kafka
A distributed streaming platform, whatever that is
Kanban
A software and IT management and development method
Knight Capital
A trading company that went bankrupt because of a software error.
Latency
Latency in a software context is the time delay between a request being made, and the arrival of the first part of the response to that request. This request usually happens over a network, and the latency is a combination of the network delay and the processing overhead until the onset of the response. It is also possible to talk of network latency, referring to the delay caused only by the network traffic.
Lead time
The amount of time that occurs between starting a work item until it is deployed.
Lean development
Based on lean production.
Load
??
Load Balancing
???
Logging
???
Mean Time Between Failures (MTBF)
A measure of the reliability of a system
Mean Time to Failure (MTTF)
??
Mean Time to Recovery
??
Mean Time to Repair (or recovery) (MTTR)*
??
Message queue
Also called a message bus, a message queue is a piece of software that can receive a message from an application, and deliver to some other application, based on a given delivery logic.
Metrics
Measurements of resource usage or behavior patterns that are collected from an application.
Prometheus book? https://www.digitalocean.com/community/tutorials/an-introduction-to-metrics-monitoring-and-alerting
Microservice
??
Middleware
??
Monitoring
Monolith
The opposite of microservice
MoSCoW Method
A method of prioritizing various requirements, in which they are placed under the following columns: Must have, Should have, Could have, Won't have (or Wish).
Name, Blame, Shame
The name given to a cultural attribute where mistakes are dealt with by naming the people who are believed to have named them, putting the blame on them explicitly, and them shaming them within a group to make sure it doesn't happen again.
Non-functional Requirement
Requirements that are not functional.
Observability
The measure of how well the behavior and state of a sytem can be determined from the outputs of a sytem.
https://thenewstack.io/observability-a-3-year-retrospective/ https://martinfowler.com/articles/domain-oriented-observability.html https://mads-hartmann.com/sre/2019/08/04/journey-into-observability-reading-material.html
One throat to squeeze
???
Online Analytics Processing (OLAP)
???
Online Transaction Processing (OLTP)
???
OODA Loop
A military term, referring to the Observe, Orient, Decide, Act cycle.
Operationg Expense (OpEx)
The costs incurred by a business through its normal operation, such as payroll, insurance, equipment. Opposite is Capital Expenditure.
Optimistic Concurrency
A kind of concurrency where collusions are assumed to happen rarely, and are to be handled by the user.
Percent Complete and Accurate
Percentage of units in a workflow that are delivered in finished and correct form, thereby not requiring the unit to be pushed back for modification.
Polyglot Persistance
The usage of different kinds of persistency solutions in a single system to take advantage of their differing characteristics.
Post mortem
A ritual performed after a serious incident to sooth the executives and clients. In the worst case, a post mortem serves as a CYA, giving you a line to tell those responsible for communication, or directly to the client. In the best case, a post mortem will help you find out flaws in your ops process. See: blame-free post mortems.
RED method
A method of monitoring in which three dimensions are attended to: Rate, Errors, Duration.
Relational Database Management System (RDBMS)
A persistent data store that works according to the relational model, i.e. with tables of data consisting of columns and rows, consistency checks implemented as schemas, and key relatoins between the tables. The best-known of these are PostgreSQL and MySQL in the open source world, SqlServer from Microsoft, Oracle DB etc.
Rewrite
Something you should never do.
Rollback
Reverting a system change to its previous state
Rolling update
A method of deployment
Resilience
The property of a system to stay within its operating bounds in the event of perturbations.
Retrospective
A "ritual" in Scrum.
Scrum
A product development methodology that is supposed to be agile.
Serverless
https://martinfowler.com/articles/serverless.html https://www.allthingsdistributed.com/2019/08/modern-applications-at-aws.html
"When we say "serverless," we're referring to services that run without the need for infrastructure provisioning and scaling, have built-in availability and security, and use a pay-for-valuebilling model."
Service discovery
???
Shift left
A practice in software development in which teams focus on quality, work on problem prevention instead of detection, and begin testing earlier.
Service Level Agreement (SLA)
Service-Oriented Architecture (SOA)
Precursor to microservices, but developed out of the enterprise world.
Site Reliability Engineer
In the words of Ben Treynor Sloss, who coined the term at Google, "what happens when a software engineer is tasked with what used to be called operations". Essentially, operations teams with functional orientation.
Six Sigma
A management philosophy popular especially in the 90s. The aim is to decrease variability in manufacturing and business processes. Made popular at General Electrics by Jack Welch.
Statement of Work (SOW)
???
SOAP
Stands for Simple Object Access Protocol.
Sharding
Dividing data from a single source into different repositories.
Software development life cycle (SDCL)
Also called systems development life cycle or application development life cycle
Synchronous
The kind of communication among systems where there is time-based coupling among them. Compare to asynchronous.
Systems Thinking
A way of thinking that aims to discover and understand how systems interact. Systems sometimes exhibit counterintuitive and mysterious properties. The aim of systems thinking is to find the underlying causes of these properties and dynamics and alleviate them in an effective and sustainable manner.
Sytemantics
A small book written by a medical doctor on the surprising and nonintuitive ways systems behave. Despite software projects not being mentioned in the book, the laws the book lists are surprisingly closely applicable to the software domain. Many a programmer has run into this book and found it extremely useful.
Tactics
The opposite of strategy.
Technical Debt
A metaphor created by Ward Cunningham to illustrate the value of aligning the understanding of a domain and the alignment of code with thsi understanding, technical debt refers to the idea that when a team fails to create such an alignment, it will cause future frustration and impediments, as if the team were paying interest on it.
https://michaelfeathers.silvrback.com/is-technical-debt-just-a-metaphor https://michaelfeathers.silvrback.com/toward-a-galvanizing-definition-of-technical-debt
Telemetry
Generally, the collection of measurement data, and its wireless transmission to a central equipment for monitoring and evaluation.
Test Driven Development (TDD)
A method of development where code is written in a tight loop of writing tests, making these tests fail, and writing the code to make the same tests pass.
Testing Pyramid
A pyramid that visualizes how much you should write of what kind of tests.
Theory of Constraints
See The Goal
Three Pillars of Observability
A name given to the three tools that constitute the basics of an observable system: Metrics, Tracing and Logging.
https://peter.bourgon.org/blog/2017/02/21/metrics-tracing-and-logging.html https://medium.com/@copyconstruct/monitoring-and-observability-8417d1952e1c https://medium.com/lightstephq/three-pillars-with-zero-answers-2a98b36358b8
Throughput
Time-series database
TINA (There is no alternative)
A lame excuse frequently given by managers and gateholders. You can usually navigate around it, given enough power and work.
Total cost of acquisition
???
Toyota Production System
Tracing
There is also the distributed kind.
Triage
???
Trunk-based Development
A source control model where long lived branches are completely avoided, and all work is integrated in short cycles to the main branch of development, mostly master in a git repository.
Turnkey Solution
???
Two Pizza Team
A team that can be fed with two pizzas.
Undifferentiated Heavy Lifting
Uptime
???
USE Method
A method of monitoring where three dimensions are monitored: Utilization, Saturation, Errors.
User Story
A format for organizing future work.
Value Stream
The process required to convert a business hypothesis into a technology-enabled service that delivers value to the customer.
White-box
Any method that involves knowledge of the internals of a system. For example, there is white-box testing, monitoring, hacking etc. For the opposite, see black-box.
Work in Progress (WIP)
Work that has started but not finished.