Solution notes: stop repeating past mistakes ๐
Then you may want to write solution notes: short, searchable records of problems and their fixes, helping you avoid the frustration of going down the same rabbit hole again.1
Anatomy of a solution note #
A solution note consists of three parts.
The problem #
First clearly document the problem. Include the exact error message and other symptoms. Mention the application that reported it. Include context such as what you were trying to achieve, if relevant. Ensure that the description makes the note easy to search for next time you encounter the error.
The cause #
Figure out why the error occurs. Then document it.
You might be tempted to skip documenting the cause once you have a working fix. Donโt. Recording the cause helps you understand systems better, improves your troubleshooting skill, and builds the mindset that all problems can be understood.
If you find the solution before the cause, write the solution first but don’t forget to go back to figure out the cause.
The solution #
Finally, document the solution to the problem.
Some solution notes may be very specific to your setup or situation, but if they are not, share them with your team.
An example #
To give a feel for what they may look like, here is one from my own notes.
Azure: At least one certificate is not valid #
Problem #
When trying to upload new TLS certificates for a domain, Azure rejects a valid .pfx
certificate file with an error:
At least one certificate is not valid.
(Certificate failed validation because it could not be loaded).
Cause #
Azure requires keys to be signed with 3DES, but OpenSSL 3+ no longer uses 3DES by default.
Solution #
Adding the -legacy
option to the openssl
command reverts to the old default behavior. The certificates generated with the -legacy
flag are accepted by Azure.
Next time you stumble upon a problem, spend a few minutes to write a solution noteโyour future self will thank you.
-
You may also be interested in architectural decision records (ADR) and today I learned (TIL) notes. ↩︎