Beyond SOLID: Affordance

There’s an increasing awareness among software developers of the SOLID principles – that is the Single responsibility, Open/closed, Lyskov substitutability, Interface segregation and Dependency inversion principles. Beyond these another principle that is valuable in designing software components is that of affordance, which draws from accessibility and ergonomics contexts. The concept could be simply expressed “it … Read more

Pragmatic problem solving

A team I’ve worked with recently were struggling with a poor delivery effectiveness, which was the result of a few particularly bad decisions compounding. One of the biggest issues was that the team had a lot of automation tests, but no other feedback mechanism. Every simple test was implemented as an automation journey through the … Read more

Types of testing

In order to deliver software, the team need to have confidence in its quality and robustness. The category of activities used to establish that confidence is broadly known as “testing”, but within this overall label there are many different forms of testing, which can deliver different outcomes with different immediate and ongoing costs. In a … Read more