Category Archives for Engineering

Technical debt – or technical bankruptcy?

It’s time we admit we have a problem with technical debt. Everyone knows what it is, everyone is talking about, but not enough is being done about it. Time and again I have seen teams and systems end up swamped in technical debt. Swimming and eventually drowning in the stuff. Until entire projects have to […]

Continue reading

Bimodal IT theory

A few years ago, research organization Gartner came up with this concept called Bimodal IT theory. This basically said that for any large organisations, there are two types of IT systems. These types serve different purposes, are built with different technologies, serve different customers, have different cost and risk profiles, and should be kept separate. And […]

Continue reading

What is Test Driven Development (TDD)?

Test Driven Development or TDD is a technical practice that is often (though not always) used by people doing Agile software development. It represents a different approach to both testing and development. It can be difficult and cumbersome at first, but many people believe that it has big payoffs in the long term. I’ll talk […]

Continue reading

Agile is technology agnostic

Have you wondered what type of languages or technologies you should use when doing Agile software development? This article will help clear that up. The answer is a lot simpler than you might think! It turns out that in fact, agile is technology agnostic. What language / design approach is best for agile? I’ve seen some […]

Continue reading

Deploy is not the same as release

A lot of people think it’s risky to deploy software. Some of these people lose sleep over deploying software. A lot of people have jobs based around deploying software, and for them others they work with, it is a big deal. It involves a lot of something people call “technical risk management”. That’s just a […]

Continue reading

The difference between Agile and DevOps

DevOps is one of the hot topics at the moment, and is well on its way up the hype cycle curve. Some are even saying it replaces Agile, thus spelling the end of Agile software development. That isn’t true, though if you’re interested in agile, you should start learning about DevOps. Why? Because although it […]

Continue reading

Why Continuous Delivery is so important

Scrum is a (pretty) good framework for managing requirements, how they move into and out of backlogs, and how we inspect and adapt the outcome of those requirements. But one of its weaknesses is it has very little to say about engineering practices. One of those engineering practices is Continuous Delivery, or CD. This discipline […]

Continue reading

Cloud, the shift from buy to rent, and everything as a service

One of the topics I’m interested in is cloud computing. It’s an often misunderstood concept that fell victim to Gartner’s hype cycle in a pretty spectacular way. But it is a real thing and it is a game changer (it already has changed many games) and it is here to stay. But there are plenty […]

Continue reading

Refactoring and technical debt

Importance of refactoring Refactoring and technical debt are important concepts, especially so in agile software development. What are they? Refactoring is modifying the internal structure of code without changing its behaviour. All functional tests should pass with the same results after the code has been refactored. If it behaves the same, why do we need to do it? […]

Continue reading