Leadership is about storytelling. Being able to frame a situation that communicates and motivates. Makes sense to start studying storytelling No one does it better than the Moth.
Microsoft is adding Copilot to the standard Office365 subscription, which is an interesting move. Many companies have put a lot of energy into controlling the use of AI Assistants in their environments. For a few people I’ve chatted with, this was a surprise. Seems like Microsoft has the easiest path to monetizing AI though. www.wsj.com/tech/ai/m…
More photos found. Some shots from Xander’s soccer game. I need to do more photography. I forget how much I enjoy it. Just another semi-creative outlet.
I was dumping some photos from my camera and came across these two from St. Patrick’s day last year. Time flies man.
Accidentally signed up for Pixelfeed with the username DarkAndNeedy. Which sounds so pitiful
I’ve never been a huge animal person, but this cat has grown on me. Him and his sister (RIP) were the perfect cats for our family.
Wishing you all the best in your battle! Stay strong but be prepared!
A few photos from my trip to Trekconderoga last year. There’s a Star Trek museum in Ticonderoga that has a replica set of the Original Series Enterprise. It’s quickly becoming one of my favorite conventions.
This book has been engaging, despite it not being what I originally thought it would be. I expected more of an examination of the law post-implementation and an examination of its execution. The majority of the book is focused on the conception, creation and passing of the Affordable Care Act. Still quite interesting, but not what I expected.
Helping Your Loved Ones Navigate Your Digital Life After You’re Gone
I’ve been battling cancer since 2021. First, Multiple Myeloma and then after beating that I developed Acute Lymphoblastic Leukemia caused by my Myeloma treatment. To say the last few years have been a challenge is an understatement. While my prognosis is very good, my mind can’t help but wander down the darkest path. With so much of our lives being online these days it’s surprising how we overlook equipping our less technical inheritors with a digital roadmap.
With that in mind, I’ve been putting together a strategy for making sure my loved ones have everything they need in the event of my untimely passing. Because it’s not something many people think about, I thought I’d share some of what I’ve been doing. This isn’t legal advice but merely what I’m cobbling together. Your mileage may vary.
Planning in 1Password
At the center of my digital estate planning strategy is 1Password, a password manager that my family uses already. We put all of our passwords in the tool and have a shared vault for things that both my wife and I might need access to. Think of things like brokerage account logins, streaming services, login for the kids and their various services, etc. 1Password has a family plan where up to five family members can share a single account. (Each family member gets their own personal vault and you can create shared vaults for the entire family)
The nice thing about 1Password though is it can store more than just passwords. It can also store documents and generate one-time passwords for use with two-factor authentication. The document storage is the key to my digital estate planning. In our shared vault, I’ve created a simple document (in RTF format) that has a list of instructions on what to do in the event of my death. Because the document is in a secure vault I can be candid with the information I put into it. I can also create links directly to the 1Password entries I’m discussing in the instructions. For example, if I’m explaining the details of our ETrade brokerage account, I can create a link to the ETrade 1Password entry so my wife can easily login and get the information she needs.
The instructions document isn’t where I put any flowery goodbyes. It’s a manual on what to do when I’m gone. First and foremost I start with a list of all accounts and services that should remain active and why. For example, I have a paragraph explaining not to cancel my cell phone plan until the estate is resolved. Why? Because a lot of services still use text based 2FA. Keeping the line active will make dealing with 2FA a lot easier. I also mention my debit card remaining active. Even though we have a joint account our credit card numbers tied to the account are different. Cancelling the account might cancel key services like 1Password. Again, not an insurmountable task if it happens but just a lot easier if you know and can avoid cancelling those key services until you know you’re ready.
Next I have instructions on how to recover my 2FA system, Authy. This will help to get setup for many of the other accounts that are protected with 2FA and Authy. An alternative would be to have 1Password be your OTP client, producing the codes right next to the passwords. The only concern there is if your 1Password account gets popped then the 2FA isn’t really helpful. But considering your Authy backup codes are probably in 1Password as well, this might be a distinction without a difference.
After that I enumerate all of the financial accounts that my wife doesn’t have her own specific login to. For us it’s things like our Treasury Bonds account, my personal brokerage account (where I experiment on the market with limited funds) and my company 401k information. All of these accounts are setup with the appropriate beneficiaries but listing them explicitly helps to remind my loved ones what exists. Worse case, the family trust is the beneficiary and they’ll eventually gain access to the assets. But for planning purposes it’s nice to be able to login quickly and have an idea of what the state of the accounts are.
Finally, I have instructions on where any digital versions of important documents are. We typically have physical copies but I note where the digital versions are stored in the event there was a fire or something and those documents perished with. me. This is also where I’ll put restore instructions for my laptop. A set of instructions on how to restore my document management system from our cloud backup solution. Again, I don’t want to have to rely on the idea that my wife will have direct access to my laptop.
Before I move on to a few other services there’s another thing I’d recommend specifically for 1Password. 1Password has the concept of family organizers. They’re basically account administrators and have elevated privileges in the account. If you created the account then you are a family organizer but it’s useful to have more than one. You can find more information about family organizers on 1Passwords website. Having your spouse be a family organizer will help to future proof with any additional functionality that the role may be granted. But most importantly, it will allow your loved one to update the billing information to ensure your 1Password account stays active even after your linked credit card information has been retired. For additional peace of mind you may want to store your 1Password emergency kit somewhere secure. It has all the information necessary to recover your 1Password account. Unfortunately at this time there is no mechanism for you to will or pass down the 1Password account so the emergency kit becomes your best option.
Legacy Contacts
A few of the larger services offer what’s known as a legacy contact. The legacy contact is (typically) a designated contact that you specify that will gain access to your data at the time of your death. Each service has a slightly different process for specifying a legacy contact and how that contact must engage to recover your data.
Facebook Legacy Contact will allow you to specify a person that will manage and memorialize your main account after you’ve passed away. They also have a similar optionto memorialize an Instagram account.
Apple Legacy Contact will allow you to specify a contact that will gain access to the data stored in your Apple account after your death. There are limits to what data you get but things like photos, messages, notes and device backups are just some of the things the legacy contact will gain access to.
Google Inactive Account Manager is a little bit different. It acts more like a dead man’s switch, where if your account has been inactive for a specified period of time, Google will send an e-mail to your contact with a message of your choosing. When you set it up, you can also specify to share data with the contact. The e-mail will include links for the user to download the data.
Wrap up
This has been a bit of a learning experience for me. The tough part is that you don’t know if it worked the way you hoped because you’ll be gone! But hopefully I’ve sparked some ideas on how to pass down the digital bits of your life to your loved ones and make a difficult time just a little bit easier.
Thoughts on Remote Work and Emotional Connectedness
There is a certain amount of gravity around remote work. Even those of us who like going to the office occasionally, struggle to produce the force necessary to escape the pull of our home office. It feels less of a matter of will power and more the universe conspiring against our innate desires. The commute, the kid’s karate class after work, laundry, a day of meetings that will be all virtual anyways, are all things that take a decent plan of an in-office visit and relegates it to the heap of unfulfilled ambitions for the week.
But there is a chorus of voices that are espousing the benefits of in-person work. The collaboration is stronger, the sense of connectedness deeper and the speed at which problems can be addressed swifter. For employers, this means the pull of the office must be stronger than the gravity of the home office. It’s not enough to match the incentives of the before times but we have to rethink what the strengths of in-person work is and figure out how to amplify them.
I don’t have the answer. In fact, I don’t believe it will be a single answer but more of a tapestry of solutions that are tailored to the culture of an organization. There won’t be a one size fits all but a drive to understand the desires for in-office connectedness.
One piece of this conversation that I’ve found interesting is the idea of emotional connectedness. Much of the discussions around return to office has focused on the concept of physical proximity being the engine for innovation. But emotional connectedness looks at emotional proximity as being the secret sauce. Co-workers feeling connected to not just each other, but to their role, team, department and company as a whole.
When I was introduced to this concept, I wanted to start thinking about how our emotional connectedness ebbs and flows over time. I started thinking about these emotions as a measurable resource. Imagine every employee had an emotional connectedness score that reflects their level of engagement. What increases someone’s level of connectedness? Since the pandemic, we’ve relied almost exclusively on in-person meetings, and for good reason. For a lot of people that social interaction dumps a huge point value into their connectedness score. Many people have a bit of a buzz about them after a couple days in the office connecting with colleagues. It’s also insanely easy for the employer since it’s leveraging an already sunk cost resource. (The office itself)
But there are two problems with this as the sole means of addressing the connectedness score. For starters, not everyone gets the same boost from in-office visits. For some people it’s a drain on them to be in person for a myriad of reasons. If in-office visits are the only way your company is boosting the connectedness score, you’re likely leaving a decent percentage of your staff unfulfilled. The second issue is a problem with all boosting methods and it’s what I describe as drainage. Our connectedness scores are boosted by activities, but they also drain at a regular rate. That rate might change per person. You can feel it as the buzz of your in-office visit begins to fade after week one. A month later you might be back in the same connectedness valley. Sue might be able to ride the high of her office visit for an entire quarter, while Jack may need a more frequent top-off of emotional energy. This drainage is something we have to pay close attention to and build rhythms in the organization that are aware of this drainage and are structured to curtail it. I took care to use the word curtail as oppose to eliminate. We can’t eliminate drainage. The best we can do is slow it.
We can’t rely solely on in-office visits though. The more frequent office activities become the more energy it takes to escape the home office gravity well. (The events quickly get taken for granted) Developing remote activities and rituals that also produce emotional connectivity is key. This is where things will deviate per organization. An organization with a young population might gravitate towards different activities than a company that skewed older. Because of that there’s no playbook for the type of events that could work virtually but here are a few broad categories I can think of.
Employee Resource Group events centered around themes of interest
Book Clubs
Gaming groups/clubs
Trivia groups
Special interest projects
Virtual coffee meetings (people are randomly paired together for 30 minute discussions)
The secret sauce here is to have a broad array of programs since you have a diverse array of personalities and interests. You also need to take care to create opportunities for smaller sets of connections, even just 1-on-1. There are quite a few people that don’t function well in large groups. Putting those connections into a remote setting just exacerbates that problem. Being able to come up with options of various engagement sizes is key.
Having a point person for each of these categories is ideal to serve as a coordinator and cheerleader of sorts. When groups are left to self-organize they often die prior to the group reaching a critical mass of attendance and consistency that allows the group to thrive on its own. These groups and activities don’t provide the same bang for your buck as an in-office visit, but the barrier to entry is much lower and they can provide small point boosts to the connectedness score in-between office visits.
Another source of connectedness points is the relationship an employee has with their work. This is something that leadership must have a strategy for. How does someone relate their job to the overall strategy of the business? How does their department factor into the corporate goals? This requires all levels of leadership to understand the strategy and how they fit in, but it also requires relentless repetition at all levels of the organization. As much as employees see themselves as attentive and engaged, the truth is people need to hear the same message over and over again in various mediums before it really begins to settle in. This means leaders need to have their talking points in-hand that they can say over and over and over and over again, so that employees see how they fit in to the larger plan.
A central theme that has come up in my thinking is the idea that managing this connection score is work. It’s work that we took for granted in the office because it came so naturally because of the setting. I dare say that we didn’t even respect that connection management as work but as goofing off. Bob is always at the water cooler. Pam spent half an hour chatting with Frank in the kitchen. We didn’t recognize the building blocks of relationships that those moments created. Now that we don’t have it, we’re desperate to recreate it.
Hybrid work is definitely going to be a tough nut to crack. We’ll need to experiment with a bunch of different options and have honest conversations about what keeps us at home, what gives us energy and what drains us. For some companies the first step will be creating the psychological safety necessary to have open, honest discussions about what works and what doesn’t. If everyone is living in a place of fear where any criticism of remote work leads to a return to office mandate, you’ll never receive honest feedback about the state of remote work. It’s been a huge help to many people but its far from perfect for the company or the individual. Being able to have honest discussions about that is step one.
My son said something that was a little alarming and troubling which has led me to deep thinking about the impact of remote work. My son had a series of poorly communicated events at school today, which we found out about the night before. I’m completely unavailable to my family at the moment so it falls to my wife. On their way in to the first part of the assembly, my son asked her how long she could stay. Unfortunately my wife had a call she couldn’t miss at 9am. Our son is incredibly empathetic and responded with “It’s OK. Work is more important”, which isn’t what any parent wants to hear. My son is very well loved and he and his mother share a very deep bond. So I’m left wondering, how did we get here?
Remote work has become a central chord in the harmony of our household rhythms. Remote work allows us to live a lifestyle that was previously impossible due to the scheduling void that our commute generates. The Internet talk a lot about remote work from the perspective of the worker but doesn’t often talk about it from the perspective of the family, but more specifically, the children.
My son Xander is 9 years old and my daughter Ella just turned 12. I’m going to focus on Xander for the purposes of this story. When my company moved to remote work on March 11th 2019, (thank you Rudy Gobert ) Xander was 5 years old. For a 9 year old, that’s an eternity, accounting for a little over half his life. He has no real memories of my wife and I going into the office on a daily basis. That lack of context seems minimal at first until I began to think about how that structures his mental model of work and how that mental model relates to him and his value.
When the family all had somewhere to be in the morning, we all woke up, we all did our morning routine together, the kids went somewhere, parents went somewhere and then we all reunited at roughly the same time. There was a shared experience around how our time was used during the day. Even at a young age, our children can relate to the idea that “Mommy and Daddy are doing something like school!”, a shared experience that “required” you to be in a certain place with certain people. Then COVID hits and the memories of those shared experiences fade-to-black as our new reality sets in.
Now, it appears to be difficult for my kids to associate remote work with commitment. Part of it is because remote work schedules are nebulous in a way. Our hours have changed, my wife and I work later into the evening or make up hours in the evening from missed time during the day. With work not being associated with a place and specific time, work seems more like a choice than a commitment.
We see this manifest when Xander comes home from school, for any reason, during our working hours. He’ll ask if we can play a board game or that he’s bored and needs something to do. It’s hard for him to consider us “not there”. Every rejection in favor of work, tilts the scales of value in his mind, leading to statements like “work is more important”.
We’ve never taken the time to discuss with him in detail the nature of remote work because we relied on his memories of a different time. Memories he doesn’t actually have any more. This is less of an issue with my daughter, because she’s older and still has some fleeting memories of the before times. The question now becomes how do we talk to our kids about the nature of remote work and what assumed knowledge do we need to rethink?
My initial bullet list is to mention:
We work with other people who also have families and commitments. Having a shared, overlapping time frame where we work is important to make sure people can meet those commitments and share time with their family.
Scheduling certain things is very important. This way everyone knows when they need to be available and when other things need to be scheduled around it.
Sometimes we can take time off during the day to do personal things, but it doesn’t change what’s expected from us and when.
The hard part I’m struggling with is how to explain the value part of the conversation. If I’m choosing work over playing a board game with him, in a sense I am saying that work is more important in that moment. Not more important than him as a person, but more important than what he would like me to do in that specific moment. I’m hoping the nuance will come through.
I’d be very interested to hear if others have experienced anything like this. We’re raising children in a new world, which is bringing up new questions and obstacles. Obstacles that my parents and in-laws have no experience with, making them just as in the dark as we are.
“Yes…but.” — Saving ideas in their infancy
Ideas are fragile. In an idea’s infancy, it doesn’t take much to do irreparable damage to it. This is why how we approach new ideas and the language used during an idea’s infancy is so important.
One of the biggest killers of an idea is the tendency to front load the idea conversation with all the reasons an idea can’t succeed.
“It won’t work. We wouldn’t be able to know ahead of time all the inputs necessary.”
“It won’t work. Processing time would take too long.”
“It won’t work. These two systems can’t talk to each other.”
All of these are examples of idea killers. But they’re only idea killers because of the wording and the way we deliver the objection. Imagine if instead, we approached the idea from a perspective of curiosity and a commitment to the idea. Let’s add a few simple words to these idea killers and see how they seem afterwards.
“Yes, but we’ll have to keep processing time to under an hour.”
“Yes, but we’ll need to figure out how to anticipate all the inputs.”
“Yes, but we’ll need to figure out how to communicate between these two systems.”
By just changing the way we speak and challenge the idea we’ve done a couple of things.
We’ve noted the potential problem without killing the idea.
We’ve aligned ourselves with the idea giver as an ally. We’re now working towards a solution together.
Being able to align yourself with the solution puts you in a completely different mindset in terms of how you approach a problem. It doesn’t mean that the problems presented aren’t real and they very well might be insurmountable. But now you’ve explored the idea, supported the idea giver and most likely have come up with alternative methods that partially solve the problem.
The “Yes, but” approach is increasingly more important in remote working environments. Text based conversations operate on a different level of social interaction. Text based conversations are devoid of the non-verbal communication we often give, even subconsciously.
Even though our texts are devoid of these non-verbal cues, our minds haven’t adapted to the fact that we’re not sending them. Text based messages go out devoid of the signals that might soften your communication style. Instead the recipient is stuck, interpreting your message with energy you may or may not have intended. This is particularly true of messages around ideas.
If a person is already timid about sharing their idea, any critical comments about the idea will be interpreted in the worst light. The simple action of “Yes, but” can help to align yourself and provide support for your team member while still bringing up real world challenges.
The literal worlds “Yes but,” don’t have to be used. The key is to do the following:
Acknowledge and validate the idea.
Address the problem as a solvable hurdle to the idea.
Word things so that it is clear you plan on collaborating on the solution for the idea.
Just these three steps can help save a lot of ideas and help them get out of their infancy and into full-fledged solutions to help you and your team.
Decision Rights — Communicating How Choices Get Made
Advice for leaders
Companies seldom have issues generating ideas and paths forward on problems. In fact, you almost get too many ideas to be able to sift through, evaluate and ultimately implement. But a bigger problem teams have isn’t generating options, but choosing which option to go forward with. (The next issue is aligning resources, but that’s a future topic) The issue of deciding on a course of action is further exacerbated when we have groups of people working on a problem with no clear idea of who the decision owner is.
At Basis Technologies we follow many of the principles and practices of the Conscious Leadership Group. The trainings we’ve had have been invaluable for me as a leader, but one of the best takeaways so far has been the concept of Decision Rights. In a nut-shell, decision rights are a clear definition of who will make a decision for any given situation. I’ve been using decision rights a lot more now that my team has grown and we’re spread out across three countries. The benefits of easy informal communication have begun to disappear as my organization grows and I needed something more formal to ensure the team is on the same page.
There are a total of 7 decision rights with each change in decision rights also increasing the amount of time required to reach the decision and the amount of buy-in received from the group. This will make a bit more sense as I walk through the 7 decision rights really quickly.
Decision Rights
Leader — We are all pretty familiar with the leader decision right. It’s just like it sounds, the leader of the group (assuming there’s one clearly defined) will make the decision on his/her own.
Leader with Input — The leader will gather input from others before making their decision. The leader usually will be responsible for soliciting the information they feel is necessary for input to their thought process.
Subgroup — A small team of people are put together to make a decision. The team is typically made up of Subject Matter Experts (SMEs) that drive all aspects of the decision making process.
Subgroup with input — A subgroup with input means that the subgroup still decides, but solicits information from outside the group as well, before making a decision.
Majority Vote — A group discussion of some sort ensues, followed by a voting period. Everyone should have an opportunity to voice their thoughts and concerns prior to voting. Think of it like an election, where each candidate (or view point in our scenario) has an opportunity to discuss their feelings on the situation. After that period has finished, voting occurs and majority wins. The leader of the group or organization will decide what type of majority is needed, whether it be just a simple majority, two thirds majority etc.
Consensus — Consensus happens when there is nobody that is opposed to the decision being made. It doesn’t mean that they can’t have doubts or reservations, but they’re not actively against it. This is your classic dinner planning scenario. You’re not against steak, even though you’d rather have pasta, but the rest of the group wants steak and you can get behind it. But just like your dinner plans, consensus decisions can be difficult to reach, so it’s wise to have a fall back decision right in the event you can’t reach consensus. Any of the previously mentioned decision rights can work, but I typically fall back to Leader with Input.
Alignment — Alignment is when every one is in full support of the decision being made. There is no dissent. This is the hardest of all the decision rights to meet. If you can’t get alignment on dinner, getting alignment on transformational change can be very hard. Like the consensus decision right, it’s important to have a fall back decision right in case alignment cannot be reached.
With these 7 decision rights laid out, we can talk about buy-in vs time. Depending on the urgency of the decision that has to be made, some decision rights might seem more obvious than others.
In the above image you can see the various decision rights plotted on a graph, with the axis being buy-in and time. These are typically the two constraints that we’re working with when it comes to decision making. Buy-in can be incredibly important for large transformational change, but time may be of the essence when we’re trying to make a decision about something this quarter. There is no right or wrong answer for choosing a decision right. It all boils down to the situation at-hand and the constraints that you’re working under. If you’ve got more time, achieving more buy-in makes sense which can lead you to decision rights like Alignment or Consensus. Any decision typically benefits from a larger buy-in from the team. The problem is not every decision has the time necessary to get there, which makes some of the other decision rights attractive and appropriate for the situation at hand.
Communicating Decision Rights
I don’t use formal communication for every decision right in our team. I typically reserve it for broad impacting decisions that I know many people will have feelings about. I also don’t discuss decision rights when it’s Leader decides, because then it’s usually quite clear. It’s a terrible feeling thinking you’ve got input on a decision when you don’t. If I come to the team with a decision already made, I make that clear with the delivery of the decision. Again, this is a rare occurrence, but it does happen.
When I am communicating decision rights, it’s usually in this old, antiquated form of communication called a “Meeting Agenda”. Some of you may remember those from back in the day when it was important to know what you were going to be spending 1.5 hours of your life on. In the meeting agenda I try to lay out a few things.
What the decision to be made is
The timeframe allotted to make the decision (often just the length of the meeting)
What the decision right is
What the fallback decision right is (if applicable)
Any tools being used to generate decision options (Brainstorming, Pros vs Cons, 6 Hats, etc)
With these points in hand, everyone clearly understands their part in the decision-making process and how decisions gets made. Even if people don’t agree with the final decision, the process to which it came into being is well-understood and transparent. The agenda doesn’t even have to be super-exhaustive. Here’s an example agenda I’ve used in the past.
Lets get together and discuss namespaces moving forward.
Problem: We need to decide if we’re going to have a single namespace per environment or if namespaces will be broken down by application. Single namespaces are advantageous in test environments, but can become unruly in production. Multiple name spaces can complicate environment management and will force specific patterns of referencing apps in pods, since you’ll have to use the FQDN. None of these are hard, but we need a specific choice.
Meeting Outcome: Decide on single name space or multiple name spaces. Decision Model: Group Consensus with a fall back of Leader Decides with input from staff, if we can’t come to a consensus.
It’s just enough information to get everyone on the same page without taking tons of times crafting time blocks that probably won’t be honored anyways. (Although if you’ve got the time for a more detailed agenda it’s totally worth it. I’m just saying that there’s still value in a brief agenda if the alternative is no agenda at all)
Wrap-up
Decision rights can be a tricky thing once you’ve moved beyond the leader decides tier. Making sure people involved and impacted by the decision are aware of how decisions are made can lead to greater buy-in even after the decision has been made. Communicating these decision rights can be a huge boost to involvement and productivity. It also forces you to make rationale decisions about the two constraints of every decision, time and buy-in. The more time you have the more you can invest in getting larger buy-in. But if time is short, you may have to make due with less buy-in so that you can get the ball rolling on whatever decision you make. These pressures exist whether you acknowledge them or not so its better to go into the situation eyes-wide-open. It can even help you communicate why such a narrow buy-in was chosen. Not every decision has a time-horizon that can afford alignment or even consensus. Does this mean some decisions are sub-optimal? Of course. But a sub-optimal decision is way better than no decision at-all.
If you’d like to further dive-in or see a visual representation of Decision Rights, I’ve linked a video below and I encourage you to checkout the Conscious Leadership group.
A bug in Terraform? Or a misunderstanding of how a particular stanza works? Or maybe even our own automation around Terraform?
Hopefully, this is only part 1 of this series as it doesn’t really have a satisfying ending so far, but still a story worth sharing. We encountered an error in Terraform that was transient but seemed to go away on its own, most likely some race condition. This post is going to walk through that failure. It’s a bit more technical than some of my other posts so those who come for the leadership thoughts might have their eyes glaze over. Your mileage may vary.
A bit about our deployment process first. We use a blue/green deployment strategy in our environment (minus the database). Automation around Terraform is responsible for bringing up the second application stack and deploying code to it. During the creation of that second stack, we received an error message we had never encountered before.
Error: error creating EC2 Launch Template: IdempotentParameterMismatch: Client token already used before. status code: 400, request id: 4c6edce7-7497-4884-ab63-f215f9b82f6e on ../terraform-asg/main.tf line 33, in resource "aws_launch_template" "launch_template": 33: resource "aws_launch_template" "launch_template" {
There were a few things that needed to be researched here.
The IdempotentParameterMismatch Error
When an action is idempotent, it means it can be performed multiple times without changing the result beyond the initial application. I
n practice what this usually means is if I run command X, the command is aware if it had been run before in this context and may skip the usual application of the command and instead return a status or a result. A simple example is the mkdir command when you use the -p flag (which tells mkdir to create the full path if it doesn’t exist).
If I run that on my local workstation the following happens.
mkdir -p /tmp/test ls -l /tmp/|grep test drwxr-xr-x 2 jeff.smith wheel 64 Jun 9 06:31 test mkdir -p /tmp/test
The mkdir command created the path /tmp/test and we can see it was created successfully. When I run the command again, it completes successfully with no error message.
That makes this command idempotent. No matter how many times I run this command, I know in the end I’ll get a successful result and that the path /tmp/testwill exist. Now contrast that with just mkdir.
Now with mkdir, on the second execution I get an error message, which is a different end result than my first execution. The directory exists, but the error code I get back is different. That makes this a non-idempotent operation. But why do we care? Well in the second example I need to do a lot more error handling for starters. And this is a basic example.
When doing something like creating infrastructure, it could result in launching more instances than you intended, which is what this IdempotentParameterMismatch error is designed to prevent.
When you make an AWS API call to create infrastructure, just about every endpoint (to my knowledge) does this is in an asynchronous fashion. What this means is your API call returns immediately but the work of actually creating the infrastructure you requested is still in progress. Because of this you typically need some sort of polling mechanism to determine when the operation has been completed.
Several AWS API endpoints support idempotency, which allows you to specify a client token to uniquely identify this request. If you make the same API infrastructure creation call and use the same client token, instead of creating a new instance, it will return the status of the previously requested instance. When creating infrastructure programmatically this can be a big safety net to avoid creating many copies of the same infrastructure. And that’s where our error comes in.
The error is stating that we have already used the client token. Digging into the documentation a bit, a more specific meaning is that we changed parameters in the request but reused the client token, meaning the API doesn’t know what our intent actually is. Do we want new infrastructure with these parameters? Or are we expecting already existing infrastructure that matches those parameters? To be safe, it throws this error.
The user is always responsible for generating the client token. But in this case, the user is actually Terraform. That created some surprise and relief on our part since it meant it most likely wasn’t any of our wrapper automation. But we still needed to be sure. The first thing we did was an attempt to find what client token was used and was it actually used twice.
Luckily the error gave us a RequestId which we used CloudTrail to look up. In the requestParameters field of that request we were able to find the ClientToken used.
It looks sufficiently random in the same format that Terraform often uses to generate random values.
It definitely didn’t appear to be something we generated. We then decided to search all requests in that time frame to see if any of them had the same client token.
Sure enough, there was a second request made that reused the same Terraform module (which we wrote) to generate a second ASG and launch template.
As you can see, there are differences in the request, but the client token remains the same. Now we’re starting to freak out and think maybe it is our code, but we still couldn’t see how.
Generating the ClientToken
As I mentioned previously, generating the client token is the job of the user from AWS’ perspective. From our perspective, that user is Terraform. We’re not GO experts by any stretch of the imagination on our team (although we’re looking for a few good projects to take it for a spin. We have a lot of interest).
But in order to understand how the client token gets generated, we were going to have to look at the Terraform source code. After a little digging, we came across the code living in the terraform-plugin-sdkas a helper function.
func PrefixedUniqueId(prefix string) string { // Be precise to 4 digits of fractional seconds, but remove the dot before the // fractional seconds. timestamp := strings.Replace( time.Now().UTC().Format("20060102150405.0000"), ".", "", 1)
In this function, the author is generating a timestamp accurate to the second. It’s possible that multiple executions could hit in the same second-time span, but the value also gets a counter appended to it.
The counter is in a mutex so the value of idCounter is shared across executions and the mutex prevents concurrent execution. There should be no way that this function generates the same client token twice. But that doesn’t mean that the function calling for the client token isn’t storing it and possibly reusing it.
Wrap Up
This is where our story ends for the moment. We started to look into how and where the client token was getting used, but since we felt strongly that this was going to be related to a Terraform issue of some sort, we had to shift gears for a solution. We weren’t going to run a custom patched version of Terraform. We weren’t going to upgrade on the spot. And we weren’t going to wait until a PR got approved, merged, and released, so that put us on a different remediation path.
Our current fix was to specify a depends_on argument for the two resources in conflict. Other times when the error happened, we noticed it was always these two resources in conflict, so the hope was that the depends_on flag would prevent these from being created in parallel.
So far that hope has paid off and we haven’t seen the error in any environment again. But we plan to continue to research the issue out of nothing more than morbid curiosity. It might lead us to a bug in Terraform, a misunderstanding of how a particular stanza works, or maybe even our own automation around Terraform.
Who knows? If we find it, you’ll be sure to find a Part 2 to this article!
Inbox Zero is another one of those productivity hacks that you hear a lot about in tech circles. For those of us with an unread message count in the thousands, it sounds like a far-off intangible dream like faster than light travel or sensible gun laws.
But after doing inbox zero for a few years, I’m here to tell you that the dream can be had! Inbox Zero is achievable if you remain focused and disciplined.
What is Inbox Zero?
Inbox Zero is an email management strategy dedicated to keeping your mailbox from reaching the levels of insanity where you simply give up on any hope of actually managing it. In your despair, the unread message badge sits on your mailbox as a scarlet letter, informing those around you that you’re as disorganized as you feel. The goal of inbox zero is to get your mailbox to empty at the end of every day.
That sounds like a heavy lift, but the secret to inbox zero is that you don’t actually have to respond to every email in the same day. It’s about processing your mail down to zero every day.
The thing about an overflowing inbox is that you never know what might be lurking inside those 1352 messages that you have as unread. It might be an important ask from a senior leader. It might be a change to your kid’s violin schedule. It could be a reminder that your car registration is set to expire. The uncertainty of what’s buried in those messages causes many of us a lot of subconscious stress. A feeling of being out of control begins to invade our psyche and we can never fully relax.
The goal of inbox zero is to reduce that stress not by responding to all of your email at once but by getting an understanding of what’s in your mailbox so that you can make a conscious decision about what to do with it.
The nature of email
When you think about emails that you receive, they really boil down into one of four categories.
Something you need to do
Something you need to know
Something you need to have
Garbage
The “something you need to do” category is probably the one we’re all the most familiar with. Knowledge workers get many of their tasks via email, whether it be an assignment from your direct manager or just the need to respond to the email because a question has been raised that you have the expertise to handle.
Something you need to know are those informational emails that sometimes turn into things you have to do. It might be a heads up that a particular meeting is occurring, a policy is changing, your kid has a change in soccer practice, etc. You don’t always have to do something in response to this knowledge sharing but there’s often a time constraint to it, which makes processing it in a timely fashion pretty important.
Something you need to have is really a riff on something you need to know. It’s the transmission of some data you need to have access to in the future. Think of spreadsheets, concert tickets, receipts etc. It’s important that you consider the likelihood of needing to recall this data later. The emailed receipt from your coffee visit probably doesn’t have much value, but the receipt from a shipping order could be useful up until you receive the item. It’s important to be critical about how you evaluate these types of emails or else everything can fall into the category of “something you need to have” and you become the digital equivalent of a hoarder.
The last category, garbage is pretty self-explanatory. Junk mail, chain letters from Aunt Isabelle, the 500 donation requests from your local political party etc. If it doesn’t fall into one of the categories I listed earlier, then chances are it’s junk.
Processing Email
As I mentioned before the trick to inbox zero is processing all of your email. By processing your mail and getting an understanding of what’s in your inbox, you can achieve some level of peace, because at the very least you know there’s not a time bomb waiting for you deep in your unread count.
When you process your email, identify what type of email it is. If it’s something you need to do, ask yourself if you can accomplish the ask in a short amount of time. My personal limit is 5 minutes or less. Many people use 2 minutes or less as their limit. Whatever limit works for you, set it and take care of all messages that meet that criteria, whether it be performing a task or just responding to the email. If you can’t finish the task within your time limit, move the email to a “To-do” system or folder. I personally love the Getting Things Done methodology and have been using it myself for over a decade now. But no matter what your system is, the key is to move it out of your “Inbox” and somewhere dedicated to work that needs to be done. It might just be a separate folder in your mailbox or a more sophisticated solution like OmniFocus or Todoist. The key is to make sure it’s out of your inbox!
For things that are “something you need to know” or “something you need to have”, the same rule applies. Get it out of your inbox into something that’s more specifically for those types of things. I personally use DevonThink as a document storage manager. Anything I need to keep or store I put in DevonThink with a set of tags that’ll help me to retrieve it later. But you don’t need anything as robust as DevonThink. You can come up with a standard folder system in your mailbox or on your computer’s filesystem. If you intend to store files or mail on your filesystem, I recommend using a cloud storage option like Dropbox or iCloud Drive to make sure that you have access to your files on all of your devices. (If you’re interested in how I file documents, drop me a note and I’ll write a blog post on it) But again, the theme is to get it out of your inbox! Just the act of handling the message will give you the context necessary to decide if you need to deal with it immediately or not. You might process a note and realize that “I need to deal with this right now and then I can just delete the mail.” Or you might end up converting that “need to know” into “something to do” and transferring it to your to-do list. But if it sits in your inbox, flagged as unread, it will gnaw at your psyche and slowly drive you insane.
When it comes to garbage mail, I say that you need to be as ruthless as possible. Flag messages as junk so your mail client can learn what’s valuable and what’s not. Unsubscribe from newsletters that you don’t read with a passion. Opt-out of marketing emails that you inevitably get subscribed to when you make a purchase. Lastly, create email rules for those particularly stubborn mail senders that will route those mails directly to the trash bin when all else fails. You’d be amazed how much noise you can cut out when you’re diligent about keeping junk mail from hitting your inbox. You’ll never get all of it, but even a 30% reduction will have a noticeable impact.
When to process email
Another trap that many of us fall into is keeping our email client open all day. Don’t do it! I try to limit email processing to 3 times per day. In the morning when I start the day, in the afternoon after lunch and one final time for the end of the day. All other times, I try to keep my mail client closed. There’s one caveat to this approach though. If you use Outlook as your mail client, you might run into an issue where your calendar application and your mail application is one and the same. Closing out your email could also mean locking yourself out of calendar reminders, which is a deal breaker. It’s for this reason that I personally migrated to using the standard Apple Mail app and Busy Cal for email and calendar management. By having two separate clients, it’s easy for me to divorce these two tasks. If you’re stuck in Outlook, you might want to consider changing your fetch frequency to something longer. I avoided this approach, so your mileage may vary.
Keeping your mailbox open is a distraction as the notification bell continuously pulls your focus away from what you’re doing and sucks you into the drama of the mailbox.
Wrap-up
Inbox Zero may sound like a fantasy but I assure you it’s possible. When you decide to give inbox zero a shot, I recommend that you plan to spend an entire evening focused on processing your inbox. (Depending on how many emails you have to go through of course) Getting out of mailbox debt will be more time consuming than you might imagine, but it’s energy and effort well spent. If you have an overwhelming amount of email and you can’t fathom processing it all, there’s always the option of email bankruptcy where you concede to your mailbox, declare to folks that you won’t be responding to anything sent prior to this moment and you do a massive delete on all the mail in your mailbox. It’s a gutsy move but sometimes it’s necessary. But whether you get there through processing your inbox or declaring email bankruptcy, achieving inbox zero will give you the joy necessary to keep up with it.
NOTE: The views expressed here are my personal views and don’t reflect the views or position of my employer.
The office is dead. It’s not dying or on life support, it’s just dead. The pandemic put it on life support and employers finished the job when they opened the doors to fully remote hiring. When teams became spread across the country, the purpose of the office died and it accelerated a shift that was bound to happen anyways. Remote work became the primary means of working and collaborating.
The value of the office
The real value behind the office was conformity, collaboration and indoctrination. Conformity had a range of ways in which it was exercised. Everyone had the same mouse, the same keyboard, the same monitors and this allowed companies to streamline the support process. In many offices, dress codes enforced a standard that would breed a set of attitudes. The more formal the dress code, the more professional the setting. Unless of course you were in Hollywood, Wall Street, Sales etc. But that was the theory anyway. How people worked, when they worked were all managed under the watchful eye of leadership, where too many coffee breaks were easily noticed. The loss of that conformity has sent many managers into a bit of a panic.
Collaboration was a huge hit in the office. No one will ever convince me that a video conference meeting is as effective as in-person meetings. When your best friend goes through a terrible breakup, you’d never say “Grab a beer and meet me on Zoom and lets talk about it.” No, you go to the bar and you have face to face communications about it. And if you can’t go to the bar, you have a Zoom call and complain about how much you wish you could be in-person doing the same thing you’re doing on a “just as effective” medium. If it’s not as effective for drowning your sorrows, it’s definitely not as effective for collaborating on complex topics, thoughts and ideas. Being able to share the same pen, on the same whiteboard without losing 3 seconds of audio every time you talk at the same time is priceless and something that I don’t think remote work will ever replace. That’s not to say that remote work is incapable of producing good collaboration, because it most certainly can. It just takes more dedication, planning and participation by all attendees.
Indoctrination is another hard one. Replicating a culture remotely is a challenge that I think many companies are struggling with. It’s hard enough to build a culture in person. We lose the rituals of culture building as they get lost in translation to video conferencing. The activities that resonated in-person don’t resonate through the lens and we’re still trying to figure out how to replace them. I think we’ve all learned that a lift-and-shift of cultural activities doesn’t work. Sharing a team lunch on camera isn’t the same and quite hoenstly turns into a disgusting affair really quickly.
With these three things listed, there’s one thing that’s a bit of a glaring omission and that’s work. The office has never been a place where “work” is super efficient. You’re constantly bombarded with distractions, drive-by visits, unexpected delays in your commute just to name a few. For many people, the office was the only option for work, so its effectiveness was never deeply considered. Prior to the pandemic, most people hadn’t transformed a space in their home to be effective work from home (WFH) employees. Those employees that were already fully remote learned this secret a long time ago and have been reaping the productivity gains ever since. But people new to the WFH game had to figure it out on their own. Many of us still don’t have a great work from home setup due to space constraints. Those people are probably longing for the reopening of the office, but they’ll find that what they come back to is just a shell of its former self.
The flood gates of remote hiring
Companies have been desperate to hire the last year or two. Many clever companies decided to open the flood gates and start hiring remotely. Even yours truly was a staunch supporter of the in-office lifestyle. I preferred people in the office, collaborating and working together, drinking the indoctrination kool-aid. But I also sensed the winds changing. Now 4 out of my last 5 hires have all been remote. My team is almost 50% remote now and honestly, one of my employees has such a long commute he might as well be considered remote.
The point being, I will never return to a world where everyone is in the office. It’s just not possible. Even if we forced the local people back into the office and allowed the remote people to stay remote, it creates an even worse scenario. Your team becomes bifurcated as they self-organize into remote and in-person silos. Yes, we should be doing everything in slack and yes, we should make sure every meeting has a Teams invite. But if you can have a meeting with three people in the office and one remote person, human nature dictates the path of least resistance and that four person meeting gets cut down to a three person meeting real fast. Guess who gets dropped.
Same with the remote people. You’re trying to collaborate with people remotely and even though you have a great microphone, solid lighting and an HD camera, you’re working with a bunch of people trying to figure out the antiquated video conference software in the room. The microphone sucks so you can’t hear Joey, who always sounds like he’s talking at a funeral. Mary gets up and starts doodling on the whiteboard, forgetting that you can’t see the whiteboard. Now we spend 10 minutes adjusting the camera to point at the white board, only for it to pan back to the first person who starts talking. Yeah, you’re familiar with this nightmare. There’s no need to rush back to it.
If everyone is remote, everyone is on the same playing field. And while it may not be as effective as everyone being in the office, it’s way more effective than having some people in the office and some people remote. If you’ve started down the path of remote hiring, the current incarnation of your office is dead.
The Future of the Office
The office was never about work. But now we can’t even afford to pretend that it’s about work. Most of us have created a work from home setup that rivals anything the office would provide. It’s tailored to our needs and our tastes. When we go to the office now, it’s a step down in every category. Even my wife has a 34" widescreen monitor now. People are spending major dollars on their chairs, their keyboards, their mouse because now it’s an investment. The occasional Friday at home didn’t warrant the investment we’re willing to make now that it’s 5 days a week. And that means companies are either going to have to adjust their budgets and their equipment flexiblity or they’ll need to find another way to entice people back to the office. It’s hard to compete with great ergonomics, beautiful displays and a 2 minute commute.
The office still rules in the areas of indoctrination and collaboration. Collaboration has to be intentional though. For starters, every meeting space has to treat remote workers as first class citizens. That means solid audio and easy to use camera setups that are well maintained. The tech in these rooms has to be designed with these hybrid meetings in mind. I don’t think it will ever be as good as being in-person or everyone being remote, so these items are tablestakes just to get people considering a trip downtown.
Where the office will truly shine though is in collaboraton between people who normally don’t collaborate. Building relationships and strengthening netowrks is the place where the office still has clear dominance. For example, I went into the office a month or so ago for a meeting run by our facilities team. I don’t work with the facilities team often and certainly not since going full remote 2 years ago. But it occurred to me that I talked with Jan (our facilities manager) every day prior to the pandemic. Why? Because we would always cross paths in the kitchen and strike up a conversation. The kitchen was a sort of central access room and because of the respective locations of our desks, we would constantly find ourselves running into each other in the morning and afternoon. A happy little accident.
The office was great for building these sorts of connections. But now we’ll want to be more deliberate. How do we construct the office space to generate these common access patterns. Do we need to rethink the idea of these silo’d teams, isolated to one specific spot in the office? How do we design the layouts to encourage and entice foot traffic from many different groups, creating the conditions for the happy little accidents Jan and I shared for over 4 years? The office needs to look very different than how we left it, with these thoughts front and center.
The need for networking becomes apparent when you have more than 4 people from the same department in the office at the same time. The desire for human contact is palpatable. When I go to the office, I spend more time talking and catching up than I do working. Sure that will die down with the frequency of office visits increasing, but the long tail on that is probably bigger than you think.
Many companies aren’t considering a five day a week return to the office schedule. Some are doing the three days in the office, two days remote or a version of that. But many companies don’t dictate who works on what days, so you might not get the colalboration (and therefore the productivity) that you were expecting because people aren’t in the office on the same days. That also means you’ve got a much larger number of personnel combinations, meaning you might not see the same sets of people all the time.
Networking and specific collaboration events is where the office will prove its value. But with a shift away from “where work happens” the office design and layout also needs to change. New tools need to be brought to the office to streamline the in-person/remote collaboration efforts. If you’ve still got people pointing their laptop web cams at the whiteboard for the remote folks, you won’t succeed in this new era of office work. We’ll need to rethink how people are grouped together for work as well. How do we entice the chance meetings that were fueled by common spaces such as the lunch and coffee areas? Does grouping people by departments still make sense if the office isn’t about general work getting done?
These are all questions that we’ll need to ask ourselves as we figure out where the office fits into corporate life. I believe the office does still have a future but only if we rethink its purpose and the organization’s commitment to that purpose. You’re not going to lure people back to the office with snacks and unlimited soda. The office will have to offer something that can’t be found at home. People and their need for interaction both personal and professional will be the cornerstone of the weekly office visits.
Ticket management is one of those boring topics that comes up every now and again in OPS circles. A lot of teams that I’ve chatted with try to model their ticket management process after the development process using Sprints/Scrum. I’ve found Scrum to be limiting in an Operations setting. The amount of uninterrupted work that comes into the queue for OPS teams makes it imperative that your workflow accommodates and expects unplanned work. In this first of several posts, I’ll talk about how my team manages their work.
I should start with a little sales job on why you need tickets. It goes beyond just tracking your work. It’s about making your work visible to you and your team, but also to others around you who have a vested interest in what you’re working on and also when you intend to work on it. A Kanban Board can help to organize and communicate what the team is currently focused on. There are plenty of great posts about how Kanban works and its goals, so I won’t dive too deep into that. I’ll just highlight a few key points.
Limit the Work in Process (WIP) at any one time
Make sure all work is visible and has a ticket associated with it
Work should flow left-to-right through the process
Limiting Work in Process
One of the key tenants of Kanban is to make sure you’re limiting the amount of work in process at any one time. The knee jerk reaction is to pull in more work to increase throughput of the team but it’s counterproductive. Little’s Law speaks to this particular phenomenon well. The best way I’ve found to limit WIP is to limit how many tickets each person can have in process at any one time.
For my team, we’ve opted for a maximum of two tickets per person in process. This allows engineers to hop between the tickets in the event their other tickets is blocked and it’s beyond the engineer’s ability to unblock it. This limit also helps us to gauge how many tickets we can handle at any one time in the input queue. (More on that later)
The Backlog
Like SCRUM/Sprints, Kanban workflows have the concept of a backlog. The backlog is a queue of work that you may or may not deliver. When it comes to the backlog, there are no firm commitments.
I’ve seen some Kanban boards where the Backlog is the left-most column on the Kanban board. Personally, I prefer not to display the Backlog at all on the Kanban Board, saving it for a separate board. The reason is that humans have short attention spans.
I want my team laser focused on the things that are in the input queue, because those are the things we’ve given priority to as a team. With the backlog visible, it’s too easy to see a ticket that someone thinks is important or should pop into the work queue right away. The problem with this self-prioritization? Something else stops getting worked on. I know we all believe that multi-tasking is a thing, but it’s not. This leads to missed commitments, more work in the queue than is necessary and confusion from your stakeholders as certain items seem to jump the line without explanation. (Mainly the work engineers prefer to work on) Removing the backlog from the primary working Kanban board helps to stop this from happening.
Another benefit to hiding the backlog is the amount of noise it reduces. Backlogs always grow. Even a well-groomed backlog can be intimidating to teams. You don’t want the crushing weight of expectations constantly in the face of the team. There’s no sense of progress when you see an ever growing queue to the left of your screen. Just think of your own personal to-do system and you’ll get that feeling of dread creeping over you. Protect your team from that feeling. Hide your backlog.
Prioritizing the Backlog
Now that I’ve safely hidden the backlog, my next step is to prioritize it. In my current role we use JIRA for ticket management which allows me to easily order the tickets in the backlog visually. The order updates a ranking value on the ticket which is how Jira keeps track of priority internally. Keeping the backlog ordered by priority makes it easy to select what gets worked on next. Of course priorities can change daily, so there’s a level of discipline that has to be enacted to keep the ordering honest and up-to-date. I prefer that new tickets get added to the bottom of the priorities list, which makes it incumbent on me to re-prioritize the ticket if deemed necessary. If tickets don’t automatically go to the bottom of the priority queue, you’ll find yourself in a last-in first-out queue setup, which will eventually starve all of your older tickets.
The Input Queue
With the backlog safely tucked away and prioritized, the input queue becomes the left-most column on our Kanban Board. The input queue holds all of the tickets that we’ve currently committed to for this iteration. What’s an iteration? For our team, an iteration is the cycle to which we make fresh commitments on new tickets. Every week, we try to commit to a new round of tickets to bring our input queue back to its maximum capacity. If we agree that we’ll commit to 10 tickets per week, at the end of the week we’ll replenish the input queue to get it back to 10. (Or sooner if we run out of tickets)
If you do a good job of keeping your backlog prioritized then it becomes really easy to populate the queue by just taking the top X number of tickets in the backlog and moving them to the input queue. Following this pattern, your input queue should also be ordered by priority. (There are several scenarios where that might not be true, which I will address in a subsequent post) Now your team members can begin pulling tickets from the top of the queue and beginning work on them.
The Columns
Each Kanban board has at minimum 3 columns that represent the phase work is in. They roughly fall into the category of
To Do
In Progress
Done
For simple boards that might be all you need. For me I like to have a little bit more information about where a ticket is in the workflow. More columns means a better idea of where tickets might be bottlenecking when the team starts to slow down. But the more columns there are the more of a burden it can put on the team as they try to figure out the minutiae of where a task is. Unless there’s clear value in the column, avoid getting too detailed in the phases of a ticket. For my team we have the following columns.
To Do
In Progress
Waiting For
Needs PR Approval
QA/Verification
Done
The titles of these categories are pretty self-explanatory except for maybe “Waiting For”. This column is for tickets that are waiting on some sort of external information, time or action. For example, if we’re waiting for Saturday night because that’s when the approved maintenance window is, there isn’t much that the engineer can do to move time forward. The ticket gets moved to the Waiting For column until we can implement the change. (I could probably eliminate the Waiting For Column in favor of a flag status to indicate the ticket is blocked. More on that later)
Tickets will generally flow left-to-right on this Kanban board, showing progression towards being complete. Each phase is important (for my reporting anyway) with regard to where the ticket is in the process and how I can be of assistance. Do I need to wrangle people to get the PR approved? Is a ticket blocked waiting for someone to respond to an email? Has the change been released and we need another team to sign-off saying it’s complete? This flow gives me insight into where we’re at.
Something to keep in mind when you’re designing your workflow. You have to think about the data that you want out of the system, including reports you intend to run. That will ultimately drive how you structure your system. If you don’t intend on reporting or leveraging a status, then in my opinion there’s really no need to have a separate status. Each of these categories I’ve listed above were created to express something I wanted to be able to report on or have a quick status of. This applies to everything in your ticketing system, not just statuses. Labels, ticket types, components, tags, all these things should be driven from some sort of reporting you intend to do.
Wrap Up
When I set off writing this I thought I’d get it all done in a single blog post. But this will clearly be something I need to write about over several blog posts. In my next post I’ll discuss the various issue types I use as well as additional swim lanes that can help to add context to tickets.
Imposter Syndrome is a lot like alcoholism or gout. It comes in waves, but even when you’re not having an episode, it sits there dormant, waiting for the right mix of circumstances to trigger a flare up.
Hi, my name is Jeff and I have Imposter Syndrome. I’ve said this out loud a number of times and it always makes me feel better to know that others share my somewhat irrational fears. It’s one of the most ironic set of emotions I think I’ve ever experienced. The feelings are a downward spiral where you even question your ability to self-diagnose. (Who knows? Maybe I just suck at my job )
I can’t help but compare myself to others in the field, but I’m pretty comfortable recognizing someone else’s skill level, even when it’s better than my own. My triggers are more about what others expect my knowledge level to be at, regardless of how absurd those expectations are. For example, I’ve never actually worked with MongoDB. Sure, I’ve read about it, I’m aware of its capabilities and maybe even a few of its hurdles. But I’m far from an expert on it, despite its popularity. This isn’t a failing of my own, but merely a happen-stance of my career path. I just never had an opportunity to use or implement it.
For those of us with my strand of imposter syndrome, this opportunity doesn’t always trigger the excitement of learning something new, but the colossal self-loathing for not having already known it. Being asked a question I don’t have an answer to is my recurring stress dream. But this feeling isn’t entirely internal. It’s also environmental.
Google did a study recently that said the greatest indicator for high performing teams is being nice. That’s the sort of touchy, feely response that engineers tend to shy away from, but it’s exactly the sort of thing that eases imposter syndrome. Feeling comfortable enough to acknowledge your ignorance is worth its weight in gold. There’s no compensation plan in the world that can compete with a team you trust. There’s no compensation plan in the world that can make up for a team you don’t. When you fear not knowing or asking for help out of embarrassment, you know things have gone bad. That’s not always on you.
The needs of an employee and the working environment aren’t always a match. The same way some alcoholics can function at alcohol related functions and others can’t. There’s no right or wrong, you just need to be aware of the environment you need and try to find it.
Imposter syndrome has some other effects on me. I tend to combat it by throwing myself into my work. If I read one more blog post, launch one more app or go to one more meetup, then I’ll be cured. At least until the next time something new (or new to me) pops up. While I love reading about technology, there’s an opportunity cost that tends to get really expensive. (Family time, hobby time or just plain old down time)
If you’re a lead in your org, you can help folks like me with a few simple things
Be vulnerable. Things are easier when you’re not alone
Make failure less risky. It might be through tools, coaching, automation etc. But make failure as safe as you can.
When challenging ideas propose problems to solve instead of problems that halt. “It’s not stateless” sounds a lot worse than “We need to figure out if we can make it stateless”
Writing this post has been difficult, mainly because 1) I don’t have any answers and 2) It’s hard not to feel like I’m just whining. But I thought I’d put it out there to jump start a conversation amongst people I know. I’ve jokingly suggested an Imposter Syndrome support group, but the more I think about it, the more it sounds like a good idea.