"Software Development is moving towards a more agile and more flexible approach. It turns out that the traditional "waterfall" model is not supportive in an environment where technical, financial and strategic constraints are changing almost every day. But what is agility? What are today's major approaches? And especially: What is the impact of agile development principles on the development teams, on project management and on software architects? How can large enterprises become more agile and improve their business processes, which have been existing since many, many years? What are the limitations of Agility? And what is the right balance between reliable structures and flexibility? This book will give answers to these questions. A strong emphasis will be on real life project examples, which describe how development teams have moved from a waterfall model towards an Agile Software Development approach."--Jacket Contents 22 1. The Flaw in the Plan 25 1.1 The Delusive Perception of Having Anticipated Everything 25 1.2 Accept the Uncertainty and Adapt 29 1.3 Involving the Teams 32 1.4 In Search of Structure 32 1.5 Agile Software Development 36 Further Readings 38 2. Traditional Software Development 39 2.1 History of Project Management 39 2.2 Waterfall Approach 40 2.2.1 Requirements 41 2.2.2 Design Phase 42 2.2.3 Implementation 47 2.2.4 Testing 47 2.2.5 Support 51 2.2.6 Advantages and Disadvantages 51 2.3 Project Mangement Triangle 52 2.4 Modified Waterfall Models 54 2.4.1 Milestone and Regular Integration 54 2.4.2 Incremental Development 55 Further Readings 56 3. Overview of Agile Software Development 59 3.1 Lean Software Development 61 3.2 Project Management 2.0 64 3.3 Agile Manifesto 64 3.4 Scrum 65 3.5 Test Driven Development 71 3.6 Extreme Programming 72 3.7 Rational Unified Process 76 3.7.1 Best Practices 76 3.7.2 The Phases 77 3.7.3 The Process 78 3.8 Agile Unified Process 80 3.9 Agile Model Driven Development 81 Further Readings 82 4. Tooling 85 4.1 Project Management Tools 85 4.1.1 Microsoft Solutions Framework for Agile Development 86 4.1.2 Jazz and Rational Team Concert (RTC) 87 4.2 Collaboration Tools 90 4.3 Development Infrastructure and Environment 91 4.3.1 Source Control and Version Management 92 4.3.2 Automated Test Environment 94 4.3.3 "Code-Build-Test" 95 Further Readings 97 5. Considerations on Teaming and Leadership 99 5.1 A "Lean" Hierarchy 99 5.2 Setting the Directions: Management by Objectives 102 5.3 Defining the Goals 104 5.4 About Trust and Thrust: Culture and Climate 106 5.5 Cross-functional Teams 107 5.6 The Wisdom of Crowds 109 5.7 It Isn't that Easy 111 5.8 Skills 115 Further Readings 116 6. Considerations on Planning and Architecture 117 6.1 About Requirements, Resources, and Dates 117 6.2 Agile, a License for Chaos? 117 6.3 Balance Flexibility and Structure 119 6.3.1 Balance the Level of DetailError! Bookmark not defined 119 6.3.2 Balance the Timing of Decisions 121 6.3.3 Balance the Need for Commitment 122 6.3.4 Balance Between Autonomy and Guidance 123 6.3.5 Balance the Amount of Documentation 124 6.3.6 Disciplined Agile 125 6.4 Reducing Complexity 125 6.4.1 Simplify Prioritization and Planning 126 6.4.2 Simplify Team Setup and Dependencies 127 6.4.3 Simplify Tools and Processes 128 6.4.4 Simplify Daily Life 129 6.5 Architectural Considerations 130 6.5.1 Outside-In Design 130 6.5.2 Requirements, Use Cases, Scenarios, and Tasks 131 6.5.3 Architectural Attitude 133 6.5.4 Making Architecture Flexible 136 Further Readings 138 7. Considerations on Project Execution 139 7.1 The Big Bang 139 7.2 Continuous Integration 140 7.3 The Rhythm of the Project: Iterations 142 7.4 Integration Fest 145 7.5 Juggling Content Within an Iteration 146 7.6 Planning in an Agile Project 150 7.7 Estimating 152 7.7.1 Units often used in Agile Projects 154 7.7.2 Ways to get to Estimates 157 7.8 Metrics for an Agile Project 159 7.9 Defects 162 7.10 Independent Release Testing and Wrap-up 164 7.11 Involving Customers 166 8. Mix and Match 169 8.1 The Tragedy of Being Successful 169 8.2 About WebSphere Portal 170 8.3 Which Projects are suitable for Agile Software Development? 172 8.4 Scaling Agile 173 8.5 Moving Towards Agile 174 8.6 Tiger Teams in WebSphere Portal 177 8.6.1 Budget-based Prioritization 177 8.6.2 Cross-Organizational Teaming Structure 179 8.6.3 Evolving the Product in Iterations 181 8.6.4 Integrating Test and Development 185 8.6.5 Designs and Documentation 188 8.6.6 Managing Tiger Teams 189 8.7 The Benefits and Pain Points 192 9. Summary and Wrap-Up 195 9.1 The Essence of Agile 195 9.2 Building an Agile Community 197 9.3 Comparing once again 197 Index 201 A 201 B 201 C 201 D 201 E 201 F 202 G 202 I 202 J 202 K 202 L 202 M 202 N 202 O 202 P 202 Q 202 R 202 S 203 T 203 U 203 V 203 W 203 Front Matter....Pages i-xxiii The Flaw in the Plan....Pages 1-14 Traditional Software Development....Pages 15-33 Overview of Agile Software Development....Pages 35-59 Tooling....Pages 61-73 Considerations on Teaming and Leadership....Pages 75-92 Considerations on Planning and Architecture....Pages 93-114 Considerations on Project Execution....Pages 115-144 Mix and Match....Pages 145-170 Summary and Wrap-Up....Pages 171-175 Back Matter....Pages 177-179 Looks at the principles of agile software development, covering such topics as project management tools, planning and architecture, project execution, and the WebSphere Portal.