There are no adults in the room

Dear new developer,

One of the most shocking things I learned when I started working in a professional capacity is that there are no adults in the room.

That is not to denigrate everyone at your company, working hard to help make the place successful.

Rather, it is to say that no one knows everything and everyone is doing the best they can. (Well, most people, and it’s good to assume positive intent.)

If you go into a company expecting to be handed work on a platter and to have someone know exactly what is going on, the way that, say, a college professor knows how to teach physics 101, you are going to be disappointed. It’s much more likely that the folks who are senior to you are trying to stay one step ahead of the customer.

There are people who are more or less expert at the problem space, but I’ve only worked at one place in my life where someone was truly a master of almost every aspect of the business. And even in that place, there was a lot of uncertainty around new programs and a lot of “hmmm, will that work, let’s try it and see”.

(This isn’t isolated to the software industry, by the way. I know folks in other industries and they aren’t perfectly run organizations. Even in organizations that really matter, like hospitals, the chaos and uncertainty is there.)

So, once the maelstrom of chaos and uncertainty arrives, there are two ways to look at it

  • problem. Oh my god, no one knows what the heck is going on. What kind of place is this?
  • opportunity. Excellent, I can see that folks are grappling toward solving problems and need some help. Let me put my nose to the grindstone and see how I can help.

Of course, there is some level of uncertainty that you shouldn’t accept (anything that could damage your health, ethics or paycheck, for starters). But it was sobering to me to realize that there are no true adults in the room at any organization.

Just people trying to do their best.

Sincerely,

Dan

Write a brag document

Dear new developer,

You will encounter good managers and bad managers in your career. I’ve found that one common thread for all managers is that they are busy. Busy with meetings, busy with coordination with other teams or parts of the business, busy putting out fires, busy with helping team members. Busy busy busy.

They also will likely be responsible for your career. Promotions, compensation increases, title changes. A good manager will want you to be challenged and grow and learn.

However.

The only person who really cares about your career is you.

You can help your manager help you by helping them know what you do. Sometimes this feels like an undue burden. Surely your manager can keep track of what you’ve accomplished on their team. And some do know some of the stuff you’ve done, some time.

But what you want is to help them know everything that you’ve done that you’re proud of. This helps them understand what a great team member you are, and also gives them ammunition to fight for resources (money, projects) that you deserve.

One place to put this information is in your LinkedIn profile (more about my opinion on LinkedIn). Of course, make sure you don’t reveal any company secrets (projects, launches, technologies) in this.

Another alternative is an internal brag document. Julia Evans has written a great post on writing one. This outlines one way you can help your manager (and yourself) keep track of all the great work you’ve done. It can be far more detailed since it is internal and not limited in length.

It’s not just limited to project accomplishments. You can build a bigger story. From the post:

In addition to just listing accomplishments, in your brag document you can write the narrative explaining the big picture of your work. Have you been really focused on security? On building your product skills & having really good relationships with your users? On building a strong culture of code review on the team?

I haven’t written one of these (although you could consider my blog somewhat of a brag document, I suppose. Yet another reason to start a blog). But having some kind of record of your accomplishments that you can share with your manager will help them help you.

Sincerely,

Dan

Think deeply about engineering management

Dear new developer,

This post from Charity about the choices you face as an engineer, and the challenges of technical management, is wonderful. As a new developer, you’re probably a few years away from thinking about that (but perhaps not. If you join a startup rocketship, it’s possible you’ll be managing people in months). But you have to manage your own career, and moving into management is one of the main career paths for a developer. (I’d say the others include: starting a business, becoming a senior developer, or becoming a consultant.)

Charity talks about how management is an entirely new skillset, and how being a technical leader plus a manager is a great way to get amazing things done. She also covers the negatives of “climbing the ladder” to ever more senior leadership. Charity doesn’t mince words:

Your job [as a newly minted technical manager] is to leverage that technical expertise to grow your engineers into great senior engineers and tech leads themselves.  Your job is not to hog the glory and squat on the hard problems yourself, it’s to empower and challenge and guide your team.  Don’t suck up all the oxygen: you’ll stunt the growth of your team.

I mean, there’s a reason we don’t lure good people managers away from Starbucks to run engineering teams. It’s the intersection and juxtaposition of skill sets that gives engineering managers such outsize impact.

One warning: Your company may be great, but it doesn’t exist for your benefit.  You and only you can decide what your needs are and advocate for them.  Remember that next time your boss tries to guilt you into staying on as manager because you’re so badly needed, when you can feel your skills getting rusty and your effectiveness dwindling.  You owe it to yourself to figure out what makes you happy and build a portfolio of experiences that liberate you to do what you love.  Don’t sacrifice your happiness at the altar of any company.  There are always other companies.

I don’t tell you this now, new developer, because I want to scare you away from management. I’m an engineering manager right now and it’s a wonderful place to be. You have autonomy, you can help fix problems you see in your organization, and you get to recruit and help grow people into the best developers that they can be. But just be aware that when you get to a certain level, it’s a one way path away from some of the most fun parts of software development–building things, solving hard technical problems, and being a doer.

Please read the whole post from Charity: Engineering Management: The Pendulum Or The Ladder

Sincerely,

Dan