Thoughts on Software

• ## Me, Then And Now: Software Estimates

Over the last few years, my beliefs in how I Software should be built have changed quite dramatically. There were some years when I spent a majority of my time thinking about the solution and not enough time understanding the problem. I had some years thinking that I don’t know anything, to “I know everything” and everything else in between.

Today, I wanted to reflect on my view of Software Delivery estimates, and how my view has changed over the years. It’s one of those things that has so many moving parts to it, and you can never really have enough experience to get it quite right.

• ## StructureMap – Transient & AlwaysUnique Behaving as Singleton

One of the things to watch out for when working with DI Containers is being aware of the Dependency Graph. One of the more dangerous types is where you expect a particular object to exist once during an entire HTTP Request lifecycle, but it starts behaving like a singleton.

• ## CS101: Big-O and How it’s Relevant

Big-O is a way of expressing time and space complexity of an algorithm. Complexity is the rate of growth given variable inputs. Complexity is implicitly expressed in worst-case unless otherwise stated.

For example:

function printArray(n) {
for(var i = 0; i < n.length; i++) {
console.log(n[i])
}
}

printArray in this instance is $O(n)$ time complexity and $O(1)$ space complexity.