The Fault In Our Loyalties

Photo by Thomas Evans on Unsplash

Having the wrong “first team” may be driving intergroup conflict throughout your company

Regardless of your position in a company, you’re probably a part of multiple teams. You have an immediate team — the people you work with every day. There’s another team made up of everybody in your department, and you might also be on a team with peers from other departments. And within those teams, there might be even more virtual teams that you belong to.

The point is, you’ve got a lot of teams beyond the one you’re assigned to on the org chart.

But, all those teams have a common goal. They all want the company to grow and succeed and be an awesome place to work. If everybody and every team wants the same thing, what’s the problem? Why do you need to know your “first team” and prioritize your allegiance?

The plan is nothing, strategery is everything

For most of my life, commitment & accountability have gone hand-in-hand as the formula for success. Set a goal, commit, and get it done. So, as I’ve landed in leadership roles, it’s something I’ve emphasized a lot with my teams.

That’s not bad, per se, but I was encouraging commitment at the wrong level. I wanted team members to commit to completing an assignment within a certain timeframe, then hold themselves accountable to get it done. However, that sort of commitment has proven to be too low-level and individual-focused.

You can’t emphasize execution without buy-in on strategy.

What I’ve come to realize is that commitment is much more effective when used to obtain buy-in from the team on a particular strategy. In other words, it’s really powerful when the team can agree, “We’re going to accomplish X by doing A, B, & C,” and commit to the approach. You can’t emphasize execution without buy-in on strategy. I’d been looking for people to commit to A, B, & C without understanding or agreement on what we were trying to accomplish.

I was doing everything I could to make execution of assignments go as smoothly as possibly — and being marginally successful — but it wasn’t until I read The Five Dysfunctions of a Team by Patrick Lencioni that I came to see I was prioritizing my teams incorrectly and creating unnecessary turbulence as a result.

In the book, members of a fictional executive team learn to prioritize shared objectives above the goals of their individual departments so the company can succeed. They prioritize themselves as a team and align on strategy. Departments begin working together to achieve common goals rather than competing for resources, and they experience success as an organization rather than as disconnected teams. It’s beautiful.

Overarching goal, all the way across the sky

Every team will have an opinion on what’s most important and how to achieve success. The sales team will tell you sales are the key: “Great product doesn’t mean anything if nobody buys it, and revenue is our lifeblood.” The product team notes, however, that this is why investing in the product is so crucial. “If you have a superior product, selling is easier!” Finance might say sales and product mean nothing if you spend irresponsibly and manage money poorly.

The thing is, each of these teams is right. Their perspectives are valid and true. What’s most essential, though, is to have an overarching goal— an objective that all the teams can get behind and rally around. Something to unite the clans.

“If everything is important, then nothing is.”

An overarching goal is important because, as CEO Kathryn notes in The Five Dysfunctions of a Team, “If everything is important, then nothing is.” The goals of individual teams are certainly important, but the leadership of those teams needs to commit to a greater objective. Without agreement at the top, conflict will trickle down through the ranks and become more severe at it seeps deeper in the company.

The whole is greater than some of its parts. Or whatever.

In order for the company to be truly successful, all teams need to achieve some level of success. No single team can carry all the others, but one failing hard enough could lead to disaster. It doesn’t matter if your team hits its numbers if everything else burns to ash.

I’m a competitive person. I want my team to be the best and most successful. It’s easy to look at peer teams and think, “Not my problem. We’re doing our part.” There’s even a certain amount of pride in that, right? To know that you’re winning by out-pacing the others? But I also know that my team’s only part of the puzzle, and our performance won’t mean as much without the other teams succeeding.

For the company to succeed, all teams need to work together to maximize strengths, mitigate weaknesses, and understand how they’re doing collectively so they can adapt and win. This is where the concept of your first team becomes so important. You shouldn’t just listen to your peers explain what’s happening on their respective teams. You should be invested in it. You should be on the same page about what you’re trying to accomplish together— the overarching goal — and be willing to adapt as a group in order meet your objective, because that will make the company successful.

The concentric safety dance

One of key themes in Simon Sinek’s book Leaders Eat Last is the importance of the circle of safety. The idea is that when a group trusts each other and doesn’t need to worry about internal threats, it can focus all of its energy externally which allows the group to succeed.

Imagine an organization where all the leaders are in the middle of circles that represent their departments, divisions, or teams of direct reports. The individual teams are united and working together well, but they’re treating other teams within the organization as external threats. That makes for a tremendous amount of energy wasted on intergroup conflict.

Now let’s adjust the picture so that the leadership team forms their own circle of safety in the middle. When this group trusts itself and has a shared vision, its energy can all be focused outward to the next layer of team. When all teams are being directed toward common objectives, they can also learn to trust each other eventually form their own greater circle of safety.

Image for post
Source: author

Come down from the mountain

Deciding that you’re more committed to one team than another doesn’t mean the other team is unimportant or somehow less valuable. Those other teams, especially the one made of your direct reports or day-to-day peers, are extremely important. It’s critical to invest heavily in those teams and relationships, but prioritizing your allegiance will improve the efficiency of all your teams immensely.

Google research has shown that psychological safety is the number one most important factor for effective teams. When leadership agrees on an overarching goal and strategy for achieving it, it leads to commitment. Commitment within leadership translates to clearer messages around what needs to be accomplished by their teams — the commitment travels down and across the organization. Cross-team alignment means less conflict and less internal threat, which in turn allows teams to focus more of their energy outward and toward achieving the common goals. A tidal wave of commitment can wash over the entire organization.

It starts with leaders prioritizing themselves as a team and putting the interests of the company ahead of those of their specific departments.

Ask yourself, who is your first team? What’s the overarching goal that the team is trying to achieve, and what’s the strategy for achieving it? How is the team progressing, and how can it use its collective resources to adapt?

Work together as a leadership team. Set an overarching goal, commit to a strategy, and hold each other accountable to execute your parts. With clarity and commitment, all teams can contribute and support each other in helping the company achieve its goals, and the company will grow, succeed, and be an awesome place to work.


Want to learn more? Check out these books! Note that I use affiliate links when linking to products on Amazon.


This article was originally published in ILLUMINATION on December 23, 2020.

Conference Call Less, Smile More

How to keep engaged with your team when you can’t stomach another #$@!ing conference call

Image for post
Photo by Siavash Ghanbari on Unsplash

It’s 2021. The offices are closed, and you’re working from home. It’s 8:59 am, and in 1 minute, your next day of conference calls begins. And you just don’t want to do it. <expletive>.

It’s okay. We’ve all been there, so much so that the idea of “no meeting days/weeks” is gaining in popularity. If you can get your team and boss to buy-in, that’s probably the best way to give everyone a much-needed break. That’s not always an option, though, and even if it is, it’s something that needs to be scheduled and coordinated with the team. What if you need relief today?

The bad news is that you can’t ditch your team entirely; you need them, and they need you. However, take it from me — a grizzled work-from-home vet — there are ways to isolate yourself and fight call fatigue without completely ghosting your coworkers.

That last point’s worth repeating: don’t just disappear. When you go dark, your boss and teammates start to question your contributions and effort, and the more you do it, the worse it gets. Before you know it, you’re on the downward spiral of broken trust and poor performance. It’s much better to wrestle this beast out in the open, where everybody can see, and leave no question about your commitment and dedication — but, just, for the love of god, not on a video call.

Know thy tools

The first thing you need to do is assess what’s available in your toolkit. How does your team communicate? Most teams have a few different ways. Mine, for example, uses Slack and Teams in addition to everyone’s good friend, email.

In addition to those pure communication tools, you’ve probably got some collaborative tools, too, like Jira or SharePoint or Miro or Asana. You know, the apps you use to actually get things done? Yea, those. The reason these apps are so popular is because they make sharing & collaboration easy.

Here’s the secret with these tools, though. If you’re going to use them in lieu of actually talking to the people you work with, you need to use ‘em, like, extra. Catching up on email? Post a message. Writing a report? Share it. Taking a bathroom break? Okay, keep that one to yourself… But, updating those revenue projections? Shout it out! It doesn’t need to be every 5 minutes, but it should be enough so that there’s no question about whether or not you’re there or what you’re working on.

Maintaining this level of visibility isn’t just so people know you’re working — it also lets the team know you’re available for them. That’s half of what makes all these calls and meetings necessary. You know things! And people need to suck those things that you know out of your brain in order to do their jobs. You might be loving life and having the most productive solo day you’ve ever had, but if three people are stuck on a call trying to figure out what they know you know because they think you’re unavailable, it’s not going to reflect well on you.

Honor your commitments

We were on a break.

— Ross Geller

Just because you’re on a break doesn’t mean you get to do whatever you want. Making all that noise about the things you’re doing won’t mean much to your team if you don’t deliver. You’re exhausted. You don’t want to talk. That’s okay, but it’s going to take a little extra work on your part to get the same results.

A critical part of honoring commitments is having some commitments. This goes hand-in-hand with my previous point of over-communicating and keeping visibility high, but it requires a little planning and forethought. Lay out the next few things you plan on doing so the team can coordinate and avoid duplicate effort.

Don’t be afraid to be a little ambitious with your goals, too. You’re on a team that’s trying to accomplish important things. Don’t phone it in while you’re… not phoning in — sign up for something meaningful.

With a few commitments in hand, it’s time to demonstrate your worth. I’ve got no problem with anybody on my team working whatever hours they want when they get their work done — so get your work done. And you better double and triple check it, too, because you lose some some quality safety nets when you fly solo. The goal is to make sure nobody has anything to complain about, so you need to make sure you catch the problems that would’ve been caught by doing the same work collaboratively with the folks you don’t want to talk to.

The key word here is “dependability.” You want the team to know that when you take an assignment into your bunker, they don’t need to worry. They can check it off the list. They’ve called in the closer, and you’ll find a way to get it done.

End of day wrap-up

Before you sign off for the day, send a status update to the team. You’ve been keeping your visibility high, so everybody knows what you’ve been up to, and you’ve put a little extra elbow grease on your deliverables to make sure quality is top-notch. Now it’s time to wrap-up all that ass you’ve kicked with a big, beautiful bow on top.

The end-of-day update is important and valuable for several reasons. The team knows you’ve been active but stating what you’ve completed shows them that you actually achieved things, too. It’s a chance for you to punctuate your effort and commitment. Those meaningful things you signed up for earlier? Yea, they’re done.

The status update sends the message that you worked hard to accomplish things for the team. It took you a little longer, but you got it done — and then you cared enough to summarize the journey. This is a great chance to showcase some leadership skills and sense of urgency, too. What needs to happen next? Who’s responsible? Make some callouts to help ensure that none of the momentum you’ve created will be lost.

Conclusion

Being on conference calls all day, every day is just plain exhausting. We all need a break, but the collaboration that pushes us to keep having them is important and valuable — it can’t be ignored. The answer to call fatigue is not less communication but different communication.

These “tips” are great advice for anybody that wants to be more effective, whether you’re dodging your co-workers in meetings and conference calls or not. Similarly, if you don’t do these things, it will ruin your team. People won’t trust you to complete your work. They won’t try to collaborate because it’s easier not to. They’ll resent you for not pulling your weight.

The stakes are a little higher when you’re working asynchronously, though, because you’re not “in the room” to defend yourself against misperception. You can’t explain why something took 3x longer than everyone thought it would or that you didn’t get to one thing because another, more important task cropped up.

None of this is hard, though; it just requires thoughtfulness and awareness. Communication and collaboration. Visibility and transparency. You can follow the same basic formula that’s often prescribed for presentations and writing: say what you’re going to do, do it, then say what you did. This keeps you highly-visible and transparent while also being present and available for the team. Commitment and accountability ensure that you produce results, and the end-of-day report is the cherry on top, helping everyone to build on your success.


This article was originally published in ILLUMINATION on November 25, 2020.

10 Behaviors to Make Your Team Great

Is your team greater than the sum of its parts?

Image for post
Photo by Michael Ankes on Unsplash

My team was in a bit of a rut. There was no trust and poor communication. People weren’t collaborating, and there was no transparency into anyone’s days. Updates in our daily standup meetings were vague and non-committal. Morale was low. Things just weren’t getting done.

I knew it wasn’t a people problem. I’d been with most of the team for years, and everybody was smart and talented. No — this was definitely a behaviors problem.

But, while I could feel the problems, I didn’t know how to articulate them. Before I could address the issues, I needed a better understanding of what they were, and I needed to establish a vocabulary with the team to facilitate a discussion. Only then, with awareness and buy-in, could we begin to implement change to improve our effectiveness.

Good Behaviors, Bad Behaviors

I was discussing the team’s underperformance and collaboration problems with a colleague, and they joking-not-jokingly proposed doing a Five Dysfunctions of a Team exercise. (Disclosure: as an Amazon Associate I earn from qualifying purchases.)

Image for post
The Five Dysfunctions of a Team: A Leadership Fable

It had been a while since the five dysfunctions had been front of mind, and I had to look them up for a refresher. “Let’s see what we’ve got here,” I thought as I clicked through some search results.

  1. Absence of trust — check.
  2. Fear of conflict — yup.
  3. Lack of commitment — oh yea.
  4. Avoidance of accountability — definitely.
  5. Inattention to results — mhmm.

Wow. We had ’em all. People on the team didn’t trust each other to complete assignments. Rather than confront the lack of trust, they preferred to work alone on whatever they felt was most important. Updates in standups would be, “I worked on some things and will figure out what’s next,” and people would leave for a coffee and disappear for the rest of the afternoon. Meanwhile, user stories would drag on for days and weeks with no sense of urgency. Yikes!

The five dysfunctions also reminded me of Project Aristotle. This Google Research project attempts to answer the question, “What makes a team great?” One of their key findings was that effectiveness depended more on how the team worked together than who was on the team. In other words, team dynamics and behaviors matter more than people and individual performance.

…what really mattered was less about who is on the team, and more about how the team worked together

Google’s “five effectiveness pillars” go with the five dysfunctions like peanut butter goes with jelly, combining to create a gooey smattering of team efficiency — and they gave me exactly what I was missing most: a vocabulary for talking about the areas we needed to improve and ways to communicate the importance & impact.

The Actions in Action

Image for post
Photo by Trym Nilsen on Unsplash

I had the concepts. Now I needed to deliver the message. I decided to put together two hypothetical situations based on our very real problems to illustrate the impact of these behavioral patterns & anti-patterns.

Example One. In standup, a dev says, “I’m going to work on implementing the Thingamabob. I’m going to try to complete tasks A, B, & C today, then we can test and close it out tomorrow.” In the afternoon, they say, “Something came up and I need to leave for a few hours, but I’ll be back to finish up. I completed task A and am almost done with B.” They come back later when everyone else is offline, complete task B, and leave a note before signing off: “Completing task B took longer than expected, but I got it done. I wasn’t able to get to task C. I’ll pick it up first thing in the morning.”

Example Two. In standup, a dev says, “Not sure what I’m doing today. I might start working on implementing the Thingamabob.” They start working on the story to implement the Thingamabob and complete task A plus part of task B. They need to leave for a few hours, but they don’t say anything. They come back later when everyone else is offline and complete task B.

In both examples, the person might’ve been equally productive, written brilliant code, and completed the same tasks. In both cases, the person had to leave for several hours, and in both cases they didn’t complete the (stated or unstated) goal of finishing task C.

However, the first example demonstrates all of Google’s dynamics of great teams.

  • Psychological safety. The dev wasn’t afraid to share status or go away because of other responsibilities; they felt safe to let the team know they didn’t complete their stated goal.
  • Dependability: The developer made commitments in standup and was transparent about progress and effort.
  • Structure and clarity: They communicated status so the team had awareness, which allows the team to adjust its actions and priorities. (For example, this could allow someone else to jump in on completing task B while the developer was away, and upon returning they could complete task C versus only completing task B.)
  • Meaning: The developer appreciates having a job that allows them the flexibility to take care of other responsibilities during the day.
  • Impact: Ensuring progress and helping the team achieve its goals feels good.

Conversely, the second example exhibits symptoms of all five dysfunctions.

  • Absence of trust: Low visibility and poor communication lead the team to wonder what the developer is working on.
  • Fear of conflict: Sporadic availability makes it hard to collaborate; team members become exasperated and prefer to work alone.
  • Lack of commitment: The developer was non-committal in standup, and the team has no expectations or ability to coordinate.
  • Avoidance of accountability: No commitments and poor visibility & availability; the dev does nothing to demonstrate their effort.
  • Inattention to results: Individual behavior prevents the team from achieving its goals.

All this is to say that, in order to be an effective team, individuals must focus on their behavior and interactions with teammates more than just being productive themselves.

Staging the Intervention

Image for post
Photo by Todd Quackenbush on Unsplash

Okay, I had my ideas to share, and I had my plan of how I wanted to roll my message out to the team — it was time to put the wheels into motion.

The first thing I did was to send an email using the examples above. My messaging (paraphrasing) was, “Hey, team — I’ve been thinking that we haven’t been as productive lately as we’ve been in the past. I think we’re exhibiting some of the Five Dysfunctions of a Team, and we’ve lost some of Google’s pillars of effectiveness that we had previously. Consider these examples.” I also shared my analysis about how the examples were illustrative of the five dysfunctions and effectiveness pillars.

I didn’t really get feedback on the email, but there was a mention here & there in standups and retrospectives. I feel like the email did a fine job of planting the seed and helping to establish a vocabulary for the conversation. Mission accomplished there, I’d say.

Step two was to solicit feedback in one-on-ones. I’d ask people what they thought about the email and how they felt about the team in that context. These conversations were helpful because it confirmed my feelings and demonstrated that others were experiencing similar frustrations. This also helped to establish that we were all on the same page and had similar perceptions of our team strengths and weaknesses.

Finally, I decided to bring it up in the team’s sprint retrospective. I was blunt with them. I said, “I don’t think the team is doing enough to demonstrate commitment & accountability.” It took some courage, but I had to trust the team and not fear conflict — to practice what I was about to preach. The groundwork I’d laid proved valuable. People referenced the email I’d sent, and we’d all had miniature versions of the discussion in one-on-ones. It was a really productive conversation and a catalyst for positive change.

Image for post
Photo by Danielle MacInnes on Unsplash

Things didn’t fix themselves overnight, but we began trending positively in just a week or two. People started giving updates like, “My goal for today is …” and leaving messages at the end of the day to highlight what they did and didn’t accomplish.

If your team can buy-in on the importance of these dynamics and be self-reflective & honest, it can lead to some pretty incredible growth — even on a team that’s already high-performing and seemingly happy. Awareness of these dynamics can turn things around on an underperforming team or protect a happy, productive team from growing pains and evolution.

My team isn’t perfect, but we’re getting better every day. The next step was to continue the momentum. We planned a recurring team meeting to focus on these behaviors and team growth to increase introspection and awareness, but the best way to keep improving is by walking the walk. Psychological safety, trust, commitment, accountability, and no fear of conflict allow us to continue having productive conversations and ensure that we stay on track to accomplish great things together.

Resources:


Originally published at The Innovation on November 20, 2020.

Scope Like Goldilocks

How to control scope and navigate the spectrum of engineering excellence versus business needs

Image for post

Photo by Toa Heftiba Şinca from Pexels

There is no single right answer to any non-trivial problem in software engineering. So, if multiple correct solutions exist, how do you decide which is best? It’s difficult to determine which is best because “best” is highly subjective and deeply personal — your opinion is formed from your individual collection of experiences, strengths & weaknesses, and values on related aspects like simplicity, maintainability, & scalability.

It’s these internal values that make all of this so tricky. Imagine a spectrum with engineering excellence at one end and business needs at the other. Both elements are required for a project to be successful, and operating at either extreme can be detrimental to the other. As an example, making too many quick-twitch fixes to address urgent business needs can have significant long-term impact on the quality of the code base or system maintainability; conversely, focusing too deeply on engineering excellence can lead to over-investment in areas or competitive disadvantages from being slow to market.

Image for post

Understanding this spectrum — and having awareness of where you and your colleagues lie on it — can help your team to be more pragmatic.

Awareness of this spectrum alone isn’t going to do you any favors in resolving conflict from perceived disconnects between you and co-workers, though. I’ve found myself in design/requirements stalemates many times, and I’ve used the spectrum as a way to visualize my frustration.

“You see, I live over here on one end of the spectrum,” I’d say, “and my colleague operates here, at the other end. We can’t agree on scope, and we aren’t getting started or making any progress as a result.”

The problem with the visualization as a tool for conflict resolution is those pesky personal values. Neither of us thinks we’re advocating for a solution that would be in the unhealthy extremes of the spectrum. The person in the engineering excellence camp just believes that business value is generated by following all the best engineering principles and creating scalable, high-performing, resilient applications whereas business needs nation wants quick delivery and maximum responsiveness to meet the ever-changing needs of its customers.

So, how do you find compromise when the source of conflict is so visceral?


Let’s see if we can steal a page from the Goldilocks playbook. She’s got a knack for identifying the undesirable ends of a spectrum before settling into a satisfying sweet spot. If you and your team or colleague(s) can’t agree on the scope of a solution, can you agree on what it shouldn’t be?

What’s a reasonable solution that everybody agrees is over-engineered, and what’s the fastest, but perhaps short-sighted, thing you could do? What’s the effort required for each approach, and what are the risks or consequences?

Just to be clear, I’m not suggesting to simply compare different proposals by plotting them on the spectrum— that probably won’t get you anywhere. Instead, work collaboratively to come up with bad solutions that lean too far in both directions. Find agreement by identifying undesirable characteristics of these options in the unhealthy parts of the spectrum.

Still not able to find compromise? It’s probably time to bring in a 3rd party, preferably a stakeholder. Show them your spectrum and explain the tradeoffs that exist at the opposite ends, then present the “real” options that are on the table and allow the stakeholder to decide.

The whole activity is an exercise in pragmatism. How can two parties with equal but conflicting opinions find common ground? The key is to calibrate and remove as much subjectivity as you can. By acknowledging the necessity of both aspects — engineering excellence and needs of the business — and agreeing on the “bounds” of the spectrum, you create a framework for identifying the region for compromise. That’s your sweet spot. That’s likely where your “best” solution should be.


Originally published at The Startup on September 21, 2020.

What RPGs Have Taught Me About Effective Software Development Teams

Image for post
Photo by Jason Leung on Unsplash

I grew up as a computer kid in the 80s and 90s and, consequently, spent a lot of time in video games. Now I manage two software engineering teams, and it’s time to prove to Mom that all those hours spent in Final Fantasy were actually valuable career development.

I’m primarily thinking about two video game genres: party-based RPGs and MMORPGs. The formula for these is pretty simple. You have a cast of characters with various capabilities, and they work together to accomplish amazing things. In order to succeed, you must be aware of your characters’ strengths & weaknesses, understand what skills are required to complete a challenge, and combine characters in a way that allows them to achieve the goal.

Well, that doesn’t sound so different from a software development team, does it? You’ve got a group of people with different abilities and aptitudes; you have a backlog of stories to complete; and the team must collaborate to achieve goals and accomplish amazing things. It’s, like, the same thing!

Given these undeniable parallels, what lessons from RPGs can be applied to software development teams?

It’s Dangerous To Go Alone

When you adventure alone in a video game, bad things don’t happen most of the time — but there’s risk. The same is true in software development, especially if individuals on your team are all working on separate things. The primary risks of soloing a software development project are consistency, quality, and knowledge-sharing.

Image for post
Source

Working alone on projects offers short-term risk due to the fact that quality and completion time are largely dependent on who does the work. Someone who’s very experienced and understands the subject area well will probably get by fine, but a developer with less familiarity will take longer and be more likely to make mistakes that require re-work. Peer code reviews are slower and less effective because reviewers need to context-switch and focus deeply to understand decision-making and what’s been done. Individual stories are completed less efficiently because everyone has their own assignments and agenda, and other people’s work becomes a secondary objective.

Knowledge-sharing and information silos are the long-term threat. It’s easy for people to become specialized as certain types of work gravitate toward them. If an individual is the only one that worked on a specific project, guess who gets tapped when it needs attention later? Future work can also be bottlenecked when the person with all the knowledge isn’t available, and the situation gets worse when that same person is the bottleneck for multiple workstreams or when personnel changes occur.

In the video game world, the risks and consequences of soloing are typically limited to just you. People choose to solo because it’s convenient — they don’t want to wait or look for other players — or because they enjoy the challenge. Sometimes it feels easier to go it alone in software, too. However, software development is a team game, and you’re not typically looking for extra challenge just for the fun of it.

Ensuring you have multiple people working on a project mitigates the risk. One person doesn’t go down a bad path by themselves, and at least two people should know how things work and why decisions were made. Pair or group programming is inherently review-as-you-go which leads to better initial code quality, and that in-turn helps with completing stories efficiently due to less feedback cycles and re-work.

You don’t want everybody acting alone, but it’s equally important to make sure you don’t have too many resources focusing on a task. In other words…

Bring the Right Group

Image for post
Source

Quests in RPGs require a certain set of skills to complete. Easy quests are achievable by smaller, less experienced groups, but hard ones require more people, specific skills, or other special assistance. In games, it may seem more efficient to clear easier, low-level content with powerful, advanced characters, but if the strongest characters are focused on easy things, it means they aren’t working on more challenging, higher-reward objectives.

Software development is an exercise in efficiency. You have a backlog filled with user stories. Some are easy and some are difficult. You want to complete them all, though, and the faster you can do it, the better. The trick is for the team to determine the optimal way to complete as much as it can as possible as quickly as possible.

How would you do that in a game? First, you’d decide which quests are most important and what skills they require. Next, you’d look at which characters are available and what skills they possess. Then you can optimize who can do what. Perhaps one small group could tackle three easy quests while another group works on a single complicated one.

This same strategy can be applied to sprint planning. You’ve got stories in a prioritized backlog and a team of people to complete them. Which people have specific skills or knowledge required to complete the highest-value stories? Assign those folks first. Who’s left, and what’s the best way to utilize them? Make sure everybody is assigned, and balance the groups.

You may find that you don’t have enough people with the right skills to succeed with all the most important things. Luckily, RPGs give us a solution for that, too!

Level-up All You Characters

Image for post
Source

Characters in RPGs progress by completing tasks that reward experience. Once you’ve accumulated enough experience, you level-up and become stronger or gain powerful new abilities. In order to have a well-balanced team, you must use all your characters so they all gain experience. If you have a weaker, low-level character, you can grow them most quickly by leaning on them as heavily as possible in content that’s within their reach. Sometimes that can be painful, if you need to return to a low-level area and perform low-value activities, but the investment pays off with time. Once those characters “catch up” they provide valuable versatility to the team.

On a software team, this means ensuring that everybody’s getting reps with the most important skills. People won’t suddenly gain project management skills by not managing projects. Instead, acknowledge it: “I want you to manage this project so you can develop these skills.” You want someone to be a better decision-maker? Ask them to make decisions. Similarly, just because someone can do a thing in 15 minutes doesn’t mean they should do it simply because it would take someone else 2 hours. Instead, invest that 2 hours. The experience is as valuable as the time saved, and it contributes to both the growth of the individual and the strength of the team.

To be a successful team, there are multiple roles that need to be filled. As employees gain experience, they typically focus on a single role. For example, “I’m a developer, and this is what I do as a developer.” Often times, that’s enough to do a good job, but a great team member understands all the roles within the team and has the ability to recognize and step in when a role isn’t being fulfilled.

How do you develop that level of situational awareness?

Learn the Mechanics

Image for post
Source

Often times, games have encounters with mechanics that need to executed in order to succeed. You can win by knowing enough to go through the motions, but the best players don’t just know what to do — the know why they’re doing it. That also means understanding the consequence for not doing a particular mechanic and being able to adjust on the fly when things start to go sideways.

Software teams have a process designed to help the team succeed or — more pessimistically — prevent it from failing. Individual contributors can be successful by adhering to the rules and following the process. Great teammates will understand the underlying reasons for the process, though, and be able to make decisions around when it’s time to deviate.

Much like in games, a great way to become more familiar with the intricacies of your process is to learn it one role at a time from people who are already proficient. How does your team gather requirements and translate them into actionable work? What’s the best way to do a peer code review? What tests need to be run to verify there are no regressions? With better understanding, you can help improve these processes. Don’t just learn how to do things; learn why to do them.

Image for post
Photo by Jackson Simmer on Unsplash

These lessons from RPGs aren’t necessarily special or specific to software development; they’re just general best practices for teamwork and growth.

Recognize the strengths and weaknesses of individuals on the team, and utilize them in a way that makes sense — just like you wouldn’t have your squishy wizards standing in front of heavily-armored knights in a game.

Use the right number of people based on the task. There are both short and long term risks associated with using too few people but possibility for reduced efficiency & throughput with too many. It’s also important that the group have the right set of skills to accomplish the goal. Don’t poke the dragon alone, don’t bring the entire village to feed the horses, and don’t send a small group of adventurers into the dark cave without a torch.

Build your team by ensuring that people have the opportunity to grow. Acknowledge that having somebody less skilled perform a task pays dividends as they gain competency. If you don’t give people the chance to improve, they won’t. Having more people at level cap lets you tackle a wider array of challenges or accomplish more things at once.

Invest in helping team members understand the big pictures. What’s the greater purpose behind your team? Why do your processes exist? Encourage people to learn new roles and step outside the bounds of their specific job. The increased awareness and versatility differentiates good teammates from great ones. In an epic RPG boss fight, you can still win if somebody knows how to kite when the tank dies.

Know the team, grow the team. Use the right skills to get the kills, and collect that sweet, sweet loot.

Image for post
Source

Originally published at https://adamprescott.medium.com on October 5, 2020.

Family Board Game Round-Up!

Photo by National Cancer Institute on Unsplash

With reduced options for things to do this summer, my family ended up buying and trying a lot of board games. Here’s a list of games that I enjoyed playing with my 5 year old son and 7 year old daughter. These all make great gifts or just a something-to-do on those long pandemic nights.

As an Amazon Associate I earn from qualifying purchases.

  1. Zombie Kidz Evolution
  2. Catan Junior
  3. Outfoxed!
  4. Ticket to Ride: First Journey
  5. Ghost Fightin’ Treasure Hunters

Honorable mentions: Uno & Skip-Bo (bundle)

Zombie Kidz Evolution

Zombie Kidz Evolution

What kids like: My kids loved picking which character they will be, and using the characters’ special powers to kill zombies. They looked forward to opening the secret envelopes that cause the game to “evolve” over time.

What parents like: I like that there’s a lot of strategy to the game. It’s not just rolling dice or drawing cards and seeing what happens. Co-op is great, too, because kids work together rather that getting upset about competing.

Catan Junior

Catan Junior

What kids like: For my kids, this game is all about the Coco (parrot) cards. Being able to spend resources on almost every turn kept them engaged. Even though they were competing with each other, there isn’t a lot of doing bad things to each other — so play stays amicable.

What parents like: There are different strategies you can use to win the game. Counting and resource management seemed to provide some educational value, which was a nice unintended side-effect. I loved seeing my daughter take on the role of “banker” and doling out resources with each player’s turn.

Outfoxed!

Outfoxed!

What kids like: All the dice-rolling makes this game feel more active and engaging despite being so simple and straightforward. Kids love using the clue finder to find out details about the suspect and solve the mystery.

What parents like: This is an ultra lightweight version of Clue. It’s very easy to play, and it’s cooperative — so less fighting! Despite being really easy, my daughter still really liked playing. This is perfect for kids who are just getting started with games, but I’m not sure it would hold the interest of older kids.

Ticket to Ride: First Journey

Ticket to Ride: First Journey

What kids like: My son loves trains so for him, that’s most of the appeal. Both kids love collecting cards and using them to put trains on the board. They especially loved getting the “golden ticket” for winning at the end, which doesn’t make sense to me since the game is over and you just put it back in the box. But, hey — I’m not a kid.

What parents like: This kid version is very similar to the regular version, it’s just simplified and has less points for contention. Similar to other games on the list, I like that you can think and make choices versus just blindly following mechanics to see what happens. (Looking at you, Candy Land.)

Ghost Fightin’ Treasure Hunters

Ghost Fightin’ Treasure Hunters

What kids like: The game pieces are really cool, and it’s fun for them to put the pieces out on the board and have something to interact with. The kids loved being able to put the treasure jewels in their characters’ backpacks while they tried to escape.

What parents like: This is a fun game for 3 or 4 players, but I don’t like it for just 2. I also don’t like how much shuffling is required with the small deck of cards. But, those things aside, it’s a cooperative kid-friendly game that’s a bit more challenging than the others on the list.

Uno & Skip-Bo

Uno & Skip-Bo bundle

Throughout all the board games coming and going, these classic card games saw the most play. My son’s a little young to play on his own, but my daughter was very into them and very competitive with them. You can’t go wrong with these — not joking when they say fun for all ages!

Gift Ideas for Folks Like Me

Image for post
Photo by Kira auf der Heide on Unsplash

Oh, what a year it’s been! The pandemic. The wildfires and hurricanes. The election. Now we’re heading into gift-giving season, and who knows what to get for their spouse or partner who they’ve spent every waking minute of the past 250 days with?

Working from home is kind of a new world for a lot of people, and most of us have at least a few months more of it ahead of us. I’ve been full-remote for a number of years, and I thought I’d share a few of my favorite difference-makers to give you some ideas.

As an Amazon Associate I earn from qualifying purchases.

SteelSeries Arctis Pro Wireless Headset

Image for post
SteelSeries Arctis Pro Wireless Headset

First on my list is the Arctic Pro Wireless headset from SteelSeries. They’re expensive, but I decided it’s worth it since I spend most of my days and many of my evenings in them. Prior to these, I’d had connection problems with wireless headsets — even expensive ones. I love the freedom of being able to walk around while on a call or make a quick run to the kitchen, though, so I gave these a shot, and I haven’t had any problems at all. Sound quality is great, but my favorite feature is the hot-swappable battery. The USB receiver base acts as a charger with an extra battery. So, if the headset battery dies, you do a quick swap and you’re back in business, lickety-split. The battery usually lasts all day, too, so the only time it dies is when I forget to swap it.

They’re comfortable and versatile. I love that they work via USB, stereo cable, or Bluetooth. This makes them really great for travel (remember what travel was?) because you can plug-in for the airline’s inflight movie or use Bluetooth to watch shows or listen to music on your phone or tablet. The noise-canceling is great, too. My wife often complains about how I can’t hear her and the kids.

For a more affordable option, check out the wired Arctis Pro. They give the same comfort and sound quality for half the price!

Yeti cups

Image for post
YETI Rambler 20 oz Tumbler, Stainless Steel, Vacuum Insulated with MagSlider Lid

My parents got me a Yeti Rambler as a gift a few years ago. I admit, I wasn’t particularly enthusiastic about receiving it, but I became a huge fan after using it. It keeps your coffee hot for so long!

Since then, I’ve picked up a few more. I love the feel of the colored ones more than the stainless steel, but it’s mostly an aesthetic choice. They also make wine tumblers, which I picked up because I was tired of hand-washing wine glasses.

iOttie Wireless Charger Phone Mount

Image for post
iOttie Wireless Car Charger Auto Sense Qi Charging Automatic Clamping Dashboard Phone Mount

I needed a new phone mount for my car, and I loved the idea of charging automatically any time I put the phone in the cradle. Part of the problem, though, is that I didn’t have a phone with wireless charging. Turns out, that’s not a problem. After a bit of research, I bought a Qi Wireless Charger Receiver for my Pixel 2 XL. It’s very discrete and works through my phone case, which was a major concern for me when purchasing.

For the phone mount, I got the iOttie Wireless Charger. It’s really cool. It’s motorized and uses sensors to open automatically when you hold your phone near. Now, when I get in the car, I put my phone in the cradle and — boom — it’s charging. I also picked up this Anker Wireless Charger for wireless charging at my desk.

Standing desk

Image for post
SHW Electric Memory Preset Height Adjustable Computer Desk, 48 x 24 Inches

Speaking of desks, how about a standing desk? I’ve wanted one for a while, but they’re expensive! I found this sub-$300 one on Amazon and have been absolutely thrilled with it. It has motorized controls and memory settings to quick-adjust between heights. It’s sturdy, too. It’s everything I would’ve wanted and expected from a more expensive model for less than half the cost!

The Phoenix Project book

Image for post
The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win

The Phoenix Project is an IT novel that resonated with me and all of my co-workers. It’s a great, quick read that’s both entertaining and valuable in terms of education and professional growth. Highly recommended for any IT professional–even ones that don’t read a lot of books.

Roost Laptop Stand

Image for post
Roost Laptop Stand

I’ve been using an old toolbox as a makeshift laptop stand for longer than I’d care to admit. Following the recommendation of some co-workers, I picked up a Roost Laptop Stand this summer, and it’s wonderful. It puts my laptop at exactly the right height to work well along side my other monitors while also making my desk feel less cluttered and more organized. When you’re on the go, it collapses to be quite small — so you can chuck it in your laptop bag or backpack.

The construction is sturdy and feels durable. This was why I chose the Roost stand over other cheaper options. I’m glad I took the chance with this stand; it’s a great addition to my setup.

Zombie Kidz Evolution

Image for post
Zombie Kidz Evolution

Since we’ve had less away-from-home options for entertainment, my family has tried a slew of board games this year. If you’ve got kids, Zombie Kidz Evolution is a slam-dunk. It’s simple and quick, and it’s the children’s game I enjoy playing the most. I love the achievement and progression systems built in, and the envelopes that “unlock” new features kept the kids interested and engaged for weeks.

All-Clad Waffle Maker

Image for post
All-Clad 2100046968 99010GT Stainless Steel Belgian Waffle Maker

And finally, we have a waffle iron. I lived two decades with a $10 Belgian waffle maker before it died. After taking almost a year off from waffles, I decided to go all-in on this All-Clad Stainless Steel 4-Square Waffle Maker. It boasts a hefty price tag, but let me tell you — it’s worth it.

This thing is awesome. It makes big, crispy waffles with amazing consistency. It beeps at you when they’re ready, and it makes four at a time. Starting from scratch, I can make a batch of waffles to feed the entire family, eat, and clean up in less than 30 minutes. I view this as a lifetime investment in delicious waffles. I was skeptical about the price tag but have 0 regrets about it.

So, there you have it — my list of “proven winners” gift ideas for your friends and family who are woefully tied to their desks working from home here in 2020. These have all made my life a little bit better in their own little ways, and I’m happy and confident to recommend them to anyone. Cheers!

Transitioning from Developer to Manager

Image for post
Photo by Fabrizio Verrecchia on Unsplash

It’s not uncommon for successful software developers to find themselves in leadership positions. There are many possible leadership trajectories, one of which is management. Moving into management was scary for me, and over the years I’ve talked to a number of people at that point in their careers experiencing a similar dilemma. This is the story of my experience, why I made the decision I did, what I’ve learned along the way, and how it’s turned out.

The pre-management era

Let’s start with a little about my background, eh? I started my career as a junior developer and worked my way into a senior role, eventually becoming an architect. As an architect, I served as the technical lead for my team and worked closely with managers to make various leadership decisions. I wore many hats in order to best address whatever I felt my team needed most at the time.

After nearly 10 years with my first company, I left to join a former co-worker at a startup. At the time, this new company was small enough that we didn’t have much of an organizational hierarchy. We were a group of senior developers that all had decision-making authority with freedom to work on what we felt was most important. We still collaborated, of course, but we weren’t all chipping away at a common product backlog.

The loose structure worked great for us as a small team, but it doesn’t scale. As we added more people to the team and new products to our catalog, we needed more structure. We divided into product-specific teams with narrower focus and dedicated backlogs. That was our no/low-management tipping point, and that’s where my journey into management begins.

My boss was suffering the consequences of our very flat organization, and they needed people willing to take on some of these managerial responsibilities. I felt like I was being forced to commit: did I want to be a manager or not? I wasn’t given an ultimatum; in fact, my boss was very clear that there was no wrong choice, and my career would continue to grow regardless. That was comforting, but I still had the decision to make.

The management path was scary for a variety of reasons. I had a proven track record as a developer. I was good at coding and troubleshooting. I knew how to solve software problems. Managers take on an entirely different set of problems that require a different skills — skills I wasn’t sure I’d have. Managing a team when things are going well didn’t seem so bad, but it’s the whole “dealing with people” thing that had me worried. Did I really want to give up coding — the thing I enjoyed and had built a successful career doing — to be a manager and have to deal with people?

Making the decision

I ended up lingering at this juncture for a while. Depending on the day, I might’ve leaned one way or the other, but for the most part I remained undecided and non-committal. In my free moments, I’d research what made a good manager and read stories like this one to understand other people’s experiences. There were a few nuggets of wisdom that helped me make my choice.

Skills can be learned. It feels obvious to say, but hearing this was reassuring because I always considered “learning new skills” to be one of my strengths. It gave me confidence to know that I could supplement applicable existing skills with new, learned skills. For example, I know how to troubleshoot an application by stepping through code until I find a problem, then come up with a solution and implement it to fix the issue. The same critical thinking can be used to identify problems with a team, but I may need to do research on agile processes or collaboration techniques to come up with the solution.

You can nerd out on management. As a developer, there are always new things to learn and play with: languages and language features, tools, technologies, and techniques. I remember learning about something like Microsoft Azure for the first time and being so excited to have a reason to use it. The same kinds of continuous innovation exist for managers, too, but you need some awareness of manager & team problems in order for the solutions to make sense — just like you need context for those new things in software development. How can you automate team processes to reduce toil? What things cause the most friction or prevent work from getting done? How can you make 1:1s more effective? How can you maximize the team’s impact on company goals? How can you improve individual accountability? These are all super valuable areas to focus on, and they’re ripe for fresh ideas and innovation.

There is no “point of no return.” I was worried I’d go from awesome dev to mediocre manager, be unhappy, lose my edge, and feel trapped. It was reassuring to hear that I could go back and that my development skills wouldn’t disappear after being less active for a bit. I’m less involved in daily development tasks now and there are a lot of pull requests doing thing that I don’t understand, but when I do get back into the code, it all comes back.

As you may have guessed, I decided that moving into a manager role was the right move for me, and I’ve been at it for a few years now. It hasn’t always been fun or easy, but the more I do it, the more proficient I become. This has a cyclical effect, too, because increased proficiency leads to more engagement which brings more enjoyment and satisfaction.

Learning to manage

The most difficult thing about becoming a manager for me was the self doubt. (See imposter syndrome.) I felt like I was less valuable to the team “managing” than if I was a developer focused on getting things done. I wasn’t sure if I was spending my time on the right things, and the things I was spending my time on were different than that of my peers/other managers. I was failing to adequately help team members that weren’t meeting expectations. I was doing the best I could, and my boss was supporting and encouraging me — but I didn’t feel like I was doing a good job. It was tough.

Looking back, I think there were two key mistakes I made as a new manager. The first was not being direct with people. I was trying to focus on positive behaviors and encouragement and not being explicit about areas that needed improvement. The second mistake was that I didn’t think about the strengths and weaknesses of individuals on the team and strategize how to use them most effectively. (More on that, here!) You can imagine how these two mistakes can create problems: praise for strengths versus less feedback & higher expectations for weaknesses. It’s no surprise that situations didn’t improve!

The single most important advice I have for new managers is to lead with empathy. Get to know your team, and treat them like people. Give them positive and negative feedback. You’d want your boss to tell you if did something wrong, right? But, it would start to feel bad if they only talked to you about the things you did poorly, too. Learn details about their lives outside of work. It would get annoying if you had to re-explain every week why you had to be late to the same meeting for same reason. The better you can understand your team — professionally and personally — the more effectively you can manage.

The best way to get to know your team is through one-on-ones. One-on-ones are a pretty common “most important thing” for new managers, but the thing it took me a while to learn was how to prepare for one-on-ones. This is very hand-in-hand with leading with empathy. Being prepared for these intimate meetings is the best way to demonstrate that you care. Come up with questions and topics that are specific to the person you’re talking to. What do they like or not like about their job? What are their goals, and are there things you can do to help ensure they’re progressing toward them? What are things they did well or poorly? What do they think they did well or poorly? It’s also a chance to solicit feedback from them about you. Be sure to take notes! They’ll help ensure you don’t miss important follow-ups and make preparing for the next meeting easier.

The next steps

Managing with empathy and preparing for & conducting one-on-ones are things you can implement immediately regardless of experience. The next steps take some time and depend on your team. The most important things will be to establish behaviors that will maximize effectiveness and define a clear vision and purpose. These are no easy feats, though. They require thoughtfulness, focus, strategy, and persistence & dedication. You must monitor progress and be wary of regression, and advocate for the right amount of change to keep things trending positively. And, you need to do all this in addition to whatever your team needs to keep things going operationally!

This is a good summary of what my day-to-day looks like now. I’ve got meetings and operational concerns, and then extra time goes into reflection and solutioning for these bigger, longer-term items. There are still ups & downs; still days where I feel like I’m doing a bad job; and still days where I wish I could just write some code. It’s been a rewarding experience, though. It’s been amazing to watch the team adapt & succeed and to help people grow. I love when we can take on an ambitious goal and achieve it.

Making the transition to manager was a scary decision. I had to learn new skills to solve new types of problems, and I had to battle through some self-doubt. I don’t regret my choice, though. I’m not perfect, I make mistakes & bad decisions, and I’m still learning as I go. But, I love my teams, and I love the problem space that I get to live in.

Have you made this transition yourself? What things have helped you succeed? Are you faced with the decision now — what worries you? I’d love to hear from you!


Originally published at The Innovation on November 7, 2020.

Do One-on-Ones, Like a Boss

Image for post
Photo by Brooke Lark on Unsplash

There are millions of articles and books about the importance of one-on-ones for managers and leaders. When I was a new manager, it’s something I read about and put a lot of effort into. I didn’t feel like I was good at them, and I didn’t look forward to them.

But — like many things — the more you do them, the better you get. This is the story of things I’ve learned with time and experience.

Make Time to Prepare

This is the piece of the puzzle that I was missing for too long. The secret to good one-on-ones is preparation. Make it part of your morning routine to prepare for each one-on-on you have that day. Eliminate distractions and dedicate focus to each person you’re meeting with.

The secret to good one-on-ones is preparation.

How do you prepare for these meetings, though? It’s a combination of looking back and looking forward. Review notes from the previous meeting, reflect on interactions and contributions, and think about the person’s life outside of work.

First, you need to make sure you’ve dealt with anything you signed-up for last time to demonstrate accountability and build trust. If you missed something, that’s okay — there’s still value in bringing it up as something you couldn’t get to, provided that you don’t lose track of things and deliver more times than you don’t.

Next, think about the person and how they’ve been since you last met. Have they completed important work? Has there been conflict? Have they raised complaints? Have they been engaged? Have they been visible? As part of your preparation, identify positive and negative things to call out. These can be individual or team items, too.

Finally, look ahead to the future. What short and long-term goals does the person have, and are there things you can do to help them make progress? Some examples would be to follow-up on a commitment they made last time, give feedback on a instance where they exhibited a specific positive or negative behavior, or provide advice or reference materials that could help them.

The one-on-one is also your time to solicit feedback from them. How do they feel about recent changes the team has made? How is the current project going? What do they think about the direction of the team? You can — and should — also ask them about you. What could you do to help them or the team? What would make you more effective as a leader or manager?

Preparation checklist:

  • Did you take care of action items from last time?
  • Are there positive or negative things to call out?
  • How can you help with their goals?
  • What feedback do you want to solicit?

Be Persistent and Dedicated

Preparation is critical for effectiveness, but the most important thing is to actually have the meeting. Sometimes the biggest hurdle is just getting the meeting on your calendar. I’m an introvert, and one-on-ones are mentally and physically exhausting. The thought of another recurring meeting on my already-busy calendar was demoralizing. Don’t procrastinate. You know you need to do it, so just get it on there!

Making the appointment is nothing without keeping it. It’s important to put forth your best effort to make sure they happen. Don’t treat them as your lowest priority. Things will inevitably come up, and you’ll need to reschedule your one-on-ones sometimes. When that happens, favor rescheduling over canceling, and reschedule sooner than later; not showing or canceling at the last second sends the message that you don’t care.

It’s not always easy, but force yourself to have the one-on-ones. Arguably, the harder it is to have the meeting, the more important it is. Relationships that are most strained are ones that stand to benefit most.

Take Notes

If you’re anything like me, you’ve got a lot of meetings with a lot of people. It’s impossible to remember all the commitments and action items in my head. Take notes! Taking notes has multiple benefits beyond simply having something to refer back to, more so if you write by hand. It forces you to listen and be engaged which helps demonstrate to the other person that you care and makes distractions less… distracting. Research has shown that writing things down helps you remember, so you’ll naturally retain more of the conversation. And, lastly, taking notes gives you the obvious benefit of having something to refer back to. Taking notes is immensely valuable even if you never look back at your notes.

If you want to be a next-level note-taker, take handwritten notes during your meetings, then immediately re-organize them into a digital format that you can refer back to during future preparation and that can also represent a running history. Make sure to flag action items or mark things for follow-up, too. Depending on how you work and organize, you may want to add items to your calendar or task lists. The “secret sauce” here is that you’ve now written it twice — so you’re less likely to forget it, anyway — and you’ve got some fail-safes in place to make double-extra sure that nothing slips through the cracks.

Set the Agenda

I’ve covered preparation, scheduling & commitment, and note-taking during the meeting, but what about the conversation itself? Here are some things to keep in mind as you conduct your one-on-ones.

Let them go first. This is the standard one-on-one format: they get 15 minutes then you get 15 minutes. Their part is your chance to listen, take notes, and understand what’s happening with them as a person. If people aren’t opening up, try asking questions like, “How are things outside of work?” or give them a choice of where to focus like, “How’s life, at work or away from work?”

Prioritize topics. Treat them like people first. If last time you spoke to them, you learned they had sick family, don’t jump right into grilling them about the reports they’ve been working on.

Be direct. If somebody isn’t meeting your expectations, say, “You aren’t meeting expectations,” and explain your expectations and why they aren’t being met. If you don’t address problems, they won’t improve. If you only focus on positive things to encourage good behaviors, it’s going to be received as, “[you] didn’t have anything bad to say!”

Highlight positives and negatives. It’s easy to worry about negative feedback and improving performance so much that you forget to celebrate the good things. It can be a drag to only hear about what you do poorly, so be sure to shine a lot on positive behavior, personal growth, and team victories.

Image for post
Image by Free-Photos from Pixabay

Whether you’re a new leader or you’ve been at it for years, one-on-ones are an effective way to build trust, gain influence, and promote team & individual growth. It doesn’t come free, though. You need to do your part to ensure the effectiveness of these meetings, and that means more than just showing up.

Prepare. Commit. Take notes. Set the agenda with empathy. Do these things, and you’re sure to maximize the value of your one-on-ones!

I’d love to hear from you! What tips am I missing that make your one-on-ones most effective? What differentiates an okay one-on-one from a great one, or what things have you seen from the best leaders in your career?


Originally published at https://adamprescott.medium.com on November 13, 2020.

Website Automation for Complete Noobs Part 2

In the first article in the series, we installed Python & Selenium and used them to write a script that opens a browser. In today’s article, we’ll look at how to do some basic inspection of web pages and modify our script to interact with them.

Selenium can do most of the same things you can do with web pages–namely, clicking & typing. But, just like you read and interpret what you see to know what to do, you need to tell your script how to find and do the things you want it to.

The easiest way to do this is to use the “inspect” functionality that exists in most modern browsers to help find identifiers you can use in your code. Let’s try it out with everybody’s ol’ buddy Google. Browse to google.com, right-click the search box, and pick Inspect.

This will take you to the selected element in the web page’s code. This is the part where you start to get some choices. Selenium has a lot of different ways to find elements, so you need to know about what you can use and compare it to what’s available. Usually the most reliable way to get an element is by using its id.

Usually, using an element’s id property along with Selenium’s find_element_by_id method is the most reliable way to find the element, but we don’t see an id when we look at Google’s search box.

We can see a name property with the value q, though, and there’s a find_element_by_name in Selenium, too; so let’s use that! With the element selected, you can use Selenium’s send_keys method to simulate typing. Add the following lines to your script:

from selenium import webdriver

driver = webdriver.Chrome('chromedriver.exe')
driver.get('https://www.google.com')
search = driver.find_element_by_name('q')
search.send_keys('test search')

When you run this script, the browser will open and send the specified text to the search box. Now we need to submit the search. Google has a search button, so we can repeat the steps to find the button and click it:

button = driver.find_element_by_name('btnK')
button.click()

But, that’s not really how you search with Google, right? No–you type your search and press enter. To simulate this, you can use the submit function on the search element:

from selenium import webdriver

driver = webdriver.Chrome('chromedriver.exe')
driver.get('https://www.google.com')
search = driver.find_element_by_name('q')
search.send_keys('test search')
search.submit()

Run the script again, and you’ll see your search submitted and search results displayed. Cool stuff! Let’s do a quick review of all the tools we have now:

  • Browse to sites using webdriver.get
  • Find elements using webdriver.find_element methods
  • Enter text with webdriver.send_keys
  • Click things with webdriver.click
  • Submit forms–like you would do by pressing enter on your keyboard after entering data–with webdriver.submit