Supersonic Project Velocity!
Many companies find that general project velocity isn’t anywhere near what they want it to be. After having successfully managed a number of projects, I often find myself shocked by the vast contrast between how fast projects could be delivered and how long they generally take in the software development world. Recently, I led a 7-day highly-ambitious software project in which both the quantity and quality of work delivered blew away all my expectations. This is what empowered such incredible productivity.
Static Dependency Access
There has always been a lot of controversy over the right ways to access dependencies. Should they be injected? Located? Directly referenced? Magically resolved? Inverted? Context objects? Everyone tends to speak very dogmatically about how they think you should or shouldn’t access your dependencies. Statically accessing your dependencies is a very powerful technique. You should absolutely use it, but you must avoid its many perils.
You Must Not Admit a Single Null!
There are some principles in software development that offer benefits anywhere they are used, even in just some parts of the code. For others, they must be applied everywhere to be useful. The rule against never passing null must be applied everywhere for one major reason.
Result vs Exception
When working with business or network integrated software, errors are inevitable. It’s been compellingly argued that exceptions should not be used for control flow. It’s also critical to communicate the cause of the error and known solutions. One of the possible solutions this leads to is using a Result data structure. Let’s look at how this differs from the conventional use of exceptions.