This document provides steps for writing library cookbooks in Chef, including writing custom resources. It recommends:
1. Disregarding dogma like "unit tests first" and instead starting by making things up and working backwards.
2. Creating a cookbook skeleton and embedding a test cookbook to validate the resource.
3. Iterating by implementing the resource, adding tests and specs, and refactoring with confidence as the resource is developed.
It also provides tips for writing custom resources, such as being explicit, using markers for negative actions, leveraging load_current_value and converge_if_changed, and avoiding leaky abstractions by keeping resources minimal and splitting them as more