معرفی کتاب «توسعه چابک با فرآیند ICONIX: مردم، فرآیند و عملگرایی» (با عنوان لاتین Agile Development with ICONIX Process : People, Process, and Pragmatism) نوشتهٔ Doug Rosenberg, Mark Collins-Cope, Matt Stephens، منتشرشده توسط نشر Apress L. P. در سال 2005. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است.
This book describes using the ICONIX Process (an object modeling process) in an agile software project. To do this, the book defines a core agile subset—so those of you who want to "get agile" need not spend years learning to do it. Instead, you can simply read this book and apply the core subset of techniques. The book follows a real-life .NET/C# project from inception and UML modeling, to working code—through several iterations. You can then go on-line to compare the finished product with the initial set of use cases. 1590594649......Page 1 Contents......Page 6 About the Authors......Page 13 About the Technical Reviewer......Page 14 Acknowledgments......Page 15 Introduction......Page 16 PART 1 ICONIX and Agility......Page 19 CHAPTER 1 What Is Agility? (And Why Does It Matter?)......Page 20 What Software Agility Isn’t......Page 22 The Goals of Agility......Page 23 Why Is Agility Important?......Page 24 What Makes a Project Agile?......Page 25 Challenges of Being Agile......Page 28 Agile Methodologies......Page 30 Agile Fact or Fiction: What Does “Being Agile” Mean?......Page 39 Top 10 Practices and Values That Make a Project Agile......Page 40 CHAPTER 2 Characteristics of a Good Software Process......Page 41 What’s in a Software Development Process?......Page 42 What Makes a Good Agile Logical Process?......Page 44 Human Factors......Page 47 Agile Fact or Fiction: Team Structure and Human Factors......Page 50 Summary......Page 54 CHAPTER 3 ICONIX Process: A Core UML Subset......Page 55 A Brief History of ICONIX Process......Page 56 ICONIX Process in Theory (aka Disambiguation and Prefactoring)......Page 57 ICONIX Process in a Nutshell......Page 60 More About Disambiguation......Page 69 Key Points to Remember......Page 72 Summary......Page 75 Agile ICONIX: The Core Subset of Agile Practices......Page 76 Refactoring the Agile Manifesto......Page 86 Agile Fact or Fiction (Continued)......Page 90 Summary......Page 100 PART 2 Agile ICONIX Process in Practice: The Mapplet Project......Page 101 So, What’s a Mapplet, Anyway?......Page 102 Mapplet Requirements......Page 105 Project Inception: A JumpStart Workshop in Action......Page 108 Mapplet Architecture......Page 109 Initial Use Case Modeling for the Mapplet......Page 110 First Release Plan......Page 111 More Information on ArcGIS As Used by the Mapplet......Page 112 Summary......Page 113 Beginning with a Prototype (and Just a Little Bit of Modeling)......Page 114 Visual Acceptance Testing......Page 115 First Pass Modeling Efforts (and Some Typical Modeling Mistakes)......Page 116 Tightening Up the Model......Page 121 Let’s Take a Look at Some Code......Page 126 Et Voila! The First (Working Prototype) Release......Page 134 Summary......Page 135 Keeping It Agile......Page 136 Divergence of Code and Design over Time......Page 137 Design Review......Page 138 Summary......Page 160 Customer Feedback on the First Release......Page 161 How Persona Analysis Was Used to Drive the Requirements......Page 162 Planning the Second Release......Page 164 Analysis Review......Page 169 Designing Release 2......Page 170 Source Code: Refactoring Is Still Useful After Doing Use Case–Driven Modeling......Page 172 Screenshots of the Finished Product......Page 179 Agile Scorecard for the Mapplet Project......Page 180 Summary......Page 181 PART 3 Extensions to ICONIX Process......Page 182 Why Agile Planning?......Page 183 Agile Planning Terminology......Page 185 Agile Planning Building Blocks......Page 186 Agile Planning Phases......Page 193 Agile Planning Principles......Page 194 Summary......Page 198 Extending ICONIX Process with Persona Analysis......Page 199 The Three Pieces of the Jigsaw Puzzle......Page 200 Building the UI Around a Target User......Page 202 Using Interaction Design to Identify Alternate Scenarios......Page 205 Using Interaction Design to Identify Actors and Use Cases......Page 206 The Finished Use Case......Page 207 Visual Acceptance Test for Release 2......Page 208 Summary......Page 211 CHAPTER 11 A “Vanilla” Test-Driven Development Example......Page 212 A Brief Overview of TDD......Page 213 A Vanilla TDD Example......Page 214 Summary......Page 234 The “Vanilla” Example Repeated Using ICONIX Modeling and TDD......Page 235 Summarizing ICONIX+TDD......Page 256 Stop the Presses: Model-Driven Testing......Page 257 Summary......Page 259 A......Page 260 C......Page 261 D......Page 262 H......Page 263 L......Page 264 R......Page 265 S......Page 266 V......Page 267 Y......Page 268 Rigor Without the Mortis Many people (especially agilists) associate a high-ceremony software development process with a dead project (i.e., rigor mortis), and this association is not entirely incorrect. Our approach aims to put back the rigor while le- ing out the mortis—that is, we can do rigorous analysis and design without killing the project with an excessively high-ceremony approach. The goal of this book is to describe that process in full detail. Agility in theory is about moving ahead at speed, making lots of tiny course corrections as you go. The theory (and it’s a good one) is that if you spend months or years producing dry specifications at the start of the project and then “set them in concrete,” this doesn’t necessarily (and in practice, doesn’t) lead to a product that meets the c- tomer’s requirements, delivered on time and with an acceptably low defect count. It’s likely that the requirements will change over time, so we need to be prepared for that, and it’s likely that a lot of the original requirements will turn out to be wrong or new requirements will be discovered after the requi- ments “concrete” has set. Agile methods answer this problem in a number of different ways, but the overriding principle is to break things down into smaller chunks and not to go setting anything in concrete (least of all your requirements specs).
This book describes how to apply ICONIX Process (a minimal, use case-driven modeling process) in an agile software project. It’s full of practical advice for avoiding common agile pitfalls. Further, the book defines a core agile subset so those of you who want to get agile need not spend years learning to do it. Instead, you can simply read this book and apply the core subset of techniques.
The book follows a real-life .NET/C# project from inception and UML modeling, to working code through several iterations. You can then go on-line to compare the finished product with the initial set of use cases.
The book also introduces several extensions to the core ICONIX Process, including combining test-driven development (TDD) with up-front design to maximize both approaches (with examples using Java and JUnit). And the book incorporates persona analysis to drive the projects goals and reduce requirements churn.
"This book describes how to apply ICONIX Process (a minimal, use case-driven modeling process) in an agile software project. Its full of practical advice for avoiding common agile pitfalls. Further, the book defines a core agile subsetso those of you who want to get agile need not spend years learning to do it. Instead, you can simply read this book and apply the core subset of techniques. The book follows a real-life .NET/C# project from inception and UML modeling, to working codethrough several iterations. You can then go on-line to compare the finished product with the initial set of use cases. The book also introduces several extensions to the core ICONIX Process, including combining Test-Driven Development (TDD) with up-front design to maximize both approaches (with examples using Java and JUnit). And the book incorporates persona analysis to drive the projects goals and reduce requirements churn."--Publisher's website This work examines what software agility is and isn't, explores the characteristics of a good software process, and introduces the ICONIX Process, its core UML subset, and a core subset of agile practices. It illustrates the core subset in action by exploring the design and code of a C♯ *Describes an agile process that works on large projects *Ideal for hurried developers who want to develop software in teams *Incorporates real-life C#/.NET web project; can compare this with cases in book