At Agile Open California this year, Volker Frank led a session about developing leaders within an agile organization. And it got me thinking: one way to lead is to see a possibility more clearly than anybody else, to describe that vision in a way that helps others see its beauty, and to help guide people towards a realization of that vision.

You hear about this in the context of the trailblazers leading teams in developing a revolutionary new product. But that’s not the only type of visionary worth celebrating: there’s also the power and beauty seen by those who have a vision of what’s present but latent in a situation. (Refining visionaries? Distilling visionaries?) Looking at a collection of code that’s effective in its own way but is harder to work with than you’d like, seeing an underlying structure that contributes to that code’s power, and then helping others see and bring out that structure. Working with a team that sometimes surprises everybody with what it gets done but that, more frequently, is stuttering and stumbling; helping the team figure out what’s going on during the good times that’s absent in the bad times; and helping them set up a context that reinforces the good times.

I don’t want to minimize the power of visionaries who open up new possibilities; but if you’re always looking for something new, you won’t be living with your visions long enough to do any of them well. And I suspect there are psychological consequences, too: if you’re always looking for the next thing, then that reinforces a “grass is greener” outlook. So, while being static has the risk of settling for something that’s bad for you, this latter, “refining” sort of visionary can help turn that relative lack of motion into a positive characteristic, actively finding and nourishing the good in wherever you are.

And these refining visions are one that agile practices reinforce. Most notably in the practice of refactoring, of course: you’re explicitly not changing the behavior of your code, you’re just making it better. Testing, too: tests are a way of reifying one aspect of your vision, helping specify the behavioral aspects of where you are right now.


Of course, the distinction between these two kinds of visionaries is hardly cut-and-dried. At first I was going to say that mathematicians and scientists are refining visionaries, for example, because they’re finding regularities and rules in examples present in the world, but that’s far too simplistic: I can’t characterize Grothendieck’s vision of a new approach towards the foundations of geometry as just a distilling of prior examples.

And the use of techniques in service of these visions isn’t cut-and-dried, either. I mentioned testing above in support of refinining vision; but agile practitioners also use tests to help move the behavior of code forward. One thing that does characterize agile methods, though, is its preference for small movements: incremental design, and delivering value continuously rather than discretely.

So, if an agile team is going to be looking for a single type of visionary, the sort of visionary that would help the most is something in between, but one that (compared to non-agile contexts) is relatively weighted towards the local, refining side. By all means, have a vision of a promised land off in the distance. But don’t spend your time living over there: spend your time figuring out what the next step is that you hope will lead in that direction. And, while making that next step, pay close attention to your center of gravity, and don’t let it shift too much on any single movement.


Probably better still, though, is for an agile team to have many visionaries on it, instead of a single visionary leader. Some have clearer visions of a new world, some look particularly closely at the local terrain, but all can work together to take that next step.

Post Revisions:

This post has not been revised since publication.