Friday, July 18

Making Work Actually... Flow

A ll Problems Are Not Created Equal 

All teams have strengths and weaknesses. All teams have skill gaps. But every team is different—and so are their problems. There will always be problems, but is better to have smaller, less debilitating problems, and you do that by resolving one issue at a time.

One common problem is story or work item size. The solution is story splitting, but that solution is both difficult and deeply unpopular.

A quick rule of thumb: if your story takes more than 20% of your iteration to complete, it’s probably too big. However that is just a rough guideline.

 
The real test is

Does your work flow like a majestic river, or does it thunk through your system like a square boulder down a gravel hill?
So:

  • QA twiddling their thumbs early in the sprint, then drowning at the end?
  • Developers getting feedback a week later and saying, “Wait, what even was this ticket?”
  • Merge conflicts that are a tangled mess?
  • Constantly re-estimating because “uh, the scope changed again…”
  • Devs tossing out code halfway through because the requirements moved (again)?

If you said yes to any of the above:  Your stories are probably too large.

 

Take Your Medicine

The team needs to split  their work items until the symptoms and the pain caused by those symptoms goes away.
If the symptoms persist then keep cutting. I once worked with a team where the size of the work items was truly ridiculous, poor decisions at the start of the project sabotaged the prospects of success.


Other Common Culprits

While oversized stories are the usual suspects, they’re are plenty of other things that can clog your system:

  • Part-time key personnel
  • Unbalanced skill sets
  • Approval bottlenecks
  • Delayed feedback

For best results the value stream needs to flow smoothly. If tasks pile up in someone’s inbox while downstream coworkers are twiddling their thumbs —then there’s a bottleneck. Remember: a pipe only flows as fast as its narrowest point.



Feedback is Oxygen

The best proof of quality isn’t a checkmark on a compliance document or test coverage—it’s a pleased customer. The longer you delay feedback, the more likely you are to ship something the customer no longer wants (or never wanted in the first place). Markets shift. New tech is adopted. Disruptive world leaders make policy changes that overturn the business environment. The customers needs evolve and the usefulness of your captured requirements decay.

At each stage the feedback loop needs to be tightened.  

Can’t release to the public yet? Cool. Release to beta users. Can’t do that? Release internally. Worst case, throw it at someone without the “curse of knowledge” and time how long they take to figure it out. If it’s more than 30 seconds, you’ve got work to do.




The Hidden Cost of Admin Bloat

Long meetings. Inefficient processes. Manual multi-step deployment ceremonies. All of it makes your team slower and more resistant to change.

When the ceremony is painful, teams start batching work just to avoid it. That seems efficient, but workflow stutters.

The consequences

  • alternating periods of idleness followed by overwork and chaos.
  • Priorities are shifted and work reorganised  to compensate for  
    • Bottlenecked Resources
    • Need for the ceremony to complete (code freeze)
    • Delayed Feedback
    • Missing Approval

Also, remember the Christmas Rule:      
Anything you only do once a year, you do badly.

So:

  • Frequent = smooth and fast
  • Infrequent = slow and broken

Want fewer errors? Do it more often

The answer?

  • Automate what can be automated
  • Have a clear, repeatable process
  • Eliminate anything that doesn’t provide value—ruthlessly


Developers: Check in Early. Check in Often.

Humans are terrible at boring, repetitive tasks. Computers are terrible at ambiguity. Delayed merges combine both in the worst possible way. And that means bugs.


Also, please don’t use GitFlow or long-lived feature branches unless you enjoy pain. They’re complexity traps.

Instead, use feature flags—and even then, only lock away the bare minimum (usually the UI). Hidden code means fewer eyes, less testing, and more risk.




Tack, Tick, Tock: Get into a Rhythm 

Here’s a simple cycle I use to keep the chaos at bay:

Tack – Set the stage

  • Prep the codebase
  • Build or improve libraries
  • Boost Developer Experience (DX)
  • Make changes without changing behavior

Tick – Build the thing

  • Add the functionality
  • Show it to a customer proxy ASAP

Tock – Make it shine

  • Refactor
  • Polish
  • Pay off debt
  • Ship it!
  • Pay off more debt if needed
 

Miss a few Tocks, and your dev velocity will slow to a crawl as technical debt accumulates and interest payments come due.

After shipping, get feedback from actual users. Based on what they say, maybe you’ll need another Tock round. Or three.


Final Takeaway

If your team’s struggling, don’t let it slide.  If the problems are left alone, they will multiply—and then you’re doing late-night hotfixes and questioning your life choices.

Instead:

  • Split big stories
  • Tighten feedback loops
  • Kill wasteful processes
  • Automate mercilessly
  • Check in often
  • Maintain a rhythm

And remember: the goal isn’t to eliminate all problems. It’s to get better problems.


Related Posts

More Information

  • Story Splitting Guide

Wednesday, July 16

Team Building Exercises

Rethinking Team Building: Small Habits, Big Impact

When most people think of team building, their minds jump straight to full-day off-sites or multi-day retreats. While these events can be memorable, they’re often expensive and time-consuming—and their effects may not last. In contrast, something as simple as a five-minute icebreaker at the start of a meeting or a brief gratitude exercise at the end can help foster stronger team bonds—especially when done consistently. Regular, small practices tend to build trust and connection more reliably than one-off events.

My Foundations for Team Building

Beyond icebreakers and appreciation activities, the cornerstones of my team-building approach are 

If a company doesn’t already have these two rituals in place, I make it a priority to introduce them. Remember the first 90 days sets the tone.

One of the main reasons I’m so committed to professional development sessions and regular reflection is that I have found that when they are not practiced there is something missing, a buzz, an enthusiasm, a sense shared values and purpose, that is there when I put the work in.


The Limits of Big Offsites

While immersive, longer-form events can be fun and energizing, they’re not without pitfalls:

  • One-and-done doesn’t last: Sustainable growth and culture change require regular reinforcement. A single event, no matter how great, can fade quickly without follow-up.

  • The “What happens in Vegas…” effect: People may open up in an offsite setting, but those breakthroughs often don’t translate back into their day-to-day work environment.


That said, I’ve seen long-form activities work well—especially when they’re intentionally designed for learning and engagement. Some of my go-to formats include:


  • XP Game: Drawing – A powerful way to explore the challenges of verbal-only communication (original source has unfortunately disappeared).

  • Survival Ranking Game – Great for surfacing whether group problem-solving is inclusive. If they do worse as a group than as individuals, then it is likely that the loud voices are drowning the quiet ones.

  • Ball Passing Exercise aka The Ball Point Game – A hands-on exercise for showing the dangers of overloading the team.

  • Improv Games – Lighthearted, energising, and effective for encouraging mindfulness,  adaptability, creativity and listening.

  • Crazy 8s and Brainstorming Exercises – Excellent for unlocking creativity and divergent thinking.

  • Exploratory Testing with Cards – Adds structure and spontaneity to QA or exploratory testing sessions.


Icebreakers That Work

Icebreakers don’t have to be elaborate to be effective. Some of the most powerful ones are deceptively simple:

  • “Introduce Yourself” – A classic, especially if framed with a creative twist (e.g., share your superpower or your favorite failure).

  • Two Truths and a Lie – A reliable crowd-pleaser that gets people laughing and learning about each other.

  • String Theory – One person shares a unique fact; others raise their hands if they share that trait, and the next speaker is chosen from the group with raised hands. A great way to find unexpected common ground.

I have also been known to use

  • Would You Rather…
    Pose a light-hearted “would you rather” question, like “Coffee or tea?” or “Beach or mountains?”

  • If You Could…
    Ask questions like: “If you could have any superpower, what would it be?”

  • Emoji Mood Check
    Everyone posts or says an emoji that represents their mood.

  • What Are You Listening To / Reading / Watching?
    Participants share one media item they're enjoying.

  • Gratitude Shout-Out
    You could use one the practices listed below as your ice-breaker.

 

Gratitude and Appreciation Practices

Simple rituals of appreciation can strengthen team culture and morale. Here are some ideas I’ve found effective:


  • One-Word Gratitude Check-In – Each person shares one word reflecting something they’re grateful for today.
  • “What Went Well” Reflection – Everyone shares one success and credits someone who contributed.
  • Silent Gratitude Minute – A moment of quiet reflection on people or events the team is thankful for.
  • Meeting MVP – Nominate someone who helped move the meeting or project forward.
  • Start or End on a High – Each team member shares a recent highlight or win.
  • Appreciation Shout-Outs – Open floor for informal callouts of kind or helpful actions.
  • “I Noticed...” Moments – Share specific observations about positive behaviors or contributions.
  • Appreciation Cards or E-Cards – Simple written notes that go a long way.
  • Appreciation Circle (There are a few variations)
    • Gratitude  Round-Robin – Go around the group giving thanks to others, with or without a theme.
    • Sticky Notes Shout-Outs – Quick digital or physical thank-you notes shared at once.
    • Hot Seat Appreciation – Everyone shares something they value about one chosen team member (rotate each meeting).
    • Gratitude Chain – One person gives thanks, then passes the mic or speaking totem to someone else to continue the chain.


When Team Building Backfires

Team building can give you bad outcomes —especially when it’s used to push a hidden agenda or lacks authenticity. If an exercise feels political, patronising, or performative, it can do more harm than good.

Here’s what I’ve learned:

  • If you collect feedback after a decision has been made (especially one that impacts the team), it sends a strong signal that the feedback and the feedback givers are not valued.

  • Gathering feedback before decisions—and acting on it—builds trust and invites real engagement.

Some cautionary tales:

  • A Mid-Project Retrospective Gone Awry – The team gave honest feedback, only to have it dismissed. Morale dropped immediately.

  • Scavenger Hunt Misstep – Individual contributors were assigned managers as team leaders, reinforcing hierarchy and undercutting organic leadership. It left a strong impression that leadership behaviour and initiative were not traits that the company valued or desired in Individual contributors.

  • The Company Race Debacle – The CEO contradicted the organiser’s rules during his speech at the start of the event, causing confusion and a split in participation.  

Final Thought

True team building isn’t about grand gestures—it’s about consistent habits. Done well, small, regular practices build the kind of connection and trust that flashy offsites often can’t.  

Related Posts


Further Information



Update

While reviewing my previous posts, I noticed quite a few broken links and images that weren’t loading properly. I’ve gone through and fixed as many of these issues as I could — thank you for your patience!

I also realized that some of the older articles were a bit too long. To make things easier to read, I’ll be breaking up similar posts into multiple parts from now on.

Finally, I have several half-finished articles that have been sitting on the back burner. I’ll be polishing them up and sharing them over the next few weeks — stay tuned!

Tuesday, July 15

Deliberate Practice (Part 2)

Table of Contents


D

eliberate Practice In Software Development

The Case of the Test First Developer


So how do we deliberately practice in order to improve our programming skills?

I use the same principles that I use to improve my bass playing to improve the software I produce.

Overlooked Opportunities

I find that many developers focus too much on learning language and frameworks features. While a full understanding of the tools you are using is essential, if you simply stop there, you are missing so many opportunities for improvement. Implementation is only one phase in the software lifecycle, you should not neglect the other phases and within implementation itself there are so many dimensions that it is unlikely you will run out of things to improve even if you feel you know the implementation platform back to front.

On-the-job Learning

Within my normal work there are many opportunities to practice. To keep it fresh I will focus on different improvement goals each session. In one session I may focus on composability, in another readability in another testability. In one session I will identify and exact reusable components from existing code in another test whether a particular approach or design pattern will keep the design simple or if an alternative would be better. 

Feedback

Test first design is ideal for maximizing immediate feedback. Pair programming gives lots of potential for feedback if you take advantage of it. Code reviews are a great way of getting feedback, however so often programmers see it as an annoyance. Tightening the feedback loop by getting early feedback from testers or users can be helpful.


Learning by Teaching

Teaching others is helpful in improving your understanding of the material. Whether helping a teammate with a problem or teaching a workshop on a topic or presenting at a meetup, the need to break down what needs to be done into small easily understood steps can help your own understanding and help organize your existing knowledge.


Learning from the Pain Points

I used the need to document an existing internal API to help drive improvement to the API. For each section in the API I would ask how can I change the API so as to make this section of the documentation u6nnecessary. I ended up simplifying the API a great deal making it much easier to use.

Learning using Practice Problems

You can use code katas or code koans to help practice your programming skills and there are many sites that offer problems for you to practice (see below).  


More Information

Articles

Videos

Problems to Practice

  • Project Euler - Solve mathematical problems using programming skills
  • LeetCode - Solve coding challenges, competitions and mock interview
  • HackerRank - Offers a variety of different types of programming challenges
  • TopCoder - Solve algorithmic challenges within a time limit
  • Code Wars - Community submitted challenges and discussions
  • Code Chef - Community site with challenges, competitions and tutorials
  • CoderByte - Coding challenges and tutorials
  • Exercism - Coding challenges with assistance from mentors.
  • Sphere Online Judge - Coding challenges, competitions and discussions
  • Hacker Earth - programming challenges and  interview preparation

Programming Games

  • Codingame - program simple games then play them
  • RoboCode - program tank AIs and pit them against others
  • CodeCombat - write code to solve puzzles

Monday, May 13

Pros and Cons of Imposter Syndrome (Part 2)

T

able of Contents


Pros

You are constantly striving for self improvement
You are motivated to overcome or mitigate your weaknesses


Cons

Internal Focus - Its not always about you

It’s important to start by focusing on yourself and the actions you can take. However, that’s not where your efforts should end.

After you’ve observed, listened, and adapted—perhaps by using short-term workarounds—you should also look for longer-term solutions. These often require changing your environment, going beyond your direct authority, and using influence and negotiation.


Seeking External Solutions and Validation - Other people don’t always have the answers

It’s good to ask for help, but you should also evaluate the advice you receive using an evidence-based approach.

There’s a lot of bad advice out there. Ask yourself: Is it working for them? and Will it work for me? Remember, people have different strengths and weaknesses—your mileage may vary.

Sometimes, watching what people actually do is more informative than listening to their explanations. Ideally, do both.

You know your problems best. That usually makes you the best person to come up with a solution. This doesn’t mean you must do everything alone. However, taking ownership of the process increases the chances that the final solution will work for you and reflect your needs.


Over complicating things - There is no secret sauce

There are tips and tricks of the trade, but they are not secret. Watch, listen, put in the work, and be patient—you will learn them.

Sometime the skills you need are ones you already know e.g. ones learned in kindergarten. Sometimes simple solutions work, after all the classics are classic for a reason.

For example, I found that the best way to improve my social skills was simply doing activities I enjoyed with people I liked. (Who knew? My mother did.)

Impatience - Fools rush in

Everything doesn’t have to be fixed right this minute. As long as you are improving, and as long as you have a plan or a strategy for moving forward, that is enough.

Focusing on one area of improvement at a time is usually best.

Watch, listen, plan—then leap.

Boom and Bust - Slow and steady wins the race

Using a tight deadline to motivate yourself to complete a task that you lack confidence in, (or your instincts are warning you against) can sometimes help. However it can also lead to

  • Increased risk of failure,
  • More errors, 
  • Burnout, 
  • Lost opportunities.

Just powering through is not always the answer. If there is something blocking or interfering with your success, you should do something about it.

If your instincts are warning you against doing something, listen to your instincts. What your being asked to do may be 

  • Counter productive
  • Could be achieved in a simpler way           
  • Could be achieved in a way that is a more natural fit to your strengths and talents.

Working longer hours to compensate for perceived weaknesses can lead to burnout. It also doesn’t solve the real issue. Remember: Productivity means achieving more in the same amount of time—not the same by working longer.

Monitor and manage your stress levels and your general health.

Monitor and manage your stress and health. Sacrificing long-term capacity for short-term gains is rarely a winning strategy.


Analysis Paralysis 

Perfect is the enemy of the good. Even a wrong answer gives you a starting point to find the right one.

Learn to recognize when you’re spinning your wheels—and ask for help.

Not Speaking up

If problems are not discussed, they are unlikely to be resolved.

Avoiding Challenging Situations

You may avoid tasks where you might shine, due to lack of confidence. This can be damaging to both you, and your team as your potential contribution is lost.


Catastrophising - the sky is falling

DON’T PANIC 

Take a deep breath

Talk to your co-workers about your concerns. Ask for help.

Mitigate risks where the benefits out weigh the costs. 

Also consider: Are there opportunities hidden within the threats?

Focusing on shoring up weaknesses instead of playing to strengths

People work in teams for a reason. In effective teams, members cover each other’s weaknesses and amplify each other’s strengths.

That means you can—and should—delegate tasks to those better suited for them. Focus your energy on tasks where you have an advantage.


Conclusion

While imposter syndrome can drive personal growth and self-awareness, the downsides often outweigh the benefits.


Resources

Books

All I Really Need to Know I Learned in Kindergarten

Related Posts

Reasons for imposter Syndrome (Part 1)

T

able of Contents



Triggers

  • Being outside your comfort zone or trying something new
  • Lacking psychological safety and feeling unable to show vulnerability
  • Being haunted by past trauma and having learned the wrong lessons from previous experiences

New Role

If you’re nervous about diving into something new check out my onboardee’s checklist.



Constant Change

One of the challenges of working in the software industry is the need for constant learning. There is always new languages, new platforms, new frameworks and new subject matter domains with new jargon. Even if you stick with the same technologies and the same industry, the technologies release new versions and the industry evolves as the environment changes. You are always doing things you have never done before. You are continually pushed outside of your comfort zone.


Fake It Til You Make It.

We are told it is better to remain silent and be thought a fool than to speak and remove all doubt. This is baked straight into our school system. If we struggle then we are suppose to just work harder and bulldoze are way through.

However keeping quiet, means the you do not ask for help that you need or warn of problems that you notice. You may be setting yourself up for failure as underlying issues are not addressed and therefore worsen over time, leading to an eventual reckoning.


Sometimes You Aren't Safe.

Unfortunately sometimes you are not imagining it. You feel unsafe because your work environment is in fact not safe.

In which case you need to change your workplace or change your workplace. Don’t let it slide, your workplace culture is unlikely to improve by itself. A bad culture is stressful and counterproductive. Your team, your project and the company itself is more likely to fail, as problems do not get addressed, as it is unsafe to admit that they even exist.

The unfortunate habit that some people have of asking questions that they make clear only have one acceptable answer or showing no curiosity in a different viewpoint. This kills honest communication.


Past Trauma

I once mentored a colleague on how to present technical changes in terms of business value. They were hesitant to bring up certain points because of harsh feedback they'd received in the past.

I pointed out that that was a different company, different workplace culture, different manager and they had not used a strategy of emphasising business benefits.

Sometimes we overgeneralise feedback and the wrong lessons are learned. A cat that has been burnt will not sit on a hot stove again, but neither will they sit on a cold one.

 

The Effects of Imposter Syndrome

This is increased stress and erosion of confidence.

Stress affects productivity and learning in a U-shaped pattern:

  • Too little stress leads to complacency.

  • Too much stress causes panic, paralysis, and unproductive behavior.

Some people see impostor syndrome as helpful when it pushes them out of complacency and into a state of motivating eustress. Stepping outside your comfort zone can be an opportunity for growth.

Others highlight its harmful effects when it moves beyond motivating eustress into debilitating distress.

Conclusion

When lack of confidence is warranted it can lead to avoidance of risky or dangerous behaviour. And can motivate people to ask for help.

When lack of confidence is not warranted it can lead to avoidance of opportunities and the very experiences and practices that can improve those abilities. It can motivate people to hide the fact that they need help.


Resources

Related Posts



Thursday, July 27

The Onboardee’s Checklist

Y

ou’re starting a new job at a new company. You don’t know their internal processes or culture yet, and your role may be different from what you’ve done before.

You do have some information from the interview, but the reality of a job often doesn’t match the job description. Even if the interviewer previously held your position, day-to-day tasks are often glossed over in favor of more memorable, less frequent events.


Build Your Own Checklist

When you feel like you know nothing, it’s hard to make a plan. Every company is different, right? True—but you do have past experience to draw on.


If you’ve ever joined a new team, learned a new skill, or started a new activity, you’ve seen patterns emerge. Those patterns can form the basis of your personal onboarding checklist.

Here’s my checklist to get you started:

  • Know your go-to people – Who can help you when you’re stuck?
  • Map your resources – What tools, documents, and systems do you have access to?
  • Spot the risks early – What can go wrong? How will you know, and what’s your first response?
  • Understand communication norms – Email, chat, meetings—what’s preferred?
  • Notice process pain points – What’s broken, and what’s been patched over for too long?
  • Identify neglected work – Is there an unowned responsibility quietly gathering dust?

Remember: your weakness is that you know nothing—and your strength is also that you know nothing. A fresh perspective can spot issues veterans overlook.


It is common to feel overwhelmed. If you’re unsure how to ask a question, jot down your confusion. Then, once someone’s explained, revisit that spot and ask for clarity.


Make the Most of Onboarding

Document your onboarding experience—especially what’s missing or wrong. It will help the next person in your role and may highlight gaps for your team.

When reviewing tutorials or documentation:

  • Follow them step-by-step.

  • Note unclear instructions, unnecessary detail, or missing steps.

  • Suggest simplifying overly long guides by focusing on defaults for common cases.

Many tutorials suffer from the curse of knowledge—written from an expert’s view, crammed with every feature, and organized by internal logic rather than user needs.
Whenever possible, reframe them for the intended user: explain the intent, group by use case, and keep it simple.

Communicate Effectively 

  • Tame your inbox – Set up filters to keep critical messages visible amid the noise.
  • Be intentional with meetings – Know why you’re invited before accepting. Saying "No" is a skill. Long meetings with many people are costly; make them count.
  • Keep retrospectives actionable – The value is in the follow-up. Track action items and ensure they happen.
  • Adapt to the team’s style – Use their tools and tone, even if it’s different from what you’re used to.

  • Make Early, Smart Suggestions

    It’s natural to wait before making suggestions, but don’t wait too long—momentum matters. The first 90 days set the tone for your role.

    Look for:

    • Obvious gaps – Missing processes, outdated tools, unassigned work.

    • Avoided problems – Pain points that no one wants to own.

    • Low-bar opportunities – When a solution is bad or nonexistent, you don’t need deep expertise to make an impact.

    Some of my biggest wins came from tackling tasks outside my skill set—because no one else wanted to touch them. If you approach them with curiosity, persistence, and a willingness to learn, you can quickly add value.

    Even small fixes to frustrating workflows can dramatically improve team morale and productivity.


    Final Thought

    Your first weeks aren’t just about learning the ropes—they’re a unique chance to see with fresh eyes. Notice what’s confusing, inefficient, or broken before you become used to it.

    By combining curiosity with action, you can contribute meaningfully while still finding your feet.


    Related Posts



    More Information

    Books

    by Atul Gawande

    Shows how simple checklists can dramatically improve consistency, onboarding, and problem-solving.

    Video Reviews  1 &  2



    The Culture Map: Breaking Through the Invisible Boundaries of Global Business by Erin Meyer

    Excellent for decoding communication and decision-making styles, especially if you work in international or cross-functional teams.
     



    Crucial Conversations: Tools for Talking When Stakes are High  by Kerry Patterson, Stephen R. Covey,  Joseph Grenny,  Ron McMillan,  Al Switzler

    Practical techniques for staying calm, respectful, and effective during emotionally charged feedback moments.