A post on this blog received a very interesting comment from a reader with the nom de pixel Malapine:
"…my problem isn’t boredom but fear: the codebase sucks, we have no idea whether the features are what customers want, and if the product doesn’t sell, some of us may get laid off. If that’s ever me, I am screwed: my resume will show two decades with the same employer, the vast majority of it on Waterfall or ScrumBut projects."
"Off the job, I read books on Agile, go to monthly dojos, etc.; but on the job I can’t even do TDD properly — builds take 20 minutes just to compile, and nobody else seems to care."
I felt this called for more than a response in the comment thread. It seems to me it illustrates that perception can be more important than reality, and that is of interest to me presently.
First I want to commend Malapine for acknowledging fear; I think fear plays a larger role for all of us than we usually care to admit. I think fear is probably at the root of most people’s failure to take "obvious" (and I use the word advisedly) steps to improve things.
So, here’s a guy who is pretty advanced in his career development, has 20+ years of experience, pays attention to developments in the field, keeps his skills sharp by practicing on his own time, participates in dojos regularly, and does his best to introduce effective methods at his place of work. Yet, he worries about what might happen should his company’s product not do well in the market. He hears and reads so much about "agile" that it must seem as if potential new employers will not consider experience in a non-agile environment relevant to contemporary work. He might feel as if he is unemployable, and lucky to have a job.
Now, here’s how I read the same data: Here’s a guy who demonstrates a high degree of professionalism, market awareness, and perseverance. He has long and deep technical experience, a proven track record of sticking with things even when the going gets tough, and still maintains an open mind about learning new things. He cares deeply about software craftsmanship, product quality, and customer satisfaction, and he feels responsible for those things. Just those factors alone put him miles ahead of 99% of the competition for jobs in the field. He’s also old enough to be seen as a natural leader and mentor in any organization he joins, and young enough not to be dismissed out of hand by Human Resources, who are always careful to pretend not to practice age discrimination. I would see him as a top candidate for any potential new employer.
We’re looking at the same data, and we arrive a very different conclusions. What’s different? I don’t know him well, and can’t say what all the differences in our perspectives might be, or what additional considerations he might need to weigh that aren’t anyone’s business in a public forum. To explore the question of how we could arrive at such different conclusions, two readily-apparent differences may be relevant. Bear in mind this is highly speculative.
First, he has been with the same firm for 20 years, while I have been moving around quite a bit over the same span of years, and in the past 10 years very active in introducing "agile" and similar methods. If a person has been working in a non-"agile" environment during the time that "agile" was gaining popularity, he may well think the whole world has changed and left him behind. But what I see at ground level is that very little beyond the buzzword, "agile," has penetrated very deeply. Worries about not being up to date with respect to "agile" practices are based on perception, not on reality. A decade after Snowbird, almost no one (statistically) has even a remotely "agile" mindset.
Second, as my wife pointed out when we were discussing differences in perspectives, when I was at about the same point in my career and family life I was also fearful of making radical changes in my work situation. She kindly reminded me of some poor choices I made at around the same age for no better reason than fear…staying with jobs I didn’t like, allowing opportunities to pass me by. I had forgotten about that, possibly as a result of hindsight bias. So, maybe part of it just boils down to general experience. I’ve been through enough changes, some good and some bad, that I know the occasional bad job move won’t harm my family or destroy my career. We’ve had tight finances from time to time, but we haven’t had to sleep under an overpass (yet). It’s hard to see that when you’re in the middle of things, though. Tactical concerns tend to hold your attention. You lose the forest amid the trees.
No doubt there has been extensive research into the mechanisms of decision-making and the motivators for human behavior. I don’t have a background in those fields, and I’m not suggesting my ideas are in any way authoritative. In trying to reason through this, pursuant to becoming more effective as an organizational change agent and coach, I came up with a simple-minded and rather nerdy context diagram to help myself understand what’s going on. A person who has a real education would probably find it amusing, but I’ll go ahead and share it anyway (link is at the end of this post). I call it "nerdy" because it boils down to an old software design model: Input-process-output. We take inputs from the world, process them somehow, and produce output (behavior). The interesting part (to me, anyway) is the somehow. How do we end up processing inputs in just the ways we do? This would explain, for example, how Malapine and I could arrive at diametrically opposite conclusions based on the same set of observations.
It’s common to hear that a human being is an example of a complex adaptive system. Even my very simplistic, ad hoc pondering of the question revealed numerous influences over our mindset; the true situation must surely be even more complex than that. Mindset appears to be key to understanding our behavior and our perception of reality. The many inputs to mindset in the diagram suggest it is a relatively complicated aspect of human nature, subject to many different influences.
One thing that emerged through my pondering was that mindset can be used to adjust our cognitive biases and mitigate our fear, intentionally and by our own deliberate design. Mitigating fear may also have the effect of reducing the potency of cognitive dissonance. This may enable us to regain our forest-and-trees perspective.
To do so, our mindset must be shaped by critical thinking skills. That observation ties back to my earlier thoughts about why people don’t take "obvious" actions to improve their situations. Based on observation and experience, and not on formal study, it seems to me that critical thinking is sorely lacking not only within the software community, but throughout our society. Without this toolset, how can people adjust their mindsets in ways that mitigate their fear and correct for their cognitive biases? Short of experiences that force them out of their comfort zones, like some sort of near-death experience, I wonder if there is any other practical mechanism besides intentional, deliberate, and critically-guided thought.
Malapine also wrote, "Agileheim is by analogy to Vanaheim (the mythical land of wise and productive gods). It’s at the opposite end of the world-tree from Taylorheim."
With no wish to "rune" the Yggdrasil metaphor, if any of this is correct then we may not be predestined to drink solely from Urðarbrunnr, the Well of Fate, but we may be able to sip from Mímisbrunnr, the Well of Wisdom, should we so choose.