By: Mike Dorman (@misterdorm)
Edited By: Ben Cotton (@Funnelfiasco)
I want to suggest to you what I think is the number one tip for advancing your career (and, really, for advancing your life, too). It’s not about education, a certain new skill you have to learn, or anything like that.
It’s simply this: do everything you can to help other people.
We all have a responsibility to help each other get better. None of us can reach our full potential unless we’re helping each other to learn and grow. This is especially true in the technology industry: things change so fast and move so quickly, it’s impossible for any one person to keep up.
An analogy I like is being a “boat lifter”: a rising tide that lifts up everyone around you. (That’s actually how I describe my work role sometimes. I’m a boat lifter–I’m here to help out everyone around me.) I think it’s a good metaphor for us to think about what we should be doing every day.
You probably already know some people who are living this out. Here are a couple examples folks that I know:
Helping others be successful is my success. #RisingTideLiftsAllBoats
— Swarna Podila (she/her) (@skpodila) December 2, 2018
Senior developers: unblocking and being a force multiplier to the junior developers on your team is literally the most important thing you can and should be doing with your time.
— Steve Kinney (@stevekinney) February 1, 2018
If you're crushing code, while members of your team are stuck, you're actively hurting the team.
I want to point out this quote from John Allspaw:
“On Being a Senior Engineer,” Kitchen Soap
And I want you to notice it says “mature engineers” here. Not “senior engineers.” Not “principal engineers.” While this practice is a necessary condition for any senior role, this can and should be practiced by everybody at all levels.
So let me suggest 10 disciplines we can instill in ourselves and others to help each other get better.
1. Extra Set of Eyes
Realize that you bring an extra set of eyes and a unique perspective to every situation. Those around you can learn and be helped by this, as long as you’re willing to share it.
Your past experiences give you a kind of view into the future, where you can see some problems before they happen. Make sure to be calling these out! It’s so important to those around you!
Think about it this way: it’s like clearing away the mines before other people walk across the field. It’s all about identifying and stopping problems before they happen.
Code reviews and pair programming are a perfect example of this. Think of how often a bug is overlooked or a typo makes its way into a merged pull request. So much of that can be prevented on the front end simply by having someone else look it over. Automated tests and CI/CD systems can only get you so far—nothing can replace another human.
Make it a priority in your daily routine to ask for—and more importantly, perform— reviews. This is simply the most valuable thing you can do for your coworkers, your organization, and your career.
2. Patterns of Pain
Be on the lookout for “patterns of pain.” These are the recurring things that are always causing trouble and burning a lot of time. Focus yourself and others on dealing with those things first. Otherwise, they’ll just keep dragging you down.
Tech debt comes to mind here, but that’s really not what I mean. When we talk about tech debt, we mostly mean old or “dusty” code, or things that aren’t quite as perfect as we’d like. But, they’re actually not causing any problems. They’re working just fine.
What I mean are the things that are actively on fire and giving you headaches every day. The false positive alerts that are going off, the “automation” that’s failing more often than it’s succeeding, the server that crashes once a week and no one knows why, so you just reboot it every time. Those are the things you need to go after first!
3. Focus on Outcomes
This borrows from Agile quite a bit, but I actually think it’s super useful in our work roles, as well as everyday life: Focus everything you do on specific outcomes. The outcomes are your finish line, your ultimate goal, what you actually want to have happen.
As an example, after you eat dinner, you have to wash your dishes and clean up your kitchen, right? Those are the tasks, not the outcome. The outcome you’re after is to have enough clean dishes to cook and eat your next meal. There are a lot of different ways to accomplish that goal! So really try to aim for the outcome and don’t focus too much on the specific tasks that get you there.
So often we immediately jump to the implementation details, or the “how”, instead of really thinking through the “what.” I get it: you want to jump in, get your hands dirty, and build something. Your brain immediately starts churning with ideas about how to make it happen. But your finished product will be so much better if you truly understand the end goal before focusing on how to get there.
4. Continuous Evaluation
Constantly be evaluating how you’re doing against those outcomes. You can never get any better unless you’re doing this. Build that habit in others as well. It can be really easy to lose this perspective.
A good litmus test for that is to take your team’s outcomes and try to connect those to the higher-level goals of the company. You all need to be pulling in the same direction. After all, this is how your team provides value to the organization.
You can do this in your personal life, too. Just ask yourself, “is what I’m doing in my life helping to advance, encourage, or otherwise help those around me?”
5. Be Ready to Change Direction
If you have trouble making those connections, be prepared to shift your priorities. And this could even mean abandoning work or projects that are already in progress. It’s ok not to finish that stuff! If it’s not giving you the value and outcomes you want, there’s no point in doing it.
This is the “fail fast” mantra we’ve all heard. The most successful companies and teams jettison anything they’re doing that’s not producing benefit for their customers. That way they can focus their time and energy on things that are truly valuable.
But this could be a problem when you have to kill someone’s pet project. It’s pretty painful to have your hard work abandoned. That’s a difficult situation for people to be in. So what you need to do is help others to see that their value comes from their knowledge and skill set, not the particular project they work on.
6. Real Feedback
A good way to do that is to get people thinking about their career goals (really, their career outcomes that they want), and how to get there. Constructively point out areas they can be working on.
A good place to start is your company’s job leveling or career bands document (hopefully you have one!) Be familiar with the expectations for each category and level, and use that as a guide to identify improvement and growth opportunities in others.
This is especially important for those of you who have more experience. You have tons of great career advice that people newer to the industry need to hear from you! Be constructive, but also be honest. It’s super important to actually provide real feedback about this.
Sometimes we have a tendency to just say, “Hey, you are doing a great job, keep it up! Just keep doing what you’re doing!” I’ve certainly had some reviews like that (maybe you have, too), where there’s really no constructive advice about what to do differently.
But that is so not helpful. People need real feedback about how to get better!
7. Healthy Work/Life Balance
Next, encourage, instill, and practice a healthy work-life balance. We all know people who will stay up all night to fix an outage or knock out a big project. Sometimes we refer to these people as are our “heroes.” But they’re really not heroes at all. They’re encouraging all the wrong behavior and it’s not good for anybody. If you’re not sure who the “hero” on your team is--maybe it’s you!
Watch for people who are burned out, or aren’t as happy as they used to be. Talk to them and find out why! Don’t let them go unnoticed! Encourage them that it’s OK to take time to recharge. We need to be actively advocating for this in our industry! And in other areas of life, as well. I think we can agree that we’re all just way too busy.
8. Be Humble
Seek to be humble, and don’t attract a lot of attention to yourself. (This is good general life advice, too.) When complimented for a job well done, make sure to give credit also to all those around you who helped. Very little of what we do is completely on our own. Again, this is about us all working together to make everybody better.
Resist the temptation to believe that you’re better than everyone else. Let’s be honest: we all have this tendency sometimes. You might be the most senior and experienced person in your company, but remember there’s always something that somebody else knows more about than you.
It might be frustrating to walk someone more junior step-by-step through completing a project. But you were once at that level, too, and you needed the help and guidance of others to get to where you are now.
9. Walk the Path Together
Recognize that there will always be people in front and behind you on your journey. And you need help from both. You need both mentors and mentees in your life. You can lean on all the experience of those who have gone before you. And you need to be an advocate and encouragement to those walking the path behind.
Find a couple of people more senior and a couple of people more junior than you, and meet with them regularly. These are times not to work on projects or “talk shop”, but instead to dig into career goals, feedback about how things are going, and to soak up the knowledge and insights the other person has for you.
This is very much like the “extra set of eyes” discussed above. Often others are able to notice things in us that we can’t see for ourselves.
10. Teach Others to Fish
Finally, don’t keep these skills to yourself. We all need to be doing this. We can’t do it in a vacuum. Don’t just do these things, but teach others to do them as well. Work to build a culture in your organization, in your family, and among your friends, of helping each other succeed.
If you think you don’t have time for this, frankly, you’re wrong. You must make time. This is immensely more important and valuable than any code you’ll ever write or servers that you operate. The joke about automating and delegating yourself out of a job is true in the exact opposite: the more knowledge and skills you can impart on others, the more important and critical you become.
So I want to take you back to Swarna’s advice: helping others be successful is your success.
Let’s all be boat lifters every day!
Additional resources & articles on this topic:
- “On Being a Senior Engineer,” John Allspaw
- “Breaking in a New Company as an SRE,” Amy Tobey
- “The Origins of Opera and the Future of Programming,” Jessica Kerr
- “On Being a Principal Engineer,” Silvia Botros
- “The Myth of the Sufficiently Smart Engineer,” Aaron Blohowiak
- “Zero to SRE“, Kim Schlesinger
- “Always Two There Are — A Mentor and a Mentee“, Steven Wilkerson and Meghan Heisler
- “How We Keep Learning“, Silvia Botros
2 comments :
Valuable Information!!
Docker and Kubernetes Training in Hyderabad
Kubernetes Online Training
Docker Online Training
Post a Comment