Document Your Changes

Intent: The project’s documentation must be maitained up to date.

Problem

Developers usually change code, correcting bugs, adding new functionalities but not do any modification in documentation, this turn it outdated. However the documentation is usefull, only it’s up to date. Then, how to keep the documentation up to date?

Solution

Before you submit your change, write the documentation related to it. Core developers should require this from the contributors.

Trade Offs

Pros: * It’s easier for users and developers to understand the project, if there is a good documentation. * It’s easier and faster for the own developer documents his changes. * If everybody document their changes, it isn’t necessary to have a group of developers dedicated to do this task.

Cons: Usually developers doesn’t like to document your changes, they think they are wasting their time.
It’s necessary to use the same technology just used to do the documentation, sometimes it’s represent another matter to study and tools to install.

Rationale

A good documentation is important to any software. In open source software project, it’s a question of survival, because it helps to attract and maintain new users and contributors. Though, a good documentation represents a complete, sufficiente and up to date documentation.

This pattern is relevant for any kind of contribution that you decide to do. Depending what you do, you have more or less things to document. If you contribute with bug correction or coding tests a few comments may be sufficient, but if you build a new functionality a whole documentation must be done.

Example

Known Uses

When you are documenting your changes, intrinsically you Review Your Changes. If you are documenting bug corrections or tests coded, the comments could be the same of
Explanatory Commit Messages. In the case of your contribution be a new functionality, remember to see Write Documentation.

What Next

After Add Tests that Fail, Document Your Changes and Review Your Changes, you are ready to Create a Patch.