
The Importance of Managing Complexity
Introduction We write software to make our lives easier; to reduce the complexity and chaos. The need to reduce complexity is at the very center of software development. Unfortunately, we tend to mirror the complexity of the real world in our software and this leads to many problems. As Bruce Schneier in his essay A Plea …

Five types of software licenses you need to understand
If a company creates software, it also reuses code, including code snippets, libraries, functions, frameworks, and entire applications. In fact, in most applications the majority of the code comprises reused third-party components. And all software code comes with certain rights and obligations if used by others or incorporated in a company’s codebase. Even code snippets …
Continue reading “Five types of software licenses you need to understand”

API-first development and the case for API mocking
One morning, you realize you have a great idea for an API. You discuss it with your team, then start building out the business case and technical requirements. Where do you go from there? You could write out the business requirements for the API and then code it. Or you could describe your API in …
Continue reading “API-first development and the case for API mocking”

Building Technical Wealth
Agile organizations find themselves constrained between the need for speed (velocity) and the need for quality. Technical debt is the enemy of velocity. Most companies don’t address technical debt until it slows or halts developer productivity. At that point, it can be very expensive to pay it down. One of the reasons technical debt is …

Secure SDLC 101
The digital transformation that has swept across all industry sectors means that every business is now a software business. Whether you’re selling software directly to your customers or developing it to run your operations, your organization needs to protect your bottom line by building trust in your software without sacrificing the speed and agility that …