وبلاگ بلیان

Think Like a Software Engineering Manager

معرفی کتاب «Think Like a Software Engineering Manager» نوشتهٔ Akanksha Gupta، منتشرشده توسط نشر Manning Publications Co. LLC در سال 2024. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است. «Think Like a Software Engineering Manager» در دستهٔ بدون دسته‌بندی قرار دارد.

Unlock your full potential as an effective, efficient, and inspiring leader, and be the software engineering manager that your team deserves! Think Like a Software Engineering Manager is full of all the skills you’ll need to thrive in software leadership, including: People and performance management Empathy and feedback Delegation and learning to let go Hiring amazing engineers and handling attrition Collaborating with cross-functional partners Managing expectations at all levels Implementing DevOps Time and change management Most dev teams are only as good as their leader. Think Like a Software Engineering Manager teaches you the skills you need to hire, train, and lead a successful software development team. In this practical guide, you’ll explore all aspects of the Software Engineering manager’s job, from operational practices along the software development lifecycle to the core skills of handling humans. Experienced team leader Akansha Gupta provides a well-tested framework that can help you handle almost any quandary or crisis, along with interesting and revelatory stories about her experience as an engineering manager. About the technology A superb software engineering manager needs to wear many hats: amazing communicator, effective decision maker, thoughtful mentor, and, of course, technical expert. This book helps you build your strengths and shore up your weaknesses so you can lead a productive team that consistently delivers quality software. About the book Think Like a Software Engineering Manager covers the three pillars of software leadership success: people, product, and process. You’ll start with the core concepts of employee management, including handling performance, effective hiring, and when you need to delegate. You’ll quickly progress to the secrets of delivering large scale projects, implementing DevOps, and managing change—everything you need to lead like a pro. Anecdotes and stories from experts in industry give you insider knowledge you won’t find anywhere else. Plus, exercises at the end of each chapter help solidify your understanding and prepare you for success in the role. About the reader For anyone interested in leading software teams, from engineers and project/product managers considering a career move to experienced EMs looking to grow and improve. About the author Akanksha Gupta is an experienced Engineering Manager currently leading full stack teams with Amazon AWS. Prior to AWS, she has worked for Robinhood, Audible, and Microsoft. She is an Amazon Bar Raiser, helping with hiring initiatives and calibration of potential candidates, and has been a mentor to early and mid-career developers, and is a huge advocate of Women in Tech. Think Like a Software Engineering Manager brief contents contents preface acknowledgments about this book Who should read this book? How this book is organized: A road map liveBook discussion forum about the author about the cover illustration Part 1—Start with the people 1 Exploring the engineering manager role 1.1 Demystifying the EM role 1.1.1 Roles and responsibilities: The core competencies 1.1.2 Leadership versus management 1.1.3 Traits of a good engineering manager 1.2 Success metrics as an engineering manager 1.2.1 Business metrics 1.2.2 Development velocity 1.2.3 Team morale 1.2.4 Operational excellence metrics 1.3 Leadership styles 1.3.1 Autocratic 1.3.2 Democratic 1.3.3 Delegative 1.3.4 Transactional 1.3.5 Transformational 1.3.6 Servant 1.3.7 Choosing your leadership style 1.4 Stop and think: Practice questions 2 Individual contributor to engineering manager 2.1 Differences between the IC and EM roles 2.2 Common misconceptions 2.2.1 IC to EM is not necessarily a promotion 2.2.2 EMs do not always write code 2.2.3 Coding rounds are not always necessary when changing jobs as an EM 2.2.4 Not every sound software engineer is a good manager 2.3 Intentions and motivations 2.4 A three-phase approach for ICs to EMs 2.4.1 Phase 1: Before becoming an EM 2.4.2 Phase 2: Transition period 2.4.3 Phase 3: Post-transition period 2.5 Challenges of a new engineering manager 2.5.1 Prioritizing coding over people 2.5.2 Setting clear goals and expectations 2.5.3 Struggling with delegation 2.5.4 Coping with changing success metrics 2.5.5 Resolving conflict 2.5.6 Handling the speed-vs.-quality dilemma 2.5.7 Acknowledging and recognizing others 2.5.8 Keeping promises made by previous leaders 2.5.9 Managing people and performance 2.5.10 Managing time 2.5.11 Documenting 2.5.12 Communicating 2.6 Assisting the IC-to-EM transition 2.7 Stop and think: Practice questions 3 Managing people, teams, and yourself 3.1 Managing people 3.1.1 Having one-on-one conversations 3.1.2 Supporting junior versus senior engineers 3.1.3 Resolving conflicts between team members 3.1.4 Challenging team members 3.1.5 Leading by example 3.2 Managing teams 3.2.1 Defining team goals, vision, and strategy 3.2.2 Handling morale problems 3.2.3 Building trust and transparency 3.2.4 Convincing teams about dependencies in the team road map 3.2.5 Managing remote teams 3.2.6 Accepting responsibility for your decisions 3.2.7 Evaluating metrics for the team 3.2.8 Avoiding burnout 3.3 Managing yourself 3.3.1 Identifying opportunities 3.3.2 Succeeding as a manager 3.3.3 Recognizing that everyone makes mistakes 3.3.4 Managing emotions and well-being 3.4 Stop and think: Practice questions 4 Managing performance 4.1 Importance of managing performance 4.1.1 Sustained productivity 4.1.2 Career planning 4.1.3 Proactive feedback 4.1.4 Alignment on strategic goals 4.1.5 Better retention chances 4.1.6 Plans for future hiring and training programs 4.2 Best practices for managing performance 4.2.1 Promoting transparency 4.2.2 Ensuring fairness 4.2.3 Avoiding the Halo and Horns Effect 4.2.4 Providing recognition 4.2.5 Communicating effectively 4.2.6 Providing training 4.2.7 Performing continuous performance management 4.3 Performance reviews 4.3.1 Evaluating performance 4.3.2 Calibrating across teams/organizations 4.3.3 Preparing and conducting performance reviews 4.3.4 Handling pushback on the feedback 4.3.5 Using a performance review template 4.4 Managing high performance 4.4.1 Identifying high performance 4.4.2 Supporting high performers 4.5 Managing low performance and underperformance 4.5.1 Managing underperformance 4.5.2 You win some, you lose some 4.5.3 Communicating the outcome to the rest of the team 4.5.4 Managing an underperforming team 4.6 Stop and think: Practice questions 5 Delegation: Learn to let go 5.1 The art of delegation 5.1.1 Avoid the do-it-yourself attitude 5.1.2 Don’t be the sole knowledge bearer 5.2 Delegation vs. allocation vs. substitution 5.2.1 Delegation vs. allocation 5.2.2 Delegation vs. substitution 5.3 The when, why, what, who, and how of delegation 5.3.1 When and why to delegate 5.3.2 What task to delegate 5.3.3 Whom to delegate to 5.3.4 How to delegate and support 5.4 Framework for delegation 5.4.1 Supporting delegation 5.4.2 Tracking delegation 5.5 Teaching delegation to others 5.6 When delegation goes wrong 5.7 Stop and think: Practice questions 6 Rewards and recognition 6.1 Recognition levels 6.1.1 Top-down 6.1.2 Peer 6.1.3 360-degree 6.2 Effective recognition principles 6.2.1 Timely 6.2.2 Frequent 6.2.3 Specific 6.2.4 Visible 6.2.5 Fair 6.3 Forms of recognition 6.3.1 Group recognition 6.3.2 Individual recognition 6.4 Stop and think: Practice questions 7 Hiring 7.1 Following a hiring framework 7.1.1 Identifying the need for hiring 7.1.2 Sourcing potential candidates 7.1.3 Setting up hiring rounds and the loop 7.1.4 Conducting the sales call 7.1.5 Creating an onboarding plan 7.2 Staffing from scratch versus hiring for existing teams 7.2.1 Purpose 7.2.2 Sizing 7.2.3 Specialization of skills and experience 7.2.4 Diversity 7.2.5 Team dynamics 7.2.6 Tale from the trenches 7.3 Hiring externally versus growing internal talent 7.3.1 Hiring externally 7.3.2 Growing talent internally 7.4 Developing the hiring pipeline 7.5 Employing hiring programs for positive reinforcement 7.5.1 Internship/campus hiring programs 7.5.2 Returnship programs 7.5.3 Diversity, equity, and inclusion programs 7.6 Stop and think: Practice questions 8 Handling attrition 8.1 Attrition is inevitable 8.2 Reasons people leave 8.2.1 Voluntary reasons 8.2.2 Involuntary reasons 8.3 Effect of attrition 8.3.1 Low team morale 8.3.2 Loss of knowledge 8.3.3 High hiring and backfill cost 8.4 Getting ahead of attrition 8.4.1 Proactive measures 8.4.2 Reactive measures 8.4.3 Point of no return 8.5 Stop and think: Practice questions Part 2—Projects and the cross-functional world 9 Working with cross-functional partners 9.1 Dealing with common challenges 9.1.1 Competing priorities across different teams 9.1.2 Ill-defined goals 9.1.3 Inefficient coordination and communication 9.1.4 Unclear roles and responsibilities 9.1.5 Conflicts 9.1.6 Geographical constraints 9.1.7 Missing support/underperforming partners 9.1.8 Overwhelming work 9.2 Building a cross-functional team 9.2.1 Clarifying and aligning on goals 9.2.2 Identifying key skills and roles 9.2.3 Establishing a communication framework 9.2.4 Establishing a clear decision-making process 9.2.5 Establishing an open and continuous feedback mechanism 9.2.6 Measuring success 9.3 Collaborating with cross-functional teams 9.3.1 Fostering trust and transparency 9.3.2 Managing conflicts 9.3.3 Providing additional support when needed 9.3.4 Reasoning about technical work with nontechnical partners 9.3.5 Fostering a culture of recognition 9.4 Stop and think: Practice questions 10 Project management, execution, and delivery 10.1 Project life-cycle phases 10.1.1 Project discovery 10.1.2 Preplanning 10.1.3 Planning and project kickoff 10.1.4 Execution 10.1.5 Postexecution 10.2 Stop and think: Practice questions 11 Managing expectations 11.1 Importance of managing expectations 11.1.1 Clarity 11.1.2 Relationship building 11.1.3 Risk mitigation 11.2 Challenges in managing expectations 11.2.1 Ambiguity 11.2.2 Inability to say no 11.2.3 Tendency to take things personally 11.3 Framework for managing expectations 11.3.1 Setting expectations 11.3.2 Communicating expectations 11.3.3 Negotiating 11.3.4 Adapting to changing expectations 11.3.5 Appreciating and sharing feedback 11.4 How to manage expectations at all levels 11.4.1 Your manager/leadership 11.4.2 Your peers 11.4.3 Your team members 11.5 Stop and think: Practice questions Part 3—Learn the process 12 Engineering and operational excellence 12.1 Importance of engineering excellence and OE 12.2 Tools and tips to get you started 12.2.1 Raise the bar on code 12.2.2 Test coverage 12.2.3 Acknowledge and reduce technical debt 12.2.4 Manage deployments 12.2.5 Use logging, monitoring, and dashboarding 12.2.6 Improve on-call and production support 12.2.7 Reduce operational cost 12.2.8 Identify ambassador(s) 12.2.9 Employ DevOps and DevSecOps 12.2.10 Follow the away-team model 12.2.11 Improve accessibility 12.2.12 Learn from mistakes 12.3 Engineering excellence and OE as a continuous process 12.4 How to navigate resistance 12.5 Stop and think: Practice questions 13 Organizational change management 13.1 Motivations for reorganizations 13.1.1 Market conditions or external factors 13.1.2 Need to streamline operations 13.1.3 New opportunities 13.1.4 Change in leadership 13.2 Framework for managing organizational change 13.2.1 Understanding the need for change 13.2.2 Recruiting champions for change 13.2.3 Crafting a strategy and road map for change management 13.2.4 Executing the plan 13.2.5 Monitoring and measuring success 13.2.6 Iterating on opportunities 13.2.7 Change management case studies 13.3 Changes in the workforce 13.3.1 Change in leadership 13.3.2 Reduction in workforce 13.3.3 Acquisitions or mergers 13.4 Stop and think: Practice questions 14 Time management 14.1 Importance of time management for EMs 14.1.1 Ensuring successful project delivery 14.1.2 Facilitating team members’ career goals 14.1.3 Navigating time pressures 14.1.4 Making decisions effectively 14.2 Tips for better time management 14.2.1 Declutter your calendar 14.2.2 Create a meeting bill of rights 14.2.3 Use the power of delegation 14.2.4 Learn to say no 14.2.5 Keep your to-do list up to date 14.2.6 Use feature/project-tracker documents 14.2.7 Use async communication to the fullest 14.3 The Eisenhower Matrix 14.3.1 Meeting the requirements to use the Eisenhower Matrix 14.3.2 Using the four quadrants of the Eisenhower Matrix 14.3.3 Spending time to find time 14.4 Stop and think: Practice questions 15 Beyond this book: Grow yourself 15.1 What you’ve learned so far 15.1.1 Part 1: Start with the people 15.1.2 Part 2: Projects and the cross-functional world 15.1.3 Part 3: Learn the process 15.2 Continuously learn and hone skills 15.3 Some learning resources for the future 15.3.1 Mentors 15.3.2 Learning platforms 15.3.3 Pet projects 15.3.4 Effective communication 15.3.5 Interviews 15.3.6 Feedback 15.4 Thank you 15.5 Stop and think: Practice questions index Numerics A B C D E F G H I J K L M N O P Q R S T U V W Unlock your full potential as an effective, efficient, and inspiring leader, and be the software engineering manager that your team deserves! Most development teams are only as good as their leader. In this practical guide, you’ll explore all aspects of the software engineering manager’s job, from operational practices to the core skills of handling humans. Think Like a Software Engineering Manager is full of all the skills you’ll need to thrive in software leadership, including: • People and performance management • Empathy and feedback • Delegation and learning to let go • Hiring amazing engineers and handling attrition • Collaborating with cross-functional partners • Managing expectations at all levels • Implementing engineering and operational excellence • Time and organizational change management Experienced team leader Akanksha Gupta helps you explore whether software engineering management is the right move for your career, guides you through preparing for the position, and gives you all the tools you need to thrive in the role. Thought-provoking exercises help you apply what you learn to your daily professional life, and prepare you for making the big decisions about software. About the technology A software engineering manager needs to be an amazing communicator, an effective decision maker, and a thoughtful mentor. Your success depends on your ability to evaluate and manage projects, motivate and lead your team, and coolly handle whatever crisis each new day brings. It’s a big transition, and this book will guide you every step of the way. About the book Think Like a Software Engineering Manager teaches you how to hire, train, and lead a successful development team. You’ll start with building and managing your team to maximize performance. You’ll then quickly progress to strategies for delivering large scale projects, cultivating excellence in your projects, and managing change. Author Akanksha Gupta’s battle stories and industry anecdotes from her work at Amazon, Audible, Robinhood, and Microsoft reveal how the experts handle the biggest engineering management challenges. What's inside • People and performance management • Hiring amazing engineers and handling attrition • Collaborating with cross-functional partners • Practice for success with insightful exercises About the reader For new and aspiring software engineering managers. About the author Akanksha Gupta is an engineering leader at Amazon AWS. She has served as an engineering manager at Robinhood, Audible, and Microsoft and passionately champions the cause of empowering women within the tech industry.
دانلود کتاب Think Like a Software Engineering Manager