Julio Cortázar and software development methods

Nadie habrá dejado de observar que con frecuencia marcos del proceso se aplican mecánicamente.

Maybe Julio Cortázar, whose 100th birthday we celebrate this year, would have begun a set of instructions for implementing a process framework with similar words. No one will have failed to observe that many individuals, teams, and organizations are quite befuddled by the process framework they are trying to use. They struggle mightily to follow every “rule” the framework “requires,” even when their goals are ill served by those rules.

Indeed, it is typical for such individuals, teams, and organizations to lose sight of their original goals altogether in their attempts to satisfy the real or perceived “rules” of the process framework. No matter how haphazard their previous mode of work may have been, many conclude that the framework “doesn’t work,” and revert to their former methods.

It is not always easy to discern the intent of Cortázar’s work. One might assume he was not writing about software development processes at all. Yet, his work seems to resonate within that field. Or perhaps it is the surrealistic style of the writing that resonates, rather than the content.

Whether by design or by chance, his Instrucciones para subir una escalera (in English, Instructions for climbing a staircase) captures succinctly the way in which most individuals, teams, and organizations apply process frameworks such as Scrum, Kanban, Extreme Programming, SAFe, DAD, Evo, RUP, Spiral, and others.

No matter how counterintuitive, counterproductive, or downright painful it may be, people steadfastly grind their projects against the unforgiving walls of the framework’s “rules” until they have worn away all hope of delivering any value to stakeholers or of maintaining a thread of sanity for themselves. When asked about their goals, they can only chant phrases like “to be agile” or “to do Scrum.” They cannot remember why it had occurred to them to “be agile” or “do Scrum” in the first place. All has been forgotten in the zombie-march to follow “rules.”

They forget the purpose of the staircase is to elevate them from whatever level they are on today to the next higher level. They focus instead on the mechanics of lifting a foot.

If you find yourself in such a position, please pause and ask yourself what you are trying to achieve. Then ask yourself how the chosen process framework is expected to help you achieve it. Then tailor the framework to your needs. Or discard it. Or something.

Once you have remembered the reasons you selected the framework in the first place, measure those things. Don’t bother measuring your adherence to the framework’s “rules.” Measure the outcomes you care about.

Contemporary lightweight process frameworks are often intended as a starting point for continual improvement, and not as a set of rigid rules to be followed mindlessly. This includes Scrum, Kanban, SAFe, and DAD, if not others as well. We are expected to tailor the framework to our needs. We are expected to jettison process overhead activities once we have matured our practices to the point the overhead is no longer necessary. We are expected to keep in mind the reasons we selected the framework, and to adjust course as needed to pursue those reasons.

You can’t “improve” if you have no direction in mind. It’s very unlikely your goal is, in fact, “be agile” or “do Scrum.” If you can articulate a goal or a direction, then you will be able to tell whether you are “improving” or not. Lacking that, then you are guided by the old daoist expression, “If you have no destination in mind, then any way is the right way.”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s