Who Makes the Decision?
One of the biggest keys to a well-managed project is proper assignment of responsibility. Having good people on a project is not enough. The project must be correctly organized and managed so that people can succeed. At any moment, each team member should be able to give a clear and unambiguous answer when asked “Who is responsible for X?” or “Who decides what should happen in X scenario?”. If they can’t, the project will be late, over budget, and incongruous.
LiteMediator - In-Process Messaging Library
The best libraries are discovered, rather than engineered. After using in-process messaging in .NET projects for several years, I have decided to release a library sharing it with all of you. Using messaging has been extremely helpful to me in both game development and modern web development. Both greatly benefit from lightly-coupled message-driven architectures, which makes Mediator pattern a perfect solution.
Marker Interfaces Are Evil
Have you seen interfaces which have no methods in a project you were working on? Every time you see one of those, it should raise a mental red flag. Marker interfaces are a terrible design choice! I will explain why and what to do instead.
Your Configs Are Totally Wrong
One of the major pain points in working with Enterprise software is dealing with config files. They don’t have to be a pain. But everyone is doing them absolutely wrong.