Get More Refcardz! Visit refcardz.com
#45
Agile Adoption:
CONTENTS INCLUDE: n
n
n
n
About Agile Adoption What Agile Practices Improve Time to Market How to Adopt Agile Strategies Successfully Next Steps
Decreasing time to market By Gemba Systems Continuous Integration
About Agile Adoption
Continuous Integration
There are a myriad of Agile practices out there. Which ones are right for you and your team? What are the business values you want out of adopting Agile and what is your organization’s context? This Refcard is focused on helping you evaluate and choose the practices for your team or organization when getting to market faster is of prime importance. Instead of focusing on entire methods such as Scrum and XP, we will talk about the practices that are the building blocks of these methods such as iterations and automated developer tests. We will answer two basic questions:
Automated Acceptance Tests
Automated Developer Tests
Done State
Continuous integration (CI) is an advanced version of the “daily build” practice that has been around for years. The development team members perform CI by frequently integrating their code into the entire system and running all available automated tests. The system is integrated and tested several times a day.
Definition
Continuous integration reduces the total time it takes to build a software system by catching errors early and often. Errors caught early cost significantly less to fix when caught later. It leverages both automated acceptance tests and automated developer tests to give frequent feedback to the team and to pay a much smaller price for fixing a defect as shown in Figure 2.
Tim e to M arket
• What Agile practices should you consider to improve Time to Market? • How should you go about choosing from those practices given your organization and context?
A team that has control or can get access to their build environment will be able to perform continuous integration. Teams that have agreed on a done state can benefit from continuous integration as a supporting practice to catch any failed automatic tests early.
What Agile Practices improve time to market? More Effective
Continuous Integration
Iteration
Iteration Backlogs
Done State
Automated Acceptance Tests
Cost of Fixing Defect
w ww.dzone.com
D
Release Often Automated Developer Tests Simple Design
Onsite Customer
Cross Functional Team
Refactoring
C B A ...
Less Effective
...
Figure 1-
These are the Agile practices that improve time to market. The most effective practices are near the top of the diagram. Therefore iteration is more effective than Onsite Customer for improving time to market. The arrows indicate dependencies. Continuous Integration depends on Automated Developer Tests for it to be effective.
Time
You will be ale to use this Refcard to get a 50,000 ft view of what will be involved in your team’s delivery speed.
Iteration
Figure 2- The cost of fixing a defect increases over time because of context switching, communication, and bugs being built on existing bugs.
Iteration
tech facts at your fingertips
Agile Adoption
Kickoff Meeting
Iteration Backlogs
Automated Acceptance Tests
Done State
Demo
Get More Refcardz
Retrospective
(They’re free!)
*Practices in pink are ones that don’t directly address time to market but are needed to support practices that do (hence a dependency). They are not described in this Refcard but can be found in the external references.
Definition
An iteration is a time-boxed event that is anywhere between 1 to 4 weeks long. The development staff works throughout this period – without interruption – to build an agreed upon set of requirements that are accepted by the customer and meet an agreed upon “done state”.
n
Method Name open(method, url, async)
Tim e to M arket
To get the most of an iteration and reduce your time to market, an iteration needs to work from an iteration backlog and reach a solid done state at its completion. Such an iteration reduces time to market because every time-boxed iteration is a potential release. There is little “work in progress” between iterations and defects are found early and often for cheaper and faster removal.
onreadystatechange
Parameters and Descriptions a URL open a connection to (GET, POST, etc.) method = HTTP verb include querystring url = url to open, may asynchronous request async = whether to make
Hot Tip
as callback (similar to onclick, assign a function object event model) onload, etc. in browser
setRequestHeader (namevalue) send(body) abort() readyState httpStatus responseText responseXML getResponseHeader (name) rs() getAllResponseHeade
add a header to the HTTP
tech facts at
request
send the request as request body body = string to be used for the response stop the XHR from listening (only populated after send() stage in lifecycle of response is called) after (integer, only populated The HTTP return code loaded state) response reaches the set after JavaScript string (only body of response as a interactive readyState) the reaches response (only as a XML document object body of the response the interactive readyState) set after response reaches read a response header
by name
Get an array of all response
header names
your fingertips
Subscribe Now for FREE! Refcardz.com
Any software team that is building software where they are not 100% sure of their outcome is a candidate for performing iterations. Without iterations the majority of learning (from mistakes) only happens at the end and coursecorrections are difficult if not impossible.
DZone, Inc.
Authoritative content Designed for developers n Written by top experts n Latest tools & technologies n Hot tips & examples n Bonus content online n New issue every 1-2 weeks n
|
www.dzone.com