You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by Tellier Benoit <bt...@apache.org> on 2019/10/16 02:07:42 UTC

Use of Architectural Decision Records as a basement for our discussion process

Hi everyone,

Let me post here a proposal made by Gautier which I find of interest:

Over the last months, my company (Linagora) have done a large set of deep
changes in James' architecture without much discussion with the community.

In order to change that, we would like to propose an
Architectural Decision Records [1] based process.

It would work as following:
 1. Publish an ADR proposition on this list, with the associated JIRA
 2. Discuss it
 3. Add it to the code base

[1] https://adr.github.io/

Let me begin:
 * JIRA: https://issues.apache.org/jira/browse/JAMES-2909
 * PR: https://github.com/apache/james-project/pull/166


# 1. [JAMES-2909] Record architecture decisions

Date: 2019-10-02

## Status

Proposed

## Context

In order to be more community-oriented, we should adopt a process to have a
structured way to have open architectural decisions.

Using an Architectural Decision Records-based process as a support of
discussion on the developers mailing-lists.

Following [Apache Decision Making
process](https://community.apache.org/committers/decisionMaking.html),
we provide the following possible status, with their associated meaning:
 - `Proposed`: The decision is being discussed on the mailing list.
 - `Accepted (lazy consensus)` : the architecture decision was proposed
on the mailing list, and a consensus emerged from people involved in the
discussion on the mailing list.
 - `Accepted (voted)` : the architecture undergo a voting process.
 - `Rejected` : Consensus built up against that proposal.

## Decision

We will use Architecture Decision Records, as [described by Michael
Nygard](http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions).


We should provide in a mutable `References` section links to related
JIRA meta-ticket (not necessarily to all related sub-tickets) as well as
a link to the mail archive discussion thread.

JIRA tickets implementing that architecture decision should also link
the related Architecture Decision Record.

## Consequences

See Michael Nygard's article, linked above. For a lightweight ADR
toolset, see Nat Pryce's [adr-tools](https://github.com/npryce/adr-tools).


## References

 * [JAMES-2909](https://jira.apache.org/jira/browse/JAMES-2909)
 * [Github PR](https://github.com/apache/james-project/pull/169)



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org