Klabbet Wiki

This wiki contains documentation for Klabbet recommended conventions for software development. Feel free to “loan” anything that you like. Also feel free to ignore anything you don’t agree with.

Purpose

I’m authoring this wiki because I used to direct development at an in-house development shop. We created a wiki of conventions for software development, which made it easy to introduce new developers to the team. The wiki focuses not on teaching development but making it clear how we choose to do things. It also represents a way of governing the software development method.

Format

The documents in this wiki follows the format of RFC2119.

  • MUST mean that the definition is an absolute requirement of the specification.

  • MUST NOT mean that the definition is an absolute prohibition of the specification.

  • SHOULD mean that there may exist valid reasons in particular circumstances to ignore a particular item, but the full implications must be understood and carefully weighed before choosing a different course.

  • SHOULD NOT mean that there may exist valid reasons in particular circumstances when the particular behavior is acceptable or even useful, but the full implications should be understood and the case carefully weighed before implementing any behavior described with this label.

  • MAY mean that it is optional too choose to include this behavior if its found useful, or omit if its considered of little or no value.

License

All content on this wiki is licensed under Attribution 4.0 International (CC BY 4.0).

You are free to

  • Share — copy and redistribute the material in any medium or format

  • Adapt — remix, transform, and build upon the material for any purpose, even commercially.

Under the following terms

  • Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.

  • No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.