{"id":3568,"date":"2021-12-08T09:00:00","date_gmt":"2021-12-08T17:00:00","guid":{"rendered":"https:\/\/coderpad.io\/?p=3568"},"modified":"2022-06-14T08:43:06","modified_gmt":"2022-06-14T15:43:06","slug":"making-the-transition-from-software-engineer-to-software-engineering-manager","status":"publish","type":"post","link":"https:\/\/coderpad.io\/blog\/engineering-management\/making-the-transition-from-software-engineer-to-software-engineering-manager\/","title":{"rendered":"Making the Transition from Software Engineer to Software Engineering Manager"},"content":{"rendered":"\n<p>Are you looking to move to a management role in a software engineering organization? For many engineers, it can seem like a daunting jump. But with the right preparation\u2014and by knowing what to expect\u2014you can make the transition as seamlessly as possible.<\/p>\n\n\n\n<p>Naturally, there are many different reasons why senior developers or tech leads look to enter management roles.<\/p>\n\n\n\n<p>Perhaps you\u2019re more of a people person and feel ready to inspire others; maybe you have your eyes set on projects that can only be realized with the help of a larger team; it\u2019s possible, too, that you\u2019ve been in an environment with sub-par leadership and you\u2019re ready to step up and do things the right way.<\/p>\n\n\n\n<p>It\u2019s also important to remember that, in the end, nothing is set in stone. Many of the best technical leaders oscillate between roles <em>on<\/em> the team and as a <em>leader <\/em>of<em> <\/em>the team in what has become <a href=\"https:\/\/charity.wtf\/2017\/05\/11\/the-engineer-manager-pendulum\/\" target=\"_blank\" rel=\"noopener\">known as<\/a> the engineer\/manager pendulum. By understanding the finer points of software development and being able to navigate the priorities of various decision-makers, a software manager can support teams to do their best work.<\/p>\n\n\n\n<p>Get the facts straight and take an inside look at how you can make the move to become an engineering manager with this guide.<\/p>\n\n\n<aside class=\"\n    cta-banner\n     cta-banner--bg-blue      cta-banner--has-media \"\ndata-block-name=\"cta-banner\">\n    <div class=\"inner\">\n        <div class=\"content\">\n                            <h2 class=\"headline\">Learn how to run front-end developer interviews that don&#8217;t suck<\/h2>\n            \n                            <div class=\"cta-buttons\">\n                                    <a href=\"https:\/\/coderpad.io\/blog\/interviewing\/5-tips-for-interviewing-frontend\/\" class=\"button  js-cta--read-our-guide\" data-ga-category=\"CTA\" data-ga-label=\"Learn how to run front-end developer interviews that don&#039;t suck|Read our guide\">Read our guide<\/a>\n                                <\/div>\n                    <\/div>\n                    <div class=\"media\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"432\" height=\"342\" src=\"https:\/\/coderpad.io\/wp-content\/uploads\/2022\/08\/Illustration-of-man-with-beard-popping-out-of-computer-chat.png\" class=\"attachment-large size-large\" alt=\"\" srcset=\"https:\/\/coderpad.io\/wp-content\/uploads\/2022\/08\/Illustration-of-man-with-beard-popping-out-of-computer-chat.png 432w, https:\/\/coderpad.io\/wp-content\/uploads\/2022\/08\/Illustration-of-man-with-beard-popping-out-of-computer-chat-300x238.png 300w\" sizes=\"auto, (max-width: 432px) 100vw, 432px\" \/>\n            <\/div>\n            <\/div>\n<\/aside>\n\n\n\n<h2 class=\"wp-block-heading\">Traits of an effective manager<\/h2>\n\n\n\n<p>As you\u2019ve probably seen over the course of your career as a software engineer or technical team member, <strong>management is itself a distinct skill<\/strong>. No matter your technical acumen, managing a software team takes a calculated approach\u2014one centered on making sure developers can thrive.<\/p>\n\n\n\n<p>It\u2019s also key to note that the same skillset that made you successful as an individual contributor or senior engineer doesn\u2019t always carry over to the management side. For instance, while autonomy and burning the midnight oil to take on last-minute fixes on a tight deadline might serve you well as an IC, a manager should be more focused on allocating resources and delegating efficiently. We\u2019ll cover a few more of these differences later.<\/p>\n\n\n\n<p>When gathering a base of knowledge on what it takes to lead the right way, it\u2019s worth turning to the experts. Peter Drucker, one of the most influential management strategists of the twentieth century, summed up the habits of effective executives <a href=\"https:\/\/hbr.org\/2004\/06\/what-makes-an-effective-executive\" target=\"_blank\" rel=\"noopener\">as such<\/a>: \u201cThey get the right things done.\u201d&nbsp;<\/p>\n\n\n\n<p>Seems simple enough, right? Not exactly. With constantly competing priorities, evolving requirements, and the minutiae of bugs holding up developers\u2019 progress on your watch, the decision of what <em>really<\/em> needs to be done in a given moment isn\u2019t always clear.&nbsp;<\/p>\n\n\n\n<p>In order to reach a point where decision-making becomes second nature, Drucker&#8217;s analysis points out other habits <a href=\"https:\/\/medium.com\/continuousdelivery\/getting-the-right-things-done-395358baf3dd\" target=\"_blank\" rel=\"noopener\">that include<\/a>:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Building on peoples\u2019 strengths<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li>Choosing the correct priorities<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li>Understanding the results you\u2019re expected to deliver<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li>Continuously improving how time is managed<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">What separates managers and individual contributors?<\/h2>\n\n\n\n<p>So, how exactly do your responsibilities differ as a manager compared to an individual contributor?<\/p>\n\n\n\n<p>Perhaps the biggest (and most obvious) change will be the move from writing code yourself to empowering a team to do it instead. While some skills from your background as a developer will come in handy\u2014for instance, attention to detail during a code review\u2014you\u2019ll need to deploy them in different ways.&nbsp;<\/p>\n\n\n\n<p>As a manager, it\u2019s crucial to <strong>measure overall progress against a roadmap<\/strong> that could span a year, not just the next two sprints. You might also spend your time early on <a href=\"https:\/\/coderpad.io\/blog\/engineering-management\/6-ways-to-manage-your-software-engineering-team-more-effectively\/\">identifying delivery metrics for bottlenecks<\/a>, such as code churn or time to merge.&nbsp;<\/p>\n\n\n\n<p>Because leading a team of coders requires a holistic view and a longer-term orientation, it also means spending more time managing schedules, sending emails, and making sure the relevant parties in the engineering and product organization are kept in sync. You will communicate with a variety of stakeholders across departments, from project managers and owners to marketing heads. That means you may also need to act as a chameleon, adjusting your tone depending on the audience.<\/p>\n\n\n\n<p>Speaking of keeping things in sync, one of your primary responsibilities as a software development manager is <a href=\"https:\/\/www.scaledagileframework.com\/apply-cadence-synchronize-with-cross-domain-planning\/\" target=\"_blank\" rel=\"noopener\">establishing cadence<\/a>. A team\u2019s cadence is crucial because it operates as the framework for pacing out work and helps to set routines. With the right cadence, when bugs or unexpected events occur, developers can focus on individual fixes without losing track of the roadmap.&nbsp;<\/p>\n\n\n\n<p>A team\u2019s cadence also encompasses the frequency of meetings and 1-on-1s, and it\u2019s up to you to set the precedent for meaningful communication. It takes a great deal of planning to strike the balance between uninterrupted time \u2018in the zone\u2019 for developers and a cohesive team dynamic.<\/p>\n\n\n\n<p>Another key distinction between ICs and managers involves the types of metrics used to evaluate progress.&nbsp;<\/p>\n\n\n\n<p>As a software development manager, <strong>you should assess performance using both quantitative and qualitative criteria<\/strong>. Though you may be more accustomed to quantitative metrics from your time as a developer, a team\u2019s long-term success also hinges on things like worker satisfaction, cultivating a sense of belonging, and providing opportunities for upskilling.<\/p>\n\n\n\n<p>Tools to measure quantitative performance and set new milestones, such as RACIs, are still needed, but getting qualitative results involves handling the intangibles. You should plan carefully, observe, and iterate in order to match the right personnel to the right projects. It\u2019s also crucial to step in when a team member is struggling and pair them with more senior engineers who can provide support and aid in their growth.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Understanding how to spend your time as a manager<\/h2>\n\n\n\n<p>On any given day, there\u2019s a surplus of possible tasks. How, then, can you best approach Drucker\u2019s principle of <em>getting the right things done<\/em>? Here\u2019s a breakdown of how your time as a manager is likely to be spent<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Managing<\/strong>: conducting team meetings, 1-on-1s, and taking time to mentor (30%)<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Monitoring<\/strong>: assessing the team\u2019s delivery metrics as well as individual performance (15%)<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Hiring<\/strong>: setting up best practices for interviews and interviewing candidates yourself. In terms of <strong>recruiting<\/strong>, your efforts might extend to attending conferences or drafting blog posts (15%)&nbsp;<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Planning and Communicating<\/strong>: serving as a point of contact and communicating up with senior managers and down to the team. You\u2019ll also spend time gathering resources and conducting joint planning for long-term goals with the Product team (25%)<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Developing<\/strong>: where technical work is concerned, the time you spend writing code or conducting code reviews will, of course, decline the more senior the role.&nbsp; (15%)<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Preparing to make the move<\/h2>\n\n\n\n<p>If you\u2019re still deciding if moving from a senior engineering position to a managerial position is right for you, here\u2019s the good news: You can find opportunities to test out the water beforehand.<\/p>\n\n\n\n<p>There are numerous informal ways you can begin to understand the types of responsibilities a software director needs to take on while still acting as a senior engineer or tech lead yourself. A few preliminary steps might include:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Taking on more leadership responsibilities within your team and existing projects. This might mean stepping up to help onboard new developers or taking it upon yourself to define a team\u2019s unique delivery metrics<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li>Playing a more active role in the hiring process by participating in <a href=\"https:\/\/coderpad.io\/blog\/interviewing\/best-practices-for-remote-technical-interviews-with-coderpad\/\">interviews<\/a> and providing feedback that can refine best practices<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li>Sitting in on meetings with cross-functional team and different stakeholders, such as product owners and managers or even customers. This can further help you to understand the soft skills it takes to operate between technical and non-technical environments<\/li><\/ul>\n\n\n\n<p>Remember, the job of a manager and developer are both about problem-solving (even if the problems themselves are different). Therefore, in addition to explicitly stating your intention to move toward management, you can become a force multiplier in your current position.&nbsp;<\/p>\n\n\n\n<p>Demonstrating your ability to craft software architecture that is scalable and reliable, providing prompt code reviews, and leading conversations that drive technical decisions are all useful litmus tests for what lies ahead in management. Lastly, you can always move up the ladder at your current company and take on a different leadership role before making a more drastic transition.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What to expect in your first 90 days as a manager<\/h2>\n\n\n\n<p>Like all other skills, managing effectively takes time. Unlike working as an individual contributor, though, the bulk of your learning as a leader comes through engaging with and understanding the people around you.<\/p>\n\n\n\n<p>That\u2019s why, from the outset, it\u2019s essential that you build and inspire confidence. As mentioned, you need to establish a cadence before making progress; early on, that means collecting as much feedback as possible about work pace, how individuals understand requirements, and more. One-on-ones are crucial during this period to both familiarize yourself with the team and get a sense of each individual\u2019s capabilities.<\/p>\n\n\n\n<p>Among direct reports, you should strive for clear communication and open feedback channels. Fostering the trust this requires can be a process in and of itself, and it begins with transparency. In order for your ICs to get the clearest idea of your expectations, you should explain who you report results to, tell them about your past experiences and technical proficiency, and make sure they see that constraints and roadblocks are an accepted part of the process.<\/p>\n\n\n\n<p>One of the most common mistakes of first-time managers is trying to take on too many tasks.&nbsp; You\u2019re surrounded by talented developers for a reason. Get comfortable delegating responsibility and do your best to cultivate a sense of shared accountability; this way, sustainable progress will be more attainable and you won\u2019t be playing catch-up while learning the ropes yourself. Outside of the technical team, you also need to hit the ground running in terms of familiarizing yourself with a broad set of stakeholders to avoid chasms between your technical team and the rest of the organization.<\/p>\n\n\n\n<p>Lastly, in what can be a whirlwind time during the early days of management, you should still dedicate time to learning. From reading up on what works and doesn\u2019t from other leaders to connecting with mentors, being intentional about improvement can send positive ripples to direct reports and higher-ups alike.&nbsp;<\/p>\n\n\n\n<p>Are you ready to forge a new path from day one as a manager? Get ahead by reviewing ways to optimize technical interviews and get the perspective of industry veterans across <a href=\"https:\/\/coderpad.io\/blog\/\">our blog<\/a>.&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>By understanding the finer points of software development and being able to navigate the priorities of various decision-makers, a software manager can support teams to do their best work.<\/p>\n","protected":false},"author":1,"featured_media":3570,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[10],"tags":[],"persona":[],"blog-programming-language":[],"keyword-cluster":[],"class_list":["post-3568","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-engineering-management"],"acf":[],"_links":{"self":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/posts\/3568","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/comments?post=3568"}],"version-history":[{"count":5,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/posts\/3568\/revisions"}],"predecessor-version":[{"id":7910,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/posts\/3568\/revisions\/7910"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/media\/3570"}],"wp:attachment":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/media?parent=3568"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/categories?post=3568"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/tags?post=3568"},{"taxonomy":"persona","embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/persona?post=3568"},{"taxonomy":"blog-programming-language","embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/blog-programming-language?post=3568"},{"taxonomy":"keyword-cluster","embeddable":true,"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/keyword-cluster?post=3568"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}