Building Maintainable Software, C# Edition: Ten Guidelines for Future-Proof Code