Categories
Monocategorized

C’est ne pas une Engineer

I cringe every time I hear someone say “Software Engineer”. Some of this has to do with growing up in Canada where there is actually a “Professional Engineer” organization, and some of this has to do with the way that people view the profession itself. There are some odd parallels that people associate between building software systems and building bridges that I think have warped people’s expectations. Be prepared to have this metaphor taken to extremes today.

Estimating project size and scope is one of the most daunting problems that happens as a result of lumping software developers into the engineering bucket. After all, if it took you six months to build the last bridge, it should take you six months to build the next one, right?

It is not that simple. The difference probably comes in the planning. If you are building a bridge, you will generally do a lot more up front work. What are the elevations at every point along the project? What is underneath the bridge? Is there clay, silt, or bedrock? Will the bridge need to be elevated to a certain point for river traffic to flow underneath it?

The average software project does not have nearly as much up front effort put into it. Imagine if you are starting to build a bridge over a river and you did not do all of this work in the beginning. If you did not check the riverbed to determine whether there is soft mud or bedrock underneath, you might expect that there will come a moment where you will need to invest more time in making sure that the piles needed to support the bridge are deep enough and tall enough. “We did not do enough planning” might sound familiar. It happens all of the time, especially if someone in your team is fond of saying things like “something something agile!” when asked about your processes.

This is the problem that gets created when you slap that “Engineer” sticker on the forehead of your software developer. There is not enough structure and planning around the average software project for the term “Engineer” to be appropriate.

We can fix this in a couple of ways. I sneak the word “Developer” into discussions whenever I can. This is not really a solution, but it prevents me from screaming out loud and clawing at my eyes due to the horrible burning sensation created by most software projects. I have been given feedback that people on my teams do not appreciate it when I do this for the duration of the post mortem meeting and it is a super bummer during sprint planning. Feedback taken.

The real way to fix this is to help educate the non-technical leadership around you about what software development takes and why it is so gosh darned hard.

Let’s go back to our bridge example. If we are building a simple bridge for foot traffic and bicycles, that is an entirely different proposition than building a high throughput multi-track railroad bridge. The amount of support work, the types of materials needed, and general planning that goes into making the railroad bridge is going to be significantly more involved.

The choice of materials might not feel like it translates into software development, but it kind of does. You have to choose your deployment strategy and the language/environment in order to bear the proper amount of load. If you choose your database infrastructure poorly for a high intensity system, it will be the same as trying to make a railroad bridge out of simple timbers and pedestrian bridge materials—it will come falling down.

The farther we go into this the more you might be looking at me and asking “Aren’t you basically proving that the two of them are really the same thing?”

You might not be wrong here.

The bridge metaphor helps to highlight where the difference is and why most software development projects are not really engineering endeavors. Let’s go over the differences.

Planning and approvals – There is generally a document or two that exists in every project before people start building. Most software development projects do not have enough of this. It is one thing to have a few requirements sketched out and another to have deeper architecture dive done before actually getting started. This goes back to those surveyors and architects. 

Architecture – This is one of the big problems in software development. Certainly at some larger companies, or more mature companies, there is a group of people who have to think long and hard about the deployment environments, development tools, and scaling strategies. The average software project does not have enough of these. Most software architecture is ad hoc and has poor assumptions about infrastructure and deployment. Even more controversial is that some of the people who design the architecture for some software systems are also the people who end up building them. The kids might tell you this is “totes cringey”. The software development projects I have been on that have been the most successful are the ones where there has been enough independent oversight in place to help steer software developers towards a successful deployment.

Complexity – Last but not least is our good friend: complexity. This is not to say that bridge building is not complex— it is. Software complexity is its own beast and is largely the reason that many software projects struggle or outright fail.

There is a big difference between linear complexity and geometric complexity. Google yourself some math terms if you wish to be educated on the shape of those curves. The best software development projects reduce the scope of their complexity at the planning phase. It is very hard to do this until you have blown up a project or two. I now ask myself “How can I reduce the complexity of this system?” at every part of the software development cycle.

Over the course of thirty years I have seen many different kinds of software projects. I interned at Motorola Canada working on an ISO-9001 certified waterfall software development project for emergency dispatch software. That was probably one of the more thoroughly planned out projects I ever worked on. A modern day Agile developer would have turned blue and clawed their eyes out at how much up front planning and process was involved. It was also a great project that shipped in a reasonable amount of time—and it saved lives!

So where do we wind up? I will still twitch a little when I hear “software engineering” and that will probably be true for some time. This is because so many companies have poor processes for planning software projects. As we march blissfully towards the heat death of the universe I hope that we see more architectural support for projects and more thought about software complexity. This will go a long way towards making me feel better about the phrase “software engineering”.

I hope it gives you an opportunity to reflect on the subject also.

Thank you again for reading. I hope that my angry fist-shaking-at-the-sky rant about software engineering has exploded your brain and left you completely shook. At the very least, it has moderately amused you and convinced you to come back next week to read some more.
If you do not plan on coming back for more, then you should immediately go purchase this six-pack of colorful clown wigs (disclaimer: This is Amazon Affiliated Merchandise) that you can buy and wear to work. You can see yourself out.

Categories
Monocategorized

I am growing on you

I mentor half a dozen engineering leaders. Half of them have very specific career goals they are looking to achieve and the other half are tremendous leaders who just want to have feedback on their growth.

I have observed some patterns of career growth over twenty years of managing and leading people. I do not know if these things are universal truths or if there are textbook studies that confirm or deny these things but I want to talk about transformative career opportunities and how to find them or create them.

You will have more growth opportunities and a faster career trajectory at a smaller company. There are many reasons for this. Larger companies generally have an established hierarchy and existing engineering leadership at the top. The existing engineering leadership has an obligation to help you grow professionally. They also have their own jobs and careers to think about. If you are an exceptional engineer who learns quickly, you might run into a ceiling because there is no room for you at the table due to scarce thinkers in leadership, or just due to the need to follow career growth processes which often include time in role. I have found several talented engineering leaders who were “stuck” in this situation. Most of the hard problems might already be solved at a large company. The ability to build a large scalable system is different from the ability to add features to a large scalable system. Every once in a while you will get the opportunity to participate in a refactor or rewrite but these opportunities are few and far between.

Growth opportunities in smaller companies vary from organization to organization and there are some things to look out for. If the business is growing, then the engineering organization will need to scale up to suit. If the business is not growing and the products are largely the same year-over-year, then there is no need to grow the team and generally there is no need for people to develop “next level” skill sets.

So what do you do if you do not have a transformative career opportunity at work?

There are a couple of things you can do.

Change employers – If you have spent two or more years at a company and it is not clear what your growth opportunities are, you might want to hit the reset button. I will confess I did this too much early in my career and if you are like me, you might have to spend fifteen minutes in every job interview explaining that.

Change teams – Sometimes there are different organizations within your own company that present career growth opportunities. There are rules about how to switch teams in most companies and you should certainly talk to your manager prior to getting too committed to changing teams. That might even be the catalyst for your manager to find something that will enable you to grow in your current role!

Join an internal committee – You may have internal technology groups or task forces that exist at your company. Many companies have different groups for managing the state of their platform, or have mentorship groups dedicated towards cross-team learning and promoting growth. Getting involved in one of these shows you are dedicated to your employer and should help you get visibility for growth opportunities!

Join an open source movement – If you are not able to find a new opportunity then you can also consider contributing to an open source movement. There are a lot of projects out there and some of them need help. I have seen a number of engineers grow professionally by doing this and I approve of it. It is not something I have done myself but it bears mentioning because I have hired people with strong open source contributions.

Write your own software – I will start by adding a caveat that some companies and jurisdictions have rules against this. I think that is unfortunate and if you feel like you want to write your own software, then I would recommend moving to a new location or changing jobs to give you the opportunity to do this. This is the thing I do the most. I have written a significant number of independent projects. Some of them have even launched! You learn quite a bit through the end-to-end software development cycle and this is one of the things I look for in a resume.

Do a consulting gig – The previous warning on companies and jurisdictions applies here. If you do not have any big ideas of your own, you can always find someone who needs urgent help or discounted labor because they cannot hire an entire engineering team. You can help someone build a prototype or repair an existing system to get some professional leverage and get paid for it at the same time! If someone does not have a large budget, you can always discuss equity in the project or ownership of the code. The latter is valuable if you want to use the code in the process of looking for more opportunities as a demonstration of your skills.

You might notice that all of these things sound hard or time consuming. This is true. Growing professionally is easy at first and after a certain point the number of professional openings at the next level decreases. You can always sit around and wait for that opportunity to appear in your current job. The problem with that approach is that you might find someone who has made more of a time investment into their career growth. You might get passed over by someone who is demonstrating that they want it more through some of the items above. Your recourse at that point will be to look for that next-level role elsewhere, with the understanding that if you have spent multiple years in your current role, you might only be eligible for career sidegrades instead of career upgrades. I caution people against doing this. Which brings us to the last thing you can do.

Retain a mentor – Hello and welcome to the sales pitch! If you are struggling with any of the above things and want to grow professionally, then you should consider finding a mentor. Some companies will have a Mentor Program. Some companies will give you a learning and development budget to hire a mentor. If neither of these things are true then there are some people out there who mentor out of the kindness of their heart for free. If none of those things are true for you, there are a dozen or so places you can go, present company included, to hire a mentor at whatever frequency makes sense for you at whatever price is affordable. You do not have to figure this stuff out alone!

So there it is! No begging for Amazon nickels this week. I have zero billion of those already. I have some limited capacity for new mentees and I am happy to spend an hour or two discussing it with you as a courtesy. That is right. If you are willing to give this car a test drive, you might be able to drive it home today. I always tell people I am willing to spend a few hours a year with them for free and any time after that is stealing time from my children. They are open to bribes and if you need to meet quarterly or monthly (or even weekly) then let’s talk Hard Cash Money. I don’t even need to go in the back to talk to my manager—I can either help you or I can’t.

Categories
Monocategorized

Creating things is fun

Happy 100th post!

So I have been working on a “TTRPG” project for a while now—since 1997 in fact. I have talked about the “Joe the Elf” problem last fall and how I have mostly solved the problem for myself. As a result of “The Difficult Times™” and “hey everyone is playing Dungeons and Dragons now” I decided I would spend some time to modernize my tool from a win32 C++ app into a modern day web application.

I started promoting my web app on the Twitters and now that we have some pretty cool tables, I have been working on my marketing skills a little. Judging by how few nickels I am getting from Linking Random Stuff On Amazon as a Clearly Promoted Item, I still have some work to do.

I am now up to 300 followers and have tens of thousands of impressions with some single digit percentage of engagements. I don’t know what is a good number yet for those, but I have seen some of my random tweets get up to 20% so I know there is some room for improvement.

The product itself generates strings of text to assist storytellers and game designers. This stuff does not quite sell itself. I am making the product very frictionless and very free in order to build an audience and presently that is slow going.

So today I want to show what I am doing to make promotional content for derfdice.

Here is a sample of some output from a derfdice table:

  • Caer Gorom, a decaying Church, overlooking the ruins of a destroyed city.
  • Cael Crevil, a doomed Abbey, shrouded in dark clouds.
  • Dol Ithskull, a crumbling Hermitage built on the ruins of a Motte and Bailey, blackened with scorch marks from eldritch fire.
  • Dol Gorith, an ancient Synagogue, emerging from the face of a cliff.
  • Morth Nevthad, a decaying Hermitage built on the ruins of a Keep, in the heart of a decaying forest.
  • Amon Morthad, a damaged Synagogue, emerging from the face of a cliff.
  • Caer Crevskull, an ominous Convent built on the ruins of a Armory
  • Tyrn Guul, a dreadful Cathedral, sunk into the ground.
  • Caer Ithgul, a damaged Shrine
  • Amon Sheld, a giant sized Bastion, where Overlord Arianerath the Passionate fell in battle.
  • Helm’s Harg, a crumbling Bastion, surrounded by overwhelming dread.

Each of these is a cool, random location that can be used by a DM if they need an urgent random encounter. This describes about fifty percent of “John is just making it up as he goes along” DMing.

How do we go about making this interesting for Twitter?

Let’s take the first ominous fantasy building, which just happens to be my pinned tweet.

After a few attempts at taking pictures of strings with a variety of different formats, I stumbled across starryai. I set up an account and started feeding the string outputs into the site to generate random images.

Here is the one for my pinned tweet:

Caer Gorom, a decaying Church, overlooking the ruins of a destroyed city.

I post one of these to Facebook and Twitter every day.

A few of the DMs on the site are getting deeper into making tables. We got a cool table for tavern meals, and a cool table for tavern drinks.

It stands to reason that the next step was to make… Tavern menus!

One of the very first tables I made for myself was a random tavern generator. I have added the full tavern menu to it to add some considerable flavor to a random location in a tabletop game. The result is pretty awesome.

In order to promote these, I take the headline from the tavern and run it through starryai, and I get a pretty cool custom piece of artwork. In order to elevate the presentation to the next level, I then put the text through a homebrew formatting generator, and append a screenshot of the text to the tavern image.

The end result is, as they say, chef kiss.

This does not have anything to do with career growth or managing teams. This is me talking about a small side project I built with a little help from my friends.

Now that I have updated the framework to work on my phone and run in a browser, the itch to use it myself has increased tremendously. At some point in the not-so-distant-future I am going to get back to running a weekly tabletop game.

I would normally send you off with a scorching final thought. Today I just want to ask a question:

Do you have a creative hobby you would like to talk about?

Categories
Monocategorized

Negotiation Education

Negotiating is hard. There are many books on the subject such as “Getting to Yes” (disclaimer: I git payed if you buy this book). Some of these books will help teach you to be a better negotiator. Today I want to talk about one of the things I learned about negotiating… from negotiating: How to learn your counterpart’s position through negotiation.

When you are negotiating, you are always operating with imperfect information. You do not know your counterpart’s primary desires nor do you know where they are flexible. You can do things in your negotiation process to help understand what is necessary to come to a final agreement.

For example: If you are negotiating a work contract, you do not know if there is flexibility on the feature set or the budget. When I am faced with this situation, I generally break down a project into several optional milestones. This is a good practice for a couple of reasons. For the purposes of this discussion, when you break things down according to feature sets or phases, you have a rough idea what your counterpart is looking for and how much money they have to spend.

When negotiating with startup companies, I find they are generally more cost-conscious and will likely trim additional features or extra platform support in favor of a slimmed-down agreement. Other companies, especially larger ones, might be interested in all of the bells and whistles.

The response to a proposed list of optional milestones will tell you whether features or budget is more important to a potential business partner.

Unrelated to features or cost, you might also learn that time is important. If they urgently need to see something, you should make sure that you are getting a premium for making something urgent. If you need to dedicate extra time and energy towards shipping something as quickly as possible, that constitutes risk.

Another important thing to learn when you are negotiating a project is whether or not this is a part of a longer term relationship with additional projects in the pipeline.

When I am forming a new business relationship, I often want to understand the risks they are taking as well as the rewards. I am very happy to assume some level of risk in exchange for some of the reward. I am not afraid to ask for equity, or revenue sharing on the back end, for a project if I believe in the people I am working with or the project they are working on.

I have an hourly rate for cash-and-carry projects. I also have a discounted rate that I propose if there is an advisory role or stock consideration for getting involved. I do not offer this to every potential business partner.

When do you decide to trade off cash-in-hand for equity or revenue share? That is a great question. I will admit I discounted a large number of projects early in my career for upside. About three quarters of them were mistakes. If the only reason you are going to give them a discount on the work for equity is that it is out of their budget, you probably should not do the project. This is a good example of something that you can learn during negotiation.

The things I look for today in an equity-based relationship:

  • They have proven product-market fit. They have some traction and customers use their product.
  • They have strong financial backing. They have already raised some money from a source where they are likely to raise follow-on investment after accomplishing a specific goal.
  • The leadership team has a strong track record. Whether they have managed large projects or brands in the past, or they have an impressive pedigree, I look for the founding team’s experience and how much I believe in their vision and ability to do something amazing.

Once you have established your counterparts’ flexibility on negotiation and you are close to a deal, you might find that there is still a gap between what they are asking and what you can deliver.

I sometimes bridge this gap through IP ownership. I am willing to discount some of the work that I do in exchange for ownership. I am happy to give a discount on a project if I am just sublicensing it, and I can exploit the IP on my own terms. I will give a company a six month or one year window to exercise a purchase on reasonable terms, generally after they have completed a milestone or raised funds to cover the cost of purchasing the final product.

If you are negotiating a project where there is a limited budget, and no willingness to be flexible on any of these points, there is something you can learn here too. You can learn to just say “No thank you” and get on with your life.

I also learned something else in a different kind of negotiation. This happened when I was working at a startup that was struggling to pivot. We were in conversations with investors and wanted to get some feedback on what we should do about controlling costs and headcount.  When you ask them questions like this, you would expect them to say “we support whatever decision you make”. You can phrase your question in a way that will give you some clarity about what to expect from them in the future.

For example, we had to make some cuts to staffing to get to the next milestone. We asked our investors if they wanted us to make two levels of cuts, one now, and one later, or if we should do a bigger cut all at once. We were told very quickly that we should cut to the bone and do the bigger one. This was a really important piece of information.

If we were told that we could stagger cuts and get to the next milestone that would tell you that they have institutional support and willingness to write another check depending on what gets learned.

When you get told to do one big cut and that you should cut to the bone, that is a sign that you are likely not going to get another bridge note from your investor.

It was an educational moment for myself and for the rest of the management team and we planned accordingly.

I have gotten into the habit of being very thoughtful about my negotiating over the years and asking myself “What do I need to learn in order to deliver the best results for everyone?”

I would love to learn what kinds of things you learned from your own negotiations!

Thanks again for reading along. I know it is summer time. I know you have TikTokToes to watch or possibly New-Show-On-Streaming. In order to compete, I implore you to return here so I may emblazon your eyeballs with molten hot blasts of extreme thinkiness! Satisfaction one hundred percent guaranteed!*

*not an actual guarantee

Categories
Monocategorized

My way is the wrong way

So I spent a few weeks talking about things that I learned from my dad that were awesome. I want to take this week to reflect on one thing that I think he could have improved on.

Growing up on the farm, there were two ways to do things: My father’s way, and the wrong way.

We all immensely disliked doing things his way. It should not be a surprise to anyone that I have seen this pattern manifest itself in engineering teams.

One of the challenges with leadership is trying to set the direction for your team and giving them enough freedom to make their own decisions along the way.

The reason you might have a particular idea for how to build out a software system is that you have encountered a similar problem in the past and have built up some patterns that you like to apply.

The challenge is that if you provide too much direction and guidance, then the team building your platform may not go through those same mental transformations and growth, and they might greatly dislike the process along the way.

There is a fine line between giving people enough direction and support to get to the business goal and giving them too much guidance which might smothering the joy out of their work.

There will come a point in your career where you will be confronted with this problem. You will have a software system to build, and you have a particular approach that has worked for you in the past. You will also have several engineers working with you who might not have relevant experience and you will need to coach them to get it built.

The more senior the development team you work with, the better they are at dealing with ambiguity and creating their own systems.

You will also have an engineer or two who, while just not quite ready, believes they understand the issues well enough that they should have considerable freedom on the project.

The most successful leaders can tell the difference between the previous two groups of engineers. They will let their best people build software unimpeded and check in to give them mild directional feedback and some suggestions on changes to make that will be beneficial.

For the latter engineers, who are not quite there, it is important to find a piece of software for them to build that is relatively low risk and give them a chance to deliver a successful finished product. There is a decent likelihood they will miss the mark and that is okay.

Setting up small parts of the project for people to have an opportunity to ship a piece of software will let your team have the freedom to build things the way that they want, and for you to give them some feedback on how to improve it in flight.

It takes a few years to figure out the right balance of testing people’s limits and knowing when you have a member on your team who you can trust to drive a project to completion.

With all due respect to my father, there is often precisely one wrong way to build software: Your way.

Leaders who try to push their ideas or solutions onto a team often fail. The worst of them will appeal to their role or title as a means to get engineers to build things the way they want. “You will do this because I said so and I am the boss” is not written on a fortune cookie for a reason.

The best leaders will show everyone where the goal is, give them some patterns that they have used in the past as examples, and step in to provide minor course corrections along the way.

Will your team ship perfect software? I doubt it. You probably did not either early on in your career.

Will they learn from the experience? Absolutely. And this is the most important thing for you to manage as a leader in a software development organization.

I am reminded of an interesting quote I heard by another engineering leader. “The best software architects create software architects”.

I think that is very true.

There is nothing more satisfying than working with a team of people who grow professionally and are able to build great pieces of software on their own terms.

I take that back. Perhaps the one thing that is more satisfying to me is when I see someone who has mastered their craft and is ready to mentor and coach the next generation of engineering leaders by letting go of the steering wheel and telling someone on their team “here, you drive.”

Thank you for reading along! It is another short post this week. If you find my ideas wrong or disdainful, then here, enjoy some ironic merchandise from The Office. I implore you to buy this clearly promoted fine Amazon product. After all, if you will not profit from my noise-making, then perhaps maybe I should!

See you next week!

Categories
Monocategorized

College stuffs

I had an epiphany on Father’s Day when I was talking with my son about college courses. We were talking about how some of the classes he took were supposed to be easy and they wound up being hard. I recalled having similar conversations about classes when I was still in school. The difference was generally the instructor. Some instructors created an easy classroom experience and some instructors created a hard one.

This is also true of your bosses and managers. Some of them make it easy and some of them make it hard.

This is important because there is a popular truism that “people do not leave jobs, they leave managers”. I do not know who said it, and I do not feel like Googling it.

It is just one more random thing that you learn in college that helps you professionally.

I am not going to get into a giant argument about whether or not you should go to college—it all depends on the person if you ask me. I do know that a lot of employers place significant value on elements of a college degree.

Completing my degree was initially something I was doing to prove to my father that I could finish something important. He was not a big fan of my love of computers and he was critical that I would go anywhere with it. Eventually I started doing well and he had to begrudgingly admit that he was wrong—maybe not in so many words.

My son is in college right now studying computer science. He is also a left handed pitcher and he is playing baseball as long as he is able to. We committed to supporting that as long as we can and asked him to commit to doing his best academically at the same time.

Will all of my other children attend college? I do not know. I have worked with some amazing people who did not attend college. There are valuable things you can learn from a college experience; however, I do not want to push any of my children into it if it does not make sense for their goals. I will provide them with a pretty good list of reasons why it has value for them before they make their decision about it.

Understanding the difference between college instructors and how that translates to differences between managers is yet another interesting thing that you learn while in school that I did not think about consciously before this week.

Having a great instructor for a class will inspire a love of learning for the material in question and possibly even contribute to a higher grade. Similarly, having a great boss will inspire people to do their best work and maybe even propel them forward on a higher career trajectory.

Every time I wanted to have an easy college class it was usually because it was an elective, or I needed a filler credit to get to the number of credits to graduate. Sometimes I was burned by buying into the folklore that a specific class would be easy only to find that I got “that instructor” who, for whatever reason, has ratched the difficulty knob up to eleven.

People who lead and manage are the same way. I have seen people move to different teams at their current employer in order to find a boss with whom they can work similar to the way that college kids will change classes to get different instructors.

If I uncover any other additional interesting life patterns from conversations with my son about college, I will be excited to share them here.

Thank you again for reading. I hope to keep you entertained with my random old people noises throughout the summer. I am now at a point where I have a big backlog of interesting stuff to write. I get nervous when my list of upcoming conversations drops to less than four.

I am continuing to breathe life into my interesting little DM tool over at derfdice and I will give you all updates about that through the summer. If you can spell D&D, please follow me on Twitter. If none of you do, I will be forced to return to shamelessly hawking affiliate merchandise in search of two nickels to rub together in consideration for spraying so many unrelenting letter and number combinations onto your eyeballs.

Until next week!

Categories
Monocategorized

Faster horses

It is a long weekend with Father’s Day and Juneteenth back-to-back.

I spent most of yesterday enjoying sunshine and alcohol and felt a brief moment of regret for not having written anything.

I suppose I must write “not nothing” for the week just for the sake of checking the writer’s box.

So let’s talk about crypto and Henry Ford.

There are a lot of people who are excited about distributed public ledgers and how that technology can be used in the future. There is also a lot of crazy stuff happening in the crypto space in the name of decentralized finance via distributed ledgers.

I say that carefully.

A lot of stuff that sounds like decentralized finance today, isn’t. It is just re-centralized. This is an unfortunate distraction and it will give distributed ledgers a worse hangover than the Apple Newton gave to touch screens and PDAs.

I respect everyone for their strong negative emotional reactions to the crypto marketplace. I truly empathize with you for your losses if you have them.

For the people who do not see the use for distributed ledgers, I am happy to give you three to five good examples of useful distributed ledgers if you ask me for them directly. I am old enough not to be interested in a general public dismissal of my excited-for-the-future opinions.

Furthermore, if you are in the Venn diagram circle described above, just remember we are on the verge of cars that drive themselves. When cars were first invented Henry Ford made an eloquent statement:

“If I would have asked people what they wanted, they would have said faster horses.”

So when you poo-poo my statements you should understand that in my head I am hearing the sound of a horse galloping away after someone mashed the “Playback 1.5x” button.

See you next week at our regularly scheduled time!

Categories
Monocategorized

Sunshine!

One of the more frustrating challenges you will encounter in your leadership journey is when someone on your team does not like you. It happens more often than you think and it is also difficult to address.

Our family adopted a girl from Korea many years ago and in the course of that personal journey I learned about something called “Sunshine Policy”. You can Google the subject—it makes for good reading. I realized a few years afterwards that this is a great term to describe how to deal with people on the team who do not like you.

When I am faced with someone who dislikes me on a team, I find it best to adopt the approach of “encouraging courteous interaction and providing friendly assistance”.

It is very hard to develop this habit, especially if you can tell that the other person does not like you. It is also important. Both of you were hired to build things and solve problems, not to pick each other first for games at recess. You might counter-argue that you will solve problems better together if you like each other—and I completely agree with that. The challenge is how to take a relationship that started as a negative and turn it into one that is positive.

So how do you change that? Very carefully. You will need to choose your words wisely in conversation and figure out how to give them as much support and positive feedback as possible.

One of the things I find myself doing quite a bit is getting together with the individual in question and expressing curiosity in how they see things. I will often share my own point of view in the process and then when we find out what is different, I make a point of appreciating the difference in our point of view and thanking them for their time.

I have found this to be a powerful tool to reduce team dysfunction.

It is easy to find it distasteful or frustrating to interact with someone who doesn’t like you. It is important to overcome this for the good of the team.

I invest extra time on check-ins with them, and making sure they have everything they need to be successful.

Is it possible that this could seem insincere or make a bad problem worse? It is absolutely possible. The challenge is to build up the tool chest with non-negative interactions and to understand what is too much and what is not enough when it comes to creating a functional professional relationship.

I was expecting this to be a lot longer today but I think that is pretty much the story-of-the-day in totality.

I guess it was best said in a popular movie from my youth:

“Be Excellent To Each Other.”

If you have trouble remembering that then perhaps you can slide some nickels my way by Purchasing This Clearly-Promoted-By-An-Amazon-Affiliate-T-Shirt-From-The-Movie.

If that does not feel like a worthwhile investment of your hard earned moneys then tweet this or snip-snap it or something.

See you next week esteemed readers!

Categories
Monocategorized

Presales

Someday I really want to write a book called “stuff no one will teach you”. The problem is that technically I want to teach you these things and suddenly the title becomes an oxymoron. This is the kind of thinking that keeps me up at night.

In the late nineties I worked as a presales engineer in an enterprise sales organization. It was a very different experience from building products and I learned a great deal in that role.

Decades later I find myself applying some of the lessons I have learned and passing on those learnings to people I work with.

Let’s talk about one of those lessons today!

A previous employer had a process for new software development where the lead engineer would write up a technical design document and present it for review in a meeting with engineering leadership.

These reviews were often savage and the outcomes were a mix of “go do it over” and anxiety.

I watched a few of these happen with the same curiosity and horror one might have driving by a road accident. I decided to see what I could do to help make this experience smoother since one of my engineering leads was about to go through the process.

I asked one of the senior engineering leadership why these meetings were so brutal. He smirked and told me that quite often these meetings were usually the first time that people presented ideas to him, and quite often they were missing some key considerations for a popular game at scale. The feedback given was sincere and in earnest—it was just horrifying to the person writing the document because they did not consider very important things that were necessary.

I was a little surprised. I decided to confirm my suspicions and speak to the engineering lead who was about to make his presentation.

Sure enough, he had not shared the document in advance for feedback.

These review meetings were not a place for someone to get feedback that required substantial redesign. They were supposed to be a place where maybe one or two small tweaks were needed to get the design as good as it can be before starting development.

Because this is the first time that some of the senior leadership were seeing the designs in question, quite often there was something significantly missing or an assumption that was fundamentally wrong.

I encouraged the engineering lead to set up a thirty minute meeting to go over the design in advance.

The leadership review afterwards went smoothly.

One of the things that engineering leaders need to learn on their voyage is that you should not be afraid of asking for help or guidance. I encouraged the engineering leaders I was managing to be sure to get advice and guidance before putting their software designs up for review.

Maybe the time I spent working on a sales team helped me to understand the value of getting your work cross-checked. We would always have presales meetings and do dry runs of our pitches and presentations. Even now, I spend time sending materials over to my peers, and similarly review their presentations before sending them off.

I have always found that I have been rewarded by doing some additional work to make sure that projects and presentations have had extra eyes on it.

Most organizations have a formal review process and it is always a good idea to make sure that people who make yes/no decisions on your projects have as much opportunity to achieve understanding as well as put any concerns on the table privately. If you can get some good feedback from them on things to add or adjust, that is also a benefit to the overall product, and I think people enjoy hearing you thanking them for the ideas when it is finally time to get the project approved.

Do not be afraid to put some extra work in before presenting a new project for approval at work. The more time you spend outside of that meeting making sure that all of the stakeholders have an understanding and a window to give you feedback and suggestions, the less time you will need in a large room filled with stakeholders making adjustments and addressing issues.

It makes your project look better and it respects the larger group’s time.

This does not just have to apply to project work. When I am sending emails around crucial conversations at work, I also reach out to people to get feedback.

You should give this a try at work. Collaborating with decision makers and making sure you have great shared understanding with them will only help you in the long run.

Thanks for reading along! I look forward to telling you more stories next week and seeing if there is something with which I can entice a profit-making click from you with my Amazon Affiliate account. Every two or three months they send me a reminder that I have made zero nickels and that the pending balance will carry forward. Clearly a case of “tell me I am a bad affiliate marketer without telling me I am a bad affiliate marketer”. I accept it as honest feedback even if it is attempting to gaslight me into selling more.

Categories
Monocategorized

Farmer Talk

I apologize for my unexpected and unannounced absence last week. We took the kids on a trip and I do not like to advertise that I am going to be out of my house for many days before the fact. Because the looters. The media tells us these are difficult times.

So I am back home now, minus fifty percent of my celery plants due to a surprise heat wave. A shout out to the pumpkin plants that sustained nearly zero damage in our absence. Based on how well the pumpkin plants did without water during extreme heat, I am going to remind people during challenging times to imagine themselves as a pumpkin plant. I will nod knowingly after sharing this wisdom. Actually that is not true. I will sigh patiently and explain the difference between the celery plants and pumpkin plants given what I have learned in my haphazard home gardening experiments.

I am going to slightly change the subject now.

Today I am going to talk about next year. More specifically what my father told me about next year.

I wrote previously about stuff my father told me, and it was an absolute hit. It did not net me many nickels of shameless Amazon affiliate merchandise, but it resonated. In a sense I have become my father because almost all I do now is make new and interesting mistakes and then lament about them to anyone and everyone who will listen. In the not-so-distant future I will prepend these stories with “you know what is wrong with the young people today?”. Then the circle will be complete.

I digress.

My father was a farmer and he loved it. I loved farming a lot less than he did. I ran away screaming from farming at the first opportunity. It is why my life now involves so much computers and so little frozen manure and unchopped firewood. I will let your imagination fill in the details.

The one thing I will always remember about my father and farming is fall time harvest. At the end of the year, when the grain is all bagged up and the bales of hay are all neatly lined up on the field, I would walk around with my farm-loving father who would survey the harvest output. He would go through some mental internal post mortem and at its conclusion he would nod slowly and make a profound declaration.

“Next year will be better.”

After hearing him say this a few times, I did my own mental inventory of the year’s produce.

He would say this in good years and he would say this in bad years. At an early age, when the years were good, I was admittedly confused. My advanced math skills told me that this declaration made some sense during the bad years and that it made less sense during the good years.

I never challenged him on his declaration during the good years—I was too busy plotting my great escape from a life of chopping firewood and extricating frozen manure from one location simply to move it to another.

It was not until decades later that I realized that he never actually considered the year’s output in his declaration.

He was performing a ritual to help him prepare for the coming year.

Farming is a lot like running a startup. You have unexpected natural disasters, supply chain issues, and a host of other unfortunate surprises. Whether it is market economics or fields being flooded, bad things happen at an incredible rate in both worlds.

I remember the first time I had to shut a company down. I gave a thoughtful presentation at GDC if you are interested in hearing more about it. Disclaimer: I get zero nickels from GDC clicks—you can watch it free of concern that I am exploiting your thirsty eyeballs for the moneys.

After we went through the process of shutting everything down, I remember a moment where I was alone at home and feeling a sense of quiet deja-vu. It was like I was suddenly a teenager again, standing in a field staring at rows of neatly lined hay bales. I could almost feel my father standing beside me as if this was some kind of sappy Kevin Costner Turner Classic movie.

I do not know what possessed me to do so, but I nodded slowly and found myself repeating my father’s mantra.

“Next year will be better.”

I find that I have adopted my father’s farmer mindset now that I am in charge of all my decisions.

It does not matter if it is a good year.

It does not matter if it is a bad year.

I always tell myself that next year will be better.

This is such a super serious subject for me that I don’t know how to follow that up with a smarmy request for “blah-blah socials” or “something-something buy this”.

I will see you again next week.