<p>Today, we're not talking about Go, but just software development in general.</p>
<p><a href="https://ranchero.com/netnewswire/">NetNewsWire</a>, the RSS reader for macOS an iOS has a complete folder in the source code repository containing a whole bunch of technotes. You can find them here:</p>
<p><a href="https://github.com/Ranchero-Software/NetNewsWire/tree/master/Technotes">https://github.com/Ranchero-Software/NetNewsWire/tree/master/Technotes</a></p>
<p>There are <a href="https://github.com/Ranchero-Software/NetNewsWire/blob/master/Technotes/CodingGuidelines.md">coding guidelines</a> in there, their <a href="https://github.com/Ranchero-Software/NetNewsWire/blob/master/Technotes/BranchingStrategy.md">branching strategy</a> is explained as well as a whole bunch of other nice things to know.</p>
<p>What I really like about this is that they treat it as part of the source code. Most people would put this in a wiki or in a separate place. Brent and his team takes the approach of treating documentation in the same way as source code.</p>
<p>This makes it easy to keep it up-to-date but also allows you to easily keep a history of the documentation. The GitHub wiki does this as well, but it's actually a separate git repo. By storing it in the source code repository of your software, the documenation are always in sync with the version at any point of the development stage.</p>
<p>I should start doing that as well…</p>