Agile ALM: Lightweight Tools and Agile Strategies
Total Page:16
File Type:pdf, Size:1020Kb
Free ebooks ==> www.ebook777.com Lightweight tools and agile strategies MANNING MICHAEL HÜTTERMANN www.ebook777.comwww.it-ebooks.info Free ebooks ==> www.ebook777.com Agile ALM www.it-ebooks.info Free ebooks ==> www.ebook777.com www.ebook777.comwww.it-ebooks.info Free ebooks ==> www.ebook777.com Agile ALM Lightweight tools and Agile strategies MICHAEL HÜTTERMANN MANNING SHELTER ISLAND www.it-ebooks.info Free ebooks ==> www.ebook777.com For online information and ordering of this and other Manning books, please visit www.manning.com. The publisher offers discounts on this book when ordered in quantity. For more information, please contact Special Sales Department Manning Publications Co. 20 Baldwin Road PO Box 261 Shelter Island, NY 11964 Email: [email protected] ©2012 by Manning Publications Co. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by means electronic, mechanical, photocopying, or otherwise, without prior written permission of the publisher. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in the book, and Manning Publications was aware of a trademark claim, the designations have been printed in initial caps or all caps. Recognizing the importance of preserving what has been written, it is Manning’s policy to have the books we publish printed on acid-free paper, and we exert our best efforts to that end. Recognizing also our responsibility to conserve the resources of our planet, Manning books are printed on paper that is at least 15 percent recycled and processed without elemental chlorine. Technical editor: Robert Aiello Manning Publications Co. Development editor: Sebastian Stirling 20 Baldwin Road Copyeditor: Andy Carroll PO Box 261 Typesetter: Marija Tudor Shelter Island, NY 11964 Cover designer: Marija Tudor ISBN: 9781935182634 Printed in the United States of America 12345678910–MAL–17161514131211 www.ebook777.comwww.it-ebooks.info Free ebooks ==> www.ebook777.com To my wife and kids www.it-ebooks.info Free ebooks ==> www.ebook777.com www.ebook777.comwww.it-ebooks.info Free ebooks ==> www.ebook777.com brief contents PART 1 INTRODUCTION TO AGILE ALM ................................... 1 1 ■ Getting started with Agile ALM 3 2 ■ ALM and Agile strategies 34 PART 2 FUNCTIONAL AGILE ALM........................................... 59 3 ■ Using Scrum for release management 61 4 ■ Task-based development 92 PART 3 INTEGRATION AND RELEASE MANAGEMENT ................ 117 5 ■ Integration and release management 119 6 ■ Creating a productive development environment 170 7 ■ Advanced CI tools and recipes 191 PART 4 OUTSIDE-IN AND BARRIER-FREE DEVELOPMENT .......... 247 8 ■ Requirements and test management 249 9 ■ Collaborative and barrier-free development with Groovy and Scala 297 vii www.it-ebooks.info Free ebooks ==> www.ebook777.com www.ebook777.comwww.it-ebooks.info Free ebooks ==> www.ebook777.com contents preface xv acknowledgments xvii about this book xix about the cover illustration xxv PART 1 INTRODUCTION TO AGILE ALM........................ 1 Getting started with Agile ALM 3 1 1.1 Agile ALM at a glance 5 1.2 Evolution of software engineering: moving to Agile ALM 7 SCM and the first ALM trial balloons 8 ■ The dawn of ALM 13 ■ Becoming Agile: Agile ALM 15 1.3 Building blocks of Agile ALM 17 Stakeholder focus 17 ■ Views on releasing and Agile ALM 19 Service orientation, SaaS, IaaS, PaaS 19 ■ Task-based and outside-in 21 ■ Configuration, customization, and plug-ins 22 ■ The polyglot programming world 23 ■ Open source culture 24 ■ Open technology and standards 25 ■ Automation 26 1.4 Comprehensive Agile ALM with lightweight tooling 26 Toolchains and accidental complexity 27 ■ Agile ALM tools 28 ■ Effective and efficient tooling 29 ix www.it-ebooks.info Free ebooks ==> www.ebook777.com x CONTENTS 1.5 Example use case 30 1.6 Summary 33 ALM and Agile strategies 34 2 2.1 The Agile and project management 36 2.2 Agile strategies 40 Version control and a single coding stream 40 ■ Productive workspaces 42 ■ Continuous integration 43 ■ Component repository 50 ■ Quality, standards, and release cycles 51 2.3 The process pitfall, the illusion of control 53 Effectiveness and efficiency 54 ■ Agile ALM and configuration items 54 ■ Agile ALM as change enabler 57 2.4 Summary 57 PART 2 FUNCTIONAL AGILE ALM ............................... 59 Using Scrum for release management 61 3 3.1 Getting started with Scrum release management 62 3.2 Implementing Scrum release management 68 The release 68 ■ The release duration 70 ■ The release content 72 ■ Progress and size of working units 74 Release commitments 75 ■ Synchronization points 76 Feature teams, component teams, caretakers 78 ■ Delivery slots, frozen zone, and code freeze 79 ■ Staging software 81 Quality gates 83 3.3 Release planning vehicles 84 Release calendar 84 ■ Release screenplay 85 3.4 Supporting strategies with Subversion 86 The one-medium approach 86 ■ Hooks 88 ■ Flow and locking 90 3.5 Summary 91 Task-based development 92 4 4.1 Prerequisites for task-based development 93 Coordinating changes 93 ■ Using changesets 94 Associating changesets with tasks 95 www.ebook777.comwww.it-ebooks.info Free ebooks ==> www.ebook777.com CONTENTS xi 4.2 Our first toolchain—JIRA, FishEye, Bamboo, and Mylyn 97 Managing tasks with JIRA 99 ■ Working on tasks with Eclipse and Mylyn 103 ■ Tracking source changes with FishEye 105 Build view with Bamboo 107 4.3 Trac bug tracking and project management 109 Installing Trac 111 ■ The wiki 113 ■ Timeline and sources 114 ■ Roadmap and tickets 115 4.4 Summary 116 PAET 3 INTEGRATION AND RELEASE MANAGEMENT .... 117 Integration and release management 119 5 5.1 The integration and release management function 120 5.2 Maven feature set 124 POMs and dependencies 125 ■ Inheritance and aggregation 127 ■ Lifecycles, phases, and goals 128 Maven and testing 130 ■ Maven ecosystem 131 5.3 Maven component repositories 132 Managing sources and binaries in conjunction 135 Artifactory’s enterprise component repository 137 ■ Using Subversion to serve a simple Maven repository 145 5.4 Releasing with Maven 150 Creating the branch and preparing the release 152 ■ Creating the release 157 ■ Testing the release 158 ■ Useful Maven plug-ins for releasing 160 ■ Using cryptography with Maven 161 ■ Maven assembly 162 ■ Tooling beyond Maven and outlook 167 5.5 Summary 169 Creating a productive development environment 170 6 6.1 Congruent builds and workspace management 171 Workspace management and the VCS 171 ■ Workspace management and integrating code 172 ■ Workspace management and running tests 173 ■ Workspace management and dependencies 174 ■ Workspace management and bootstrapping the development 177 www.it-ebooks.info Free ebooks ==> www.ebook777.com xii CONTENTS 6.2 Using Mockito to isolate systems 177 Isolation and dependency injection 178 ■ Mocks in test-driven development 180 ■ The flavor of behavior-driven development 182 ■ Other handy features of Mockito 182 Antipatterns 184 6.3 Interfacing application containers with Cargo 185 6.4 Remote builds with TeamCity 187 6.5 Summary 190 Advanced CI tools and recipes 191 7 7.1 Integrating other artifact types: Cobol 193 Preconditions and basic thoughts 194 ■ FTP communication with Ant 195 ■ FTP communication with Java 199 7.2 Integrating other artifact types: .NET 201 Using MSBuild to build .NET projects 202 ■ Using TeamCity to trigger .NET builds 203 7.3 Configure: building (web) apps for multiple environments 207 Multiple artifacts with assemblies 208 ■ Applying different configurations 210 ■ Using a distribution profile and executing the example 212 7.4 Building, auditing, and staging with Jenkins 213 Jenkins and triggering jobs 214 ■ Jenkins dashboard and Jenkins jobs 215 ■ Auditing with Jenkins and Sonar 218 Running build fragments in Jenkins only 225 ■ Injecting build numbers into applications 227 ■ Jenkins, Artifactory, staging, and atomic deployment of Maven artifacts 229 7.5 Using Git and git-svn bridge for feature branch–driven CI 238 Feature branching comes to the rescue 241 ■ The Lone Ranger problem and how the git-svn bridge can fix it 243 7.6 Summary 246 PART 4 OUTSIDE-IN AND BARRIER-FREE DEVELOPMENT 247 Requirements and test management 249 8 8.1 Collaborative tests 251 Data-driven tests 253 ■ Acceptance tests 254 www.ebook777.comwww.it-ebooks.info Free ebooks ==> www.ebook777.com CONTENTS xiii Ubiquitous language 255 ■ Executable specifications 256 Behavior-driven development 256 8.2 Acceptance testing with TestNG, Selenium, XStream, and Excel 259 TestNG and the data-driven approach 259 ■ Data-driven testing with XStream 262 ■ Testing the web UI with Selenium, TestNG, and XStream 264 ■ Data-driven testing with Excel 270 8.3 Acceptance testing with Fit, TestNG, and FEST 272 The application 272 ■ The specification 273 ■ Gluing the tests and processing the document 276 ■ Running tests with Ant 278 ■ Running tests with Maven and adding to a Maven site 280 8.4 BDD in FitNesse with GivWenZen 283 Testing with GivWenZen 285 ■ GivWenZen and Java PropertyEditors 290 ■ Adding further scenarios 293 Creating scenarios 295 8.5 Summary 296 Collaborative and barrier-free development with 9 Groovy and Scala 297 9.1 Agile and polyglot with Groovy 298 Low ceremony and scripting 301 ■ Domain-specific languages 302 ■ Testing with easyb and Spock 303 Groovy Maven ecosystem 305 9.2 BDD with specs2 and Scala 306 Scala/specs2 307 ■ Specs2 forms 313 ■ Scala build ecosystem 315 9.3 Summary 315 index 319 www.it-ebooks.info Free ebooks ==> www.ebook777.com www.ebook777.comwww.it-ebooks.info Free ebooks ==> www.ebook777.com preface Welcome to Agile ALM. This book has three main goals. The first is to describe Agile Application Lifecycle Management (ALM) in practical terms and to provide a plan for rolling out Agile strategies and best-of-breed tools. The second purpose is to explain how to create ALM toolboxes based on standard tools used in advanced, real-world cases.