نیازمندیهای نرمافزار چابک: شیوههای لاغر نیازمندیها برای تیمها، برنامهها و سازمان (مجموعه توسعه نرمافزار چابک)
Agile Software Requirements: Lean Requirements Practices for Teams, Programs, and the Enterprise (Agile Software Development Series)
معرفی کتاب «نیازمندیهای نرمافزار چابک: شیوههای لاغر نیازمندیها برای تیمها، برنامهها و سازمان (مجموعه توسعه نرمافزار چابک)» (با عنوان لاتین Agile Software Requirements: Lean Requirements Practices for Teams, Programs, and the Enterprise (Agile Software Development Series)) نوشتهٔ Dean Leffingwell، منتشرشده توسط نشر Addison-Wesley Professional در سال 2011. این کتاب در 559 صفحه، فرمت pdf، زبان انگلیسی ارائه شده است. «نیازمندیهای نرمافزار چابک: شیوههای لاغر نیازمندیها برای تیمها، برنامهها و سازمان (مجموعه توسعه نرمافزار چابک)» در دستهٔ برنامهنویسی قرار دارد.
مدیریت نیازمندیها در پروژههای نرمافزاری که از متدولوژی چابک پیروی میکنند، همواره یکی از چالشهای اساسی برای سازمانها بوده است. کتاب «نیازمندیهای نرمافزار چابک: شیوههای لاغر نیازمندیها برای تیمها، برنامهها و سازمان» (Agile Software Requirements: Lean Requirements Practices for Teams, Programs, and the Enterprise) نوشتهٔ دین لفینگول، پاسخی ساختاریافته و جامع به این چالش است. این اثر که در سال ۲۰۱۱ توسط انتشارات Addison-Wesley Professional منتشر شده، با رویکردی گامبهگام، چگونگی ایجاد نیازمندیهای مؤثر در محیطهای چابک را از سطح یک تیم ساده تا پیچیدهترین سبدهای محصولات سازمانی تشریح میکند.
دربارهٔ کتاب نیازمندیهای نرمافزار چابک: شیوههای لاغر نیازمندیها برای تیمها، برنامهها و سازمان (مجموعه توسعه نرمافزار چابک)
کتاب حاضر با ارائهٔ یک نمای کلی و کلان از نیازمندیهای چابک در سازمان آغاز میشود و سپس بهترتیب، مدلهای عملیاتی را برای سه سطح تیم، برنامه و سبد سرمایهگذاری (Portfolio) معرفی میکند. لفینگول در این کتاب تلاش کرده تا از تلفیق سه حوزهٔ فکریِ مدیریت کلاسیک، روشهای چابک و توسعهٔ محصول ناب (Lean) راهکاری ارائه دهد که از کاربرد هر یک از این رویکردها بهتنهایی مؤثرتر باشد. این اثر که در مجموعهٔ «توسعهٔ نرمافزار چابک» (Agile Software Development Series) منتشر شده، بر این باور است که فرایندهای نیازمندیهای چابک، برای موفقیت در توسعهٔ نرمافزارهای سازمانی حیاتی هستند و نبود آنها میتواند مانعی جدی برای پذیرش روشهای چابک در مقیاس بزرگ باشد. در بخشهای میانی کتاب، نویسنده با جزئیات کامل به ابزارها و تکنیکهای مورد نیاز تیمهای چابک برای مدیریت نیازمندیها میپردازد. مفاهیمی چون داستانهای کاربری (User Stories)، برآورد (Estimating)، پذیرشآزمون (Acceptance Testing) و نقش مالک محصول (Product Owner) بهگونهای شفاف و کاربردی تبیین شدهاند. در ادامه، کتاب پا را فراتر از سطح تیم نهاده و چالشهای هماهنگی میان چند تیم را برای توسعهٔ سیستمهای پیچیده بررسی میکند و در نهایت، راهکارهایی برای مدیریت نیازمندیها در مقیاس «سیستمِ سیستمها» (Systems of Systems) و سبدهای بزرگ محصولات ارائه میدهد. این ساختار چهاربخشی، کتاب را به منبعی کامل برای هر کسی که درگیر توسعهٔ نرمافزار در مقیاس سازمانی است، تبدیل کرده است.
دربارهٔ نویسنده
دین لفینگول (Dean Leffingwell) یک کهنهکار صنعت نرمافزار با بیش از سی سال تجربه است که بهعنوان یکی از برجستهترین مراجع جهانی در زمینهٔ بهترین شیوههای چابک و ناب (Lean-Agile) شناخته میشود. او کارآفرینی است که شرکت Requisite, Inc. را بنیان نهاد و بهعنوان مدیرعامل آن فعالیت کرد. پس از خریداری این شرکت توسط Rational Software، لفینگول بهعنوان معاون آن، نقشی کلیدی در تجاریسازی فرایند یکپارچهٔ رشنال (Rational Unified Process) ایفا کرد. شهرت اصلی لفینگول مرهون خلق چارچوب مقیاسپذیر چابک (Scaled Agile Framework - SAFe®) است که به پرمخاطبترین چارچوب برای کسب چابکی در سطح سازمان در جهان تبدیل شده است. او نویسندهٔ کتابهای پرفروش دیگری همچون «مقیاسسازی چابکی نرمافزار» (Scaling Software Agility) و «مدیریت نیازمندیهای نرمافزار» (Managing Software Requirements) است که مبانی تفکر مدرن در حوزهٔ شیوههای چابک و ناب را شکل دادهاند.
چرا باید نیازمندیهای نرمافزار چابک: شیوههای لاغر نیازمندیها برای تیمها، برنامهها و سازمان (مجموعه توسعه نرمافزار چابک) را بخوانید؟
ارائهٔ یک مدل کامل و یکپارچه: این کتاب بهجای پرداختن به بخشی از فرایند، یک مدل جامع از نیازمندیهای چابک را در سه سطح تیم، برنامه و سبد سرمایهگذاری ترسیم میکند و تصویر کاملی از چگونگی پیادهسازی آن در سازمان ارائه میدهد.
حل چالش دیرینهٔ نیازمندیها در محیط چابک: نویسنده با تسلط کامل بر هر دو حوزه، نشان میدهد که چگونه میتوان از مزایای روشهای چابک بهرهبرد و در عین حال، از ارزشهای کشف و تحلیل مؤثر نیازمندیها صرفنظر نکرد. این کتاب بهصراحت به یکی از موانع اصلی پذیرش چابک در سازمانهای بزرگ میپردازد.
رویکرد عملی و مبتنی بر تجربه: لفینگول در این کتاب صرفاً به نظریهپردازی نپرداخته، بلکه راهحلهای اثباتشدهای را ارائه میدهد که از سالها تجربهٔ عملی در شرکتهای بزرگ و چندملیتی بهدست آمده است. مفاهیمی مانند «قطار انتشار چابک» (Agile Release Train) نمونهای از این رویکرد عملیاتی است.
مرجعی کامل برای نقشهای مختلف سازمانی: مطالب کتاب بهگونهای طراحی شده که برای تمامی نقشهای درگیر در توسعهٔ نرمافزار، از توسعهدهندگان و تسترها گرفته تا مدیران برنامه، معماران و مدیران ارشد، قابلاستفاده و مفید باشد.
آشنایی با اصول و ابزارهای کلیدی چابک: کتاب بهتفصیل به ابزارهای حیاتی مانند داستانهای کاربری، برآورد مبتنی بر امتیاز داستان (Story Points)، سرعت تیم (Velocity)، برنامهریزی انتشار و آزمونپذیرش میپردازد که برای هر عضوی از یک تیم چابک ضروری است.
این کتاب برای چه کسانی مناسب است؟
مخاطبان اصلی این کتاب، اعضای تیمهای توسعهٔ نرمافزار، مدیران پروژه و برنامه، تحلیلگران کسبوکار، معماران سیستم و مدیران ارشد فناوری اطلاعات در سازمانهایی هستند که بهدنبال پیادهسازی یا بهبود فرایندهای چابک خود در مقیاس بزرگ هستند. این اثر برای کسانی که در سازمانهای بزرگ با پروژههای پیچیده و چندتیمی سروکار دارند، بهعنوان یک نقشهٔ راه عملیاتی ارزشمند محسوب میشود. همچنین، افرادی که با چارچوب SAFe آشنایی دارند، این کتاب را منبعی بنیادین و کامل برای درک عمیقتر مفاهیم آن خواهند یافت. با وجود جامعیت، زبان کتاب بهگونهای است که افراد تازهکار نیز با مطالعهٔ بخشهای ابتدایی آن، میتوانند درک خوبی از مفاهیم پایهٔ چابک پیدا کنند.
سوالات متداول
آیا این کتاب صرفاً به مدیریت نیازمندیها در اسکرام میپردازد یا سایر روشهای چابک را نیز پوشش میدهد؟
خیر، این کتاب فراتر از یک چارچوب خاص عمل میکند. لفینگول با نگاهی جامع، اصول و شیوههای برگرفته از روشهای مختلف چابک مانند اسکرام (Scrum)، برنامهنویسی افراطی (XP) و کانبان (Kanban) را با رویکرد تولید ناب (Lean) ترکیب کرده و مدلی یکپارچه برای کل سازمان ارائه میدهد.
آیا مطالب کتاب صرفاً جنبهٔ نظری دارد یا شامل مثالهای عملی و قالبهای اجرایی نیز میشود؟
کتاب دارای رویکردی کاملاً عملی و نتیجهگراست. نویسنده با ارائهٔ مثالهای عینی، الگوها (Templates) و چکلیستهای آمادهای مانند الگوی سند چشمانداز (Vision Document) و چکلیست آمادگی برنامهریزی انتشار، به خواننده در پیادهسازی مفاهیم کمک میکند. این ویژگی، کتاب را به منبعی قابلارجاع برای تیمها تبدیل کرده است.
آیا خواندن این کتاب برای مدیران ارشد سازمانی که مستقیماً درگیر توسعهٔ نرمافزار نیستند، مفید است؟
بله، بخشهای انتهایی کتاب بهویژه برای مدیران و تصمیمگیرندگان ارشد نوشته شده است. این بخشها به مدیریت سبد سرمایهگذاری، نحوهٔ تعامل تیمهای چابک با دفتر مدیریت پروژه (PMO) و ایجاد تغییرات فرهنگی لازم برای دستیابی به چابکی سازمانی میپردازد و بینش ارزشمندی را برای مدیران غیرفنی فراهم میآورد.
“We need better approaches to understanding and managing software requirements, and Dean provides them in this book. He draws ideas from three very useful intellectual pools: classical management practices, Agile methods, and lean product development. By combining the strengths of these three approaches, he has produced something that works better than any one in isolation.” –From the Foreword by Don Reinertsen, President of Reinertsen & Associates; author of Managing the Design Factory; and leading expert on rapid product development Effective requirements discovery and analysis is a critical best practice for serious application development. Until now, however, requirements and Agile methods have rarely coexisted peacefully. For many enterprises considering Agile approaches, the absence of effective and scalable Agile requirements processes has been a showstopper for Agile adoption. In Agile Software Requirements, Dean Leffingwell shows exactly how to create effective requirements in Agile environments. • Part I presents the “big picture” of Agile requirements in the enterprise, and describes an overall process model for Agile requirements at the project team, program, and portfolio levels • Part II describes a simple and lightweight, yet comprehensive model that Agile project teams can use to manage requirements • Part III shows how to develop Agile requirements for complex systems that require the cooperation of multiple teams • Part IV guides enterprises in developing Agile requirements for ever-larger “systems of systems,” application suites, and product portfolios This book will help you leverage the benefits of Agile without sacrificing the value of effective requirements discovery and analysis. You’ll find proven solutions you can apply right now–whether you’re a software developer or tester, executive, project/program manager, architect, or team leader. Contents 10 Foreword 24 Preface 28 Acknowledgments 34 About the Author 36 Part I: Overview: The Big Picture 38 Chapter 1 A Brief History of Software Requirements Methods 40 Software Requirements in Context: Decades of Advancing Software Process Models 40 Predictive, Waterfall-Like Processes 42 Iterative and Incremental Processes 46 Adaptive (Agile) Processes 49 Requirements Management in Agile Is Fundamentally Different 53 Enterprise-Scale Adaptive Processes 56 Introduction to Lean Software 57 Summary 65 Chapter 2 The Big Picture of Agile Requirements 68 The Big Picture Explained 69 Big Picture: Team Level 71 Big Picture: Program Level 75 Big-Picture Elements: Portfolio Level 80 Summary 82 Chapter 3 Agile Requirements for the Team 84 Introduction to the Team Level 84 Agile Team Roles and Responsibilities 87 User Stories and the Team Backlog 92 Acceptance Tests 95 Unit Tests 97 Summary 98 Chapter 4 Agile Requirements for the Program 100 Introduction to the Program Level 100 Organizing Agile Teams at Scale 101 Vision 111 Features 112 Nonfunctional Requirements 114 The Agile Release Train 117 Roadmap 118 Summary 119 Chapter 5 Agile Requirements for the Portfolio 120 Introduction to the Portfolio Level 120 Investment Themes 121 Portfolio Management Team 122 Epics and the Portfolio Backlog 122 Epics, Features, and Stories 124 Architectural Runway and Architectural Epics 125 Summary 128 Summary of the Full, Enterprise Requirements Information Model 128 Interlude: Case Study: Tendril Platform 130 Background for the Case Study 130 System Context Diagram 132 Part II: Agile Requirements for the Team 134 Chapter 6 User Stories 136 Introduction 136 User Story Form 139 INVEST in Good User Stories 142 Splitting User Stories 148 Spikes 151 Story Modeling with Index Cards 153 Summary 154 Chapter 7 Stakeholders, User Personas, and User Experiences 156 Stakeholders 156 Identifying Stakeholders 159 User Personas 163 Agile and User Experience Development 166 Summary 170 Chapter 8 Agile Estimating and Velocity 172 Introduction 172 Why Estimate? The Business Value of Estimating 174 Estimating Scope with Story Points 175 Understanding Story Points: An Exercise 175 An Alternate Technique: Tabletop Relative Estimation 182 From Scope Estimates to Team Velocity 183 Caveats on the Relative Estimating Model 184 From Velocity to Schedule and Cost 185 Estimating with Ideal Developer Days 186 A Hybrid Model 188 Summary 189 Chapter 9 Iterating, Backlog, Throughput, and Kanban 192 Iterating: The Heartbeat of Agility 192 Backlog, Lean, and Throughput 206 Software Kanban Systems 216 Summary 217 Chapter 10 Acceptance Testing 220 Why Write About Testing in an Agile Requirements Book? 220 Agile Testing Overview 221 What Is Acceptance Testing? 224 Characteristics of Good Story Acceptance Tests 225 Acceptance Test-Driven Development 227 Acceptance Test Template 229 Automated Acceptance Testing 230 Unit and Component Testing 233 Summary 236 Chapter 11 Role of the Product Owner 238 Is This a New Role? 238 Perspectives on Dual Roles of Product Owner and Product Manager 239 Responsibilities of the Product Owner in the Enterprise 244 Five Essential Attributes of a Good Product Owner 255 Collaboration with Product Managers 257 Product Owner Bottlenecks: Part-Time Product Owners, Product Owner Proxies, Product Owner Teams 258 Seeding the Product Owner Role in the Enterprise 259 Summary 261 Chapter 12 Requirements Discovery Toolkit 264 The Requirements Workshop 265 Brainstorming 269 Interviews and Questionnaires 274 User Experience Mock-Ups 278 Forming a Product Council 280 Competitive Analysis 281 Customer Change Request Systems 282 Use-Case Modeling 284 Summary 284 Part III: Agile Requirements for the Program 286 Chapter 13 Vision, Features, and Roadmap 288 Vision 288 Expressing the Vision 289 Features 292 Estimating Features 294 Testing Features 297 Prioritizing Features 298 The Roadmap 308 Summary 310 Chapter 14 Role of the Product Manager 312 Product Manager, Business Analyst? 313 Responsibilities of the Product Manager in a Product Company 313 Business Responsibilities of the Role in the IT/IS Shop 315 Responsibility Summary 316 Phases of Product Management Disillusionment in the Pre-Agile Enterprise 317 Evolving Product Management in the Agile Enterprise 320 Responsibilities of the Agile Product Manager 324 Summary 334 Chapter 15 The Agile Release Train 336 Introduction to the Agile Release Train 337 Driving Strategic Alignment 341 Institutionalizing Product Development Flow 342 Designing the Agile Release Train 345 Planning the Release 345 Tracking and Managing the Release 346 Release Retrospective 347 Measuring Release Predictability 347 Releasing 350 Summary 354 Chapter 16 Release Planning 356 Preparing for Release Planning 356 Release Planning Narrative, Day 1 359 Release Planning Narrative, Day 2 365 Stretch Goals 373 Summary 375 Chapter 17 Nonfunctional Requirements 376 Modeling Nonfunctional Requirements 377 Exploring Nonfunctional Requirements 379 Persisting Nonfunctional Requirements 384 Testing Nonfunctional Requirements 385 Template for an NFR Specification 389 Summary 391 Chapter 18 Requirements Analysis Toolkit 392 Activity Diagrams 394 Sample Reports 395 Pseudocode 395 Decision Tables and Decision Trees 396 Finite State Machines 398 Message Sequence Diagrams 401 Entity-Relationship Diagrams 402 Use-Case Modeling 403 Summary 403 Chapter 19 Use Cases 404 The Problems with User Stories and Backlog Items 405 Five Good Reason to Still Use Use Cases 405 Use Case Basics 406 A Use Case Example 412 Applying Use Cases 414 Use Cases in the Agile Requirements Information Model 415 Summary 416 Part IV: Agile Requirements for the Portfolio 418 Chapter 20 Agile Architecture 420 Introduction to the Portfolio Level of the Big Picture 420 Systems Architecture in Enterprise-Class Systems 421 Eight Principles of Agile Architecture 427 Implementing Architectural Epics 436 Splitting Architecture Epics 440 Summary 442 Chapter 21 Rearchitecting with Flow 444 Architectural Epic Kanban System 445 Overview of the Architectural Epic Kanban System 446 1. The Funnel: Problem/Solution Needs Identification 449 2. Backlog 452 3. Analysis 455 4. Implementation 460 Summary 464 Chapter 22 Moving to Agile Portfolio Management 466 Portfolio Management 466 When Agile Teams Meet the PMO: Two Ships Pass in the Night 468 Legacy Mind-Sets Inhibit Enterprise Agility 469 Legacy Mind-Sets in Portfolio Management 470 Eight Recommendations for Moving to Agile Portfolio Management 473 Summary: On to Agile Portfolio Planning 484 Chapter 23 Investment Themes, Epics, and Portfolio Planning 486 Investment Themes 487 Epics 489 Identifying and Prioritizing Business Epics: A Kanban System for Portfolio Planning 493 Summary 504 Chapter 24 Conclusion 506 Further Information 507 Appendix A: Context-Free Interview 508 Appendix B: Vision Document Template 512 Appendix C: Release Planning Readiness Checklist 522 Appendix D: Agile Requirements Enterprise Backlog Meta-model 526 Bibliography 528 Index 532 A 532 B 533 C 535 D 536 E 538 F 538 G 539 H 539 I 540 J 541 K 541 L 541 M 542 N 543 O 543 P 543 Q 546 R 546 S 549 T 551 U 552 V 553 W 554 X 555 Z 555