Agile ALM. Lightweight tools and Agile strategies MANNING MICHAEL HUTTERMANN. Shelter Island



Similar documents
Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!

Software Continuous Integration & Delivery

Java Power Tools. John Ferguson Smart. ULB Darmstadt 1 PI. O'REILLY 4 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo

Software infrastructure for Java development projects

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012

Case Study: Using Jenkins to Build WebSphere Portal Applications for the Enterprise. #jenkinsconf. Jenkins User Conference Boston #jenkinsconf

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns

DevOps Course Content

Continuous Integration: A case study

Client Overview. Engagement Situation. Key Requirements

Continuous Integration

Automated performance testing using Maven & JMeter. George Barnett, Atlassian Software

Meister Going Beyond Maven

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Build Automation for Mobile. or How to Deliver Quality Apps Continuously. Angelo Rüggeberg

WHITEPAPER. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Principle #1, Agile Manifesto

Delivery. Continuous. Jez Humble and David Farley. AAddison-Wesley. Upper Saddle River, NJ Boston Indianapolis San Francisco

Build management & Continuous integration. with Maven & Hudson

HP ALM11 & MS VS/TFS2010

Delivering Quality Software with Continuous Integration

Effektiver Tool-Einsatz

SOFTWARE DEVELOPMENT BASICS SED

Continuous Integration and Bamboo. Ryan Cutter CSCI Spring Semester

Mastering Continuous Integration with Jenkins

Jenkins: The Definitive Guide

An Overview of Agile Testing

DevOps for. Developers. Michael Huttermann. Apress-

ASSURING SOFTWARE QUALITY USING VISUAL STUDIO 2010

Continuous. Integration. in.net MARGIN KAWALEROWICZ CRAIG BERNTSON MANNING. Greenwich. (74 w. long.)

November 12 th 13 th London: Mastering Continuous Integration with Jenkins

Maven the Beautiful City. Healthy, Viable, and Productive Build Infrastructures

Beginners guide to continuous integration. Gilles QUERRET Riverside Software

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

Continuous Integration Multi-Stage Builds for Quality Assurance

Continuous Delivery. Alejandro Ruiz

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

Java Software Quality Tools and techniques

Continuous Integration and Delivery at NSIDC

Maven or how to automate java builds, tests and version management with open source tools

Continuous Integration

NXTware Remote. Advanced Development and Maintenance Environment for OpenVMS and other Strategic Platforms

Web UI & Functional Test Automation for Continuous Agile Deliveries

Agile Development c/w Continuous Integration and Testing

Introduction to Programming Tools. Anjana & Shankar September,2010

WHITE PAPER. Getting started with Continuous Integration in software development. - Amruta Kumbhar, Madhavi Shailaja & Ravi Shankar Anupindi

Improving Software Quality with the Continuous Integration Server Hudson. Dr. Ullrich Hafner Avaloq Evolution AG 8911

In depth study - Dev teams tooling

Continuous Integration For Real: The Perforce Java Platform. Hamish Reid Perforce Software Inc.

Nexus Professional Whitepaper. Repository Management: Stages of Adoption

SOA Solutions & Middleware Testing: White Paper

Software Configuration Management and Continuous Integration

Taking Subversion to a Higher Level. Branching/Merging Support. Component Management Support. And More

Git Branching for Continuous Delivery

Escaping the Works-On-My-Machine badge Continuous Integration with PDE Build and Git

key benefits of CloudForge

IKAN ALM Architecture. Closing the Gap Enterprise-wide Application Lifecycle Management

enterprise IBM Rational Team Concert 2 Essentials

IBM Rational Software

White Paper: Localhost is Killing Software Delivery

Using Git with Rational Team Concert and Rational ClearCase in enterprise environments

Know the Difference. Unified Functional Testing (UFT) and Lean Functional Testing (LeanFT) from HP

Continuous???? Copyright 2015 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

SA4 Software Developer Survey Survey Specification v2.2

Jenkins World Tour 2015 Santa Clara, CA, September 2-3

Beginner s guide to continuous integration. Gilles QUERRET Riverside Software

Comparison: Perforce and Microsoft Team Foundation Server (TFS)

Paul Barham Program Manager - Java. David Staheli (dastahel@microsoft.com) Software Development Manager - Java

Mobile Development with Git, Gerrit & Jenkins

Testing Tools Content (Manual with Selenium) Levels of Testing

Security Automation in Agile SDLC Real World Cases

QA & Test Management. Overview.

Continuous Delivery. Ariel Alonso, IPC

Finally, an agile test strategy (that works)! AS OW Test Model, Objectware

Rally Integration with BMC Remedy through Kovair Omnibus Kovair Software, Inc.

Visual Studio - Continuous Integration

TeamCity A Professional Solution for Delivering Quality Software, on Time

Organising Massive Test bol.com. Jeroen Ruijgers and Viktor Clerc

2015 IBM Continuous Engineering Open Labs Target to better LEARNING

INCREASE YOUR WEBMETHODS ROI WITH AUTOMATED TESTING. Copyright 2015 CloudGen, LLC

Application Lifecycle Management Using Visual Studio 2013 (SCRUM)

Releasing High Quality Applications More Quickly with vrealize Code Stream

Java, PHP & Ruby - Cloud Hosting

Software configuration management

Leveraging Rational Team Concert's build capabilities for Continuous Integration

Two-Way Data Binding with WinJS By Marcin Kawalerowicz and Craig Berntson, authors of Continuous Integration in.net

Boosting Agile Methodology with webmethods BPMS

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

Coverity Services. World-class professional services, technical support and training from the Coverity development testing experts

DELIVERABLE. Europeana Cloud: Unlocking Europe s Research via The Cloud. Deliverable D2.1 Development Environment

SMZ. SocialMedia. Z olutions

Continuous Integration and Delivery. manage development build deploy / release

Is it time for a Connector-less Approach to Cloud Integration?!

Database Build and Release will get started soon

Test Automation Tool comparison HP UFT/QTP vs. Selenium - Prashant Malhotra

Transcription:

Agile ALM Lightweight tools and Agile strategies MICHAEL HUTTERMANN II MANNING Shelter Island

contents preface xv acknowledgments about this book xix xvii about the cover illustration xxv *art 1 Introduction to Agile ALI. eog>ooot»«) f>ffl«ets^'60fl6ffls Getting started udth Agile AIM 3 1.1 Agile ALM at a glance 5 1.2 Evolution of software engineering: moving to Agile ALM 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 Stakeholderfocus 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 tools 28 Effective and efficient tooling 29 27* Agile ALM

1.5 Example use case 30 1.6 Summary 33 ALM and Agile strategies 34 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 'art 2 Functional Agile ALM 59 Using Scrum for release management 61 3.1 Getting started with Scrum release management 62 3.2 Implementing Scrum release management 68 The release 68 1 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 bcking 90 3.5 Summary 91 Task-based development 92 4.1 Prerequisites for task-based development 93 Coordinating changes 93 " Using changesets 94 Associating changesets with tasks 95

4.2 Our first toolchain JIRA, FishEye, Bamboo, and Mylyn 9*7 Managing tasks withjira 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 * Thewiki 113* Timeline and sources 114* Roadmap and tickets 115 4.4 Summary 116 Paet 3 Integration and release management... 11' Integration and release management 119 5.1 The integration and release management 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 function 120 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 * Maven and outlook 167 5.5 Summary 169 Tooling beyond Creating a productive development environment 170 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

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 ofmockito 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.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 MSBuildt.obuild.NETprojects 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 Runningbuildfragments in Jenkins only 225 Injectingbuild numbers into applications 227 Jenkins, Artifactory, staging, and atomic deployment ofmaven 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.1 Collaborative tests 251 Data-driven tests 253 * Acceptance tests 254

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 1 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 Addingfurther scenarios 293 Creating scenarios 295 8.5 Summary 296 Collaborative and barrier-free development with 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