Categories
Monocategorized

I’ve been framed!

Over many years of standing in front of strangers and exuding noises from my food intake orifice, I have refined and polished my public speaking skills. I have also gotten good reviews from audience attendees, even from presentations where I did not give away money.

Early in my presentation career, I would get feedback that I was too excited and talked too fast. I gave presentations with too many words on the slides. I also gave presentations with no words on the slides at all.

Over time, I have gotten quite good at public speaking.

At the perceived pinnacle of my craft, there is at least one thing I should do better. I am actually doing it here.

I did not set the table nicely for the presentation.

Questions like: Why are we here? What am I presenting?

Welcome to framing.

Framing in leadership conversations is about how leaders present information, context, and perspective to influence how others understand and respond to a topic or situation. 

While I could deliver the nuts and bolts on a subject, I could have answered some early questions better to get everyone into the right mindset and help them reach necessary conclusions.

Framing can help explain the history of a situation so everyone understands how we arrived here. It can also help people make sense of their takeaways. Without good framing, a post-mortem can feel blamey or accusatory. If we frame the conversation as a learning exercise, that can help people understand that we are not looking for blame or trying to beat someone up with a shovel. The goal of the post-mortem is forward-thinking so we can learn and grow.

Framing can help people relate the subject matter of a presentation to company goals or strategy and encourage them to think beyond what immediate outcomes occurred.

Framing can help people rationally consume information that might be troubling or cause anxiety.

The next time you are putting together slides for a presentation, you should ask yourself, “What framing will make this presentation more impactful?”

Categories
Monocategorized

Unthinkable

I think back to all my leadership roles throughout my career and have made many interesting conclusions. One of the conclusions I have made that drives my current boss bonkers is that there is an interesting parallel to Maslow’s Hierarchy of Needs as it relates to your career. Some things require deep thinky thoughts at the top of Maslow’s Hierarchy of Career Needs that are hard to contemplate when you are mired in the bottom of the Hierarchy.  For example, it is hard to contemplate corporate strategy for your company when you are mired in shipping software on time and under budget.

As a result, I have learned that it is important to make time for very important things, and one of the biggest things you need to make time for as a leader is time to think.

That might sound silly, and I assure you that it is not. I adhere to a few very strict rules about time management, and one of them is to make sure that I have a few time blocks marked “Do Not Book” in my Outlook calendar. I know this is hard. I have written about making time previously.

Two other non-work related rules are to try to unplug as much as possible on Saturdays and refrain from using electronics. The other is to go out on a decent-sized hike (we are talking six to eight miles here) on Sunday without having those omnipresent screens or streams playing. There is a small safety issue for the latter point. The trails around here are crowded enough with bikers and occasionally horses that there is probably a health hazard involved in listening to a podcast or heavy metal playlist.

There are some benefits to making time to think. The first benefit happens when you get underwater and suddenly find yourself slammed. When tunneling on tactical things, you become very self-aware and can communicate that to people around you.

Another benefit is having “aha” moments and making non-intuitive mental leaps to solve problems or find a new perspective to improve your work output.

Making time to think probably has tertiary benefits, including health benefits. Having moments to yourself to be mindful of things likely helps reduce stress and allows you to process frustration or anger with things you cannot change.

At many points in my career, I jumped from task to task or meeting to meeting. It was an excellent step improvement for me to put that first hour on the calendar marked “Do Not Book.” If you are in a leadership position, take a step back from all the plate-spinning, status reports and meetings and spend some time asking yourself Marcus-Aurelius-type questions.

It will take many months for this to pay dividends. Feel free to reach out and thank me when they show up. I love to hear when things I say are helpful to other people!

See you next week!

Categories
Monocategorized

International Buy A Mooncast Productions T-shirt Day

One of the things I love about the modern-day world of internet-as-a-everything is that I have different ways to support people who are doing creative things.

I ordered a nice Mooncast t-shirt to support a friend’s startup. You, too, can support small indie game development and possibly slide one or two of Jeff Bezos’s nickels my way.

I also recently bought a Star’s Reach shirt, but that one is password-protected for alpha testers only. Hopefully, they open a store for everyone soon.

Categories
Monocategorized

Pie Slices

Cake is a disgusting mashup of flour, sugar, and at least one reasonably edible ingredient. Pie, on the other hand, provides a framework for deploying any number of super delicious ingredients inside an edible sleeve.

I love me some pie. When I was a kid, I used to sneak off and pick wild raspberries until I had a gallon pail full, and then my mom would make me the most amazing raspberry pie. You can buy “Raspberry Pi” on the internet now, but it does not taste the same.

I am not going to follow up on this with a recipe. My mom took that recipe with her to the grave. This is not that kind of blog post anyway. I cannot bake to save my life.

It can be challenging to figure out how to split equity when starting or joining a company. You want to understand the exits and your upside during a liquidity event. Another important consideration is what you bring to the table related to the company’s age. I proposed joining several small companies early on as a first engineer for between five percent and forty percent of the company. Some of this had to do with the idea’s strength, the founders’ strength, and how much money was already raised for the business.

You want meaningful equity, and you want to know that the people you work with, known as your “first team,” have your back when it comes to taking you to a liquidity event.

The journey to a liquidity event is complicated. Most people want something magical to happen in two to four years, and you are more likely to wait seven to ten years. I was in the “two to four years” misinformed camp early in my career. I know better now.

The interesting thing about equity is that it tends to change over the life of a business. Most often, your slice of equity will get smaller. When this happens, you have to ask yourself if the business’s overall value will go up based on the change in equity. If the business value increases, then the dilution is worth it.

Sometimes, you will also find people who do not want their equity stake to evolve. This might relate to the amount of equity needed to control the company or to their perception of their own value and the relative worth of the business.

This is often boiled down to the question:

“Which is better: Bigger piece or bigger pie?”

If you have a scalable business or investors who believe you have a scalable business, you will probably fall into the “Bigger pie” camp. If you have taken venture capital, this is a pretty natural evolution. You raise some seed money, then a series A, then a series of additional rounds B through E, to either make a run to the IPO border or to be acquired somewhere in the middle of that run for a good return for the investors.

You should keep as much equity as possible if you have a small business. You will want to scrutinize the people you bring into your cap table carefully and be sure not to fall into the minority of your own company. If you want to read a tragic version of this story, Gary Gygax, one of the creators of Dungeons & Dragons, lost control of TSR, Inc. this way. You can read about that in Slaying the Dragon.

So which is better? Bigger piece or bigger pie?

It is hard to give a definitive answer.

There are some times when you will want to keep a bigger slice. It is worth examining these opportunities carefully to ensure you are not falling into a scarcity mindset trap or that keeping the equity levels where they legitimately make sense.

There are other times when you will want to create a bigger pie. When you raise money, your investors will want to own more of your company as a condition of increasing investment rounds. You should also grant some equity to advisors or key staff who want to accompany you on your journey. You should be careful about the equity levels you grant and what time frame you grant them. Having advisors with high equity levels or former founders who also have high equity levels, you might risk having a confusing cap table that will inhibit future investment.

In many cases, the right answer is not clear. You might not know whether or not you made the right decision about “bigger piece or bigger pie” until it is too late.

Are you faced with this decision today?

As someone who has been through many equity-related decisions, I am happy to have a courtesy conversation with you and give you my perspective.

Categories
Monocategorized

Sign me up!

We are a little late this week for a plethora of reasons. A plethora. What a great word. Stand up and say it out loud: “Plethora.” Hopefully, you are somewhere where that is quite strange, and you should nod to everyone around you and tell them, “Think about it.”

One of my writing goals is to discuss the mistakes I have made in my career, even if I do not want to admit to myself that they were mistakes. 2001 to 2006 contained a lot of deep, deep learning, which is a fancy way to say, “mistakes so big, you can see them from space.” For example, many dark things occurred at Digital Chocolate, and my actions required many people to proclaim “shenanigans!” The directionality of my actions, if not the actual actions themselves, was still reasonably correct. This is a series of confession booth conversations that still need to happen. For the record, I have apologized to the CEO for the worst parts of my conduct, even if there were people between him and me that I still think deserve prison time.

I will not serve up the rest of the red meat slash hot goss from 2004 here.

Today, I want to talk about a more recent mistake and probably a less fatal one.

In recent memory, I was talking to my boss and CEO about a series of random tasks that showed up from a customer. The task seemed like a foul-smelling concoction of menial work and time-consuming meetings. The CEO said they would own this task and see it to completion.

“This is what I signed up for.” Was the magical declaration that followed a description of the banality of the task.

This is a very important statement. In leadership, you have to understand what you have signed up for. In most leadership positions, an important thing to realize is that when you have some work that is not suitable for anyone else, it is your responsibility to ensure that it gets done.

At a certain level, “this is what I signed up for” becomes “this is important, and not what anyone else signed up for, and therefore it is what I signed up for.”

For most of your career, you must ask yourself, “Is this what I signed up for?” I think that modern-day work-life balance and the need to be your authentic self at work can sometimes lead people to a hard “No.” For an entire generation of managers, this can be confusing. Most Generation X leaders, for example, grew up in a work environment best described as a “toxic meritocracy.” The importance of working hard to get things done was important regardless of the craziness of the task. Everything your boss asks is what you signed up for.

This is less true today. People value their personal time and draw hard limits on forty hours a week. People look at the companies they do business with, their values, and whether or not they align with the company. “Is this what I signed up for?” is a harder question for most people today than twenty years ago and contains much more nuance.

Everyone has a different mindset here, reflected in their answers to “Is this what I signed up for?”

My failure here is incorrectly answering this question. I was preparing for an interesting, internally focused executive task and needed to pinch-hit on another more urgent customer-facing task. I asked myself, “Is this what I signed up for?” The surface answer is that I had signed up for the internally focused executive task because that aligns with my current responsibilities. This other customer-facing task is not personally more interesting or important to me. I accepted the task and worked through it, although not without its cost. On reflection, I tended to complain about it to my peers.

When you reach the executive level, you must treat the question, “Is this what I signed up for?” differently. Very differently. The business has a different meaning to you than it did as a worker-bee or even middle manager. You have duties and obligations as leadership to fulfill in pursuit of the company mission, and it is best to follow through those with some level of grace and decorum.

In the future, when you face executive tasks that do not feel like they are in your wheelhouse, you should consider whether or not you have the luxury of saying, “I did not sign up for this.”

At a certain point in your career, “Is this what I signed up for?” becomes a non-question. Everything that needs to get done is what you signed up for.

I am adding this to my list of conversations with people on the verge of executive promotion. They need to understand that what they think they signed up for is sometimes different than what they really signed up for.

See you all next week!

Categories
Monocategorized

Ok, Zoomer

Much like Elrond, I will give you a rough idea of how old I am by saying, “I was there when…”

I was there when Fonzie jumped the shark.

As a small child, I remember our ritual gathering around the television set when Happy Days was on TV. I have similarly vague memories of slightly burned stovetop popcorn, hockey games, and episodes of Three’s Company.

Today, we are going to talk about shark-jumping in software development. Oddly enough, this is not a conversation about Jira.

This is a conversation about Zoom.

I know many of you are going back to wearing fancy dress shirts and khaki pants and making “herp derp return to office herp derp” noises these days or honking like a loud, obnoxious goose going, “Hybrid! Hybrid! Hybrid!” Some of us look at you in the rearview mirror with a mixture of pity and… okay, well, lots of pity. I enjoy my “remote work is best work” t-shirt that matches my coffee mug. I am also not wearing any pants.

There is a certain inevitability to remote work that has gradually improved through better and better technologies to enable communication and interaction.

Currently, Zoom Meetings (apparently Zoom Workplace, as the application declares itself) is one of the shining jewels of “Hey, let’s have a remote meeting together!” Perhaps its meteoric rise is tied to the sudden pandemic, or it did so many things better than Google Meet or Microsoft Teams. For whatever reason, Zoom has risen to the top.

It no longer deserves to be there. Almost weekly, something changes inside Zoom to make it a less great product than the day before.

So what is happening here?

I frequently make a joke about how Apple is trying to be Samsung almost as hard as Samsung is trying to be Apple. In much the same way, Zoom is not doubling down on what makes it great as a market-leading product; they are trying to become something it is not and pushing toward second place.

Whatever “Zoom Workplace” thinks it is, it is not just the best place to hold virtual meetings. It has bolted a pile of features onto itself Frankenstein-style.

A score of UX changes to the product over time have confused me, from the hexagon-shaped exit button that replaces the “leave meeting” door if you are the meeting owner to the sudden increase of random popup dialogs at the top of the window. Most recently, each meeting I have entered includes a button labeled “Not hearing anything? Turn Up Volume.” Is this the most common tech support problem that Zoom users have?

If you regularly record meetings, the button location on the “you are sharing screen ribbon” changes repeatedly, from one of the most important buttons to something buried beneath the fold.

When sharing screens, you must mouse over an area at the top of your screen to pull down the ribbon that was previously at the bottom of the Zoom window, only to find that it does not mirror the ribbon in size and button layout.

Everything that has happened to Zoom in the past eighteen months has not made it better software for holding remote meetings for me.

Even more shocking is that it lags behind Google Meet in interesting features I have sometimes needed for a meeting!

I find it horrifying and fascinating at the same time when marketplace leaders do this to themselves. There is some kind of twisted incentive somewhere that drives product managers and company leadership to make changes to their software just for the sake of making changes.

You could argue that they have lost their way, as evidenced by their desire to have people back in the office.

Whatever they are doing is not suitable for their core business. I have no interest in wiring them up to my calendar, which leads Zoom to tell me, “No meetings scheduled. Enjoy your day!” First, I have plenty of meetings scheduled, and second, why is that a necessity for me to enjoy my day?

I just don’t understand what they are doing. This implies that they don’t know what they are doing either.

I hold at least my monthly staff meeting in Microsoft Teams as a polite reminder to wait for the day Zoom sinks so low that this will be an obviously better experience.

That day is still pretty far away, but every time I see new pixels inside Zoom, it feels like it is getting closer.

I am not sure what else to say.

If you manage a successful product like Zoom, you should ensure your changes to the product make it a better product.

See you next week!

Categories
Monocategorized

Unteaching

I write this blog for many reasons. One of my goals is to help people learn important, hard-fought lessons without experiencing some of my pain and suffering.

According to Nvidia’s CEO, there are also times when it is important to learn those things yourself.

So when my oldest son Carson started fiddle-faddling around with no-code platforms and told me that no-code application development is the future of software development, I nodded, I smiled, and I did nothing.

I will not bother linking to the random no-code platform that captured his enthusiasm. Instead, I will smugly link you to his public Instagram page. It is even there in the name.

Over the next six months, I listened intently to him describing his no-code journey with some amount of nervousness and fear. It is one thing to hear his opinion on the future of software development and yet another to take prescriptive action and correct him.

Fast-forward two years, and all of that “doing nothing” has paid off. He has started building his APIs and platforms in Python and is running a growing business.

Somewhere along the way of coaching and teaching people, I have learned that it is important for a teacher to know when not to teach.

This is a serious problem for today’s staff engineers and architects. Many talented software developers have gone through that zero-to-one transition for creating software platforms. Many more have learned how to scale up through growth measured in thousands of percent from their current user base.

Their problem is that they need all their lead and senior software engineers to go through the same exercises to learn the necessary patterns to operate at a higher level.

For this to happen, you must let your teams propose systems that might not be ideal or forward-thinking. You can softly give them feedback that there are missing pieces and give them some gentle and subtle clues about bridging the gaps to the solution they will eventually need.

Far too many engineering leaders will do all that work themselves and lose a valuable teaching opportunity. Maybe there is some scarcity mindset or fear involved, or it is simply a lack of forethought on their part, and not in a bad way because they have never needed or wanted to grow one or more engineers to a peer level.

I guess this is just a restatement of the old saying, “You can lead a horse to water, but you cannot make them drink.”

Please make sure your mentees (and yes, your children, too, although technically, this is not a parenting blog) have enough opportunities to learn valuable lessons on their own sometimes.

When the opportunity arises, and they are either successful or not, let them know that this was an intentional opportunity and that they are wiser for it.

The explicit statement afterward is important for creating psychological safety. If your teams know they have some opportunities to grow, including some risk of failure, they will be far more impactful than a team that slips task management tickets while keeping on a narrow track.

Categories
Monocategorized

Surch

Have you ever gone to the internet to search for something you needed to buy? Once, an overwhelming sense of professional obligation to own all of my work software inspired me to obtain a Visio license. Rather than going to Microsoft, which may have been the most obvious thing to do, I went to Google and typed “Visio.” This was in an era of significantly more aggressive adversarial advertising. There is some kind of sick trust between Steve Ballmer and the average Microsoft customer that inspired them not to spend money on buying Google ads. While I am a gigantic fan of Microsoft developer products, I was not so in love with the Visio brand that I was willing to completely ignore the product offers from Microsoft Office competitors. SmartDraw was at the top of the sponsored links at the time, and it looked like they were ready to party.

This is how I became one of their customers. I was seduced by the novelty that Microsoft was so flagrantly uninterested in my business that they did not wish to pay to stay on top of the Google advertising spender leaderboards. I felt like I was some super-smart bargain hunter for the simple act of a mouse click.

I have about six or seven very good years of architecture diagrams from my steady relationship with SmartDraw. I think the success of their clever marketing began to cause problems. They began to iterate on SmartDraw like professional arborists “iterate” on the plants that are “under their dutiful care.”

There was a particular release where they stopped maintaining feature parity with Visio.

I don’t know what to say about what happened next. A breakup? A funeral?

SmartDraw and I were no longer seeing each other, that is for certain. After so many wonderful years, why they decided to make this change is unclear. I imagine I was not the only person who stopped using their product that day.

This is probably the first time I realized how important advertising or marketing your product is. I was a product-first “if you build it, they will come” entrepreneur. Maybe parts of me still are. Not the Derfdice part, though. I built it, and nobody came. There was a mild collision there between my aspirational view of the hardcore tabletop game dungeon master and the arrival of LLM technology. It was quite humbling to get zero million customers. Fortunately, I broke even on the product in other places and other ways.

This is a short one today. If you ever want to throw some money at a company for a product, seeing who else wants your money more is worth it. I am firmly back together with Visio again if anyone is keeping score. I have found additional replacement products over the years. Oddly, the next best example is also a Microsoft product. I was an Intellimouse lover for years, and now I find myself besties with the Razer Deathadder.

I would love to hear some stories of “surch…” Where you go to the internet to find a product and purchase something better or cheaper.

See you all next week!

Categories
Monocategorized

r-three-ow

Before you think that my blog subject is some kind of boop boop lazors noise from a space movie, I want to point out that it is my own cleverness in writing “three-in-a-row.” Yes, I am fine. No, I am not sorry. I am not going to blink twice, I am not in danger.

Today, I want to talk about three-in-a-row. I have selfish reasons to avoid calling it by its proper name. If you have ever gone past the “let’s send John a resume” phase of a professional relationship with me, you would be on the receiving end of an obnoxious IYKYK. You can Google that if it confuses you.

Why are we talking about three-in-a-row, aka tic to the tac to the toe?

Because when other people ask me, “Hey John, how do you learn a new programming language?” This is the first program I write.

The first thing I do is build a three-in-a-row game.

I do not have an unusual affection for three-in-a-row. Using the popular minimax algorithm correctly would make an unbeatable puzzle that fails to define a game. I love implementing three-in-a-row as the first thing I build in a language because it has a few abstractions that are good ways to flex your ability to use a new programming language.

Multi-dimensional arrays: You should store the board in an array of [x] and [y] values.

Some business logic: Deciding where an AI player should make a move is a fun little exercise.

Inputs and outputs: Hello world is nice but you are just printing things. Making a full command line (or graphical) game requires more mastery. Are you processing clicks? Are you converting input to numbers? Is your input good? Are the moves valid?

The classes: You can put the board and the player into objects, even with a little inheritance from GenericPlayer to AIPlayer and PersonPlayer.

When I do this, I generally do not use minimax. I like to make a reasonably simple set of functions that iterate over the board, reusing a common function to see if a row is complete or is about to be complete.

I also added a random chance for the AI to make a useless move to ensure the game does not always end in a hideous tie.

So here is a little pseudocode logic for you on the AI’s turn.

if( MakeWinningMove() == FALSE ) {

  if( MakeDefensiveMove() == FALSE ) {

    MakeRandomMove( );

  }

}

This seems pretty straightforward. Try to win the game. If you cannot win the game, try not to lose the game. If neither of those are serious issues, then make some random move and be done with it.

In the function MakeWinningMove(), for example:

We will make a list or set of all the empty pieces.

We will loop over this list and temporarily add an AIPiece.

Does this give us three AIPieces in a row?

Return TRUE!

Otherwise, remove the AIPiece from this location and restart the loop with the next value.

I reuse an iterator function that checks horizontal, diagonal, vertical, and reverse diagonal lines in a 1 to N loop. I think it is important to avoid magic numbers. Suppose someone sends me an implementation of a three-in-a-row game. I look for a variable or constant declaration of BoardSize set to 3 and almost immediately increment it to 4 just to see what happens. Sometimes, it works, and sometimes, it doesn’t.

The logic for MakeDefensiveMove (and MakeRandomMove) is largely the same. Avoiding DRY (Don’t Repeat Yourself) Violations is a good practice.

By the way, this is not the best implementation for three-in-a-row. It is fast and easy to test and does not crush players’ souls by being totally unwinnable.

Quite a bit of this post is about hints for what I look for when conducting software code screens. I was trying not to say that in easily searchable terms for future engineering candidates. I have made this obscure enough that the bonus points for anyone improving their code submissions after finding this article will be worth it.
So now you know how I learn new programming languages. I try to do this frequently enough to stay a lifelong learner and I think this is better “gud brain” exercise for you than tugging at the chunks of wood and metal that you can buy from Amazon at this affiliated link right here. See you next week!

Categories
Monocategorized

An Ounce of Coaching

I spent some time looking for engineering coaches for others a few years ago. While conducting early interviews to understand what they do and how they measure their success, I got a lot of puzzled looks from potential coaches. Most of them measure their success by the size of the fire they have put out via their coaching, and almost none of them were being asked to coach people where there were no issues.

I was equally puzzled by this. Having coached many people on my team and a few outside of my team, surely the executive teams at most companies understand that you want to invest universally in improving the outcomes of one of your biggest cost centers. I am wearing my shocked Pikachu face right now. I was going to see if I could find some Amazon merch to pimp for this, but all of the shocked Pikachu merchandise there is super sus. Or is it suss? I cannot keep up.

It turns out that companies spend on coaching when their engineering organizations or products are on fire. It is far easier to get the blessings of the bean counters for reacting to a problem than it is to invest in proactive coaching that might keep you out of trouble in the first place.

Why is this true? It seems that there should be more appetite for proactive coaching rather than just reactive coaching in much the same way that people say, “An ounce of prevention is worth a pound of cure.”

I recently attended a CTO talk in OC. The speaker blew me away by describing how they upgraded their internal data platform using Databricks. At the end of the talk, I asked her where she had learned the soft skills needed to get approval for this project. She attributed it to her career coach, which she paid for alone.

I decided to ask another question at the end of this talk, similar to one I asked during an engineering presentation at GDC in March. I asked the audience how many people have coaches or mentors. In both cases, far too few people put up their hands.

I was disturbed by that. Many people blindly trust their managers to look out for their careers. I have had engineering leaders with incredibly scarce mindsets at some companies where I have worked. It is dangerous to trust your own potentially abundant success in the hands of a zero-sum game thinker. Unfortunately, I am speaking from experience here. The vast majority of times I have had an engineer as my boss, they were generally very poor leaders. Early in my career, I confronted some of them with their poor thinking (I was not thinking in terms of abundance and scarcity until at least 2012). Later in my career, I would gently suggest abundant alternatives to find what justifications they claimed to adhere to their course of action. In either case, I seldom convinced anyone to adjust their thinking.

Coaching people on your teams is possible if you are diligent about it. You just have to be very mindful about cannibalizing your coaching in favor of business outcomes. As a coach to people I manage, I often have to include caveats to ensure they know there is sometimes a lack of alignment between these two things. Sometimes that lack of alignment is not subtle.

If your boss is tunneling too much into their own work outcomes and objectives to be an effective coach for you, it may be time to reconsider where you work. Many companies offer lifelong learner paths that include coaching resources and learning opportunities.

Alternatively, see if your company will pay for an external coach to help improve your outcomes. It does not hurt to ask. If they say no, you might be able to find a coach willing to give you a “stingy company” discount that takes into account that your personal budget for self-improvement is smaller than the line items in the L&D budget for the company.

Give me a shout if you think that is interesting. I coach people myself, and I am connected to about half a dozen other coaches right now who have tremendous engineering leadership experience and can help you ensure you are maximizing your career potential.

This is enough of a sales pitch that I do not wish to sully it with an Amazon Affiliate link.

See you all next week!