Skip to content

Latest commit

 

History

History
64 lines (36 loc) · 2.96 KB

DevelopmentConventions.md

File metadata and controls

64 lines (36 loc) · 2.96 KB

Redistricting a Region - Development Conventions

This document describes intended and preferred conventions for development and maintenance of the Redistricting a Region software product.

Agile Principles

Working Software

The project code base is always buildable and runnable.

For example, no merge results in a non-buildable state or a buildable product that does not execute.

Incremental Development

The project code base is relevant to the current iteration.

Architectural elements, tests, and implementation code match requirements associated with the current and previous versions of the product.

For example, tests and code for features identified for future versions are excluded from the project code base.

Behavior-Driven Development

All code is associated with an explicit requirement specification (User Story).

Tracing backward from tests reveals the requirement(s) that such tests verify in the product.

Tracing backward from code likewise reveals the requirement(s) that such code implements in the product.

Test-Driven Development

All code is associated with an explicit means for verification.

For example, new code is not merged into the project code base prior to the existence of automated test code for that new code.

Tracing backward from the code reveals the tests used to verify the behavior of the code.

The intent is for code to be developed using a test-first methodology, in which automated tests are written prior to writing the implementation.

Tests associated with successful implementation remains in the code base as regression tests.

(Note: Test coverage tools may facilitate tracing forward from a test to code that the test is intended to verify.)

Coding Convention Guide

Style Convention Precedence and References

If no project-specific convention is applicable, use the Sun Convention guide.

If something is not covered in the project-specific or the Sun Convention guide, use the Google Convention guide.

If a topic is not covered by any guides, use best judgement and consider opening a project issue to formalize the decision.

Project-Specific Conventions

  • Multiple authors are indicated using multiple @author tags, one tag per line, one author per tag.
  • Many style conventions are embodied in jp_checks.xml and jp_suppressions.xml configuration files for Checkstyle.