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.

Categories
Monocategorized

1:1

Happy Sunday. This week I will continue my incredible, two-week streak of not writing about quiet quitting. I feel like I want to put up one of those signs: “It has been 14 days since we have written about quiet quitting.” I am so proud of myself. This week’s article is unofficially brought to you by ASUS Monitors, linked here shamelessly with my Amazon Affiliate code. If you need a reasonably priced WQHD monitor with a decent refresh rate, choose ASUS. ASUS!

Maybe someday I will have some kind of official sponsor for my blog. If you are interested and want to send me a free T-shirt to wear as I write my thinky thoughts, I am open to that. I might even take a picture of it and share it with everyone. Is this how one gets huge on Only Fans? Okay, okay maybe that is too far. I will slow down.

Let’s talk about one-on-one meetings.

I have a little speech I give to a new team member when they join a team I am managing. I tell them that it is important for their success to have a half hour of my time each week in order to ask questions or raise concerns. I like to tell them that it is their meeting, and if they wanted to spend that time reading their own poetry, or doing karaoke together, then that is what we will do. To be clear, I have not had a lot of takers on poetry readings or karaoke, but people like to know the option is there. It is their meeting.

A one-on-one meeting is an important meeting for many reasons. It is an excellent early warning system in case one of your team is becoming disconnected. It is a great way to ensure your team has everything they need to be happy and successful, and also it is a great venue to make sure that you are conveying important messaging.

Early warning

One of your roles as a leader is to keep your team together and reduce churn. Your one-on-one is a great place to get a heads up that someone is about to depart the organization. In at least one specific case, one of my direct reports told me flat out they were going to resign. They explained why, and I agreed that it made sense. Other times, you can get a sense of people’s satisfaction or stress from how they are talking about their work. You might also observe that people are more “checked out” in their one-on-ones. This is another indicator that someone is unhappy with their role.

I find that people will ask to cancel or defer their one-on-ones under two situations. They will cancel their weekly one-on-one if they do not have any concerns or issues to discuss, and would rather spend that time being productive. This is generally a good thing. As a rule of thumb, it is wise to keep at least one monthly one-on-one just to catch up, even if there is nothing to talk about.

They will also cancel their weekly one-on-one if they have one or more feet out the door.

Clearly one of these is not a good thing. The trick is to figure out which is which.

Happy and successful

Another important part of your one-on-one meeting is ensuring that they are happy with their work and being successful. These are important in equal measure. If someone is happy with their work and not successful, then that requires some work to determine how to make them successful. If they are not happy and they are successful, then there will be a different kind of work needed. I am not necessarily convinced that every person on your team has to be “tattoo-it-to-face” passionate about their everyday job, but they should at least be happy with it. This might mean they are happy with the compensation, they are happy with the team, or happy with what they are learning from their role—Maybe it is all three!

Important messaging

The final part of a one-on-one meeting is to ensure that everyone on the team understands where they are going. This includes career goals, team goals, and company goals. One of the biggest challenges for most leaders is making sure everyone is aware of the overall direction for the company and for their particular organization. You can hold frequent all-hands meetings, write weekly newsletters and even have people memorize and repeat parts of the company mission statement to help make sure they understand the direction they are headed. Sometimes this is not enough. Sometimes you will need to sit down with people and repeat the creed personally to them and give a personalized version of it to help make sure they are getting the message effectively.

There are probably a half a dozen more reasons to hold regular one-on-ones with your team members, and these are just three of the more important ones to me.

Here are some additional things you can do to have effective one-on-ones.

Do not schedule one-on-ones back-to-back. Try to give a 15 to 30 minute buffer after a one-on-one meeting in case it goes long. Rushing to complete a one-on-one meeting can leave a team member feeling frustrated and unheard.

Have the employee schedule it. It is their meeting. After the two of you agree on the time, they should add it to your calendar for a couple of reasons—the first of which is that it helps them psychologically own the meeting. It also helps me to prepare future leaders because I can learn how comfortable they are with managing their calendar.

Keep a shared document where the team member controls the agenda. Add weekly notes to it, and make sure to track action items and follow ups where necessary.

Never cancel a one-on-one with your team member. If you need the time for something else, then ask them for a replacement time slot to reschedule it.

Thank you for reading along today! Please let me know what additional things you like to see in a one-on-one meeting. If you have some cool pointers for effective one-on-one meetings, we would love to see those too.

Looking forward to continuing the conversation next week where I will not shill three hundred dollar affiliate merchandise. I will also continue to not talk about quiet quitting.

Categories
Monocategorized

This post is NOT about Quiet Quitting

The last two weeks I took a break from ranting about engineering management topics to talk about Minecraft and World of Warcraft. I apologize if you were uninterested in my foaming-at-the-mouth word spray. Fistbumps for the rest of you!

I really want to write an article about the whole Quiet Quitter phenomenon. I am fascinated by it to say the least. I started my career deep in the throes of the dotcom “revolution”, and I was snorting nosefuls of meritocracy powder and flexing boldly every day. There is at least one of you reading this right now with an energy enhancing product in one hand, reaching for some kind of hustle culture totem to ward off the mean man’s words in the other.

Good news! I am not going to make today’s rant about that.

Today I am going to talk about one of the few things I miss about being in the office.

I miss taking people on a walking one-on-one.

I was surprised how much I like having one-on-one meetings with people. There is a good mix of learning and teaching happening at the same time if you do them well. Today we are not going to talk about your standard one-on-ones.

In 2003 I was blessed with several coworkers who enjoyed going out for midday walks. We would cover a lot of ground in these walks, both physically and mentally. It was the first time I held a leadership role at the director level, and I struggled with some aspects of it.

To say that these walks were helpful and therapeutic were an understatement. I do not know that I gave the people on my team enough thanks for getting me started on the habit.

There is just something really special about a long, meaningful conversation while walking around. Something something health benefits, amirite? Setting those aside, the breadth and depth of the conversation changes when you get outside the formal meeting room environment and just talk to people.

I am sure there is more scientific mumbo jumbo out there to back up why this is important. I would search out a good book on Amazon and link it here for you, but you and I both know that you wouldn’t click on it. Jeff Bezos is almost as disappointed as I am.

All I will say is that while I am the President of the Work From Home fanclub, and have been hard at it for many more years than most people, this is one of the things I miss.

If you are back in the office and want to do something different for one of your next one-on-one meetings, I heartily recommend suggesting going outside for a nice afternoon walk.

Thanks for reading along. This is a little short today. I am back from a week of travel with the family and it is hard to write thinky thoughts on the heels of hours of sitting in a minivan with a large assortment of children. We will return next week with more SrS BzNz posts. I do not think any of them will be about Quiet Quitting either.

Categories
Monocategorized

Minecraft is for squares

I have one more mister gamey gamerpants post to make this week before we get back to the land of engineering and education. I appreciate your patience. I am still at zero dollars trying to get you to read books that I have not yet read, and I suppose shame is not a powerful marketing tool. I guess I shall keep working for a living.

We finished migrating all of our family Minecraft accounts from Mojang to Microsoft this year. As a result, I now have Minecraft goodness on many different devices. Since it is almost as good a game as Terraria, and is much much shallower, I decided earlier this year to start a clean world and go through to Win The Game by killing the Ender Dragon. I used to do this all the time on classic minecraft.

How hard could this possibly be?

To begin with, there are now two flavors of Minecraft: Java Edition and Bedrock Edition. I decided to play Bedrock Edition. I started my world, ripped up some trees with my bare hands and started building Chateau de Szeder, as one would normally do.

The first thing I learned is that the bottom of the world is no longer zero. You do not dig down to level 13 to 16 anymore in order to load up on lucrative diamonds—You Must Dig Deeper!

The new world goes to -64, and the bottom of the earth is filled with a new type of rock that is harder to mine. Finding diamonds is now harder and slower.

You might see where this is going.

Once you get enough diamond to make a diamond pickaxe and mine some obsidian, the next step is to get into the Nether and find a Nether Fortress. Nether Fortresses have two things that are important. You will find blazes in Nether Fortresses that drop blaze rods. These are needed to create Ender eyes and win the game. You will also find nether wart. Nether wart is needed to make potions. These are not strictly necessary to win the game, but they sure do help.

Exploring the Nether is frustrating. It is filled with lava and a number of creatures that are frustrating to fight. I spent the next two months intermittently running around and making tunnels and bridges, trying to find a Nether Fortress without much luck. The big problem is that while the spawn rate for Nether Fortresses within specific Nether biomes has not changed, they added a number of new biomes that made finding a Nether Fortress harder.

I decided to do a little reading online to learn that the recommended solution is to get a saddle, either from a chest or by purchasing one from a leather worker in a town. I was not able to find a saddle in any chests, and none of the nearby towns to my starting zone had a leather worker.

I was reasonably frustrated and decided to start over.

This time I prioritized finding a leather worker before going to the Nether. Fortunately, the third town near my starting point had a leather worker. You have to level up the NPC leather worker through tedious, mundane trading in order to get them to a skill level needed to create a saddle. While I was going through the process of killing rabbits and dodging polar bears, I wondered why they did not simply let you craft a saddle, like every other item in the game.

After getting set up with a saddle, I finally proceeded to enter the Nether and start traveling around on the surface of the lava on a lava strider. It did not take me long to find a Nether Fortress. I was able to farm blaze rods in order to create the Ender Eyes needed to open the final portal. I did need to explore around the lava quite a bit more this time around in order to find another structure that contained Nether Wart.

At this point I made a time consuming mistake. Rather than going back to the origin of the world, I decided to use the Ender Eyes near a portal that could take me right back to the Nether Fortress. This is a bad idea because the final portals to the End spawn according to a radial pattern, and it took me a few days to triangulate the location of the End portal. I should have backtracked to my starting point, because they generally drop one at a reasonable distance from the starting coordinates. I built a road to the portal when I finally found it. It was roughly 10,000 units away from where I started looking. This is about 30 minutes of running which is more than an entire Minecraft day.

The portal itself was under water (of course) and required some significant excavation work to reach successfully.

At this point I was able to enter the End level and confront the Ender Dragon. There was one final frustration. The Endermen in the End level are much more aggressive than in other zones. Not only do you have to deal with a giant dragon flying around and regenerating until you smash its multiple regeneration orbs atop large pillars, you will also have 2-3 random angry Endermen trying to crack your skull open.

There was really only one good way to handle this: I decided to death-run the pillars with stacks of sand. 

If you carve a pumpkin into a jack o’lantern, you can stick it on your head and then you will not aggro any of the Endermen.

So I spent about an hour and a half making giant stacks of sand, running around the final level of the game wearing no armor except for a pumpkin on my head. All I could think about as I died around twenty times, trying to destroy the glowing orbs on top of the pillars in the End, was “I am going to have to write a post about running around the End level wearing nothing but a pumpkin on my head, aren’t I”?

I was able to beat the game shortly after, but it was a time consumed, friction-filled process. It was nowhere near as pleasurable as it used to be.

For a new player, the expanded biomes and new mechanics may be fun. If you ever played through the original Minecraft, it was easy and frictionless to get to the end, possibly too easy.

For me these changes do not make the game better.

I do think that the Minecraft team is headed in the right direction by adding updates. I think that the one thing they are doing wrong is making significant changes to existing zones, creatures, and biomes.

I think that Minecraft would be twice as successful as it is today, or more, if they decided instead to leverage the portal model. Put new creatures, new rules and new biomes into new worlds that are gated by portals. Instead of having all of these friction filled changes threaded into the existing worlds, add a new portal recipe that is usable in the End to create a new gate to a world that contains these biomes. The dopamine fix you get from “first night syndrome” in Minecraft is i n t e n s e. If they released a new set of worlds with a new set of biomes every six or nine months they would be able to dramatically increase the value of the franchise.

Thank you again for reading along! I hope you derived some mirth from my four months of Minecraftian struggles. It was a valuable experience for me even if I think that the game sucks more than it used to. I promise to return to engineering leadership conversations again soon. I have at least a month of new material from conversations in the past few weeks. These past two posts on World of Warcraft and Minecraft have been therapeutic. You know what else would be therapeutic for me? Getting some free nickels from Amazon for an Affiliate purchase. You cannot go wrong with Ben Rigg’s interesting book on Dungeons and Dragons!