Categories
Monocategorized

S-M-R-T partners

I spent quite a bit of time today brooding about this week’s post. I have a list of engineering leadership topics that should take me well into 2023, but something happened this week that I wanted to talk about.

As some of you may know, I play World of Warcraft. A new expansion dropped recently, and that means new Marketing and Promotions. There was some really cool stuff over on Twitter where you could generate your own one or two sentence story for your WoW character. That was reasonably fun. This past week they announced a promotion with Twitch where you could earn an in-game mount in exchange for watching World of Warcraft on a Twitch Stream.

By itself, that sounds like a good idea. I decided I wanted to earn this reward and proceeded to link my experimental Twitch account to World of Warcraft and commence the en-stream-ening.

This is where things went into the no-so-good-idea category. I did the thing that most people would do upon joining a website with a list of channels—I clicked on the first one. The topmost stream during this promotional event had seventy thousand people watching and was more than ten times the size of the next six or seven streams.

I am not going to name the individual stream I was following. A little simple math and Googling of things will bring you to their name and their internet location. About ten minutes into the stream I realized that the channel I was watching was an incredibly profane and angry person exploiting a launch bug in the game. They were farming a large number of recurring drops from in-game monsters that were supposed to occur once per day per person.

As he was doing this activity, someone alerted him to a battlenet thread where someone watching the stream complained to tech support that this was happening. He started looking at names in the thread to find if any of the participants were in his group of exploiters so he could kick them out. Let’s set aside for a second that the most popular stream for the game during an official partner promotion was showing a large-scale exploitation operation in realtime. I was appalled at the language and attitudes of the people in the channel.

About thirty minutes into this, the game team hotfixed the game and removed the exploit in real time. It was quite fascinating to watch the reaction of all of the people in the channel. The streamer spent about ten to fifteen minutes brooding about the sudden change in fortune before starting to do something else.

Around this time I was explaining to people online what was happening. One of my more thoughtful team members suggested I find a different stream to watch in order to earn my free mount. I switched to the channel that he recommended to find that this new streamer was actually having an in-channel debate about what just happened to the original exploiting streamer—There was no escaping it.

So what the hell is the point of this story? We will get there. Let’s fast forward a couple of days first.

 A company that runs Smash Tournaments announced this week that Nintendo had revoked their license and this year’s tournament was canceled with very little notice.

Nintendo followed up with a statement claiming “We canceled their license but we verbally gave them permission to run this year’s event since we did not want to ruin the fan experience”.

I am not a Smash Brothers fan, so I do not know how big or serious this is. Both of these things do not sit well with me and bothered me enough to set aside all of my engineering mentorship conversations for one week and talk about them.

Marketing partnerships are hard.

In the case of the World of Warcraft / Twitch partnership, a substantial number of players looking for a nice, free mount had their ears and eyes assaulted with vitriol for hours. It is not clear to me what the requirements are for a channel to have DropsEnabled in order to participate in company marketing events. If it was my brand and I cared about it, at the very least I would want to have some kind of ability to request that the flag be taken away from people who are publicly streaming exploits in my game and abusing them for personal gain, even if they were not verbally abusing people in the process. I was shocked that it was such an immensely popular channel and it did not reflect well on either Blizzard or Twitch.

Similarly, the cancellation of the Smash Bros event reflects poorly on both Nintendo and their partner company. Nintendo maintains that they have high brand expectations for these events. They revoked the license and then admitted verbally they were willing to extend it for this year to preserve the events for its fans.

Verbally?

Let’s pretend we are the leaders of the partner company for just a moment here. If you had an official license to perform some partnership event with a billion-dollar international company, and then you were verbally informed to proceed with this year’s event, would you still do it? If someone at Nintendo chose to take legal action against you, either through ignorance or malice, you have quite the burden of proof there. I would be hard pressed to suggest that “the show must go on!” on those terms.

One would think that if you really cared about the experience for fans, you might commit your 2022 license extension to a written notice.

Both Blizzard and Nintendo have large and loyal fan bases. Both of these feel like horrible failures to their fans and customers.

So why did I write a post about this?

I hope I never do something so stupid to a fan or a customer in the future that I come back and read this post with regret.

If you have fans and customers, please care for them. 

If you are going to partner with other companies, please make sure the experience is well-thought and sufficiently curated.

If those partnerships are going to change, please communicate those changes with your partners with your fans in mind.

Both of these stories could have had outcomes that were orders of magnitude better than the outcomes that actually happened.

Thank you for listening to my ranting this week. If I am not chasing teenagers off of my lawn next week, I hope to resume my regularly scheduled engineering leadership conversations.

Categories
Monocategorized

Holiday Poem 2022

Twas the night before Christmas, getting here was a chore
It all started off with the Ukranian war
Setting aside Putin’s international extortion
The Supreme Court threw out the book on abortion
People online got incredibly bitter
Everyone retweeting they are all leaving Twitter
Disney is swapping out Bobs for its bosses
Will the board get changed for their cultural losses?
Some people named Chrisley have their fortune in tatters
I have no idea who they are, or why the news thinks this matters
Centralized crypto funds continue to dwindle
Deregulated leverage is totally a swindle
FTX turned out broken, corrupted and shady
The news also tells us Gisele is leaving Tom Brady
But that’s not the only thing sweeping the nation
Let’s not forget the crazy inflation
Gas prices, food prices, and also the cars
And eight dollar check marks, instead of going to Mars
Everyone started to cut down on their spending
Ten percent layoffs are totally trending
Unless you worked at Twitter, let’s check the facts
Over half of the workers have gotten the axe
The midterms have happened, America has spoken
There was no red wave from Spokane to Hoboken
Trump announced to the world he is running once more
No one is shocked, we have seen this before
We all watched enough “Orange is the new Red”
Many hope that someone will Ron for office instead.
For all of the crazy things we see regressing
Next year cannot possibly be this depressing
So let’s raise our glass and attempt some good cheer
And have a Merry Christmas and a Happy New Year!

Categories
Monocategorized

Rock, Paper, Twitter

I have a little row of Post-it Notes attached to my monitor for blog conversations. Most of the topics listed are pretty self explanatory. Today I made a note to write about “Push vs Pull”. I spent about two minutes staring at it this morning, trying to figure out what the hell I meant by that. As it came back to me, I realized that everyone is going to automatically assume this is some sort of spur-of-the-moment Twitter thing—except it isn’t. Let’s talk about Twitter for a few moments, and then we might come back to “Push vs Pull”, assuming I don’t get tired and want to go lie down.

I have helped to pivot a business in the past. It is brutally hard. It probably took a decade off of my life expectancy, too. I wish the people still collecting a paycheck at Twitter all the luck in the world because they are going to need it.

When we were pivoting hi5, we were also switching stacks. We were going from a site written mostly in Java running on open source operating systems, to C# and running on Microsoft Windows. If you intend to change your business direction, I want to tell you there are positives and negatives to changing your stack at the same time. One of the changes, positive or negative, is that you will have significant organization turnover—up to 100% of your engineering team.

Elon understands that he needs to enact radical change to get his business where it wants to be. There is considerable noise in The Media and in The Socials about how he is getting there from here. Given the size of the task he is attempting, we should not be surprised that he is going to make some mistakes. I do wish him luck with the endeavor. Whatever happens to Twitter in the next two years will make for great grist for MBA textbooks around the world.

The deep truth is the moment that Elon and his stupid sink entered the building, the majority of that team was at risk of de-Tweeps-ing. You are more than welcome to disagree, but if the majority of people were doing the right things, the business would be in a far different place than it is today.

So how do you “right-size” such a mammoth organization effectively, intelligently, and with grace? I do not know that you can. I do think that some of his pronouncements and processes for decreasing the burn were not graceful. Elon made a point of shoving people towards the exit doors quite forcefully. I appreciate his reasons for doing so even if it is massively dramatic and poorly executed.

I could dissect this further, but other people are going to do a far better job at it. At the very least I am thankful that it has taken “quiet quitting” out of the mainstream conversation. I am slightly disturbed that it gets more clicks than FTX stories, and I am also ashamed to say I do click on all those juicy Elon headlines. I am part of the problem here. The good news is that it has not made me tired yet and I can talk about what I originally planned to talk about: “Push vs Pull”.

You are seldom going to get 100% utility out of your engineering team. Your engineers might have health issues, they might be needing to replace a leaking tire the day they purchased new brakes, or there might be juicy stories about Elon Musk that are just breaking. Your goal as an engineering leader is to make sure to call people to attention enough times to make sure that you are meeting your deadlines and possibly improving the efficiency and quality of your work over time.

There are a lot of tools at your disposal to help your teams be more successful. You can push your teams, as demonstrated by the shoving example above, or you can pull them.

I originally expected to tell you all that pulling is by far the best way to get your teams to make your teams successful. On the spectrum of “I am leading people” to “I am managing people”, pulling is very much on the leadership side of things. Pushing your teams is also necessary, and yes, this is more on the management sides of things.

In an ideal world you do not have to push your teams. In some subset of ideal worlds you do not even have to pull your teams. There is some magical universe where everyone just perfectly does their work and even the product managers walk around the office smiling.

When things start going off of the rails is when you need to make decisions whether to push or pull. Your team definitely appreciates it more when you pull. Rallying people to get their work done, unblocking their issues, and even jumping into the trenches to assist them definitely scores major points.

At the risk of mixing up the metaphors too much, sometimes there might not be enough carrots to go around, and you are left with using the stick. I dislike pushing people because I dislike being pushed myself. I will grudgingly acknowledge the times I am being pushed, and I take that little bit of self awareness with me when I push people on my teams. I do my best to tell them I am pushing them, and there are times I am apologetic about it, and other times I am explaining why it is that I am pushing them. Sometimes I do both in equal measure.

I did not want to go back to Twitter for an example, but it is easy to do so. Elon is clearly pushing his engineering team. He is pushing them very hard to the point that it is a violent shoving exercise. While I may disagree with the exact tactics of the past few weeks, he is absolutely doing something that is aligned with his vision on how to fix the business. He cannot pull his way to victory with Twitter. He needed to push people. If the first week he arrived at the office he started gracefully offering packages to people and reviewing the overall business, it would take him six to nine months to bring the team down in size to where he wants it to be. That six to nine month process would be hideously expensive, on top of all the money he already paid. Like it or not, this was always going to happen from the moment that former Twitter leadership decided to sue Elon Musk to close the deal.

Remember that leadership is generally accountable to shareholders and not accountable to employees. The best leaders are accountable to their employees because that is how you build amazing teams. Given how little conversation there was about employees in the middle of extracting shareholder value through the Twitter sale to Elon Musk, I would be hard pressed to work for one of the former leaders of Twitter. I think they did their teams dirty. Before you cancel me on The Socials, I would be equally hard pressed to work for Elon Musk. I probably would have been looking for a job the day there was enough of an agreement present that it was an inevitability. While I believe in Elon Musk’s goals for humanity with electric cars and space travel, whatever he is doing at Twitter is an aberration and a distraction from those goals. He also practically walks around with a coffee mug that says “Remote work sucks” and expects people to work insane 2001 hours in 2022. It bears mentioning that most really rich people own a very fancy car and if you work really long hours and commit yourself to the business, then next year they might own two.

Okay I will stop. The important thing here is that you need to balance pushing your teams to be successful and pulling alongside them to make it happen. I apologize for talking too much about Twitter, even if some of what is happening is somewhat related to leading and managing, and the difference therein.

We are getting closer to my holiday poem… So why not make yourself comfortable by indulging yourself in a Clearly Labeled Amazon Affiliated Oversized Blanket? While Amazon’s Marketing Algorithms tell me I ought to be shamelessly plugging tech merchandise, I believe that you all want more creature comforts. You deserve it. Prove the machine wrong by purchasing one of these blankets for yourself or someone you care about today.

See you all next week!

Categories
Monocategorized

Scrum-pa-pum-pum

I have recently had conversations about software development processes and have heard the words “scrum”, “Agile”, and “waterfall” thrown about with tremendous ceremony. I have worked in many places where people use words in conversation in a way that implies that they are important and sacred and to the speaker they have no meaning. “Where are we with Brand and Budget” I might hear someone say. There is an equal and opposite effect when I hear someone say “This Is Not Agile”.

If you have ever uttered these words, you have missed the whole point of Agile.

I am not going to be one of those people who writes a bombastic article that Agile is dead, or that it is a fraud perpetrated on teams by management, and that most of it is fiction.

The deep truth is that most Agile is an approximation anyway because the following user story will never appear on your scrum board:

“As a software developer I need Christmas to arrive one week late.”

So what the hell is Agile, and why does this sound like it makes me so angry?

Before I answer, I want to time travel to 1993.

John was a software development co-op student in 1993 working for Motorola. Motorola had a design center in Toronto where they made devices to help improve communications as a part of 911 software systems. I had the blessed fortune of joining a team to produce highly redundant systems that helped save lives. The work was all hard core modular C programming and designed to work on highly available hardware. This is important because we all had log books, strict documentation requirements, and were also ISO-9000 compliant. The only way our work would have been more waterfall is if we were doing it under a big water feature in Niagara.

The project shipped on time, on budget, and it was a fantastic work experience—even if one of my jobs was to take a copy of the project source code on magnetic tape and walk it to an offsite location to be signed into a vault for safekeeping and redundancy.

Let’s come back to today.

I bring this up because every time I enter into the conversation on how we get our work done, I have to point out that for each team and each product there are different methods that work well, and there is no One True Answer.

This is especially true for Agile teams.

The process of doing work on an Agile team is a conversation between the product customer, the product designer, and the product implementer.

There is one more participant in that process and that is the scrum master.

I have had to adopt the scrum master role as a part time job in the past. I am usually doing one or more other roles at the same time. When I am either volunteering for the role of scrum master, or having it thrust upon me, the first thing that I do is gather all of the stakeholders and  declare that I am taking the role with a known conflict of interest and ask for everyone to trust that I will handle that. I also ask them to call me out when I am failing at it, and to keep me accountable.

The scrum master role is not well understood by many people. I have had the great fortune of working with many amazing scrum masters over the course of my career. They help everyone get things done. They are great coaches, they are wonderful listeners, and they are excellent facilitators.

I have also had to work with many scrum masters who struggled with their role. There are a lot of traps to fall into and I do my best to help people work their way through them.

“This Is Not Agile”/”This Is Waterfall”

The number of times I have had to drag people kicking and screaming away from the Semantic Scrum Master debate is beyond counting. It is important to remember that Agile is all about people over process. Anything your people want to do is Agile. Even if you were a fully ISO 9000 certified process and you declared you were an Agile team, you are now Agile. Do you ship software on time or do you improve your velocity? If the answer is no, you are still Agile. You are just doing bad Agile. If your teams really want to do something and it sounds like it is not Agile, just ask them if it helps them get the work done. Measure it over time, and see if you get better at it.

“This is not the way I want it done”

As a scrum master, you are a coach and a facilitator, not a dictator. You have to let go of your notions of control and ownership on anything but team improvement. What works for one team does not always work for another. Your best successes will come by laying out options for the stakeholders to think about, debate, and adopt. Any time I see a scrum master trying to push people towards something, I have to gently coach them off the ledge and get them to take a more team-centric view of how work gets done.

“Measure twice, cut once”

Even more egregious than needing things done your way is making changes to the way your team works without really understanding the data. I appreciated the many times I have been brought into an organization to help them ship faster with better stuff. That process takes a lot of time. You need to get to know the people on the team, and watch what they do. Listen to them, and ask them questions. Make notes for when you are ready to give them options on things they can consider changing in order to improve. I have joined teams very early on with a lot of process dysfunction. I have my own playbook for urgently addressing these situations, although my preference is to take six weeks or so to watch what is happening before I make any changes.

These are the most common scrum master mistakes I have seen. It is very easy to get defensive and frustrated when you make a mistake like this and you are confronted by your stakeholders.

I have had some success in working through issues like this with a number of scrum masters over my career, taking them from struggling with a single team to being able to work concurrently with three or more teams while creating speed and quality improvements on all of them.

Part of this stems from a six hot dog / eight hot dog bun problem in early stage companies. When you get your first full time scrum master you might only have one team. There is a human need to feel like you are delivering some kind of value by changing things, and it is an easy win to make yourself look successful by telling your new boss “hey, look what I just did!” Unfortunately, this might not be what your team needs. You are better served by being patient and learning what your team is capable of doing before starting to make measurable sustainable changes.

If you are contemplating hiring your first scrum master, it might be worth asking yourself if you want to have someone else take the mantle for a while, especially if it is a single team. You will get great mileage out of people you are grooming for leadership, and it will help avoid a number of problems when you hire a scrum master who is likely underutilized and might accidentally thrash your teams in order to show that they are earning their paycheck.

Thank you for reading along. This was a heavy topic. There was a time in my career when I was frustrated with educating my peers and more senior leaders in a given company and I was resentful for it. This post, at some level, is penance. I hope you enjoy it and that you reflect on the people you work with to ask yourself how you can help them be successful—much the way I have assisted a number of scrum masters on their roads to success.

Stay tuned for next week where we will continue to not talk about quiet quitting!

Categories
Monocategorized

Changing things

I spent quite a bit of time this summer building up a Twitter presence for derfdice.com. In the past week the number of impressions and new followers has slowed. It would be easy to assume that I was doing something different, or something wrong. If you take a look at the news, you could assume that something had changed and it might not be my behavior. I am a big “no spoilers person”. You can Google “Elon Musk Twitter” if you want a better understanding of what is happening. Clearly Twitter has undergone some changes.

If I had to distill what I do down to two words, it would probably be “managing change”. Creating and deploying software is all about changing things. You are changing versions, or changing servers, or changing industries. The older you get, the more experience you have with experiencing change—both good and bad.

If you are working on a software team, you are experiencing change. The product is changing, the platform is changing, the team is changing, and even the company itself is changing.

Coping with change is hard. I always tell people that it is important for them to become “comfortably uncomfortable”. In the past year I have helped a number of awesome engineers on their path to transcend their career arcs. Almost all of them have expressed their discomfort in the process.

If you want another trite and two word summary of what I endeavor to do, let’s try “retaining teams”. Getting people to cope with change is hard—this includes both good change and bad change. If there are good changes happening in your company, you might experience those as bad changes. I have experienced something like this. When you inherit a new boss, or the organization restructures, it is entirely possible that lengthening reporting structures make your existing role feel like it is a relative demotion. Other times, you might be thrust into a role where you have too much responsibility for you to be comfortable managing.

These are both unstable states. As a leader, it is important to understand when you have made things uncomfortable for people, one way or another. It is equally important to address that discomfort in some fashion.

I do not know if I emphasized that enough. If you have created an unstable state in your organization, it is the responsibility of leadership to manage it. If you ignore the issue or you fail to manage it, the consequences will be some mix of team churn or loss of morale.

So what can you do?

Be Accountable

I can no longer count the number of times I have stood in front of a room full of people and told them that we are about to enact significant changes. Tell everyone what is changing and tell everyone why it is changing. Sometimes you are changing for growth, sometimes you are changing for lack of growth. Sometimes you are changing things because things are not working.

If you believe someone is negatively impacted by these changes, arrange a private meeting to hear their perspective on these changes.

Be Authentic

Tell people how you feel about the changes. Tell people if you are excited by them or if you are frustrated by them. If people can understand how you feel about these changes it might help them to express their own feelings about it. 

Be Available

When you are finished talking, understand that the next most important thing to do is to listen. Set up office hours and private meetings for people to talk to you about the changes and what it means to them.

Be Considerate

If someone is inheriting a new boss, or their reporting structure has changed, talk to them about how you can make it easier to swallow that bitter pill. Any token gesture you can make in the middle of changing things for people is greatly appreciated, whether it is work related, compensation related, or even some extra days off to think about it.

I have employed all of these tools when organizations have changed and have found they are helpful in getting members of your team to accept change. If you are not doing enough to manage change in your organization, they will tell you as much—by quitting.

If you have enacted a massive change to your organization, look at the subsequent departures to understand whether or not you have done everything you can possibly do as a leader.

For all the news and noise about Twitter, this is the thing to watch next. Steve Jobs did something similar when he rejoined Apple, and look at where it is now. I am not saying there are direct comparisons between the two people, but both companies are in similar places. The more important question to ask yourself is whether or not your own company is in the same position.

This week’s post is brought to you by IOGear HDMI 4 port adapter. I bought one of these a few weeks ago to connect all of my consoles to one display and I could not be happier. IOGear.

We are returning to double digit days on not talking about “quiet quitting”. Every day is a new battle. See you next week!

Categories
Monocategorized

What is the status

As you go further into your software development career, you will need to be thoughtful about communication patterns. One of the skills you will need to master is communicating progress in a way that is meaningful for senior leadership.

This post is a penance for a recent transgression. It is very easy to give a weekly status email that tells you everything that is in progress and conveys almost zero useful information to the recipient.

Engineering leaders need to become accustomed to answering the following questions in their updates:

Is everything on schedule?

Are there any new risks that need to be discussed or managed?

It is very easy to write an email describing the weekly activities of your organization in a way that does not answer any of these questions.

Making sure that leadership is aware of any changes to completion dates for a project, and identifying areas where there is increased risk is very important.

You might make an assumption that there are no changes to a schedule, and that there are no changes to risk in a weekly report. I would encourage you to add that explicitly to your email in the future—especially if it is a long status email.

While it is nice to convey your team’s status at this level, it might prove to be dense and inscrutable further up the chain. They will want to have a quick one or two sentence summary rather than digging through the email to confirm the overall project status.

It is a good habit to get into, and one you can start tomorrow regardless of your current level of seniority.

That’s it. That’s the whole post. You might find shorter posts are highly correlated with holidays. I will be outside trying to climb the neighborhood Halloween decorations leaderboard for the balance of the day. I would love to shamelessly give you an Amazon Affiliate link to some of the merchandise I am putting in the yard, but it is better to go buy all this stuff on discount from the various halloween stores and aisles on discount in 48 hours. This is how you can fight “The Inflation” for next year.

See you next week!

Categories
Monocategorized

Six hot dogs, eight buns

One of the hardest things to learn about software engineering is that engineers are not all the same. If you are trying to build a team of twenty engineers, you might have five amazing engineers, ten solid ones, and five who are struggling. For the five engineers who are struggling you might have three who are doing work that they do not do well with. This is natural for large teams because sometimes the business demands do not perfectly align with your team’s skill set, and you need to absorb some discomfort to get to the finish line. If you do not believe me, try to go buy hot dogs for nine people. Big Grocery will fail you in perfectly accomplishing this task.

The remaining two engineers are probably struggling for various reasons, and need you to actively manage them in order to make them “successful”. I put “successful” in quotes because sometimes successful means “successful somewhere else”. You cannot always save everyone.

Today let’s talk about those three engineers who have the wrong task. I have found that you can largely group engineers into two buckets. There are engineers who will take any task and embrace it, either through passion for technology or an abundance of curiosity. There is also a bucket of engineers who either do not have that passion for technology, or possess just a modicum of curiosity. They may have a desire to focus on one tech stack, or merely wish to stay in their lane over the course of their career.

You might see where I am going with this.

The three engineers struggling with non-ideal tasks are likely from the latter bucket, and this is likely where your engineering managers earn their keep.

Before I go any further, I want to point out that this is not a terrible thing. Business needs will change from time to time, and you will not always have a perfectly shaped team to deliver successful outcomes. In an ideal world you have a team of technology enthusiasts who love to jump from project to project and task to task regardless of tech stack and focus. I am blessed with a team right now that has an abundance of engineers like this.

There will be times when you will manage teams where this is not the case. Either there are people on the team who have a very specific skill set, or a desire to do a very specific kind of work. In some cases it will be both. I have had people on my teams in the past who have been focused on specific technologies that are needed in urgent situations, and are not very effective in other kinds of work. Do you give them research tasks to find additional things they like to work on, or do you ask them to do low-risk business tasks with the understanding that this is not how they want to spend their day? If you think about your team like it is a baseball team, there are ids of “position players” and “bench players”. Sometimes you will have people who will be needed on the bench to come out in a specific role. “Pinch hitters” are one of these categories of players. Other times you will see, in a baseball game that is being blown out, that a team will put a “position player” on the mound to pitch in order to save pitching arms. You will find that you will make more decisions to do these activities than a baseball team manager. A baseball team manager will think outside of the box more often as the post-season approaches. For an engineering team manager, most of your software releases have the same urgency as a playoff game.

There are a lot of tools you need to develop in order to make engineers successful in places where they are not comfortable. The first is for you yourself to get uncomfortable. I have always told people that it is important to become comfortably uncomfortable. The next thing is to figure out how to teach that habit and instill it in your teams, where applicable.

This is a great tool if you have team members who aspire to grow professionally. It encourages them to “embrace the suck” and to dig deeper into who they are as people to understand their limits and abilities. It is also not a tool for everyone.

Some folks are content to show up at 9:01 am, fill out their Jira tickets, close the machine at 4:59 pm, and go back to living their lives. There is this massive push right now to label these people “quiet quitters” and make it a pejorative term.

Yes. This means I have failed to “not talk about quiet quitting” this week. We will reset the sign to “zero weeks since we have talked about quiet quitting” and start again. The struggle is real.

This represents a significant amount of the labor force today and that amount is growing. I have spent a large part of my career being inundated with hustle propaganda. I can sense a part of my past self that wants to treat people who just want to do their job with some level of disappointment. At the same time I also know I am not in Kansas anymore, and that these are valuable members of the team.

Figuring out how to maximize output for your teams in these situations is hard. There may be morale issues, product issues, and even funding issues arising from an imperfect team. Sometimes you can remedy the situation by developing people, and other times you can remedy the situation by replacing people. Sometimes neither of these options may be acceptable. You might also be under a hiring freeze or some other situation where you must do your best with the hand you are dealt.

When you are faced with this situation it is easy to default to the new buzzword and start employing “quiet firing” tactics. I sincerely hope that you do not. That is a very dark pattern, and it is not good for the people on the receiving end.

In these kinds of situations I tend to conduct productivity experiments for people. A former peer referred to this as “meddling with warp core”. It is a good analogy. Especially since most times we are doing it while going warp nine. It is tricky to change things when you are trying to move fast. I also think it is important. Here are some ways I “meddle with the warp core”.

Can you introduce a team member to a new technology or type of work that is non-urgent? 

Building tools for internal teams is a nice way to create value and give growth opportunities to people without blowing up production deliverables.

Can you give an opportunity for one of your aspiring leaders to try delegating and managing?

Another thing to do is to take some team members you are grooming to lead and give them a sense of the challenges they will face—under carefully controlled circumstances. Most of these wind up with the original developer reclaiming some tasks, but it is a good tool to get them to be aware of what they might experience in the future.

Can you leverage them to build a throw-away prototype?

In addition to your day-to-day business tasks, sometimes you will need something built to prove or demonstrate something. There are some downstream benefits to this because sometimes you need to build out part of a product or feature to reduce “unknown unknowns”. I have always found building out prototypes to be a great teaching tool in addition to a great learning tool.

Can you give them lower priority work from deeper in the backlog?

Finally, is there something less risky you can give to them that will fill out the team’s workload effectively?

For those of you who have worked with me in the past, you might recognize one or two of these things. I am always happy to share tools and techniques with people to help improve their teams and their productivity. The most important thing here is to try different things and to discuss them with the parties involved. This includes leadership. People sometimes have urges to bury these things from their bosses and managers, and I believe that is a bad idea. Sometimes you might even get suggestions from your boss on what to do!
Thank you again for reading along. I am sadge that I did speak briefly about “quiet quitting” this week. I did my very best not to. I shall comfort myself through this difficult time with a delicious keto snack. I shall even link it to you as an Amazon Affiliate so you may partake of its low sugar goodness!

Categories
Monocategorized

Changing Careers

Hello everyone! I have now spent so long not talking about “quiet quitting” that they have invented an entirely new set of words like “quiet firing”, and “quiet-cations”. I am very happy to sit out the “quiet-ification” of things.

Let’s talk about career changes this week. The specific thing that I want to talk about today is how time-in-role affects changing careers.

I want to add that I have discussed this very thing with a half dozen or so people who were contemplating changing careers. The more time you have invested in your current career, the harder it becomes. This is especially true if your career transition is not a level up either. For example, if you wanted to change from game engineer to game producer, you might have an adjacent skill set and some familiarity with how the role works through your interactions with your peers, but not enough actual experience in that role directly.

If you are contemplating changing roles at your existing employer, you might have a compensation structure that has you more highly paid than other people in the profession you are looking to switch to. This might make it hard for a department to want to absorb your salary into their budget. If you decided to contemplate a pay cut to accommodate that issue, then you have made it moderately demoralizing for yourself.

The same challenge exists if you were going to negotiate your compensation structure at a new company. I think the difference here, for the candidate, is that there is a clean break from the existing team and it makes the difficult pill of a decreased compensation package an easier one to swallow.

I am talking about the compensation element as the most important part here because if you were going the other way, there is much less to talk about—just go get that new job! I spoke last week about the value of my software engineering degree to me, and I left some breadcrumbs for doing a gap analysis for what a role in software engineering might require from you. You can find similar discussions all over the internet for what skills you will need in other professions. If you are truly stuck trying to find some materials to assist you, then send me an email and I will see if I can help you.

So let’s construct a hypothetical career shift. Let’s say I was a senior software engineer and I wanted to become a games producer.

If I go tap the Google for data on “Senior Engineer in Austin Texas”, I am seeing a 100k to 150k salary listed on most sites, with one site claiming 80k to 210k.  If I look at “Senior Producer in Austin Texas”, the same sites say 60k to 130k, with one outlier of 110k to 170k.

There is a salary gap here that might be easy to cross in some situations. I bring this up because the next question is “Can you transfer your Senior credentials from Engineering to Production?”

If you are looking to make the jump from Senior Software Engineer to “non-Senior” Producer, you are looking at a much bigger gap. This is going to be true for a large number of roles, and largely what everyone is going to expect. You will have to mentally prepare yourself for a decrease in pay, or else figure out how you can negotiate that rate higher based on what skills you consider transferable. You will also need to navigate the team environment. There may be other people who are in that role who develop resentment if you show up to learn a new role with above average compensation. This is a very real thing.

I have run engineering teams where I have assigned “senior engineers” to assist “principal engineers” who are new to the team. On some teams there is a high percentage of people who feel that helping someone above their current role is insulting because, as someone with a fancier title, they ought to know everything they need to know. It is important for the less senior engineer in this opportunity to be aware that this is a growth moment for them, and they are being given a tremendous opportunity to help a new member of the team get up to speed and learn the particulars of the current product and software stack. I digress for a moment here because, as an engineering manager, this is a tool you can use to see who is really ready for a promotion based on people’s emotional responses to onboarding new members. The same principal will apply here for someone changing careers.

So now that we have talked about the compensation and some of the issues with seniority and transferable skills, what can you do about it? This is an excellent question! Here are some things I would recommend:

Write up a gap analysis: Do your homework on what you need to be successful in your new role. Make a list of all of the responsibilities and give yourself a rating from 0 to 5 on each of the areas. Where possible, ask someone who is in that profession right now for a second opinion and encourage them to be very honest with their review. Once you know what your gaps are, you can speak to how you are going to address them.

Coursework/certification: This is an excellent way to help cement a transition from one role to another. Whether you are hustling and doing this after hours or on weekends or taking a gap between roles, the value of education and training is clear to many potential employers.

Independent projects: If you have less disposable time and more disposable income, you can just practice your new role. Do you want to be a designer? Pay someone to build your game. Similarly true for producers. I have designed, produced, and funded a handful of products over my career. Most of them have accomplished their goals, and many of them stayed within budget and time constraints. As an example, I tell people who want to migrate from software engineer to software designer they will have more success getting an interview for a design job if they do not build the project themselves. I stand by this. I have been handed too many resumes from other hiring managers saying “before I look at this person for a designer role, you might want to look at them as an engineer. Look at this stuff they built!”

Get your foot in the door if you need to: Related to the last point, you might not have an opportunity to transfer to a new role at your current company. You might find there are other employers who are more accomodating. You can ask about opportunities to change roles as a part of the interview problem and start at your new company giving them the benefit of your existing skill set while preparing to transition. Be careful that they do not change their position after hiring you. When interviewing at a company that says they are flexible with roles, it might make sense to ask to speak to someone who went through a role transition already. This is a good way to find out how smooth or friction-filled that process is. 

Part time transition: If you are working in a highly demanded role, you have no downside in asking if you can start taking on additional roles and splitting your time between them. An intelligent manager knows that this question is essentially a resignation. The real question is: “Do I keep this individual for two weeks, or nine months?” Coming up with a plan to transition to a new role will also let other people in the organization know that the company cares about your own goals and is willing to help people chase their passions and interests.

Role adjacency: If you are struggling with finding exactly what you are looking for, then you should consider adjusting your role to establish a new local maximum. I joined a sales team as a sales engineer for a period of time early on in my career. It was a transformative moment for me because I learned quite a bit about business development, sales funnels, and closing deals. It made it easier for me to explore other roles later in life because it let me demonstrate some level of “not an engineer” when I needed to. If you are stuck getting typecast to a specific role by potential employers, try to find a role that is in a different team. Demonstrating you can thrive in an alternative (but more adjacent) role will also help show you can successfully transition to the new role you are looking for because you have experience making career changes.

Find a mentor: After everything else, see if you can find someone who is already in the profession you desire who is willing to mentor you. They can help with all of the previous points as well as eventually provide you with a direct opportunity to make the transition some day.

Thank you for reading along! There are probably a dozen other things you can do to take yourself closer to a desired career. I would love to hear your stories if you have them. I can see well over a dozen people on LinkedIn who have made successful transitions over the course of my career, and in some cases I helped them along that path.

We are coming into the end of the year, and I have a full slate of engineering leadership articles, as well as my annual holiday poem, to share with you. I am also watching the web3 space a little and may post some thoughts on this whole new “zero royalty” movement that just started. I am not happy about it. It is one of those things that makes web3 interesting. I guess I am grateful they did not call it “quiet royalties?”

Categories
Monocategorized

very degree-able

I took a break last week to talk about the Stadia shutdown. I am now on week four of not talking about “quiet quitting”. How much longer can this outrage last? How much longer can I continue to not talk about it?

At least one more week apparently.

Today I want to talk about computer science degrees. More specifically, I want to talk about the lack of computer science degrees. I have worked with several software developers who do not have computer science degrees. Some of them have been amazing, some of them have been… less than amazing. I decided to write about the value of a computer science degree because a very good friend is looking to level up professionally and address the lack of a computer science degree. I felt it would be good to try to articulate what my computer science degree means to me, and what a hiring manager will look for in the absence of a degree.

I know a lot of people fixate on a computer science degree when they are hiring. I also was part of a team that hired two friends as a part of an acquisition—one had a degree and one did not. I was flabbergasted to learn of the huge pay disparity between the two of them, especially since the engineer hired without a degree was a tremendous work horse. I still talk to him pretty regularly, and he continues to be an exceptional engineer whom I admire.

I also had a business partner without a computer science degree. He was a tremendous builder and probably one of the top five most amazing software developers I have worked with. When we started our mobile game studio, I took the role of president, he took the role of CTO, and we had tremendous fun building cool stuff together.

I mention these two things, specifically, because I hope it helps hiring managers calibrate their candidates better. I know that some people will use a lack of a degree to lowball a candidate or invalidate them completely. It is hard to move past the lack of a degree and consider the whole candidate on their merits.

So what exactly did I get with my degree? I am going to go into rapid fire answer mode like I am some sort of TikTok video-making person.

International work eligibility – If you want to work in a different country, getting a degree will give you access to different visa and immigration options. Considering where I was born and where I live now, I have to say this is one of the bigger benefits to my degree.

Learning to learn – A substantial number of lecturers at universities are bad. They are hired to tenured positions for research and other purposes, and do lecturing as a filthy side hustle. I have had many frustrated professors who will put something arcane up on the board at the front of the classroom as if it was the most obvious thing in the world and turn around to an ocean of befuddled students who have no idea what the hell any of it means. When you have a terrible professor you must learn the materials from textbooks, grad students holding office hours, or just through practicing multiple assignments or questions on your own. Spending four years inside of an institutional learning facility will give you plenty of opportunities to practice new ways to learn things under difficult circumstances.

Achieving goals – A four year computer science degree is a lot of work, and it is often the first time you are away from home as a young adult. If you can figure out how to make it through a four year program, you have figured out how to handle your course selection, enrollment, and novel living situations. I will confess, I initially wanted to get my degree just to prove a point to my father, who had very negative views of computers and my career prospects. By the end of my degree I had figured out a lot of what I wanted out of my life and was on my way to setting and accomplishing my own goals.

How computers work – There are a lot of low level computing courses at the University of Waterloo. We had to do some simple digital hardware design, create a two-pass assembler, and write parts of a file system. I use these skills in debugging live systems on a regular basis.

The mathematics of scale – One of the big things that Silicon Valley software developers do well is creating scalable systems. Most hiring managers for large SaaS companies will grill their candidates on their understanding of “Big O” notation and algorithmic complexity. This is probably one of the more important software engineering skills to learn, and likely one of the most important day-to-day skills for principal engineers and architects.

Tools and patterns – Many of the required courses for a computer science degree will introduce new developer tools. You will likely have classes on sorting algorithms, data structures, and network protocols. Understanding these deeply helps you decide what types of tools to apply in a given situation. Should you store data in a list? A hashmap? How can you optimize the sorting? How are you sharing data between systems? Over time you will develop a series of patterns that you will use to solve problems. Sometimes you will create libraries and frameworks that you will rebuild and reuse from one job to the next using these tools.

Networking – I do not mean computer networking here, I mean people networking. All you Stanford attendees know what I am talking about. I think one of the big failures of most schools and alumni is to fully leverage their schools and their fellow classmates to accelerate your success. I am fortunate that I still keep in touch with several alumni and work with many people with whom I have worked in the past. Learning to network will help accelerate your professional success in any profession. While I have had great success at this, I think this is one area where a lot of software developers could improve.

Student government – I got actively involved in student government in my third year. I really enjoyed it and learned a lot about how abstract organizations get things done. Knowing Robert’s Rules of Order might sound terrifying to the average software developer, but I have applied some of the tools from my time in student government to many jobs later in life. To this day, I get tremendous pleasure when I hear someone use the word “quorum” in a meeting, especially if they were not using it before I joined the company. It is such an excellent word. Say it with me: “Quorum!

If you set aside the first item in the list, almost everything else in this list can be learned somewhere else—probably faster, and probably cheaper too. There are two questions that you can ask yourself: “How would you go about doing it?” and “How much time will this take me?” To be honest, I do not fully have an idea.

There is considerable emphasis on two of these, and I put them in the middle on purpose: The mathematics of scale and Tools and patterns. Assuming you have some elementary algebra skills, you can probably master the The mathematics of scale in eight months. That roughly corresponds to the academic year where you are learning this material. Tools and patterns feels more like a twelve to sixteen month journey given the depth of mastery you will need and, more importantly, the ability to show off that mastery to a potential hiring manager. You might argue that you could do this in less time if you stacked the subjects on top of each other and had some good mentoring in place to ensure your work efforts are highly targeted.

So there you have it. These are the things I learned in my degree, and the things I would contemplate when assembling a total candidate picture for someone who may not have a degree.
Thank you once again for reading along. If you do not have a degree and are looking for some help trying to be a software developer, I am happy to spend some time answering questions. Alternatively, here is an Amazon Affiliate Link to a book that has all of the markings of “You can learn to be a computer scientist!” as well as “this is a paid sponsorship please buy my book!”. If you already have a computer science degree, and you are interviewing candidates, I hope this gives you some tools to see if they have mastery of the two to three core computer science skills your company will need.  I am looking forward to another week of not posting about quiet quitting

Categories
Monocategorized

Stadi-ain’t

I always want to cheer for new technology and be super duper excited whenever I hear about a new gaming platform being launched. I have also been working professionally in the games industry long enough that I get a pretty good sense when something is not going to make it.

This week Google announced that they are shutting down Stadia. The vast majority of people I have spoken to were completely unsurprised by this. They were also unsurprised by similar outcomes for OUYA and Magic Leap (as a consumer platform).

I do not want to turn this into an “I told you so” moment. In fact, I am quite sad at the outcome for all of these. I do like to sit down and ask myself “What would I do differently?”

I am going to presume I have spoken previously about the “genre defining hit”—every platform needs one. If you look at impressive technologies that catapulted technology forward, most of them were accompanied by a must-have game.

For the SoundBlaster 16, it was Wing Commander.

For the CDRom, it was Myst.

For the XBox, it was Halo.

You get the idea.

I had the great fortune of being a part of a strategic consulting project for a large hardware manufacturer. They brought a large number of their executives together and made the statement “we sell more pixels than just about any other company, and yet we make the fewest dollars per pixel after the sale than any other company”. I bring this up because one of the things they did was set up a roundtable with a large number of game industry luminaries. The people who spoke were responsible for significant Sony, Microsoft, and Nintendo platform launches. Tim Sweeney was also in attendance, and a lot of what he said so long ago is now clearly manifested in the Epic Game Store. To this day I can still feel his presence when I open the application to see what I can buy with a 12% tax vs the 30% platform tax of his competitors. If there is a better candidate for repeat “Game Industry Person of the Year” year over year than Tim Sweeney, I am honestly not seeing it.

I digress.

Just about every single platform presenter, there and elsewhere, all had two magic words that they repeated. 

Content Strategy.

Each platform manager had a particular thesis for what kinds of games they wanted to include in their launch slate. They had a mix of branded content, new mechanics, and evergreen games. Each platform manager must make an educated guess on what people will play. I was briefly part of the portfolio management for an emerging platform, and we sat down and made a laundry list of games we needed to put live to support our players. I recall being a game developer and asking my platform partners “what kinds of content do you need for your content strategy” and getting told “we like to leave that up to you, the developer”. I understand why they said it, and I completely disagree with it.

When people were asking me about our portfolio, I would flat out tell them “I need an aquarium game because it is popular. I don’t want any more social farming games. If you have some cool casual online card games, I would like to see them because that is also a gap in our portfolio”.

I am bringing this up for a reason.

I watched the Stadia launch and I have heard people praise the technology. I wanted to bring this up because at no point did I understand the Stadia content strategy.

Don’t get me wrong—I am sure they had one. They went and hired an impressive line-up of game industry executives to come and work there. You can go and Google them if you like—even if that is sort of dark, considering it is the company that just canceled the very Stadia we are talking about.

So I am going to ask the question: At the end of the day, who was the Stadia customer?

I honestly am not sure. 

It was not me because I have all of the games I want to play on existing consoles. I have to buy an XBox for sweet, sweet Halo loot, and if I was into car games, the Forza. I have to buy a PS5 for the God of War, and the Horizon, and the Ghosts of Fukushima. I would have to buy a Nintendo Switch if I wanted to say “itsa me, Mario!” alongside my kids, or get me some Pikachu thunderbolt action.

Each of these platforms has a genre-defining hit, or in some cases multiple hits, that make the device an expensive dongle for some sort of must-have content.

What was the thing you needed to play that you could only get from Stadia?

There were a few hires announced early on that suggested they were chasing this. If I look at Jade Raymond for example, her title at Google is now “not working at Google anymore”. In fact, if you do decide to creep on her Linkedin, you might find posts saying stuff like “Congrats to Jade Raymond on the PlayStation acquisition of Haven Studios Inc.”

I think that was a really big problem with their title slate, and as much as I was curious, watching a former coworker play a few rounds of online games with their controller was about as much energy as I could exert for cloud gaming as a genre.

So what are the takeaways from this?

If you are going to build a gaming platform, you need to have a compelling strategy. “Can we go get the Catan license” may be a part of that strategy, or “let’s make a cool single-screen four-player action game” may be a part of it, but it has to have some amount of everything you could possibly want to buy, including some anchors that are only available to people who bought your particular platform-as-a-product.

You might also take away the understanding that if you are going to build a new platform, the compelling strategy will involve spending a significant amount of money building that must-have content.

And finally if you are me, you can take away a sense of gratitude that Google hired so many big names in the games industry who go through revolving doors between EA-Microsoft-Sony-Activision, that they created an opportunity for at least two or three new people to join that limited set of players of people who keep going through the revolving doors between these companies as executives.

No, I am not bitter at all.

Thank you again for reading along. I continue to underserve you as an Amazon Affiliate marketer, but I am going to keep trying. None of you purchased sensibly priced Asus monitors, the unofficial sponsor of last week’s blog, so I am going to link you to my preferred brand of wired gaming mouse for all of your pc gaming needs: The Razer Deathadder V2. If you love having a connected mouse so you do not die horribly when you run out of batteries, or if you want to have a mouse that your children won’t steal because the crappy LUA implementation of the mouse driver in Roblox makes it unusable due to its high DPI, then this is the gaming mouse for you, my fellow boomer. When you think “I am still a gamer”, think Razer DeathAdder.