Archive

Software development

Coaching, Scrum Mastering, and Expertise

[Tl;Dr: Is it more, or less, effective for coaches, etc. to have technical (non-coaching) abilities?]

Over the years I’ve heard every kind of opinion on whether technical expertise is an asset or liability for coaches, Scrum Masters, and the like. Some folks, mainly executives, have sworn they would never hire a Coach or Scrum Master with technical expertise. Others, mainly coaches and Scrum Masters, have held much the opposite opinion. Those being coached have rarely expressed an opinion (although I suspect that’s because they don’t get asked, or think it won’t count, and not because they’re indifferent on the subject).

Personally, I tend to the opinion that, if it were down to me, I’d look for folks with excellent and demonstrable coaching skills, and not worry about the presence or absence of technical abilities unless they seemed intrusive and likely to interfere with the coaching dynamic. I recognise the argument that technical people lend more credibility to like-minded (i.e. technically capable) coaches because they find it easier to respect and identify with such folks. I also believe this argument to be a red herring, at least in the case where the coach or Scrum Master is effective and capable in the Coaching or Scrum Mastering skill-sets.

This is probably a good place to mention the Inner Game, and the suggestion by one of its founders, Sir John Whitmore, that “technical” knowledge and experience is a decided handicap for coaches and the coached, alike. In his book “Coaching For Performance” he tells several stories about this phenomenon, in particular that of the tennis group who, deprived of their regular tennis coach (and tennis expert) improved much more quickly under a substitute coach (with much coaching and skiing experience but no tennis experience).

Given that opinions on this topic seem all over the map, and many (mainly fruitless) discussions continue, I wonder if you have any experiences you’d be willing to share here?

– Bob

Further Reading

Coaching For Performance ~ Sir John Whitmore

The One Perfect Way to Develop Software

[Tl;Dr: Being a Master of the perfect way to develop software is more of a handicap than an asset.]

Let’s imagine you’ve received a Matrix-style download of all the knowledge and skills necessary for Mastery of the perfect way to develop software. And you’ve applied this knowledge, and honed the skills, in several or many software development endeavours. And have the results to prove it.

Then you join a new-to-you organisation, and a new-to-you team, where of course you want to share your profound, highly valuable insights, capabilities, knowledge and skills with your peers, with a view to you all basking in the sweet success of the One Perfect Way.

Setting aside secondary issues such as the probability that there is no ONE perfect way, and that software development per se is maybe not what our customers are really interested in, what could possibly go wrong?

I’ll leave this question hanging. If I receive some expressions of interest, I propose to return to it in a future post.

– Bob

Further Reading

Characterizing people as non-linear, first-order components in software development ~ Alistair Cockburn

 

No Hashtags

[Tl;Dr: #No… hashtags are aspirational, not didactic.]

I seem to have been labouring under the misapprehension that most folks in the Twitter software and product development communities have come to understand the mode of use of the various #No… hashtags we see regularly these days. Particular with the widespread exposure of the mother of them all: #NoEstimates.

(Note: I use the #NoTesting hashtag in a couple of the examples, below, mainly because recent discussions thereon have suggested to me a need for this post.

Invitational

For me, #No… hashtags are a short invitation to interested folks to think again about what, often, are near-autonomic responses. For example, I regard each occurrence of the #NoEstimates hashtag as an invitation to ponder whether, in each case, estimates are giving us value and meeting folks’ needs (in a relatively effective way). An invitation to checkpoint ourselves, and to discuss whether we are just us going-through-the motions without thinking too much about the role of estimates – and estimating – in any particular situation.

Aspirational

Also, I see #No… hashtags as being intended as aspirational: Articulating or labelling a future state where things could be different. Aspiring to change.

For example, I use #NoTesting to advertise my aspirations for a world of development where testing is no longer the chosen path to quality, replaced by other means for more economically delivering products, etc., with agreed levels of quality. So, in that case, #NoTesting really does advertise my aspiration for an end to testing – which I see as hugely expensive and wasteful compared to other, less well-known means – but NOT at the expense of product quality. It also implies – easy to miss, I guess – a responsible, calm, controlled transition from todays’ approaches to that aspirational future state.

“Ask not ‘how are we going to test this?'”
“Ask rather ‘how are we going to ensure this goes out with the agreed levels of quality?'”
“And when you’ve got a handle on that, ask then ‘how are we going to ensure that everything we do henceforth goes out at the agreed levels of quality?'”

Confrontational

And yes, too, #No… hashtags are confrontational. They invite us to challenge ourselves and our entrenched beliefs. To consider change, and it’s implications. And that’s often uncomfortable, at least. Particularly when the topic challenges folks’ self-image, or seems to threaten their accumulated wisdom, reputation and experience, or their livelihoods. I hope we can all see these things in the spirit of mutual exploration, rather than as an opportunity for reiterating entrenched positions and protecting the status quo.

“[#No… Hashtags are] the social media equivalent of poking people with a stick.”

Metaphorical

When I use #No… hashtags, I’m being metaphorical rather than literal. Some folks may not understand this and get upset, by taking them literally. For my part, I believe that’s on them.

For example, with the #NoTesting hashtag, I have had some folks assume that I’m advocating abandoning any concern for the quality of e.g. a product under development. This is not my position. Although denying it seems only to inflame the situation once folks have got their teeth clamped on that particular bone. I guess their assumptions stem from not having knowledge of other means to quality.

In using the #NoTesting hashtag, I’m basically saying “under some circumstances, maybe there are other, more effective means to meet folks needs re: product quality than the default strategy most use today (i.e. testing)”. “How about we talk about those various circumstances, and means?” In this way, #No… hashtags are a metaphor for “would you be willing to think again, and maybe join the search for more effective means, and the contexts in which they might bring benefits?”

Summary

Would you be willing to join me in embracing the #No… hashtag modality, and take each occurrence as an opportunity for a productive and relationship-building mutual exploration of a topic?

– Bob

Further Reading

The Germ Theory of Management ~ Myron Tribus

The Structure of Scientific Revolutions ~ Thomas S. Kuhn

 

Learn Through Delivering

In my previous post I talked a little about the role of language and vocabulary in shifting focus – from being busy, to attending to folks’ needs. The word ‘deliverable’ emphasises, unsurprisingly, delivery. But what does it mean to “deliver” in the context of i.e. software development?

Inspect and Adapt

For me, delivery is the opportunity to close the feedback loop. To gain some insight into whether what we’ve been working on has been useful to our stakeholders. And to adjust our sights – and ways of doing things – in the light of that information.  So the defining aspect of any and all “deliverables” is that deliverables, by this definition, must be delivered to stakeholders and they must be able to try them out in as near as possible to real-world situations so as to provide meaningful feedback.

Cadence

Just how often might we deliver something for our stakeholders to provide feedback on? That depends on how short we want our feedback loops to be. Myself, I prefer a maximum feedback loop length of two to three days. Whether your teams are in a position to dance to this rhythm, or something slower, kind of depends on your stakeholders and how quickly they can look at, and respond to, each delivery. Keeping deliveries small can help here, by keeping what they have to look at, and their responses, small too.

Artefacts

Of course, there will be things we create, produce – things for our own consumption, like documents, design artefacts, intermediate transformations leading to deliverables, and so on. I choose to call these non-deliverables “artefacts” (or even “non-deliverables”) – to distinguish them from the deliverables on which we intend to seek feedback.

May I invite you to trial a change of perspective – from learning through doing, to learning through delivering – as soon as you have the opportunity?

– Bob

 

Tasks – or Deliverables

In most every development shop I’ve seen, folks’ planning vocabulary has been founded on the task as the unit of work. Long ago, at Familiar, we discovered that a different vocabulary offers some key advantages. Ever since then I’ve found that a planning vocabulary when deliverables are the default unit of work suit me much better.

Some Key Advantages

  • Planning in tasks encourages (subconsciously for the most part) busywork (a focus on activity).
  • Planning in deliverables encourages a focus on outputs (ands thus, closer to outcomes).
  • Deliverables are closer to what stakeholders seek (i.e. having their needs attend-to, or even met).
  • Tasks are generally one stage further removed from needs than are deliverables.
  • Deliverables are, to a degree, ends in themselves – tasks are means to ends (and hence more disconnected from outcomes).
  • I find it easier and more useful to quantify aspects of deliverables than aspects of tasks. YMMV.

Mayhap a focus on outcomes directly would be a further step in the right direction, but for most of the development groups I’ve seen, a single leap from tasks to outcomes might have proven infeasible.

May I invite you to trial a change of vocabulary, and of focus, next time you have the opportunity?

– Bob

 

The Future Of Software-Intensive Product Development

A little while ago I wrote a post posing some questions about what ways of working we might look to, After Agile. Fewer folks engaged with this post compared to some others I have written. So I’m assuming that few are thinking about what we might see as the natural – or even unnatural – successor to Agile.

It is, however, a topic that occupies me regularly. Not least because of the intrinsic flaws in the whole Agile idea. We can, and eventually must, do much better.

Recently, some folks have been asking me about what I see as the future for software- and software-intensive product development (SIPD). Of course, I’ve been answering this question, on and off, for at least the past few years.

In a Nutshell

To sum up my take: In a nutshell, the issues that plague SIPD seem obvious. They’re mostly the same issues that plague all forms of collaborative knowledge work. Issues compounded by the gulf between conventional or traditional work and the new world of work (i.e. the world of collaborative knowledge work) – a new world distinctly unfamiliar to most in the world of work today.

We are faced with various collections of pathogenic beliefs (management, traditional business, Agile, etc.), none of which provide us with a context for EFFECTIVELY tackling the challenges we face in the new world of work – i.e. the world of collaborative knowledge work.

I’m choosing here to list these challenges in terms of needs, and in terms of the strategies – conventional and unconventional – for meeting those needs.

Developers’ Needs

Agile came into being driven by developers attempting to see their needs better met. These include:

  • Less working time “wasted” on mindless bureaucracy and distractions, such as meetings, reports, documentation, etc..
  • More time to focus on making great software, and stuff that delights customers.
  • Improved relationships with co-workers, business folks, customers, and the like.
  • More flexibility to adapt to emerging information, to changing needs, and to things learned along the way.
  • More say in what they work on, the tools they work with, and how they do their work.
  • Approval of one’s peers (including a sense of belonging and community re: the “technical” tribe)
  • And simply, the leeway to just “do a better job” and make a positive difference in the world.

Bottom line: Many developers need to feel valued, purposeful, that they’re making progress (learning) and are recognised for their abilities.

Business Folks’ Needs

Secondarily, but still important in the Agile approach, is better outcomes for “the business”. Agilists have come to recognise the following needs (even though common forms of Agile do not address them).

  • Approval of one’s peers (including a sense of belonging and community re: the “management” tribe).
  • Empathy (meaningful connection with other human beings).
  • A positive self-image.
  • Stability (folks have families to support).
  • Acclaim/fame (folks have careers to pursue).
  • Warmth (of human relationships) – Most business folks are just normal people, too.
  • Peace (i.e. an absence of distress).
  • Purpose.

Users’ / Customers’ Needs

Businesses ultimately stand or fall on revenues. Revenues which depend on their products and services meeting the needs of their customers. These needs include:

  • Approval of one’s peers (including a sense of belonging and community re: the “brand” or “XYZ customer” tribe).
  • A positive self-image (what being a user or owner of a certain product says about you, in your own mind).
  • Stability (folks don’t like to think too hard, or continually learn new stuff for no good reason).
  • Warmth (of human relationships) – Most customers, being humans, value interactions with other human beings.
  • Low fuss (i.e. being able to get their jobs done with minimal distress).

Shareholders’ Needs

Shareholders also have needs which they seek to get met. These include:

  • Approval of one’s peers (including a sense of belonging and community re: the “investor” tribe).
  • Contribution to society (e.g. ethical investments) and communities.
  • Financial returns (investors have families and/or lifestyles to support).

In a future post I’ll be looking at the strategies that people use to get these needs met, including those strategies implicit in Agile methods – and some alternative strategies that might prove

– Bob

 

What’s The One Question A Scrum Master Must Ask?

When interviewing for a new Scrum Master or similar position, we can often intuit much about the position, the team and the company from those many little clues which offer themselves. But one thing often less obvious, and so, worth asking about is:

“How does the blockers’ pipeline work here?”

The key role of the Scrum Master is to facilitate the escalation (and to some extent, resolution) of blockers a.k.a. impediments – problems noted by the team but not actionable / fixable by them because the root cause lies outside their span of control.

Some organisations will already have a pipeline or process for escalating such “blockers”. Many more will not, not often understand the need for one and the role of non-team people in that process.

The prospective Scrum Master may want to see how the land lies before committing to a position in an organisation that is not ready or able to institute an effective blockers’ pipeline.

– Bob

%d bloggers like this: