I find code contracts fascinating, these are development tools that allows you to specify the behavior of your system, making it safer, easier to maintain, and a breeze to debug. They play well with your usual code-quality tools and are absolutely addicting once you start using them!