Tragedy of Return to Hostile Offices

Don't suffer and merely survive, aided by your noise cancelling headphones. Optimising for individual happiness can result in less of the joy that people find in teams that achieve great things together. The post Tragedy of Return to Hostile Offices appeared first on Benji's … | Continue reading


@benjiweber.co.uk | 11 months ago

Engineering Team Lessons from Cycling

Cycling provides interesting example for software development. Like software development it's possible to race individually or in teams. A group that's an effective team will outperform the same group acting as individuals every time. The post Engineering Team Lessons from Cyclin … | Continue reading


@benjiweber.co.uk | 1 year ago

One does not simply deliver software

Efficient delivery prevents outsized outcomes—efforts to eliminate wasteful deviations from plans limit teams. At very best they'll achieve only the outcomes they were able to foresee in advance.  The post One does not simply deliver software appeared first on Benji's Blog. | Continue reading


@benjiweber.co.uk | 1 year ago

Do you need a Strong Leader?

Helping a team overcome weaknesses requires an appreciation for weakness more than a show of strength. Being the strongest can even be a disadvantage. If you stopped pouring petrol onto the fires, maybe you would not need such experienced firefighters. The post Do you need a Stro … | Continue reading


@benjiweber.co.uk | 2 years ago

Pondering Agile Principles

With this in mind, I've been pondering where do (and don't) I share the same principles. Can we "turn up the dials" on agile principles as well as the ways of working? | Continue reading


@benjiweber.co.uk | 2 years ago

Supporting Sustainability

Many software teams struggle with ever growing cost of change, and technical debt that risks overwhelming them.  It’s always interesting to talk with folks and understand, how the system and incentives created this state.  Often I hear from software engineers that management does … | Continue reading


@benjiweber.co.uk | 2 years ago

Cost of Attrition

How would we think about retention if we could visualise the full impact of someone leaving our team? | Continue reading


@benjiweber.co.uk | 2 years ago

Uncovering Better Ways

How many better ways of working have you uncovered lately? This past year a lot of people have been forced into an unplanned and unwanted experiment. Many teams have had to figure out how to work in a remote-first way for the first time.  I was privileged to be working in a team … | Continue reading


@benjiweber.co.uk | 3 years ago

Escape the Permission Trap with Healthy Habits

If you’re struggling with how to get to tidy code, fast feedback loops, joyful work. How to get permission, or buy-in. Try team habits. Create working agreements of the form “When we see , instead of we will ”. This is a mechanism to pre-approve the desired action. In... Read mo … | Continue reading


@benjiweber.co.uk | 3 years ago

Thinking in Questions with SQL

I love SQL, despite its many flaws. Much is argued about functional programming vs object oriented. Different ways of instructing computers. SQL is different. SQL is a language where I can ask the computer a question and it will figure out how to answer it for me. Fluency in SQL … | Continue reading


@benjiweber.co.uk | 3 years ago

Java 16 Pattern Matching Fun

Deconstructing Optionals or Record types with Java 16 Pattern Matching. | Continue reading


@benjiweber.co.uk | 3 years ago

Leadership Language Lessons from Star Trek

Growing up, an influential television character for me was Jean Luc Picard from Star Trek the Next Generation. Picard was a portrayal of a different sort of leader to most. Picard didn’t order people about. He didn’t assume he knew best.  He wasn’t seeking glory. In his words: “w … | Continue reading


@benjiweber.co.uk | 3 years ago

Do You CI?

Continue reading


@benjiweber.co.uk | 4 years ago

Learning from Pain

Continue reading


@benjiweber.co.uk | 6 years ago

Anonymous Types in Java

Java allows casting to an intersection of types, e.g. (Number & Comparable)5. When combined with default methods on interfaces, it provides a way to … | Continue reading


@benjiweber.co.uk | 9 years ago