Warning: Preachy content.
In working with technical people at the individual and team levels, I often find attitudes that pull toward one extreme or the other: Either our work is inherently uninteresting, and we’re only in it for the paycheck; or our work is a boundless source of joy, learning, and achievement through which we can transcend the human condition.
Both have it partly right. But I think both are missing a thing or two.
tl;dr (Conclusion in a Nutshell)
Don’t be put off when agilists seem to be demanding more of you than is reasonable. They like to use extreme language, like awesome and passionate. They really mean competent and professionally engaged. On the other hand, software work is more than “just a paycheck,” even if it’s less than “a profession” in the sense of medicine or law. You have to do more than just show up.
Extreme #1: It’s Just a Paycheck
Technical Coach (TC): We’re here to help improve the organization, and to help technical teams apply good practices to produce high-quality products. Are you up for it?
Software Engineer (SE): Couldn’t care less. You’ll be gone soon. You aren’t the first consultants to blow through here, you know.
TC: What about professionalism?
SE: Professionals are licensed and regulated. We don’t have letters after our names. You don’t, either. We just write code. So, stuff it!
TC: What about CSP or PMP?
SE: <tone mood=”sarcastic”>What about MD or PE?</tone>
TC: Fair enough. Even if we aren’t formally licensed, don’t you think we do better work when we approach it in a professional way, at least?
SE: <gesture type=”wave” style=”dismissive”>This is just a paycheck.</gesture> As long as I can take care of my family, I don’t care what software I write.
TC: What if they ask you to do something unethical?
SE: <gesture type=”shrug” style=”disinterested”>Not my problem.</gesture> Those decisions are above my pay grade.
TC: Did you hear about that guy at Volkswagen who got prison time for writing code to cheat emissions tests?
SE: <gesture type=”eyeroll”>This isn’t Volkswagen.</gesture>
TC: But at least you care about doing a good job on the code, right? For the sake of craft.
SE: If it’s good enough to run in production, it’s good enough. Nobody cares if it’s “clean” and all that jazz.
TC: And personal pride?
SE: Piffle (or words to that effect). Get over yourself.
TC: But at least you care if the code you write helps or hurts people, right?
SE: Pie in the sky hippie nonsense. What do I care if my work helps humanity? If I earn enough to pay my bills and feed my family, I don’t care what the software does.
TC: So, your only motivation is to make money.
TC: And you don’t care how?
SE: Nah. I write software because that’s what I was trained to do. That’s all. If I were trained to do something else, then I’d do that instead.
TC: Would you change jobs if you were offered $1 a year more?
SE: In a heartbeat.
TC: And you wouldn’t care what the job was?
SE: If it pays $1 more a year, then no.
TC: So, you’d take a job as a hired killer or a human trafficker, provided you were paid $1 a year more than you are right now?
SE: We’re done here.
Extreme #2: Gotta be Awesome!
Agile Coach (AC): We’re here to make the company #Agile and to make your team #Agile and to make you #Agile! It’s gonna be awesome! #Agile! Yay! #Awesome!
Software Engineer (SE): Couldn’t care less. You’ll be gone soon. You aren’t the first consultants to blow through here, you know.
AC: Oh, but you’re awesome. You just haven’t discovered your intrinsic awesomeness. Don’t you want to be awesome? Of course you do! Who doesn’t want to be awesome? Agile! Yay!
SE: Okay, sure. Awesome sounds good. How can I be awesome?
AC: Great! Awesome! The first step is you have to be passionate!
SE: Passionate about what?
AC: About your work, of course! Your work is awesome!
SE: Actually, my work isn’t all that awesome. When they hired me, they made me do a bunch of arcane technical exercises to prove I was a great developer. And for what? This job doesn’t call on any of those skills. I support an old Java Spring MVC app. Just about all the logic is contained in the no-arg constructor of a Spring-loaded bean. It’s 4,000 lines long. There’s also a utility class with fifty static methods. The whole thing runs on an obsolete version of the framework and doesn’t work with any supported version of Java.
AC: Wow, that sounds awesome!
SE: Well, it isn’t.
AC: It can be, if you’re passionate!
AC: Sure! Look, it’s a question of mindset, isn’t it? Antoine de Saint-Exupery wrote, “If you want to build a ship, don’t drum up people to collect wood and don’t assign them tasks and work, but rather teach them to long for the endless immensity of the sea.”
SE: Hmm. I can see, maybe, yearning for the endless immensity of a better job.
AC: The job is what you make of it. If you can get into the right frame of mind, it can be awesome!
SE: So, you’ve done this before, then?
AC: Well, not me personally, no. But the <ambience sound=”AngelicChoir” light=”RayOfSunlightPartsClouds”>Agile Community</ambience> has done it. Agile makes everything alright. Agile makes everything awesome! They told us so in our Certified Scrum Master class.
SE: Master, eh? It must have taken a lot to get that. I mean, you don’t throw around a word like “master” lightly, right?
AC: Oh, yeah. You said it. Three days of games and snacks, and a short multiple-choice quiz at the end.
SE: Learned a lot from that, did you?
AC: You’ve no idea. Legos®. Pipe cleaners. Sticky notes. I can draw a picture of a three-legged stool. <gesture type=”CountOnFingers”>The first leg is Transparency, the sec—</gesture>
SE: Yeah…yeah, it sounds pretty intense. Um…look, I don’t think I can be passionate about this.
AC: Well, you’ve got to find your passion, if you want to be awesome!
SE: Have you ever maintained a crufty, monolithic Java webapp?
AC: <tone mood=”hesitant”>Not…as such.</tone>
SE: But you’ve maintained some other sort of crufty, monolithic code, right? So you have an idea how awesome it isn’t?
AC: <tone mood=”hesitant”>I wasn’t actually in software before I took the CSM class.</tone> <tone mood=”enthusiastic”>But that doesn’t matter. It’s all about passion, mindset, spirit. You know, culture.</tone>
SE: We’re done here.
Words Have Impact
It’s only fair to warn you that I’m still in the midst of a 12-step program to get over Caring Too Much About What Words Mean, because in the next few sentences I’m about to care too much about the words passionate and awesome.
In plain English, “passionate” doesn’t mean that you enjoy doing something or that you have a serious professional commitment to it. It means far, far more than that. Your passion in life is that which motivates you to keep on breathing; nothing less.
When agilists tell you to find passion in your work, they’re literally suggesting that you place your day job ahead of your family, your deep personal interests, your country, your religion, and everything else. That isn’t what they actually mean, of course, but it is what they say.
In plain English, “awesome” doesn’t mean “pretty good.” It refers to something that inspires awe. And “awe” means (according to Merriam-Webster), “an emotion variously combining dread, veneration, and wonder that is inspired by authority or by the sacred or sublime : stood in awe of the king : regard nature’s wonders with awe.”
When you walk into the room at your place of work, do you really want to inspire an emotion variously combining dread, veneration, and wonder, as if your colleagues were left speechless before the glory of the universe? Isn’t that a little bit excessive? Maybe it’s just me, but frankly I’d be uncomfortable with that sort of attention.
Here’s something I consider “awesome.” It’s the Antennae Galaxies, NGC 4038 and NGC 4039; two galaxies that are in a slow-motion collision. (Public domain photo from Wikipedia.)
Here’s a passage from the New International Version of the Bible:
It’s pretty awesome to be able to create a universe just by saying it.
Have you written any code lately that has inspired awe on the level of those examples? Neither have I. Even if, as the poet suggests, “I contain multitudes,” how many of said multitudes can inspire an emotion variously combining dread, veneration, and wonder, as if one were left speechless before the glory of the universe? Not many, I’ll warrant. If I thought that’s what was expected of me, I’d be pretty stressed out.
Is it any wonder that people react to this sort of thing by moving toward Extreme #1? From a Reddit question
This is only one small example of the effect the extreme language is having on people in the industry. There’s a perception that in order to have a successful career in software development, you have to sacrifice every minute of your life to it. A fair amount of angst is expressed on social media over the perceived “fact” that you can’t get a job as a software developer unless you have a portfolio of Github repositories, as if you were an architect or a fashion model with a portfolio of samples of your work. There’s worry that employers expect software developers to be passionateenough to spend all their spare time coding, and the results of that coding must be awesome.
Reality vs. Perception
It isn’t so. You don’t have to have side projects. You don’t have to spend all your time coding.
People worry anyway. I think it’s because of the constant barrage of excessive language about passion and awesomeness. Other than spending all your time coding, how else could you possibly become “awesome”: literally capable of inspiring “an emotion variously combining dread, veneration, and wonder” based on your software work?
It turns out agilists aren’t asking us to be “awesome” in any real sense of the word. They’re just talking about baseline professional performance. Consider this post by Martin Oesterberg, entitled “Team Mission and Definition of Awesome”. I’m not picking on him; I actually like this example because the title explicitly states that the post will provide a definition of “awesome” as the word applies to “agile” software teams. (His definition happens to play into my agenda, too, but that’s purely coincidental. Pay no attention to the man behind the curtain.)
Read the piece. Go ahead; I’ll wait. <gesture type=”FingerTapping”/> Done already? Good.
Martin describes several different kinds of teams. I ask you to notice something: The descriptions of awesomeness are descriptions of baseline characteristics of a team. The word “awesome” is over the top. The teams are just not dysfunctional, that’s all. Lacking those characteristics, they aren’t “teams” at all; they’re work groups. It isn’t a question of Awesome Team vs. Regular Team; it’s a question of Team vs. Clump-o-Folks.
Linguistic reinforcing loop
How did we get here? I think there has been a reinforcing loop in the “agile” space. Agilists have used extreme words in an attempt to inspire people to pause and think about ways to improve their work and their working lives. That’s a worthwhile thing to do. But people have reacted to the excessive language by moving toward Extreme #1: get off my back, it’s just a job, it’s not Life. Agilists then reacted to the reaction by moving toward Extreme #2: they amped up the rhetoric in an attempt to be even more inspiring. People then reacted…well, you know.
Maybe if agilists would resist the temptation to use extreme words like awesome and passionate when all we really mean are, respectively, competent and professionally engaged; and if people would resist the temptation to over-react to those words without even asking for clarification first, then we wouldn’t find everyone clustered at the extremes.
Okay, so if we aren’t supposed to cluster at the extremes, then where are we supposed to cluster?
Survival and self-actualization
There was this guy, Abraham Maslow, who came up with a model. The model suggests human needs exist in a hierarchy. Basic needs have to be met before people can pursue higher-level needs. It seems pretty sensible to me. I’m not going to reproduce a copyrighted image, but here’s a site that has a diagram of the model: https://simplypsychology.org/maslow.html.
If you’re drowning, your immediate need is air. You won’t be thinking about whether your day job makes you awesome, or even if it pays enough to take care of your family, while you’re under water.
Let’s say you get out of the water. Assuming you have a dependable supply of air, your basic needs might be water and food. You won’t go looking for water while you can’t breathe, but once you’ve got the breathing thing handled, your next goal might be to find water, and maybe something to wash down with it. So, even if it’s dangerous, you’re going to go out into the world to look for water and food.
Let’s say you’ve got a reliable supply of water and food. Are you still going to rush out into the dangerous world? According to Maslow, your next level of needs are physical safety and security. So you won’t go looking for trouble, as long as you have enough water and food. The ancient Romans knew people wouldn’t go looking for trouble as long as they had plenty to eat, and maybe a little entertainment to watch while they ate it.
Those are your basic needs. Once those are handled, you’re going to be interested in psychological needs, like friendships, intimate relationships, and belonging to a group. You won’t care too much about those things if you’re in direct, immediate physical danger, but otherwise you’re going to want them.
The next level up from there is a feeling of accomplishment, of recognition by other members of your group. Of course, if you aren’t in a group at all, you can’t pursue this level of needs. But once you’re accepted as a member of a group, you’re going to be looking for recognition, prestige, rank, recognition and all that.
Given all that, you’ll probably be interested in self-fulfillment. Maslow calls it self-actualization, or becoming the person you’re meant to be. This isn’t possible if you’re still stuggling to meet more-fundamental needs.
Options and Necessities
All this stuff about self-actualization probably sounds absurd unless you’re at a level in Maslow’s hierarchy where self-actualization is feasible. If you’re just barely hanging on, as many people are, even in affluent countries, then you’re still worried about where your next meal is coming from or how you’ll manage to pay the rent next week. You may have to choose between rent or medications that you need. You may have to go hungry in order to keep your kids fed, since your ex isn’t helping. Unfortunately, there are lots of people in that sort of situation. Self-actualization isn’t on the menu.
The technical people I work with are not in that category. They aren’t desperate to survive. They’re in a better position than that. Their circumstances do not compel them to take the attitude that their job is “just a paycheck.” Anyone who has a job in the software field is in a privileged position: They needn’t worry about water, food, and all that. They are in a position to pursue self-actualization. Yet, many of them complain endlessly about their jobs. I’m sure there are plenty of people around who would gladly trade places with them.
On the other hand, it’s only fair to recognize that there are more-exciting and less-exciting assignments within the software field. Those enthusiastic Agile coaches may be asking for too much when they insist we have to be “passionate” about everything. If your job is to tweak the same Siebel work flow definition over and over, or modify the same COBOL paragraph over and over, or restart the same server over and over when the out-of-date COTS package it hosts runs out of memory, how will you dredge up anything like “passion” for the work? What the hell is “awesome” about it? It’s an unreasonable demand.
Where’s Your Passion?
People like Bill Gates and Steve Jobs might be able to find self-actualization through their “day jobs.” I’m not sure that works for most people. People may have a compelling interest in something unrelated to their paid work, and that’s where they find self-actualization. It may be raising your kids and being a good partner to your spouse. It may be contributing to community service programs through your church or a non-profit organization. It may be making craft furniture with wood. It may be coaching youth sports teams. It may be restoring old vehicles. It may be martial arts, music, sculpture, or amateur astronomy. It may be reading about history or philosophy.
Your “passion” may not lie in an area that has the potential to pay your bills. That’s how it goes. Human value and market value don’t always align. With a “day job” in the software field, you’re positioned to pursue self-actualization wherever you need to pursue it. That’s not a bad spot to be in.
This is a field that calls for professional responsibility; we aren’t just digging holes wherever the foreman points and says, “dig a hole there.” The attitude that our work is “just a paycheck” is inappropriate. It isn’t good enough just to show up, even if passion is an unrealistic goal. The question becomes: Is there a practical middle ground where people can function as fully-engaged professionals and yet live balanced, fulfilling lives?
From a Quora question:
When I was working with a large client in the financial sector not too long ago, one of the younger developers asked me about this. She was a couple of years out of school. Her boyfriend was also a software developer. She said he spent every evening playing video games and writing code for fun. She didn’t want to spend all her time doing that, after a day at the office. How was she supposed to manage her career development without falling into that trap?
I suggested that each of us has to decide how much of our time and money we want to invest in our professional development. Maybe we want to spend very little time and no money at all. That’s fine. Allocate whatever amount of time feels right to you for learning new things. Put it into your personal schedule and stick to it.
Let’s say you’re a .NET developer and you want to learn Python. You don’t want to spend “all your time” on software. Allocate, say, two hours every Monday and Thursday evening for learning. Use that time to follow an online Python tutorial, or more than one. There’s no cost. After a couple of weeks, you’ll have a basic understanding of Python. Then pick another topic; maybe Docker or Linux or whatever. It doesn’t have to be a big intrusion on your spare time.
Maybe you’re willing to invest more than four hours a week. Maybe you can do eight hours; two per night, four nights a week. It’s still not a big intrusion on your spare time; most people (well, most Americans, anyway) spend more time than that slumped in front of a television. Maybe, too, you’re willing to spend $10 to $50 a month on career development. That will get you a book a month, an inexpensive online course, and some small-scale resource usage on AWS or some other service.
If you’re up for it, there are numerous technical user groups and meetups all over the place. There are probably several within an easy drive of your location. Investing a little time for professional networking and learning at these events is a cheap way to keep up with new developments and create some options for yourself beyond your present job. Plus, they usually serve snacks.
The Power of Habit
It isn’t just about you. The attitude you bring to work affects all your co-workers. If you’re a downer, then everyone around you will be subdued and less effective in their work. They’ll drag themselves home with diminished energy, and transfer the effect to their families and friends. In turn, they will infect their families, friends, and co-workers with your attitude. Before long, civilization as we know it will grind to a halt, and it will be your fault.
Well, okay, that might be an exaggeration. But it’s no exaggeration to say that the habits you form through repeated practice carry over into other activities in your life. If you spend 2/3 of your waking life on your day job, then you’re building habits with everything you do at work. When you finally get off work and you can spend time on whatever it is that brings you self-actualization, don’t you want to have the energy and attitude necessary to take full advantage?
Checking out completely and treating software-related work as “just a paycheck” doesn’t cut it. You have to care if they ask you to do something unethical. You have to do your best to do the work properly. You have to keep up with new developments in the field. You signed up for those things when you chose this career, even if you didn’t realize it at the time.
It’s as if you picked up a shiny coin you saw lying on the ground. Your intent was to enjoy the shiny side of the coin that caught your eye. You didn’t care about the reverse. But you can’t have one without the other. You may have entered the software field because there are lots of jobs around and the work pays well. But the only way you can have those things is by accepting the other side of the coin, as well. The level of responsibility that goes along with this field of work is the reason it pays more than digging holes for a living. We all have the obligation to be worthy of the pay grade. You can’t choose just the pay grade and not the professional responsibility that goes along with it.
On the other hand, you don’t have to be “passionate” and “awesome” and all that stuff. You can be a responsible, engaged professional without sacrificing your personal life. It’s up to you to choose how much time you’re willing to devote to professional devleopment, alongside all the other things you want to do.
The balance between “passion” and “just a paycheck” is professional interest. Take an interest in your work and in yourself.