Don’t hire top talent; hire for weaknesses.

Posted by & filed under Leadership, XP.

Instead of starting from “how do we hire top talent?”, start from “what are our weaknesses?” Why are you hiring? Are you hiring to do more, or are you hiring to achieve more? Design your hiring process to find the right people to strengthen your teams’ weaknesses, rather than trying to find the best people. … Read more »

Escape the Permission Trap with Healthy Habits

Posted by & filed under Leadership, XP.

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 <observable trigger>, instead of <what we currently do> we will <virtuous action>”. This is a mechanism to pre-approve the desired action. In… Read more »

Thinking in Questions with SQL

Posted by & filed under 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 is a very practical skill…. Read more »

Leadership Language Lessons from Star Trek

Posted by & filed under Leadership, Star Trek, XP.

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: “we work to better ourselves, and the… Read more »

Java 16 Pattern Matching Fun

Posted by & filed under Java.

Java 16 brings Pattern Matching for instanceof. It’s a feature with exciting possibilities, though quite limited in its initial incarnation.  Basic Pattern Matching We can now do things like  Object o = "hello"; if (o instanceof String s) { System.out.println(s.toUpperCase()); }Object o = "hello"; if (o instanceof String s) { System.out.println(s.toUpperCase()); } Note the variable… Read more »

We got lucky

Posted by & filed under ContinuousDelivery, XP.

“We got lucky”—it’s one of those phrases I listen out for during post incident or near-miss reviews. It’s an invitation to dig deeper; to understand what led to our luck. Was it pure happenstance? …or have we been doing things that increased or decreased our luck?    There’s a saying of apparently disputed origin: “Luck is… Read more »

Revisiting Html in Java

Posted by & filed under Java.

Some time ago I wrote a post about creating an embedded dsl for Html in Java. Sadly, it was based on an abuse of lambda name reflection that was later removed from Java. I thought I should do a followup because a lot of people still visit the old article. While it’s no longer possible… Read more »

Meetings, ugh! Let’s change our language

Posted by & filed under XP.

“How was your day?” “Ugh, I spent all day in meetings, didn’t get any work done!”  How often have you heard this exchange? It makes me sad because someone’s day has not been joyful; work can be fun.  I love a whinge as much as the next Brit; maybe if we said what we mean… Read more »

Latency Numbers Every Team Should Know

Posted by & filed under ContinuousDelivery, XP.

Meandering path towards value

Here’s some important feedback loops for a team, with feasible delays. I’d consider these delays tolerable by a team doing their best work (in contexts I’ve worked in). Some teams can do better, lots do worse.

Humility

Posted by & filed under XP.

Extreme Programming describes five values: communication, feedback, simplicity, courage, and respect. I think that humility might be more important than all of these.  Humility enables compassion. Compassion both provides motivation for and maximises the return on technical practices. Humility pairs well with courage, helps us keep things simple, and makes feedback valuable. Humility enables Compassion … Read more »