Have you ever wrestled with a problem in your mind and then, while trying to explain it to someone else, had an epiphany of how to solve it? This has happened to me on numerous occasions. Or have you ever jumped in to develop some code for a piece of business logic that you felt […]

In my first post of this series, I discussed how ambiguity and lack of shared understanding between members of a product development team can occur when we rely on unstructured, ad hoc, and abstract communication processes (i.e., conversations and high-level user stories) for expressing our thoughts and ideas. We feel like we are painting a […]

I was recently re-introduced to one of my favorite essays, Why We Should Build Software Like We Build Houses, by Leslie Lamport. Leslie is one of several thought leaders within our industry who I really admire, both for his insights into the nature of software design as well as for his contributions in terms of […]

If you’re like me, you are probably trying to make some sense of the hype (and hysteria?) around blockchain. While the concept of blockchain is fairly approachable, the applications of this technology (beyond the obvious financial transaction ledgers) is not. I have spent some time and thought trying to identify some analogies from our past […]

In my first post, I wrote about the responsibilities, goals, and struggles that development teams are facing today. In this post, I am covering our experiences and how we must take a bigger picture look at how we’re working in a world of constantly changing requirements. Our Experience So, I seemed to paint a lot […]