|
|
Agile is widely used in industry IT projects. It helps a team or a single developer to write more understandable code, keeping all information related to the project well organized.
|
|
|
|
|
|
## DSIP approach
|
|
|
DSIP aims to use this approach to enforce better project documentation. Moreover, this could also speed up the process of writing work progresses. The three main components are:
|
|
|
|
|
|
* User Story: description of a project requirement;
|
|
|
* Epic: groups of related users stories;
|
|
|
* RFC: project description which contains general-purpose information.
|
|
|
|
|
|
All the Agile-related documentation should be provided using GitLab issues: to simplify the process, some issue templates are provided too. It is possible to instantiate an issue from a template during its creation.
|
|
|
|
|
|
### User story
|
|
|
A user story is a description of a project requirement described by the user perspective. For example:
|
|
|
|
|
|
*As a developer I want to split the data into training, validation, and test datasets.*
|
|
|
|
|
|
The user story is defined in a way that allows understanding three main concepts:
|
|
|
|
|
|
* the problem the developer wants to solve;
|
|
|
* the proposed solution;
|
|
|
* a little brief about the solution implementation.
|
|
|
|
|
|
The developer can simply view a user story as an abstraction tool that everybody can read to understand how a particular problem is approached. It includes mainly:
|
|
|
|
|
|
* summary;
|
|
|
* long description;
|
|
|
|
|
|
TODO - write an example
|
|
|
|
|
|
### Epic
|
|
|
An epic is a collection of several user stories related to a specific task. It includes mainly:
|
|
|
|
|
|
* summary;
|
|
|
* long description;
|
|
|
* collection of linked user stories (using #issue_numbers syntax).
|
|
|
|
|
|
TODO - write an example
|
|
|
|
|
|
### RFC
|
|
|
The RFC consists of a particular document that collects the general pieces of information about a project. It includes mainly:
|
|
|
|
|
|
* project description;
|
|
|
* proposed solutions;
|
|
|
* implementation choices;
|
|
|
* constraints;
|
|
|
* timeline scheduling;
|
|
|
* additional notes.
|
|
|
|
|
|
TODO - write an example |