Tải bản đầy đủ (.pdf) (114 trang)

Agile in a Flash potx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.72 MB, 114 trang )

Agile in a Flash
Speed-Learning Agile
Software Development
Jeff Langr and
Tim Ottinger
edited by Susannah Pfalzer
P r a g m a t i c
P r o g r a m m e r s
A g i l e C a r d s f o r
A g i l e Te a m s
www.it-ebooks.info
What Readers Are Saying About Agile in a Flash
I have only one major issue with your cards, which is that I didn’t think of them
and do them first. That wouldn’t be so bad if you were screwing them up, but
unfortunately they’re great.
Ron Jeffries
Coauthor, The Agile Manifesto, www.XProgramming.com
Agile in a Flash is the only place to find a concise summary of all things agile. I
recommend my customers buy it for all their programmers.
Mike Cohn
Author of Succeeding with Agile, Agile Estimating and Planning, and User
Stories Applied
www.it-ebooks.info
Many of the designations used by manufacturers and sellers to distinguish their products are claimed as
trademarks. Where those designations appear in this book, and The Pragmatic Programmers, LLC was aware of
a trademark claim, the designations have been printed in initial capital letters or in all capitals. The Pragmatic
Starter Kit, The Pragmatic Programmer, Pragmatic Programming, Pragmatic Bookshelf and the linking g device
are trademarks of The Pragmatic Programmers, LLC.
“THE KARATE KID” © 1984 Columbia Pictures Industries, Inc. All Rights Reserved Courtesy of Columbia
Pictures
Every precaution was taken in the preparation of this book. However, the publisher assumes no responsibility


for errors or omissions, or for damages that may result from the use of information (including program listings)
contained herein.
Our Pragmatic courses, workshops, and other products can help you and your team create better soft-
ware and have more fun. For more information, as well as the latest Pragmatic titles, please visit us at
.
Copyright
©
2011 Pragmatic Programmers, LLC. All rights reserved.
No part of this publication may be reproduced, stored in a retrieval system, or transmitted, by any means,
electronic, mechanical, photocopying, recording, or otherwise, without the prior consent of the publisher.
Printed in Canada.
ISBN-13: 978-1-934356-71-5 P1.0 printing, January 2011 V e r s i o n : 2011-1-18 Printed on acid-free paper.
www.it-ebooks.info
In agile development, the values are axiomatic, and all the
re st is derivative and changeable.
TimOttinger
Using This Deck
Leaders, team members, pr oblem solvers, coaches, coders: this Agile in a Flash
deck is for you. Use the cards as conversation icebreakers, as reminders or refer-
ences, and as a source of practical tips and hard-won wisdom.
Don’t let the Agile in a Flash deck be shy. The cards are flexible! Share with
your teammates. Slip one into your manager’s pocket as a hint. Choose a card
at random to stimulate discussion. Tack useful cards onto walls or monitors. To
get the point across, fold a card into a paper airplane and airmail it. Customize
your deck by removing or reordering cards. Tear a card up to make a statement—
reorders are easy and cheap.
Just learning agile? The deck provides concise summaries of important agile con-
cepts and practices. I t also provides a wealth of experience to help you avoid
pitfalls going forward. Use it as a reference or an “agile tip of the day” stack.
Coaching an agile team? The deck goes with you everywhere in your back pocket

and is there to support you when you need to make an important point to the
Download from Wow! eBook <www.wowebook.com>
www.it-ebooks.info
team. Experienced with agile? Take your team to the next level—we’ve captured
some advanced and nuanced thoughts on how to succeed with agile.
Our one caveat is that the existence of this d eck suggests you can be agile by
simply checking off all items on the cards. Instead, treat these cards as collected
wisdom, reminders, and guidelines, not absolute prescriptions and rules.
Each Agile in a Flash card features a short list or simple diagram with further
explanation on the back. The cards are categorized into four sections:
The Idea
Core agile principles, concepts, and values
The Plan Planning, estimation, stories, acceptance tests
The T e a m Team and collaborative practices
The Code
Coding, design, Test-Driven Development (TDD), refactoring
V i s i t our companion website at to read the corresponding
blog entry for each card in the deck, as well as for those that didn’t make it into
print. Also visit where you’ll find a discussion
forum and errata.
Download from Wow! eBook <www.wowebook.com>
www.it-ebooks.info
1
Why Agile?
➤ Get us all on the same page
➤ Get product out the door
➤ Drive down risk
➤ Learn, adapt, deliver!
➤ Takepride in your craft
➤ Truetransparency

➤ The joy of building
Download from Wow! eBook <www.wowebook.com>
www.it-ebooks.info
Card 1— WHYAGILE? THEIDEA
Get us all on the same page Imagine the enmity disappearing as business and
development team up to deliver ongoing value to customers!
Get product out the door Quarterly releases? That’s for sissies! W i t h iterative
development, you can deliver every few weeks or even every few days.
Drive d own risk Short release cycles allow you to get real, end-user feedback
long before you’ve invested too much in a risky feature.
Learn, adapt, deliver! Feedback from real users keeps you in tune with the
changing marketplace. Internally, you can continually improve your team
with retrospection.
T a k e pride in your craft Using agile technical practices such as TDD, refactor-
ing, and automated tests, you can be proud of the low-defect product you
send out the door.
Truetransparency Y o u can’t miss the charts on the walls and the ongoing con-
versations in an agile team room. It’s obvious that team members have and
share more information than in nonagile projects.
The joy of building In agile, everyone can experience the excitement of working
in a true team that delivers cool, working stuff all the time.
Download from Wow! eBook <www.wowebook.com>
www.it-ebooks.info
2
The Agile V a l u e s , aka the
Agile Manifesto
W e
1
have come to value:
Individuals and interactions over Processes and tools

W o r k i n g software over Comprehensive
documentation
Customer collaboration over Contract negotiation
Responding to change over Following a plan
That is, while there is value in the items on the right, we value the
items on the left more.
1. See the list of seventeen signatories at .
Download from Wow! eBook <www.wowebook.com>
www.it-ebooks.info
Card 2— THEAGILEVALUES, AKATHEAGILEMANIFESTO THEIDEA
Agile software development teams collaborate and adapt with minimal ceremony
and overhead to deliver quality software.
Y o u may need “the things on the right” to succeed with agile, but it is effective to
bypass paperwork and just talk to people. Translatingneeds into written form is
wasteful compared to having your customer simply tell you what they want and
remain available to answer questions.
Similarly, working software matters. Documents? Not as much. Capture spec-
ifications in the product and its tests through agile practices such as TDD (see
Card 44, A Rhythm for Success: The TDD Cycle), metaphor (shared understanding
of the system), and acceptance testing (see Card 21, Acceptable Acceptance Tests).
Y o u can diminish the importance of contracts if you negotiate on a continual
basis. This involves an increase in transparency and trust, supported greatly by
the openness and heavy collaboration that agile promotes.
Plans are valuable, but your customer and the marketplace care less about your
plans than about you delivering software that fits their ever-changing needs.
Download from Wow! eBook <www.wowebook.com>
www.it-ebooks.info
3
Pr inciples Behind the Agil e
Manifesto

➤ Satisfy the customer through early, continuous delivery
➤ W e l c o m e changing requirements, even late
➤ Deliver working software frequently
➤ Businesspeople and developers collaborate daily
➤ Build projects around motivated individuals
➤ Convey info via face-to-face conversation
➤ Primary progress measure: working software
➤ Maintain a constant pace indefinitely
➤ Continuously demonstrate technical excellence
➤ Simplify: maximize amount of work not done
➤ Self-organize
➤ Retrospect and tune behavior
www.it-ebooks.info
Card 3— PRINCIPLESBEHINDTHEAGILEMANIFESTO THEIDEA
The Agile Manifesto values can sound “warm and fuzzy,” but you will find that its
dozen principles (paraphrased here from the originals at )
provide a much meatier description of agile.
Agile is foremost about continually and incrementally delivering quality soft-
ware to a customer who must constantly juggle changing requirements in order
to compete in the marketplace. Y o u r job: make your customer happy.
Y o u ’ l l best succeed if your team is highly motivated. They must communicate
and collaborate at least daily, which is easiest if everyone is in the same room,
talking face-to-face.
The team must embrace technical excellence, an essential part of maintaining
a constant delivery pace indefinitely. By self-organizing, the team derives the
best possible architectures, requirements, and designs.
To maintain a consistent r h y t h m of delivery, the team must adapt through ret ro-
spection. An incremental mindset helps sustain this r h y t h m : keep it simple by
introducing features and complexity only when demanded, no sooner.
Always remember it’s about d elivering the good software, baby. Measure progress

and success by your ability to continue to deliver.
Download from Wow! eBook <www.wowebook.com>
www.it-ebooks.info
4
Role-Playing in Agile
➤ Customer: Helps define the product
➤ Programmer: Helps construct the product
➤ T e s t e r : Helps verify the product works as defined
➤ Tracker: Helps gather and present useful metrics
➤ Coach: Helps guide the team to success
➤ Coordinator (optional): Helps manage external communication
Download from Wow! eBook <www.wowebook.com>
www.it-ebooks.info
Card 4— ROLE-PLAYINGINAGILE THEIDEA
In an agile team, everyone helps out, doing whatever it takes to deliver a useful,
high-quality product. Y o u are not bound by your job title. A tester might track
team metrics, a programmer might help define acceptance criteria, and so on.
The customer has special responsibility and authority, because they ar e respon-
sible for the pr oduct’s functionality and user-facing design. Their supporting cast
may include business analysts, product owners, and others who help define the
product (including testers), but everyone on the team is responsible for advising
the customer.
Programmers (and other technical folks, such as architects and support techni-
cians) are responsible for the internal design, construction, and maintenance of
the product.
A coach helps educate and guide your team, shunning command-and-control
approaches. They help your team devise their own rules and protocols. The b est
coaches help teams mature to the point wher e the team no longer needs them.
W e substitute team coordinator for roles like manager, project manager, and
Scrum Master. The coordinator buffers the team from outside interference and

distraction. They might communicate schedules, handle incoming requests, and
smooth interpersonal problems.
Download from Wow! eBook <www.wowebook.com>
www.it-ebooks.info
5
Agile Succes s F a c t o r s
➤ Freedom to change
➤ Energized team
➤ Communication with customer
➤ Collaboration
➤ Attention to quality
➤ Incrementalism
➤ Automation
Download from Wow! eBook <www.wowebook.com>
www.it-ebooks.info
Card 5— AGILESUCCESSFACTORS THEIDEA
Takingthe Agile Manifesto’s values and principles one step further, these are the
make-or-break factors for a team wanting to be agile:
Freedom to change A team must be allowed to own and change its process. Tam-
pering diverts from shipping quality software.
Energized team A winning agile team is eager to deliver value, collaborates freely,
and never bypasses quality controls even under pressure.
Communication with customer The best agile teams are in constant dialogue
with an enthusiastic, individual, dedicated customer who understands and
communicates the product vision.
Collaboration Get past cube mentality! Meetings aren’t collaboration; working
together in your code base is.
Attention to quality Lack of attention slows you down until you can no longer
meet customer demand. Make quality part of everything you do.
Incrementalism Y e t - s m a l l e r steps to everything (including retrospection) allow

you to verify whether each step got you closer to the end goal.
Automation Agile cannot work unless you automate as many menial, tedious,
and error-prone tasks as possible. There’s just not enough time!
Download from Wow! eBook <www.wowebook.com>
www.it-ebooks.info
6
Courage
➤ Toalways deliver quality work
➤ Tosimplify code a t every turn
➤ Toattack code the team fears most
➤ Tomake architectural corrections
➤ Tothrow away unneeded code and tests
➤ Tobe transparent, whether favorable or not
➤ Totake credit only for complete work
Cowardly Lion: As long as I know myself to be a coward, I shall be
unhappy.
Download from Wow! eBook <www.wowebook.com>
www.it-ebooks.info
Card 6— COURAGE THEIDEA
T o always deliver quality work Even w hen pressure mounts, never discard the
practices needed to deliver quality code. See Card 13, Don’t Get Too Deep in
Technical Debt.
T o simplify code at every turn Simple code reads faster and more clearly,
which leads to fewer defects and more fluid development. Simplifying is
investing in speed of development.
T o attack code the team fears most Fear of breaking ugly code makes a team
dread changes instead of embracing them. Empower your team by getting
that code under control.
T o make architectural corrections Systems may outgrow early architectural
decisions. It takes courage to undertake changes that will affect existing

code, even if the change is clearly for the better.
T o throw away tests and code Often the best results are produced by discarding
a poor solution and reworking it. It takes far less time than you think.
T o be transparent, whether favorable or not If you “color” your reports about
status, progress, or quality, you contribute to ill-informed decision making.
T o take credit only for complete work Incomplete work pro vides no business
value! Don’t rationalize calling it “done” for status tracking purposes.
Download from Wow! eBook <www.wowebook.com>
www.it-ebooks.info
7
Redefining Discipline
➤ W o r k attentively
➤ W o r k on one thing at a time
➤ Shorten feedback loops
➤ Continuously reflect and adapt
➤ Know when to call it a day
➤ Push back when it matters
Download from Wow! eBook <www.wowebook.com>
www.it-ebooks.info
Card 7— REDEFININGDISCIPLINE THEIDEA
In a pre-agile world, discipline was defined mostly as the inclination to stick with
a plan. An agile workflow is very disciplined but w ith a different definition of
discipline.
W o r k attentively Tryto keep up but also keep track. Note which aspects of your
work system are hard, clunky, troublesome, or slow.
W o r k on one thing at a time Do not dilute your ef fort and your attention by tak-
ing on multiple tasks at once. Take one tiny, verifiable step at a time.
Shorten feedback loops How long until you detect defects or reap benefits? Ag-
gressively simplify your process to shorten that time.
Continuously refl ect and adapt Invest in the team’s ability to easily produce a

quality product. Always build a better “next week.”
Know when to call it a day A few more minutes of digging might crack a tough
problem, but so could a night’s sleep. Learn when to stop.
Push back when it matters Nobody w ants a contentious employee. So, choose
your battles carefully, but always protect the product, team, and company
by advising against changes that oppose the values stated in the manifesto.
Download from Wow! eBook <www.wowebook.com>
www.it-ebooks.info
8
Pillar s of Software
Craftsmanship
➤ Care
➤ Learn
➤ Practice
➤ Share
Download from Wow! eBook <www.wowebook.com>
www.it-ebooks.info
Card 8— PILLARSOFSOFTWARECRAFTSMANSHIP THEIDEA
V i a the Craftsmanship Google Group,
2
Jason Gorman offered this nicely concise
statement of Craftsman ethics, abbreviated and quoted here:
Care W e care about the quality of the work we do. It should be as good as we’re
capable of making it.
Learn W e learn from our mistakes and from examples, books, blogs, webinars,
magic beans, and electric parsnips. When we’re exposed to good examples,
we learn better, so it’s important to have good influences.
Practice W e learn by doing, so we practice. Continuously. W e internalize our
knowledge and build our “software development muscles” and the necessary
reflexes and muscle memory needed to be a productive pro grammer. Y o u

can no more master a skill like refactoring by reading a book on it than you
can master riding a bicycle by reading the manual. It takes practice—good,
focused, measured practice.
Share W e share what we’ve learned. W e build the good examples others learn
from. W e are all simultaneously masters and apprentices, teachers and stu-
dents, mentors and mentored, coaches and coachees.
2. />Download from Wow! eBook <www.wowebook.com>
www.it-ebooks.info
9
T o y o t a Production System
(TPS) Principles
➤ Continuous improvement
➤ Respect for people
➤ Long-term philosophy
➤ Develop the right process
➤ Develop your people and partners
➤ Continuously solve root problems
Download from Wow! eBook <www.wowebook.com>
www.it-ebooks.info
Card 9— TOYOTAPRODUCTIONSYSTEM(TPS)PRINCIPLES THEIDEA
Y o u r agile team—scratch that, any team—can learn plenty from Toyota Produc-
tion System principles (see />Continuous improvement Not only must we continuously reflect and adapt, but
we must base such decisions on facts that derive from the true source.
Respect for people Even if a process fosters the delivery of quality software, it is
a failure if it does so at the expense of the workers who employ it.
Long-term philosophy Building a process around short-ter m goals leads to a
sloppy product. Teams must take a larger product focus.
Develop the right process The software development pr ocess is not about con-
trolling a project with voluminous documentation and mandates. Allow each
team to devise and continuously tweak their own mechanisms for success.

Develop your people and partners The best agile teams seek not only to contin-
ually learn more and challenge themselves but to promote this attitude in
others with whom they interact.
Continuously solve root problems All involved should go to the problem to see
it firsthand and work with the whole team to reach a consensus on how to
solve it.
Download from Wow! eBook <www.wowebook.com>
www.it-ebooks.info
10
The Right Process
➤ Continuous process flow
➤ Pull work to avoid overproduction
➤ W o r k like the tortoise, not the hare
➤ Stop to fix problems
➤ Standardize tasks
➤ Expose problems with visual control
➤ Use only reliable technology that serves people and process
Download from Wow! eBook <www.wowebook.com>
www.it-ebooks.info
Card 10— THERIGHTPROCESS THEIDEA
The Toyota Production System says “the right process will produce the right
results.”
3
Continuous process flow A process stream that requires continual delivery cre-
ates transparency; any blips in the process are sorely felt downstream.
Pull work to avoid overproduction An overproducing group produces waste by
creating backlog. Produce only when the downstream group requests it.
W o r k like the tortoise, not the hare Rushing repeatedly to short-term deadlines
can produce poor quality and burnout that destroys products and teams.
Stop to fix problems Small problems quickly pile up into pro gress-killing waste.

Engage the whole team, and correct the pr oblems before moving on.
Standardize tasks Y o u cannot hope to continually improve without some foun-
dational level of standardization.
Expose problems with visual control Y o u cannot fix a problem easily until
everyone admits it’s a problem. Don’t bury your mistakes.
Use only reliable technology that serves people and processes Y o u r team has
to be masters of the tools they use.
3. Source: See also Card 9, Toyota Production Sys-
tem (TPS) Principles.
Download from Wow! eBook <www.wowebook.com>
www.it-ebooks.info

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×