Happy 2021! I’m not much for ado, so here is that one thing:
Work for a good private company.
Not a bad private company. Not a good public company. And certainly not a bad public company, even though those are a dime a dozen.
No, a good, private company.
Why is that?
Well, there’s the obvious: public companies have to spend too much time satisfying shareholders rather than their customers (let alone their employees).
Good private companies are driven through the vision of a passionate owner and leadership. They believe that the best ideas take time, and are driven by creative people who take risks, make mistakes, and learn.
Really good private companies also know that a healthy employee culture can never be achieved when satisfying transient shareholders is the number one goal.
Look around at your friends. Which of them really enjoy their jobs, and are content with the culture that they work within? Which of them are encouraged to create change through their personal perseverance and vision? Which of them say, “I work at a pretty good place, maybe the best place I have ever worked?”
Of those friends, do any work for a public company?
2021 will be a year filled with job changes. People who have lost their jobs, who have relocated to a city that they don’t care for, who need to get out of a city that isn’t what it once was, who were treated poorly during the pandemic, or who are more or less burned out, will all be eager for change. 2021 will be a year filled with an incredible number of people switching jobs.
Throughout your career, you will hear a drone of advice about how to climb up corporate ladders, prove your worth, persuade others of your vision, “achieve success,” blah, blah, blah, blah, puke, puke, puke. If you have to play games to achieve recognition for the work you do, then you don’t work at a place worth working for. And game playing is what working at most public companies is all about.
What to do? Get out. Find a private company that is interested in you as you…you as a mistake-maker…you as a learner…you as a person who cares about other people…more than you as a “resource” whose only value is a function of your current output.
Here’s a simple fact of life: “shareholder value” is a terrible destination, because shareholders are stupid. That includes you and that includes me, even as unwitting and passive shareholders of mutual funds in our 401(k)s that are run by “expert” shareholders who are also stupid, although perhaps — just perhaps — a little less stupid than we are.
Shareholders generally don’t truly understand the companies they are investing in. They can’t. Otherwise, they would be insiders. In other words, we can’t help but be stupid compared to those who work within the companies we invest in.
I’m going to share two illustrations of this with you, from two different perspectives.
I.
I once held stock in a great company called athenahealth. I had the fortune, through a friend, of meeting athenahealth’s CEO, Jonathan Bush (nephew of George H.W. Bush, FWIW). I had the benefit of a first-hand tour of their headquarters. Jonathan, and those who worked there, knew that their true value lay in a piece of software known as athenaCollector. This software helped medical providers get paid by insurance companies much faster than they ever could be paid before, solving one of the most pressing problems that doctors have. How did they do this? athenahealth had experts inside the organization who studied the idiosyncratic ways that health insurers would reject claims based upon expected mappings between diagnosis codes (ICD-10) and treatment (CPT) codes. Doctors only get paid once they submit the right combination of these to your insurance company. I would say that athenahealth’s magic was that they really listened to what doctors needed most: to get paid, as quickly as possible, with as little administrative game playing as possible, so that we can get back to what we do best.
On Wall Street, where athenahealth was known as ATHN, this little company became known merely as a player in the Electronic Medical Records (EMR) space. Sure, athenahealth developed an EMR, because, well, it’s the nature of a public company to do things that “grow” revenue (as if revenue were some kind of plant). That’s what shareholders expect, and what the analysts who are the designated shoppers for shareholders are trained to find for them.
But shareholders do not care to understand the details of how ICD-10 codes map to CPT codes, and how health insurance companies try as best as they can to ensure that they do not have to pay whatever they can possibly reject (or at least delay accepting – time is money, after all). Shareholders and analysts understand, well, EMR! Yes, Electronic Medical Records! That sounds modern and cutting edge – just like plastics used to be! I’ve heard of Epic! Those Epic-ans are filthy rich out there in Madison, Wisconsin! Let’s invest in an underdog like athenahealth so that we can make money because, sure sounds like this place makes a good EMR with all that technology stuff! And people say they are advanced! Let’s take a look at their earnings per share and P/E ratio! Wow, count me in!
Seriously, people, that is about as deep as a typical investor gets.
Remember: I was lucky enough to visit the company, meet with its CEO, and go for an on-site tour. How many shareholders —or even analysts — get the opportunity to do that?
II.
Here’s the second illustration, from another perspective:
From 2006–2010, I worked as part of the incredible software team at Xerox Global Services.
In 2008, pure play document consulting and management services contributed $3.5B of Xerox’s $17.6B in revenue. Nearly 20% of Xerox’s revenue came from these services. That was also 27% of Xerox’s “post sale revenue” (which included toner and maintenance) and 41% of Xerox’s $8.585B in “Service, outsourcing and rentals.”
I remember watching the annual shareholder meeting that year. I don’t have a transcript at hand, but if my memory serves me, there were a lot of very old – maybe even elderly – people asking Anne Mulcahy questions about copiers and toner. There was no substantive discussion of services whatsoever. You can see from the annual report that services were an increasingly important part of our business — $3.5B is no small potatoes; it’s about half of today’s Xerox’s trailing annual revenue.
What happened between now and then? What were the shareholders missing?
Well, in 2009, Xerox announced that it had acquired a services company called ACS for $6.4B. This was in response to Xerox’s competitors making similar moves, like HP acquiring EDS in 2008. However, the acquisition was trumpeted with headlines like
…transforms Xerox into a services company that can focus on business process management and outsourcing.
If you read the materials from the time, they don’t take any care to mention that Xerox was already seriously in the services space. Read this article from The Wall Street Journal, for instance. Do you want to know what I think the choicest bits of that are?
With the purchase, Xerox is the latest big hardware vendor to buy a services company, as tech giants try to find more consistent revenue streams to offset shrinking profits in their hardware businesses. Last week, Dell Inc. agreed to buy Perot Systems Corp. for $3.9 million. H-P last year bought Electronic Data Systems for $13.9 billion. International Business Machines Corp. has been building a huge services business for 15 years. ‘There’s a strong strategic rationale for the deal. Customers want to do more things with fewer providers, and there are too many companies in’ the services space, said Peter Bendor-Samuel, chief executive of Everest Group, a Dallas company that follows the services industry. Adding services to a hardware company helps retain customers.
Let’s share a simple fact about companies: the most important ideas in any company are trade secrets, and these things are reserved for employees, not shareholders.
What shareholders understand about a company comes — 100% — from whatever the people inside the company are willing to share, and how they are willing to share it. You’ve undoubtedly played the game of telephone before. The result? Shareholders invest in companies based upon whatever they are able to understand from this limited set of information, and they share that with one another, all of which becomes, simply, a personalized and remote distillation of the truth.
Saying that shareholders know what’s going on in a company is like saying Scotch is barley. A lot happens between barley and Scotch.
I will give shareholders some credit: they do try to get the gist of what is going on. But they are stupid principally because they are willing to convince themselves that they truly understand what’s going on in a company, in order to rationalize that they are making a good choice with their investment.
These sorts of shareholders wind up steering most all public companies. Steering a ship without understanding its construction, its engine, or the crew operating it (particularly the crew in way down in the engine room).
Do you think these investors really care about the individuals working within their ships? Which investors (or, more to the point, insurers) of Cunard thought to ask if Titanic had enough lifeboats? Lack of curiosity and imagination is a longstanding feature of human nature. Sure, curiosity and imagination is often in sufficient supply to design, build and dispatch a magnificent ship, but at some point, people often simply telescope just to get the job done and the profit made, with less focus on the lifespan of that ship and those who will live aboard it.
There are some very good things about working for public companies. Access to resources. Many brilliant people — oftentimes the best in the business — whom you get to interact with. A name that your friends and families know, and are proud to mention in the same breath as your name. Most of all: experience understanding the dynamics of a public company.
If, today, you work at a public company, another essential practice you can make toward a fulfilling career is: focus on the happiness and welfare of the people around you. Ask questions that cultivate curiosity and that inspire people to think and to put their imagination to work. Create a sense of safety for them in the riskiest of situations. Do your very best to have compassion for them and solidarity with them.
The path to perseverance with this practice in a public company is strewn with boulders of many sizes. You may well quit, or maybe you will be terminated. But! Even though you will not likely find a lasting, fulfilling career, two very important things will happen:
You will have done good things for good people, who will remember you for what you did to help them, and that will come back around someday.
You will develop compelling experience and stories that will make for incredible interview material at your interview with a good private company.
Why do you suppose so many leaders of public companies leave to start their own private companies? Because they know these dirty little secrets all too well.
If you happen to find a job in 2021 working for a public company — or you work for one already — be sure enjoy your ride. Learn as much as you can. Take it all in. But the lessons you need to survive and grow within a public company are merely that — survival tactics. They will sap your energy, and they may even condition you with poisonous behaviors that you will have to shed in order to have a glowing obituary.
The lessons you need for a truly fulfilling — and, dare I say, peaceful — career are among these pages. Empathy.Trust.Compassion.
In a company worth working for, you don’t need survival skills. The skills you need to feel satisfaction and progress are basic human skills. Focus on developing other people and helping them develop themselves. Focus on nurturing your skills in emotional intelligence (these are skills you can develop!). Focus on nonviolent communication. Create safe spaces for your teammates to express, explore and articulate their uncertainties. Make mistakes together, and pick each other up when you fall. Develop trust in one another. Care about your customers and what they need. Spend time with them. You have the time to develop quality relationships with your customers, because there are no shareholders to rush you.
Friends, I wish you a very fine 2021. As an early boss of mine — Eliot Subin, the CEO of ThrottleBox Media — once said:
Every day, you should live by the ELF theory: Earn. Learn. And have Fun.
When you identify a leader, how do you invest in his or her growth?
My father was an electrical engineer of the highest order. A master bridge player and a director of electrical engineering at Hazeltine Corporation — one of the most significant electrical engineering companies in American history — he was a smart man who worked in the smartest of company. Dad’s colleagues over the years included not just Professor Alan Hazeltine himself, but Harold Wheeler of Wheeler Laboratories; Page Burr, co-founder of Burr-Brown, and who was my father’s classmate at Cornell; Bernie Loughlin, who co-invented color television; and Henry Bachman, who served as IEEE President and became an IEEE fellow. There were many others. I don’t usually do this, but I encourage you to view the links to these individuals before you proceed, as they will paint a vivid picture of the fortunate magnificence of my father’s cohort.
What follows is not a hackneyed story about how my father was a great leader (although he was). It is a story about how the engineers of my father’s generation invented the idea of software, carving out the path to a new form of leadership. It is also the story of how he catapulted me along for the ride — with a swift kick in the pants.
Dad spent nearly 50 years at Hazeltine. My brothers and I all worked there at some point in our lives as well. My eldest brother Paul notably worked there for over 30 years in manufacturing, including time spent as part of the team that created the world’s very first multi-layered PC boards. Hazeltine was a major force in the formative years of the electrical engineering industry.
I grew up in a fairly traditional household, where we shared stories over supper, every day. The children would discuss their schooldays, Mom would talk about what happened around the house and the news of the day, and Dad would share the latest goings on at Hazeltine. These would often include (generalized) stories about how the military changed requirements for the projects his teams were working on, how frustrating those changes were, and how this all threatened the due dates that they faced.
Above all else, these were stories about human beings and their struggles with change. I wish that I could recall many of them in great detail so that I could share them; I cannot. But they had a huge impact on our family’s understanding of the world Dad worked within.
Less than a year and a half before he died at age 93, I was lucky enough to record Dad (during a car ride) recounting the following funny and fascinating story about the search for an aneroid barometer that was suited to solve a voltage issue his engineering team had at high altitudes within an Identification Friend or Foe (IFF) system for a Northrop aircraft.
Dad told these sorts of stories every night when we were growing up. Without really appreciating it at the time, I was deeply conditioned by the lessons and experiences of my father and his distinguished colleagues as related through these suppertime stories, right alongside their journeys to define the modern disciplines of their craft. It is all hard to believe in retrospect, but I had a first-hand seat to this era of engineering history, which became, no doubt, a significant component of my own education, outside of any classroom.
One of these old stories is easy for me to vividly recollect, no doubt because it was the seed that grew into my life’s professional focus. During one summer evening in the late 1970s, Dad introduced our family to the word “software.” While I can’t recall all of the details, one thing I do recall is him sharing how it allowed his engineers to make changes to things they made without having to redesign hardware. The fact that the very idea of software came about to mitigate the issues that electrical engineers of Dad’s generation faced is a lost story, yet it is critical to remember if we wish to understand the opportunities it represents. Electrical engineers designed hardware that could be programmed, elegantly enabling them to honor the human need for change while reducing their natural, personal frustrations when faced with that need.
The world would do well to remember that software is all about encouraging — rather than resisting — change. Many people wish to treat software as something to finish. Haven’t we all heard people ask, “When will we be done with this software so we can move on?” How do you feel when you hear that? I enjoy tossing back this pithy response, which was borne of my suppertime story experiences:
If we want something that doesn’t change, we should just build hardware.
Yours truly, on some hot summer night in the early 1980s. How about those socks?
When I was a young teenager in the early 1980s, I spent countless — undoubtedly thousands — of hours programming the 8-bit computers of the era, starting with the Commodore VIC-20 and moving on to the Commodore 64. One might describe me as addicted to programming, to the extent that Dad occasionally switched off the circuit breaker to my room so that I would better attend to my assigned chores and homework. During high school, I told him that I was eager to study computer science in college (software engineering degrees were more than a decade away at the time, and the term itself was probably not in common use, either.) His response to this was not what I expected.
“You don’t need a computer science degree to be a computer programmer,” he shared, with a brusque certainty. Dad was typically more demanding than I — or any young teenager — could bear. He would quickly and easily find the flaws in any system, argument, or idea that I might have. He went on:
“I will be paying for your education, and will not pay for you to do that. What you need in order to program computers is a background in liberal arts, because that experience will best equip you how to learn on your own on an ongoing basis, as computer languages, and the problems they are used for, change.”
That hit me like a ton of bricks, in the sense that I had no choice, unless I could find the money to pay for college myself. But it was also fair and gentle, in the sense that it was broad, with no specific direction other than to study liberal arts. I happened to be interested in studying journalism and publishing, and I was good in English class, so this all wasn’t as horrible as it could have been. But it was certainly not what my other teenage programming friends were doing, and at the time it was hard to believe he was right.
You might recall this quote:
“When I was a boy of fourteen, my father was so ignorant, I could hardly stand to have the old man around. But when I got to be twenty-one, I was astonished at how much he had learned in seven years.”
—Not Mark Twain
I followed Dad’s orders.
The undergraduate program that I joined in 1986 at SUNY-Binghamton was focused on rhetorical theory, which, if you have read many of these pages before, you will understand as the ancient and philosophical study of persuasion and communication. Lucky for me, Dad didn’t mind if I took a computer science program or two, which I did to my personal delight, serving to fulfill some of my science obligations. (We learned Pascal back then.) But rhetorical theory became my academic passion. It was the driving force behind my appreciation and understanding of empathy and trust. If you want to know more, I recommend you read Aristotle’s Rhetoric.
When I graduated from college, I landed a job as a software developer for a publishing company, oddly satisfying my broad desire to work for a publishing company while simultaneously satisfying my desire to program all day.
I never left the software industry after that.
In my career’s first 15 years, software development projects were universally managed using traditional, deadline-driven waterfall methodologies, just like the very projects my dad managed in his career. In the mid 2000s, however, Scrum entered into my life — and the lives of many others. What occurred to me in the process of learning Scrum was that managing software development with Gannt charts and up-front planning was completely at odds with what software was supposed be. It felt remarkably more compatible with what Dad had shared at the dinner table over thirty years prior. With Scrum, we could finally develop software in a manner that embraced the sort of change that only software could deftly provide.
Software’s very nature doesn’t merely involve uncertainty. It invites it. It is its raison d’être. Software is utterly pointless when there is certainty (I will repeat: otherwise, we should just build hardware.) What are we really achieving when we practice Scrum? We are offering a framework for human beings to help them manage the invited change and uncertainty, by taking one step at a time.
And, as the saying goes, herein lies the crux of the matter.
The Normal State, where we seek comfort and predictability (when we wake up and wish for a day without drama or surprises, and a pleasant evening to follow). We stick to the reactive, and not the proactive. As Quinn puts it: “To remain in the normal state, refusing to change while the universe changes around us, is ultimately to choose slow death.”
The Fundamental State of Leadership, where we face the need to change with the world around us, eschewing our natural desire for the comfort of the normal state. To quote Quinn once more, “In the fundamental state of leadership, we become less comfort-centered and more purpose-centered. We stop asking, What do I want? Since what we want is to be comfortable, this question keeps us in the reactive state. Instead we ask, What result do I want to create?”
The difference between supervision, management, and leadership might best be described as follows:
Supervision is the practice of overseeing people to ensure they’re doing their assigned tasks.
Management is the practice of nurturing someone’s career so that they can achieve what they aim to.
Leadership is the practice of taking people on a journey to an unknown place while managing their natural anxieties about this journey.
This is why good executives are fond of pointing out that everybody in an organization is capable of being a leader, no matter where they fall in the corporate hierarchy. Leaders drive change, and bring tools to the table to facilitate that change.
By definition, software engineers bring tools to the table to facilitate change — whether employing Scrum or not. Scrum just happens to make the journey easier for everyone involved. Don’t leaders worthy of the label seek to do these things at every turn? When software engineers use frameworks like Scrum to assist them in their efforts to drive change, they are living the very highest form of leadership.
What are the consequences of this assertion?
For starters, we should make every attempt to recognize that software engineers are key leaders for the organizations they serve. To be clear: they are not future leaders; they are current leaders.
As a consequence of that, I believe that software engineers are worthy of being provided the very finest we can give them in leadership skills and training…the very same skills we afford our best executives. We should do everything we can to groom their skills in:
Interpersonal communication
Group dynamics
Conflict resolution techniques
Emotional intelligence (EQ)
Yet, I can’t think of too many organizations today that see how these are essential offerings for their software engineers, except perhaps as remedial activities once in a while. That approach is a mistake. Everyone worthy of being called leader needs regular nourishment in these skills, software engineers in particular.
In that sense, a good software engineering curriculum places significant emphasis on requirements elicitation, communication, human factors, and group dynamics. Over my decades managing software engineers, it has become apparent to me that the connection to the human condition doesn’t end with the education provided by the software engineering degree. The degree itself is the foundation of a long arc of a leadership journey. Corporations who employ these engineers play a key role in this journey.
Dad’s opinion about the computer science programs of the 1980s was prescient. I think he would have liked Mike Lutz.
I would be remiss if I didn’t offer that the generalized practice of IT is also, at its most vital human points, a form of leadership in the very same vein. While generalized IT folks don’t generally develop custom software, they certainly select and configure off-the-shelf software solutions that enable change. These IT professionals — including the business analysts and project managers who serve both IT teams and software engineers — should be afforded the same sort of nourishing training that software engineers deserve.
At this point, you might wonder: what about those ISTJ and INTJ stereotypes? The propellerheads? Can they really be leaders in the way we traditionally envision that label? My answer? It’s too late! You have no choice; they are already leaders. As my own coach, Dr. Jim Kestenbaum, has taught me, there is good news here. While we are born with our personalities and our IQs — and there is little we can do to change them — we have the ability to increase our skills in the four areas I listed above, EQ included. The investment will be worth it, if you choose to make it. But the first step is to realize that if you have software engineers in your organization, you have leaders — vital ones — who require care and feeding. To miss this is to shoot your proverbial corporate self in the foot.
Before embarking on the journey of reading this unusually long post, please take a moment to reflect on your organization’s technology team.
Are the people friendly? Are they excellent listeners? Do they take the time to empathize with the people they are serving?
Do they work hard to fully unearth and understand people’s problems, designing and collaborating on solutions that reflect where your organization needs to go?
Do they help people feel comfortable with the rapid change that they face in business every day?
Do they exercise servant leadership at every opportunity? Do they exercise transformational leadership when called upon?
Does your company believe that, when you invest in software, you are investing in something that requires care and feeding and additional investment, in order to live up to its purpose, which is to reflect change in your ever-changing business?
Does your senior leadership understand that the answer to all of these questions needs to be yes?
Most importantly: Do you have an approach to address the “no” answers you have for any of the above?
In response to “Software Engineering Is a Form of Leadership,” a colleague shared that, “I once had the opportunity to have a conversation with Bill Gates. I asked him, ‘Among your software engineers, how much of the job is technical versus nontechnical?’ He responded that for leaders of software groups, the job was 80% nontechnical, and for his most technical people, the job was 50% nontechnical. Of course, you understand that very well! You have done a good job of identifying the leadership skills that are so important.”
That’s both a great story and a nice compliment, but one of my greatest challenges on The Progressive CIO is to engage folks who are not so lucky as I have been. To date, I have been preaching to the choir: my LinkedIn profile is filled with people who are a lucky and like-minded bunch. Very little of The Progressive CIO is news to them. “Software Engineering Is a Form of Leadership” was written to challenge conventional wisdom. But while I was writing, and even during my subsequent edits, I had a sense its message might not land in the right audience. This turned out to be largely true. Sure, I got a good handful of likes, atta-boys, and agreement from all of the usual suspects. But my network is filled with people who work in functional, healthy, and progressive organizations who already work within the sort of framework we talk about on these pages. I was preaching to the choir.
In my own industry (foodservice distribution), I can say with certainty that many organizations don’t have great answers to all of the above. Those that do — and I like to consider the organizations that I work for among them — do well in no small part because we treat technology as a key investment in the human condition. We believe that all of our employees, including technology folks, have to bring gobs of emotional intelligence, empathy, humility, and compassion to the table in order to drive our organizations forward.
But why are we a (relatively) rare breed? Well, foodservice distribution is a pennies business. Many organizations try to spend as little as possible on technology as they possibly can. After they put in an ERP system, they want to be done paying for it, so that they can get back to doing what they do best: buying and selling food. What they too often fail to see is that they can’t buy or sell food as competitively and strategically as possible if they put blinders on to the way the world around them has changed in the past 25 years.
Your business may be in a similar situation.
If your organization is one of those who would answer “no” to any or all of the lead-in questions above, you are the target audience for these pages, and this post is here for you. Read on….
Lucky for me — and for you! — “Software Engineering Is a Form of Leadership” elicited the sort of insightful dialog I’ve been hungry for since my earliest writing on these pages.
An adept, articulate, and perhaps even a little angry critical response came to me from one of my closest and longstanding friends. This response is more of a must-read than anything I have written to date on these pages. What pleases me most is that my friend is a fellow rhetorical theorist, as well as an excellent writer and author. That criticism is the focus here today. It sheds light on the very real — and very wide — gap that exists between what some might call my fantasy and so many other people’s realities.
Reality
There are literally thousands of companies — both big and small — that operate with, and even promote, behaviors that are self-defeating for their information customers, and that are at odds with the professions of software engineering and IT as they are currently being taught in schools and practiced in the most successful organizations.
It would be all too easy to say that these organizations work out of a sense of ignorance, or of austerity. Even though there might be some truth to that, it would be an unsympathetic assertion. I think it’s more appropriate to say that these organizations work this way out of a sense of experience, exposure, and habit. Engineers and IT people still generally have an awful reputation as propellerheads, and most people are conditioned to view us through the lens of that stereotype. There are still millions upon millions of people in the workplace who have never been exposed to well-trained and human-focused IT or software professionals, because most of the best technology professionals tend to work in a relatively small number of organizations. Universities are trying to change this, but it will take a very long time before that change is complete. Even then, just like in every profession, there will be bad apples who will perpetuate the stereotype.
Given the unfortunate wealth of this sort of experience, exposure, and habit, the questions we need to address are: 1) how do people help their organizations discover and explore alternative habits; and 2) who is responsible for initiating these alternative habits given the chicken-and-egg nature of the problem?
To begin the journey, let’s explore my friend’s experience with their company’s experience, exposure, and habits.
So, at the end of it all, I guess my overall thought is WOW, we have had such different experiences.
Your post starts off with highlighting how great your Dad was, which was nice to know. What an amazing career he had. I loved that you called it “suppertime” because that was what it was. I was amazed that your father expressed his disdain for a computer science degree, that really surprised me. (Just recently I have been reflecting on how important a quality liberal arts education can be.)
But where you start losing me is “Software’s very nature doesn’t merely involve uncertainty. It invites it. It is its raison d’être.” Software doesn’t have a nature. It is a bunch of code designed to get things done. It is a created response to the current perceived problem. Sure, software has to keep changing because the external parameters are changing (I am hesitant to say evolving). The software and the hardware fit together so that people can be more productive.
“Software doesn’t have a nature.” I needed that. My friend is right. Only my choir would see it that way…and every one of us would do well to think of this quite differently. Of course, a software engineering academic would want to assert that the code isn’t the important part of the dynamic here. The code merely a single step in the broader context of evaluating and solving a human problem.
But the meta problem here is that the experience, exposure, and habits of many companies cause them to perceive that code is what the software engineer brings to the table. In that sense, then, my friend is completely correct: software itself certainly doesn’t have a nature.
As a response, I offer a something vastly clearer: the situation that leads to software has a nature.
This leads me to something I have wanted to write about for a very long time. In 1968, Lloyd Bitzer, a rhetorical theorist at The University of Wisconsin – Madison, wrote a piece entitled “The Rhetorical Situation” that has become essential reading for anyone engaged in the modern study of rhetoric. Those of you visiting the Progressive CIO for the first time here might not know that my personal style in managing software engineering and IT is driven by a human-first approach that has its foundations in applied rhetorical theory. I believe that the problems in our profession are most effectively addressed through a comprehensive study and understanding of an audience and its attendant needs, calling for supreme skills in Aristotle’s rhetorical triad of logos, pathos, and ethos.
In “The Rhetorical Situation,” Bitzer attempts to describe the sorts of situations that drive the need for rhetorical discourse. What exactly is that, you ask? It’s something that is probably best defined as language that is employed to move or influence an audience, to bring about change. Traditionally, rhetorical discourse is the label applied to speeches and other overtly persuasive pieces of language. Modern rhetorical theory, however, acknowledges that a vast percentage of human communication can be considered rhetorical discourse…even the simplest “STOP” sign.
Lloyd Bitzer, rhetorician. What in the world does he have to offer to the field of software engineering? Quite a bit.
Here are two key paragraphs, presented without ellipsis, from the midsection of Bitzer’s “The Rhetorical Situation”:
Hence, to say that rhetoric is situational means: (1) rhetorical discourse comes into existence as a response to situation, in the same sense that an answer comes into existence in response to a question, or a solution in response to a problem; (2) a speech is given rhetorical significance by the situation, just as a unit of discourse is given significance as answer or as solution by the question or problem; (3) a rhetorical situation must exist as a necessary condition of rhetorical discourse, just as a question must exist as a necessary condition of an answer; (4) many questions go unanswered and many problems remain unsolved; similarly, many rhetorical situations mature and decay without giving birth to rhetorical utterance; (5) a situation is rhetorical insofar as it needs and invites discourse capable of participating with situation and thereby altering its reality; (6) discourse is rhetorical insofar as it functions (or seeks to function) as a fitting response to a situation which needs and invites it. (7) Finally, the situation controls the rhetorical response in the same sense that the question controls the answer and the problem controls the solution. Not the rhetor and not persuasive intent, but the situation is the source and ground of rhetorical activity — and, I should add, of rhetorical criticism.
Let us now amplify the nature of situation by providing a formal definition and examining constituents. Rhetorical situation may be defined as a complex of persons, events, objects, and relations presenting an actual or potential exigence which can be completely or partially removed if discourse, introduced into the situation, can so constrain human decision or action as to bring about the significant modification of the exigence. Prior to the creation and presentation of discourse, there are three constituents of any rhetorical situation: the first is the exigence; the second and third are elements of the complex, namely the audience to be constrained in decision and action, and the constraints which influence the rhetor and can be brought to bear upon the audience.
Lloyd Bitzer, The Rhetorical Situation, 1968
Let’s see how that reads after a bit of search-and-replace:
Hence, to say that SOFTWARE is situational means: (1) SOFTWARE comes into existence as a response to situation, in the same sense that an answer comes into existence in response to a question, or a solution in response to a problem; (2) SOFTWARE is given … significance by the situation, just as a unit of discourse is given significance as answer or as solution by the question or problem; (3) a SOFTWARE situation must exist as a necessary condition of SOFTWARE, just as a question must exist as a necessary condition of an answer; (4) many questions go unanswered and many problems remain unsolved; similarly, many SOFTWARE situations mature and decay without giving birth to SOFTWARE; (5) a situation is SOFTWARE insofar as it needs and invites SOFTWARE capable of participating with situation and thereby altering its reality; (6) discourse is SOFTWARE insofar as it functions (or seeks to function) as a fitting response to a situation which needs and invites it. (7) Finally, the situation controls the SOFTWARE response in the same sense that the question controls the answer and the problem controls the solution. Not the SOFTWARE ENGINEER and not persuasive intent, but the situation is the source and ground of SOFTWARE activity — and, I should add, of SOFTWARE criticism.
Let us now amplify the nature of situation by providing a formal definition and examining constituents. SOFTWARE situation may be defined as a complex of persons, events, objects, and relations presenting an actual or potential exigence which can be completely or partially removed if SOFTWARE, introduced into the situation, can so constrain human decision or action as to bring about the significant modification of the exigence. Prior to the creation and presentation of SOFTWARE, there are three constituents of any SOFTWARE situation: the first is the exigence; the second and third are elements of the complex, namely the audience to be constrained in decision and action, and the constraints which influence the SOFTWARE ENGINEER and can be brought to bear upon the audience.
The remarkable thing about Bitzer’s essay is how effortlessly interchangeable the ideas of rhetorical discourse and software are. The piece does not sound completely ridiculous with these simple substitutions. I believe that this is because software is itself a form of rhetorical discourse, in that it is language that is employed to move or influence an audience, to bring about change. I suppose you could argue this over several beers in any college town in the world, but I would still tell you that software is a form of discourse. In another way of looking at it, software is an expression of thought, and it is a dialogue. It is written for humans, by humans, to express ideas and thoughts, and it is changed in response to the needs of its interlocutors.
Unfortunately for me, a Google search for “is software a form of discourse” (in quotes) as of this writing returns one of those sad “No results found” messages. There are, however, three or four references to “software is a form of discourse,” one of which seems truly interesting. I think we’re onto something. Let’s check back in a few years. I digress…
In rhetoric, the person responding to the exigency and who creates the rhetorical discourse is known as the rhetor. The rhetor’s counterpart in our world is the software engineer. The most challenging work for both of these individuals is in the mise en place:
Listening
Empathy
Audience analysis
Situational understanding
Both rhetoric and software seek to drive movement and change. The rhetor’s ultimate product is the speech; the software engineer’s ultimate product is the program. The wordsmithing of these two products is significant, no doubt, but the magic is all in the mise en place. If that is done poorly, the end product will be irrelevant. Nobody will be moved, and nothing will be changed. In software engineering, there is a maxim: the requirements and the documentation are more important than the code. If you lose the code but still have the requirements documented, you can create new code to address the requirements. But if you lose the requirements and have the code, all you have is a solution to a problem that nobody understands anymore.
This is why the academic practice of software engineering pays special attention to the practices of requirements elicitation, group dynamics, and human factors. This is where the key elements of Aristotle’s Rhetoric — logos, pathos, ethos — come into play, every day, all day, for software engineers. In order to be successful, software engineers have to not only look at things from a logical perspective, but they also have to empathize (deeply) and develop a sense of trust in their approaches and their responses to the situation at hand. They will not be able to create the sort of durable and lasting relationships with the people they serve if they fail in these skills. And because software is always an ongoing journey (it is designed to change, constantly, relentlessly), if you do not maintain healthy relationships between those serving and those being served, you will wind up with what, in our industry, we would call a “legacy software” situation.
My friend’s cogent response continues:
Then you say Scrum is great because it allows us to “manage the invited change and uncertainty, by taking one step at a time.” Well, not all change is invited, and it would really be nice if we could look ahead a little farther and anticipate what Hell this change is going to create when we are three steps down the line.
Side note: Several years ago, we had a “lunch and learn” at our company at which the director of the IT department explained Scrum to all of us with PowerPoint slides and everything! Basically, it was their justification for why they worked on which projects/problems. At the time, there were eight people in the IT department, and they would meet every morning to discuss their priorities for the day. If an urgent problem or issue arose, they would have to evaluate what they could set aside so that they could refocus their attention. Multitaskers they were not.
Prior to them worshiping at the altar of Scrum, they had a spreadsheet list approach. All issues and problems from all departments were catalogued (it was a Jira system). As each department became more and more frustrated that progress was never being made, the IT department decided to call a monthly meeting with the people who had entered the Jiras. We were all supposed to review the list as a company team so that we could understand their overwhelming burden and conflicting priorities. What actually happened was they lost ALL control because the individual departments started organizing their work for them, and those groups were setting the priority ordering. We never had another meeting, and they found Scrum.
Friends, we need to listen to this; these are profoundly important points that illustrate key anti-patterns that our industry faces. For certain, not all change is invited. When we select to use software to address our problems, however, we are making a decision to employ something that was designed to be changed. Back to my father’s point, we use software because changing (electronic) hardware is just too difficult, and in all too many circumstances, we need to allow for change, because change is the natural state of things.
So let’s get down to some experience, exposure, and habits regarding Scrum. Scrum is one of the most abused, misused, and misunderstood ideas of the modern workplace. I’m not a betting man, but I would bet that, in 80% of all implementations, Scrum is FUBAR. Is Scrum bad because it’s so easy to get wrong? Perhaps. But that would be like saying nobody should perform ballet because it’s so easy to get it wrong. Ballet is ridiculously hard to do well. But, holy cow, when it’s done well, it’s breathtaking.
The interesting thing to observe in the experience, exposure, and habits of my friend’s company is that they misunderstand who should be practicing Scrum. It’s not the IT team! And the IT team is not the one to set the priorities for what they work on! Businesspeople are the ones who are supposed to set the priorities for the organization; businesspeople decide what must stop if something else must take priority; businesspeople decide how to invest in staffing the IT teams with the quantity and quality of people who can help them achieve what they require. If you ever find an IT team with this sort of control, it means that the businesspeople, all the way up to the top, have simply abdicated their responsibilities. In Scrum, the Product Owner for an initiative is not on the IT team. This is all a behavioral anti-pattern.
It is because of this that I very much appreciate that my friend’s IT team “lost ALL control because” the operating departments “started organizing their work for them.” Good for those departments! Take control of what you are supposed to control! Unfortunately, from afar, the radio broadcast here seems to indicate that the IT team found a way to use Scrum to regain apparent control. I have no idea how this happened, but it certainly sounds like a horrible human mess. That’s not Scrum. At all.
Back to the post, now we are talking about the definitions of leadership. “Supervision is the practice of overseeing people to ensure they’re doing their assigned tasks.” Okay, I can agree to that.
“Management is the practice of nurturing someone’s career so that they can achieve what they aim to.” That may be what it is supposed to be, but that certainly isn’t my experience (and I really don’t think I am alone here). In my experience, management is about the managers relying on other people to get work done and then taking all of the credit for themselves. Support, encouragement, and/or appreciation is not offered because “you might think too much of yourself.” Management is concerned with protecting their position and their salary.
Also, the idea that management is interested in my goals is foreign to me. They are interested in their goals (see above: protecting their position and their salary). If I can help with that, then I will be included without being a truly engaged partner in the process because all information is on a need to know basis.
I’m as guilty of throwing idealistic definitions of supervision, management, and leadership around as the next guy. I’m lucky to not only believe in these definitions, but to work with others who do as well. But take a moment to absorb the above. Despite all of our best wishes, this is what happens at many organizations. Need proof? Why does Dilbert exist?
Dilbert is not just a comic: it is daily illustration of anti-patterns. If you prefer reality over cartoons, then refer to the above. It’s real.
So, if your management behaves this way, what can you do? One passive-aggressive thing to do might be to print this article and post it somewhere. But stupid people don’t read, so that’s not going to work for you.
What can you do when you feel like a mere peon but are interested in making your organization better (ahem, being a true leader)? Let’s use an example from my friend:
Last month, we had an all-staff meeting. Our new President’s big news was that our Board passed the budget. He thanked Percy, our new CFO, for what a great job he did putting the budget together, and what a great job he did presenting it to the Board. It was just so wonderful, and he did such a great job. What a testament to him that the budget was unanimously passed.
Hmmmm, interesting that it is his success. All of the managers worked on their department budgets (fussing about costs and ways to save), entering and revising all of the numbers in the budgeting software when they decided to cut all travel and training for 2021. The individuals in accounting also provided us with all kinds of reports and help.
But let’s be grateful to Percy, who, by the way, could/should have said, “I couldn’t have done it without my team” or anything that acknowledged that it was a group effort.
Nope, nothing — no surprise there.
The best guidance I can offer you from the limits of this page is this: employ the power of the question to make your leaders think. Find an opportunity to ask a question like this: “Do you have any thoughts on why our department managers’ morale is so low?” Even though you are smarter than your organization’s management, ask the question as if you don’t know the answer. Then see how it goes. If you do this enough, over a period of time, the lazy people you are talking to just might want to know if you have any ideas. And it’s always your option to say, “I have no idea, I just wanted to explore.” If you do this enough, you will be able to get a more detailed picture of who feels what, and you will be able to do a lot with that information. Remember that human beings love to be given an opportunity to share their thoughts, and little bits of unexpectedly useful information will always come your way if you are skilled enough to shut up, sit back, and take it all in without offering anything in return. They call it “the power of the question” for a reason: collecting all of that perspective gives you the power and time to figure out how to put it to good use.
Of course, this is only one option. Another completely valid option is to find a better job. You deserve it! But please do take an opportunity to experiment with the power of the question no matter where you work, because your ability to do this will help in so many situations, even in the very best organizations, under much better circumstances.
Back to my friend:
“Leadership is the practice of taking people on a journey to an unknown place while managing their natural anxieties about this journey.” Hmmmm, that hasn’t been my experience either.
Friends, leadership is one of the most debated terms in all of business. I am going to tell you, unequivocally, that the very nicest organizations to work for all agree that leadership is the idea of moving a novel (and typically uncomfortable) idea forward, regardless of where you sit in your organization.
But remember my friend’s perspective. There are a lot of organizations that aren’t the very nicest. These definitions don’t mean much to them.
Back to software:
But next comes the real stunner: “When software engineers use frameworks like Scrum to assist them in their efforts to drive change, they are living the very highest form of leadership.” Wow, I read that I thought, are you kidding me? Because they code software, because they use Scrum, they are leaders. What? They aren’t thinking outside the box, looking at the future, creating a path forward for the organization. They are solving the computer problem in front of them which has been tagged as a priority. You soften it a bit by saying “Everyone worthy of being called leader needs regular nourishment in these skills, software engineers in particular.” But still, WOW.
Maybe it is the person who comes to the software developer and says, this is what I am envisioning (beyond a reaction to an issue), this is what would make things better, this is what would move us forward, maybe that is the person who should be heralded.
Once again, my friend nails it. For many organizations, the programmers solve “the computer problem in front of them which has been tagged as a priority.”
Is that what your organization’s programmers do?
Software engineers are there to help with human, business problems. Not computer problems. In fact, well-trained and thoughtful software engineers will discourage the use of software when they think it’s the right thing to do, just as civil engineers will discourage the use of concrete barriers when visibility is more important than sturdiness. In many process workflows, human input is more important than automation. Software engineers who are members of ACM or IEEE have a code of ethics that underscores their responsibilities in this regard.
Software engineers are there specifically to collaborate with others to think outside the box, look at the future, and create a path forward for their organization.
To the very point of “Software Engineering Is a Form of Leadership,” software engineers are leaders in this context in the very basic sense that software, as a journey, has no known end (remember: if there were a known end, we would just create hardware). This journey is filled with uncertainty and anxiety, if nothing else. If this weren’t the case, then ERP implementations would not cause nightmares and waste billions of dollars, year after year after year.
All of this brings us to Scrum.
Scrum — as difficult to get right as ballet — is a key tool to helping manage this anxiety. Scrum says: let’s take our uncertain journey one step at a time. Let’s be transparent with one another about our feelings and anxieties, and let’s commit to inspecting each step of our journey, and let’s commit to adapting based upon what we find after each step.
The three pillars of Scrum — transparency, inspection, adaptation — are Leadership 101. We’re going to try something new. We don’t know exactly what’s going to happen, but that’s OK. We will talk often, review what’s going on and how we feel about it, we will make decisions about what’s next, and there will be a person to encourage us along the way.
To be fair, Scrum isn’t only practiced by technologists. It’s practiced by everyone involved in a key initiative. But technologists are the ones who have such a colorful palette of solutions to the problems discovered through Scrum. As a bonus, they (today) learn Scrum in a university setting, and are practiced not just in employing it, but in teaching it.
All too often, however, these points are lost on so many organizations who hire these technologists…all because of their experience, exposure, and habits.
What can you do about this?
Back to the power of the question: “Are we taking the time to learn the ins and outs of Scrum to our advantage? I hear it’s really difficult to do well, like ballet. What could we do to learn more?” Or perhaps, “Do we think that we are effectively confronting and addressing the problems we face today? What are our anxieties about what lies ahead, and what are we willing to do about those anxieties?” Or something like that. You’re smart. Take it from there.
Finally:
So, what you describe is your experience; it certainly is not mine. Maybe I really don’t understand what a Real software engineer is and how hidden beneath his exterior is a true leader waiting to be acknowledged — if only given the chance and “proper care and feeding.” So much for the rest of us saps, who toil at our tasks and aren’t offered the six-figure salaries of those in the IT department. Did you consider that maybe these software engineers aren’t interested in a leadership position? I just don’t understand why they and using Scrum makes them so much more worthy than the rest of us.
But, like I said when I started this, we have just had such different experiences.
The best software engineers — excuse me, leaders — are trusted guides who we look forward to being with, because we know that they will get us where we need to go, and we return to them routinely to seek their guidance and help. If you have software engineers who do not appreciate this opportunity, then you have what we would call code monkeys. Code monkeys are fine. But they are not worthy of being called engineers, let alone leaders. The “programmers” of 30 or 40 years ago who never kept up with the times would be considered the code monkeys of today.
If your organization uses code monkeys and not software engineers, do you care? If you do care, what can you do about it?
I hope you agree that my friend’s willingness to share their organization’s experience, exposure, and habits was a real gift to our dialogue. I am sure, too, that when we have friends like this, that we do everything possible to help them either move their organizations forward, or move on to greener pastures. Sometimes, the problem is that you are the smartest person in the room, and the best option is to leave the room.
I posed a question earlier in this post that I haven’t forgotten about:
Who is responsible for initiating these alternative habits given the chicken-and-egg nature of the problem?
You are! Yes, you. It’s not a chicken-and-egg thing at all. While it might appear that nothing can happen unless your management takes the first move, there is always a chance that your management needs you to make the first move. Sure, if you are wrong, then you will need to move on. But: you already care enough to read about these things. You are smart. You can employ the power of the question to lead from wherever you are today. And if you never try, then you never lead.