sentenz / convention

General articles, conventions, and guides.
https://sentenz.github.io/convention/
Apache License 2.0
4 stars 2 forks source link

Refactor article about `architecture decision records` with ChatGPT #172

Closed sentenz closed 1 year ago

sentenz commented 1 year ago

Architecture Decision Records

Architecture Decision Records (ADRs) are a mechanism for documenting significant architectural decisions made during a software project. They are essentially a form of technical documentation that captures the reasoning behind the decision-making process and provides a historical record of how the project evolved over time.

The purpose of ADRs is to ensure that important architectural decisions are properly recorded and communicated to other members of the development team, as well as stakeholders and future maintainers of the software. By creating a repository of ADRs, teams can establish a shared understanding of the architecture and the rationale behind it, which can help to maintain consistency, coherence and facilitate collaboration.

ADRs are a valuable tool for managing the complexity of software development, providing a structure to document and communicate architectural decisions. ADRs establish a clear understanding of the architecture and ensure that important decisions are properly recorded and communicated, ultimately leading to more effective and efficient development processes.

1. Structure

The structure of an ADR follows a standardized format to ensure that the key information is captured and communicated effectively.

While there may be variations in the format based on specific needs, the following are the typical sections included in an ADR:

The Markdown template includes the key sections typically included in an ADR, and can be customized to meet the specific needs of a project or organization.

# Architecture Decision Record (ADR) [Number]: [Title]

## Status
[Proposed | Accepted | Rejected | Deprecated | Superseded | ...]

## Context
[Provide context for the decision, including any relevant background information, system architecture, business requirements, etc.]

## Decision
[State the decision that was made, using clear and concise language.]

## Rationale
[Explain the reasons behind the decision, including the problem or opportunity that the decision addresses, the constraints that were considered, and the options that were evaluated.]

## Alternatives
[List the alternative options that were considered before the decision was made, and explain why they were rejected or chosen.]

## Consequences
[Describe the potential impact of the decision on the system and its stakeholders, including any technical, operational, or business-related consequences.]

## Implementation
[Explain how the decision will be implemented, including any technical details, changes to the system's architecture or code, organizational or process-related changes, etc.]

## Related ADRs
[List any related ADRs that are relevant to the decision being documented.]

## References
[List any sources that were consulted or referenced in making the decision.]

2. Principle

3. Best Practice

4. Terminology

5. References

github-actions[bot] commented 1 year ago

:tada: This issue has been resolved in version 1.16.0 :tada:

The release is available on:

Your semantic-release bot :package::rocket: