Tech Leadership Playbook: Building and Sustaining High-Impact Technology Teams
معرفی کتاب «Tech Leadership Playbook: Building and Sustaining High-Impact Technology Teams» نوشتهٔ Buehlman، Christopher و Alexsandro Souza، منتشرشده توسط نشر Apress L. P. در سال 2024. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است.
Immerse yourself in this indispensable resource for leaders tasked with the challenge of building or managing effective software development teams. This book is based on practical wisdom, offering actionable guidance to foster high-performing teams that excel in their projects. Despite the pivotal role leadership plays in a team's success, there aren't many companies that employ structured, best-practice-driven leadership methods. The core of the book covers several critical areas essential for any tech leader's success: building high-performance teams, project management, code quality, software design and architecture, software development life cycle (SDLC), software quality insurance, observability, technology and business alignment The relevance of structured, principled leadership in tech has never been more important. Tech Leadership Playbook aims to equip leaders with the knowledge and tools necessary to navigate the challenges of evolving business successfully. What You Will Learn• Establish industry-proven strategies for building and sustaining high-performance teams• Empower teams through mission driven ownership and autonomy• Reduce development cost through effective leadership• Implement real Agile project management culture• Gain a solid understanding of different software design architectures• Leverage architectural principles to design robust and maintainable software systems• Improve Code Quality with strategic SDLC practices Who This Book is ForSenior engineers, tech leaders, engineering managers, CTO, CIO, project managers, agile coaches, and founders Table of Contents About the Author Introduction Preface Chapter 1: Building High-Performance Teams Hiring Good Engineers: The Keystone of Tech Leadership Effective Interviewing: Real-World Questions for Software Developers Developing a Career Progression Plan Utilizing Radar Charts to Help Develop Career Progression and Competencies Crafting an Effective Full-Stack Team Structure The Pitfalls of Functional Teams and the Power of Multi-skilled Unity Empowering Teams Through Ownership and Autonomy Cultivating Psychological Safety and a Blameless Culture Enhancing Team Collaboration for Optimal Performance The Power of Team Principles Document in Software Development Building Team Alignment for Effective Decision-Making Navigating the Five Stages of Team Development Conclusion Key Takeaways Chapter 2: Agile Project Management Agile Software Project Management in a Nutshell Embracing the Agile Manifesto in Modern Software Development Summary of the Agile Manifesto Core Values Guiding Principles Relevance of Agile Values and Principles Iterative Development and Continuous Delivery Frequent Feedback Loops Understanding Scrum vs. Kanban in Agile Methodologies Differences Between Scrum and Kanban When to Use Each Methodology Scrumban Key Features of Scrumban Benefits of Scrumban Application of Scrumban Ticket Management User-Facing vs. Technical Tickets Communication and Value Delivery Key Takeaways Backlog Management for Streamlined Execution Using Milestones Effectively The “Now, Next, and Later” Technique Key Takeaways Effective Ticket Workflow in Agile Project Management Creating and Categorizing Feature Tickets Refining the Backlog Breaking Down Features and User Stories Implementing User Stories Planning Phases Key Takeaways Agile Estimation and Planning Why Estimate? Why Estimation Matters in Agile The Pitfalls of Estimating in Hours The Merits of Story Points The Dangers of Misusing Scrum Velocity Metrics That Matter Key Takeaways Effective Meetings Types of Agile Meetings Best Practices for Agile Meetings Conclusion Key Takeaways Chapter 3: Elevating Code Quality Embracing Programming Principles for Effective Software Development Best Practices Documents: Cultivating Excellence in Software Development Foundation and Refinement Streamlining Code Reviews Examples of Best Practices Documents Logging Best Practices Audit Best Practices Code Review Best Practices How Fast Should Code Reviews Be? Pull Request Code Review Ethics Everyone Having Your Code Reviewed Reviewing Code Enhancing Code Quality with Static Analysis Tools Leveraging Static Analysis for Code Improvement Examples of Static Analysis Tools Integrating Static Analysis into Development Workflow The Critical Role of Code Review in Enhancing Code Quality Mentoring and Knowledge Sharing Automated Tools and Best Practices Documentation Concentration on Business Logic The Significance of a Code Review Best Practices Document Technical Debt: A Strategic Perspective The Inevitable Accumulation of Technical Debt Misconceptions and Realities Embracing a Leaner Cycle Managing Technical Debt Wisely Conclusion Key Takeaways Chapter 4: Software Design and Architecture The Pillars of Software Architecture Horizontal vs. Vertical Code Design Horizontal Separation: Layers of Responsibility Vertical Separation: Functional Segmentation Advocating for Vertical Separation Why Vertical Separation? Implementing Vertical Separation Clean Architecture Structuring Code Effectively Breaking Free from Conventional Groupings Minimizing Access for Maximum Clarity Practical Application: A Case Study Rethinking Domain Driven Design: Beyond Tactical Patterns The Misguided Focus and Its Consequences Avoiding Dogmatic Adherence to DDD Tactics The Primacy of Bounded Contexts Architecture Testing: Ensuring System Integrity and Design Compliance Leveraging Events and the Observer Pattern: A Double-Edged Sword The Benefits and Risks A Word of Caution for New Teams Strategic Use for Maximum Benefit Reactive Programming in Software Design What Is Reactive Programming? Key Concepts of Reactive Programming Synchronous Issues and Scalability Challenges Pros of Reactive Programming Cons of Reactive Programming Justified Use Cases for Reactive Programming Recommendations for New Teams Exploring Architectural Styles: Monolith vs. Microservices Navigating the Microservices Landscape Reasons for Adopting Microservices: Scale and Flexibility But Do These Benefits Justify the Complexity? Embracing the Modular Monolith Architectural Boundaries within a Monolith Scalability and Evolution Leveraging IDE Capabilities Embracing Service Mesh in Microservices Architecture What is a Service Mesh? Why Consider Using a Service Mesh? Service-to-Service Communication via Sidecars Conclusion Key Takeaways Chapter 5: Product Quality Assurance Navigating the Balance of Automated Testing Why Invest in Automated Tests? The Dilemma of Over-testing Optimizing for Confidence, Not Coverage The Misconception of Code Coverage Crafting an Effective Test Strategy for Agile Development The Shift Left Approach: Early and Continuous Testing Who Writes the Tests? A Progressive Test Strategy Redefining Unit Testing The Misconception of Unit Testing Avoiding Mock Hell Embracing a New Definition of Unit Testing Implementing Behavior-Driven Unit Tests Module Testing: Ensuring Cohesive Component Interaction Module Testing Approach Implementing Effective Module Tests Mastering End-to-End Testing in Software Development Why Focus on API Layer for E2E Testing? Characteristics of Robust E2E Tests UI Tests: Balancing Coverage and Cost in Software Quality Assurance Prioritizing Integration Over Unit Testing The Cost of E2E UI Testing Embracing Jest for Integration Testing Integration Testing in Action Quality Assurance Roles and Responsibilities QA Engineer Developer Team Lead Product Owner Conclusion Key Takeaways Chapter 6: Software Development Life Cycle (SDLC) Git Flow vs. Trunk-Based Development Understanding Git Flow Why Git Flow May Fall Short Advocating for Trunk-Based Development The Advantages of Trunk-Based Development Continuous Integration vs. Continuous Delivery vs. Continuous Deployment Continuous Integration (CI) Continuous Delivery Continuous Deployment Advocating for Continuous Delivery Continuous Delivery and Segregation of Duties Navigating Multiple Testing Environments: The Path to Reliable Releases The Trio of Essential Environments The Rationale Behind Dev and Staging Staging: The Final Checkpoint Before Release Architecting an Efficient CI/CD Pipeline The Four Essential Steps of CI/CD Essential Jobs Within the CI/CD Pipeline Navigating the Release Life Cycle in Modern Software Development The Stages of the Release Life Cycle Detailed Release Processes Conclusion Key Takeaways Chapter 7: Observability and Monitoring The Three Pillars of Observability How Does Observability Work? Why is Observability Important? Observability vs. Monitoring: Understanding the Distinction Monitoring: The Watchful Eye Observability: Gaining Insight into the Unknown Elevating Observability Through Strategic Logging Understanding Log Levels Best Practices for Effective Logging Audit Logging Best Practices Centralized Log Management Why Centralized Log Management is Essential Implementing Centralized Log Management Embracing OpenTelemetry: The Unified Observability Framework The Genesis of OpenTelemetry Core Components of OpenTelemetry The Significance of OpenTelemetry OpenTelemetry and Enhanced Observability Leveraging Observability for Enhanced Security Leveraging Service Mesh Framework for Full Observability Understanding Service Mesh Key Observability Components in a Service Mesh Benefits of Service Mesh Observability Conclusion Key Takeaways Chapter 8: Bridging the Gap Between Technology and Business The Software Product Development Life Cycle: A Guide for Tech Leaders Phase 1: Conception and Market Research Phase 2: High-Level Design and Prototyping Phase 3: Software Development Phase 4: Release to Market and Maintenance The Strategic Imperative of the Minimum Viable Product (MVP) Embracing the Lean Startup Methodology Navigating the Cost of Delay in Software Product Development Strategies to Mitigate Cost of Delay In-House vs. Outsourcing Software Development Advantages of In-House Development Challenges of In-House Development Advantages of Outsourcing Development Challenges of Outsourcing Development Making the Decision The Net Promoter Score (NPS): Measuring Customer Satisfaction and Loyalty Importance of NPS Leveraging NPS for Business Transformation Conclusion Index Immerse yourself in this indispensable resource for leaders tasked with the challenge of building or managing effective software development teams. This book is based on practical wisdom, offering actionable guidance to foster high-performing teams that excel in their projects. Despite the pivotal role leadership plays in a team's success, there aren't many companies that employ structured, best-practice-driven leadership methods. The core of the book covers several critical areas essential for any tech leader's success: building high-performance teams, project management, code quality, software design and architecture, software development life cycle (SDLC), software quality insurance, observability, technology and business alignment The relevance of structured, principled leadership in tech has never been more important. Tech Leadership Playbook aims to equip leaders with the knowledge and tools necessary to navigate the challenges of evolving business successfully. What You Will Learn Establish industry-proven strategies for building and sustaining high-performance teams Empower teams through mission driven ownership and autonomy Reduce development cost through effective leadership Implement real Agile project management culture Gain a solid understanding of different software design architectures Leverage architectural principles to design robust and maintainable software systems Improve Code Quality with strategic SDLC practices Who This Book is For Senior engineers, tech leaders, engineering managers, CTO, CIO, project managers, agile coaches, and founders
دانلود کتاب Tech Leadership Playbook: Building and Sustaining High-Impact Technology Teams