Isolate-Improve-Inline: The 3-I Refactoring Tactic

Posted May 5, 2016 by Bill Wake in Refactoring

I often find myself using a particular multiple-step refactoring pattern that I call 3-I (or III): Isolate-Improve-Inline.
Read more

3 comments


Whole Stories for Whole Teams

Posted March 4, 2016 by Bill Wake in User Stories

What do we do about stories that are too big for small teams? The most common solution is to form a large team, grouped into sub-teams by subsystem, layer, or technology. Then turn too-big stories into two-level stories: an upper-level whole story that makes sense to a user, and lower-level stories organized according to the […]
Read more

2 comments


Grist for the Mill

Posted February 16, 2016 by Tim Ottinger in Anzen, Anzeneering, Coaching, Culture, Estimates, Learning, Mob Programming, Tech Safety

Let’s say that I ask you to calculate all the happy prime numbers between Planck’s constant and the speed of light expressed in meters per minute. Did you immediately start reciting numbers to me? Odds are that you did not.
Read more

No comments


Refactoring – Prepare, Improve, and Clean

Posted January 8, 2016 by Bryan Beecham in Learning, Refactoring, Software Design, Test Driven Development

Refactoring is at the heart of the way we improve code. We make changes to the code for the purpose of making it easier to understand and easier to modify while maintaining the same behaviour.
Read more

No comments


Modern Agile

Posted November 3, 2015 by Joshua Kerievsky in Agile Transition, Anzen, Anzeneering, Culture, Estimates, Extreme Programming, Kanban, Lean Startup, Mob Programming, Refactoring, Software Design, Tech Safety, Test Driven Development

Have you ever seen someone using an older laptop and just felt bad for them? That’s how I feel when I see most people practicing agile these days. We’ve advanced so far beyond where agile was in the mid 1990s, yet so many teams practice agile like it’s 1999! Meanwhile, agile/lean pioneers and practitioners have […]
Read more

50 comments


Hazardous Code Death Spiral (and a Cure)

Posted November 2, 2015 by Bill Wake in Refactoring

Hazardous code begets even more hazardous code—eventually.
Read more

No comments


Multiple Asserts Are OK

Posted September 29, 2015 by Bill Wake in Software Design, Test Driven Development

Some people suggest we should restrict ourselves to a single assertion per test. Are multiple asserts in a test ever OK?
Read more

3 comments


Over-Starting and Under-Finishing

Posted August 18, 2015 by Tim Ottinger in Agile Transition, Anzen, Anzeneering

Here is a story board to consider. Is it healthy? Is it being well-operated? New scrum practitioners may say that it looks great if that’s the first day of the sprint, but indicates serious problems if it looks like this on the last day or two.
Read more

3 comments


Evolutionary Design

Posted August 12, 2015 by Joshua Kerievsky in Anzeneering, Learning, Software Design

What is agile’s most valuable practice? It’s called Evolutionary Design. No other practice does a better job of managing risks in software development. Evolutionary Design influences how we organize people and teams, plan what to build, collaborate, integrate, develop and release. So why aren’t more people using it? Perhaps they don’t understand Evolutionary Design and […]
Read more

10 comments


Stop Per-Person Swimlanes

Posted June 19, 2015 by Tim Ottinger in Learning

Kanban boards (AKA “story boards”) are used by most Scrum, XP, and Kanban teams. They are a kind of Big Visible Chart used to visualize the work of the team in a straightforward way. As useful and simple as they are, in practice many are set up in ways that discourage teamwork and collaboration, ironically […]
Read more

4 comments