SlideShare una empresa de Scribd logo
1 de 46
5 Things you’ll love to hate about
Agile Development

@ArinSime
Arin@AgilityFeat.com
434 996 5226
Design & Development in
Central America
A few that have paid us…
Hey, Look at me! I can talk.
5 Things you’ll love to hate about Agile Development

#1: Pair Programming
Pair Programming
2 developers working together on
the same story, using the same
computer and keyboard. One
Driver and one Navigator, and
they must switch roles regularly.

What’s the Beef?
 Manager: Why pay for two
developers to only do one
thing?
 Developer: But he smells,
and I don’t like to share!
Independent
Developers
Developers Pair
Programming

Building Feature “A”

Building Feature “A”

Test

Rework

Test

Redo

Also fewer
expensive
post-release
defects

Pairs are 15% slower, but
produce half as many bugs

Williams study showed error free code went from 70% to
85%, cutting the error rate in half.
Study by Laurie Williams of the University of Utah, as
quoted in the Economist:
http://www.economist.com/node/779429?Story_ID=779429
Reasons to pair program:
Lower Defect Rates
Constant Peer Review
Cross Training
Cleaner Solutions

Pairs are 15% slower, but
produce half as many bugs

Williams study showed error free code went from 70% to
85%, cutting the error rate in half.
Study by Laurie Williams of the University of Utah, as
quoted in the Economist:
http://www.economist.com/node/779429?Story_ID=779429
Painless Pair
Programming Ideas

 Require two people to sign
up for every user story
 Or only require pairing on
certain user stories
 Allow “me time” daily
 Enforce pair programming
most strictly on difficult or
risky changes and with new
team members
 Use a sign up sheet and
rotate pairs daily or on
stories
5 Things you’ll love to hate about Agile Development

#2: Test Driven
Development &
Automation
Test Driven
Development
Build the automated tests for each
story prior to coding the solution.
Result: Automated Test Suite &
High Quality!
Write a new
test

What’s the Beef?
 Manager: Isn’t this going
to take longer?

Green (Test
Passes)

Red (Failing
Test)

 Developer: How will I
maintain all these old
tests?

Refactor
Code

Write Code

 Tester: You can’t automate
me! I am a human being!

Green (Test
Passes)
Automation frees
you to do more
exploratory testing!
Acceptance Test
Driven Development
(ATDD)
Test Driven
Development
(TDD)

http://watirmelon.com/2012/01/31/introducing-the-software-testing-ice-cream-cone/
Painless TDD Ideas
Write a new
test
Green (Test
Passes)

 Start with “Manual” TDD –
write acceptance criteria
 Leave legacy code behind

Red (Failing
Test)

 “Cover and Modify”
 Focus on unit tests first

Refactor
Code

Write Code
Green (Test
Passes)

 GUI level automation
should focus on just a few
paths that cover large sets
of functionality
5 Things you’ll love to hate about Agile Development

#3: Manual Testing
Patterns
Manual Testing
Automation is great, but
exploratory testing is still
recommended. Manual testing in
agile teams should be done within
the sprint, and is part of that
sprint’s “Definition of Done.”

What’s the Beef?
 Tester: How will I have
time to do quality testing
in each sprint? What about
regression testing?
 Developer: So I have to be
done 2 days early now?
Then what do I do?
Sprint BusynessTM

BusynessTM

O
M
G

developers
This is what
typically happens,
but is not “good”.

testers

lolcats
Days of the Sprint
Sprint BusynessTM
developers

BusynessTM

O
M
G

testers

lolcats

Instead, let’s make
sure stories are
small and delivered
frequently to
testing…
Days of the Sprint
A Typical 2-week Cadence

Sprint 2

Sprint 1

Monday

Tuesday

Wednesday

S1
Planning

Thursday

The last stories
should have made
it to testing

The first stories
should be in
testing by now
S2
Planning
Monday of the new sprint
is a good time for testers
to regression test

Friday

S1 Demo
& Retro
Developers work
ahead, help test,
maybe refactor
S2 Demo
& Retro
Painless Testing Ideas

 Enforce small user stories!
 Developers deliver highest
value stories first in the sprint
 In-sprint testing focuses only
on the stories at hand
 Use the beginning of the next
sprint to regression test
before deploying the current
sprint
 In sprint bugs are
communicated, not tracked
5 Things you’ll love to hate about Agile Development

#4: Branching & Release
Streams
Release Streams
Agile teams work in small chunks,
and deployments happen on
cadences like this:
Scrum – deploy at end of sprint

What’s the Beef?
 Developer: I have to work
in multiple branches every
day!?!?

Kanban – deploy story by story
This means frequent deployments,
and multiple branches to keep
code independently testable and
deployable.

 Release Engineer: I hate
merging, and now I hate U.
 Tester: How do I know
what codebase I am
testing?
“Big Bang” Branching
big_bang

master

branch
merge

Deploy to
Production
Branching Challenges
for Agile teams
 Deploy frequently

 Work on very small stories
 Work towards big goals, aka
“epics”

 Balance production fixes
with ongoing work
 Keep the testing
environments straight
Branching by features
feature_1

feature_4

feature_2

feature_3

master

branch
merge

Deploy to
Production

Deploy to
Production

Deploy to
Production

Works great with very independent features
and a kanban style system. May be too fluid
for scrum teams and large epics.
Sprint Branching Strategy
epic

sprint_x

sprint_x+1

sprint_x+2

master
testing

production
A little complicated … but the value created here is balancing short
term and long term work while still delivering frequent releases.
Hot fixes to production
epic

sprint_x

sprint_x+1

sprint_x+2

master
hf_issue
testing

production
Hot fixes to production should be rare …
use the sprints instead when ever possible!
5 Things you’ll love to hate about Agile Development

#5: Iterative Architecture
& Design
Iterative Design &
Architecture
Vision is good, but detailed design
documents are bad. Remember
that whole “working software over
comprehensive documentation”
thing?
Agile teams work in small chunks,
and architectural and UX/visual
design tasks should be done at the
last responsible moment.

What’s the Beef?
 Architect: No more design
documents? I can’t decide
whether to kiss you or
punch you right now.
 Visual Designer: I’m an
artist, don’t oppress me!
 Developer: FR33D0M!!!
Vision and customer research are good things
But details
are waste
Defining in pieces
Defining in pieces
Defining in pieces
5 Things you’ll love to hate about Agile Development

Why you should bother…
Avoid Big Bang Deployments
“Big release”
Feature B
Feature A
Design
Change
Feature C

Bug fix
Pricing
Change

Which was the cause?

meh.
Instead…

Define
Biz Test

Code it!

Test the
code

Deploy!

Measure
results

Learn!
@ArinSime
Arin@AgilityFeat.com
434 996 5226
Testing process changes
Standard
path
Common
entry
point

Common
conversion or
exit point

Which
path?

Alternate
path

Log user behavior
5 Things you’ll love to hate about Agile Development

Additional Slides
A Typical 2-week Cadence

Sprint 2

Sprint 1

Monday
UX has wireframes
approved by the
team or list of S1
revisions
Planning

Tuesday

Wednesday

UX now knows
what wireframes
Thursday
to focus on…

Friday

S2
Prioritization

Team now has approved
S2
S2
3 Amigos wireframes and possibly
Estimation
mockups too

S1 Demo
& Retro

S2
Planning

S3
Prioritization

S3
3 Amigos

S3
UX starts
Estimationworking ahead
on next sprint

S2 Demo
& Retro
Prioritization Meeting
 Purpose: Review the backlog,
and adjust the priorities of
upcoming stories as necessary.
Product Owner can make
projections of when stories will
be worked on based on
historical velocity, but they
cannot commit the team.

Required Attendees:
Product Owner, Scrummaster, UX
Optional Attendees: Other
stakeholders that the Product Owner
reports to
Time: 1 hour

 Look out for: Any fixed constraints or new issues from
stakeholders may require changing priorities
 Outcomes: Product Owner and UX knows what stories to prepare
for the 3 Amigos meeting
3 Amigos Meeting
 Purpose: Review the upcoming
stories for the next sprint. This
is a chance for the team to
verify that the “Definition of
Ready” criteria are all met and
the team has a shared
understanding of the story to
be developed.

Required Attendees:
Product Owner, Scrummaster, UX,
Developers, Testers. Some teams
prefer to rotate which developers and
testers attend. It’s usually best to start
with the whole team until comfortable
with the process though.
Time: 1 hour (time boxed)

 Look out for: Missing Acceptance Criteria, dependencies on external
resources or architects, edge cases that need to be considered.
 Outcomes: The team agrees that this story can be estimated and can be
considered for the next sprint’s planning session.
Estimation Meeting
 Purpose: Go through all the
candidate stories for the next
sprint. These stories should
have already been approved in
a 3 Amigos meeting, or
adjustments made based on
feedback from that meeting.
Stories are estimated by the full
team using story points.

Required Attendees:
Product Owner, Scrummaster, UX,
Developers, Testers. All developers
and testers should be present, not just
representatives in this case.
Time: 1 hour (time boxed)

 Look out for: Major team disagreements on what a story means.
If stories are too big to be comfortably completed in the sprint,
they should be broken up.
 Outcomes: 1-2 Sprint’s worth of User Stories are ready for
planning.
Planning Meeting
 Purpose: The hard work has
already been done. Now the
team is just going to compare
the list of prioritized, estimated
stories to historical velocity and
decide how many to commit to
in this sprint.

Required Attendees:
Product Owner, Scrummaster, UX,
Developers, Testers. All developers
and testers should be present, not just
representatives in this case.
Time: 30 minutes - 1 hour

 Look out for: It’s ok for the Product Owner to add stories at the
last minute on occasion, just prioritize and estimate them quickly
at the beginning of the meeting prior to the planning.
 Outcomes: A completed Sprint that the team is comfortable
committing to and tackles the Product Owner’s highest priorities.
5 reasons you'll love to hate Agile Development
5 reasons you'll love to hate Agile Development

Más contenido relacionado

La actualidad más candente

Risk Mitigation Using Exploratory and Technical Testing | QASymphony Webinar
Risk Mitigation Using Exploratory and Technical Testing | QASymphony WebinarRisk Mitigation Using Exploratory and Technical Testing | QASymphony Webinar
Risk Mitigation Using Exploratory and Technical Testing | QASymphony WebinarQASymphony
 
Injecting Threat Modeling into the SDLC by Susan Bradley
Injecting Threat Modeling into the SDLC by Susan BradleyInjecting Threat Modeling into the SDLC by Susan Bradley
Injecting Threat Modeling into the SDLC by Susan BradleyQA or the Highway
 
Closing the Requirements and Testing Loop Webinar
Closing the Requirements and Testing Loop WebinarClosing the Requirements and Testing Loop Webinar
Closing the Requirements and Testing Loop WebinarQASymphony
 
Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...
Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...
Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...agil8 Ltd
 
A Concise QA Process
A Concise QA Process A Concise QA Process
A Concise QA Process Arslan Ali
 
Code review in practice
Code review in practiceCode review in practice
Code review in practiceEdorian
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowTechWell
 
How testers add value to the organization appium conf
How testers add value to the organization  appium confHow testers add value to the organization  appium conf
How testers add value to the organization appium confCorina Pip
 
Test Driven Development (TDD) & Continuous Integration (CI)
Test Driven Development (TDD) & Continuous Integration (CI)Test Driven Development (TDD) & Continuous Integration (CI)
Test Driven Development (TDD) & Continuous Integration (CI)Fatkul Amri
 
Extreme & pair programming Slides ppt
Extreme & pair programming Slides pptExtreme & pair programming Slides ppt
Extreme & pair programming Slides pptMr SMAK
 
Four Stages of Automated Testing by Bradley Temple
Four Stages of Automated Testing by Bradley TempleFour Stages of Automated Testing by Bradley Temple
Four Stages of Automated Testing by Bradley TempleQA or the Highway
 
Scrum Testing Methodology
Scrum Testing MethodologyScrum Testing Methodology
Scrum Testing MethodologyGaya1985
 
Pair Programming Presentation
Pair Programming PresentationPair Programming Presentation
Pair Programming PresentationThoughtWorks
 
Introducing QA Into an Agile Environment
Introducing QA Into an Agile EnvironmentIntroducing QA Into an Agile Environment
Introducing QA Into an Agile EnvironmentJoseph Beale
 

La actualidad más candente (20)

Risk Mitigation Using Exploratory and Technical Testing | QASymphony Webinar
Risk Mitigation Using Exploratory and Technical Testing | QASymphony WebinarRisk Mitigation Using Exploratory and Technical Testing | QASymphony Webinar
Risk Mitigation Using Exploratory and Technical Testing | QASymphony Webinar
 
Injecting Threat Modeling into the SDLC by Susan Bradley
Injecting Threat Modeling into the SDLC by Susan BradleyInjecting Threat Modeling into the SDLC by Susan Bradley
Injecting Threat Modeling into the SDLC by Susan Bradley
 
Closing the Requirements and Testing Loop Webinar
Closing the Requirements and Testing Loop WebinarClosing the Requirements and Testing Loop Webinar
Closing the Requirements and Testing Loop Webinar
 
Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...
Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...
Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...
 
Testing in Agile Development
Testing in Agile DevelopmentTesting in Agile Development
Testing in Agile Development
 
Dont be a tool
Dont be a toolDont be a tool
Dont be a tool
 
A Concise QA Process
A Concise QA Process A Concise QA Process
A Concise QA Process
 
Code review in practice
Code review in practiceCode review in practice
Code review in practice
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlow
 
How testers add value to the organization appium conf
How testers add value to the organization  appium confHow testers add value to the organization  appium conf
How testers add value to the organization appium conf
 
Test Driven Development (TDD) & Continuous Integration (CI)
Test Driven Development (TDD) & Continuous Integration (CI)Test Driven Development (TDD) & Continuous Integration (CI)
Test Driven Development (TDD) & Continuous Integration (CI)
 
Extreme & pair programming Slides ppt
Extreme & pair programming Slides pptExtreme & pair programming Slides ppt
Extreme & pair programming Slides ppt
 
Four Stages of Automated Testing by Bradley Temple
Four Stages of Automated Testing by Bradley TempleFour Stages of Automated Testing by Bradley Temple
Four Stages of Automated Testing by Bradley Temple
 
Methodology: IT test
Methodology: IT testMethodology: IT test
Methodology: IT test
 
QA in Agile
QA in AgileQA in Agile
QA in Agile
 
Scrum Testing Methodology
Scrum Testing MethodologyScrum Testing Methodology
Scrum Testing Methodology
 
Testing & Scrum
Testing & ScrumTesting & Scrum
Testing & Scrum
 
Pair Programming Presentation
Pair Programming PresentationPair Programming Presentation
Pair Programming Presentation
 
Introducing QA Into an Agile Environment
Introducing QA Into an Agile EnvironmentIntroducing QA Into an Agile Environment
Introducing QA Into an Agile Environment
 
Invite the tester to the party
Invite the tester to the partyInvite the tester to the party
Invite the tester to the party
 

Similar a 5 reasons you'll love to hate Agile Development

Mastering Agile Practices to Build High Performing Teams
Mastering Agile Practices to Build High Performing TeamsMastering Agile Practices to Build High Performing Teams
Mastering Agile Practices to Build High Performing TeamsAgileThought
 
Continuous Deployment and Testing Workshop from Better Software West
Continuous Deployment and Testing Workshop from Better Software WestContinuous Deployment and Testing Workshop from Better Software West
Continuous Deployment and Testing Workshop from Better Software WestCory Foy
 
Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...
Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...
Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...Tieturi Oy
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandDavid O'Dowd
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovSvetlin Nakov
 
Agile testingandautomation
Agile testingandautomationAgile testingandautomation
Agile testingandautomationjeisner
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingUtkarsh Khare
 
Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...
Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...
Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...AgileNetwork
 
Code Review
Code ReviewCode Review
Code ReviewRavi Raj
 
Lessons learned on software testing automation
Lessons learned on software testing automationLessons learned on software testing automation
Lessons learned on software testing automationgaoliang641
 
Working with Agile technologies and SCRUM
Working with Agile technologies and SCRUMWorking with Agile technologies and SCRUM
Working with Agile technologies and SCRUMAndrea Tino
 
Free from the shackles of TDD
Free from the shackles of TDDFree from the shackles of TDD
Free from the shackles of TDDRich Allen
 

Similar a 5 reasons you'll love to hate Agile Development (20)

Best pratice
Best praticeBest pratice
Best pratice
 
Mastering Agile Practices to Build High Performing Teams
Mastering Agile Practices to Build High Performing TeamsMastering Agile Practices to Build High Performing Teams
Mastering Agile Practices to Build High Performing Teams
 
Beyond Agile Software
Beyond Agile SoftwareBeyond Agile Software
Beyond Agile Software
 
Software testing
Software testingSoftware testing
Software testing
 
Tdd
TddTdd
Tdd
 
Intro to Agile Practices and Values
Intro to Agile Practices and ValuesIntro to Agile Practices and Values
Intro to Agile Practices and Values
 
Continuous Deployment and Testing Workshop from Better Software West
Continuous Deployment and Testing Workshop from Better Software WestContinuous Deployment and Testing Workshop from Better Software West
Continuous Deployment and Testing Workshop from Better Software West
 
Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...
Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...
Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
Agile testingandautomation
Agile testingandautomationAgile testingandautomation
Agile testingandautomation
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...
Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...
Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...
 
Code Review
Code ReviewCode Review
Code Review
 
Lessons learned on software testing automation
Lessons learned on software testing automationLessons learned on software testing automation
Lessons learned on software testing automation
 
Agile testing
Agile testingAgile testing
Agile testing
 
Working with Agile technologies and SCRUM
Working with Agile technologies and SCRUMWorking with Agile technologies and SCRUM
Working with Agile technologies and SCRUM
 
TDD in Agile
TDD in AgileTDD in Agile
TDD in Agile
 
Expo qa15 Keynote
Expo qa15 KeynoteExpo qa15 Keynote
Expo qa15 Keynote
 
Free from the shackles of TDD
Free from the shackles of TDDFree from the shackles of TDD
Free from the shackles of TDD
 

Más de Arin Sime

IoT and WebRTC
IoT and WebRTCIoT and WebRTC
IoT and WebRTCArin Sime
 
WebRTC and Telehealth
WebRTC and TelehealthWebRTC and Telehealth
WebRTC and TelehealthArin Sime
 
WebRTC and Telehealth
WebRTC and TelehealthWebRTC and Telehealth
WebRTC and TelehealthArin Sime
 
The UX of WebRTC
The UX of WebRTCThe UX of WebRTC
The UX of WebRTCArin Sime
 
WebRTC Overview
WebRTC OverviewWebRTC Overview
WebRTC OverviewArin Sime
 
6 Months with WebRTC
6 Months with WebRTC6 Months with WebRTC
6 Months with WebRTCArin Sime
 
Design for the 4th dimension: Real-time apps
Design for the 4th dimension: Real-time appsDesign for the 4th dimension: Real-time apps
Design for the 4th dimension: Real-time appsArin Sime
 
AgilityFeat Real Time Disruptive Communications with WebRTC
AgilityFeat Real Time Disruptive Communications with WebRTCAgilityFeat Real Time Disruptive Communications with WebRTC
AgilityFeat Real Time Disruptive Communications with WebRTCArin Sime
 
Just Deploy It
Just Deploy ItJust Deploy It
Just Deploy ItArin Sime
 

Más de Arin Sime (9)

IoT and WebRTC
IoT and WebRTCIoT and WebRTC
IoT and WebRTC
 
WebRTC and Telehealth
WebRTC and TelehealthWebRTC and Telehealth
WebRTC and Telehealth
 
WebRTC and Telehealth
WebRTC and TelehealthWebRTC and Telehealth
WebRTC and Telehealth
 
The UX of WebRTC
The UX of WebRTCThe UX of WebRTC
The UX of WebRTC
 
WebRTC Overview
WebRTC OverviewWebRTC Overview
WebRTC Overview
 
6 Months with WebRTC
6 Months with WebRTC6 Months with WebRTC
6 Months with WebRTC
 
Design for the 4th dimension: Real-time apps
Design for the 4th dimension: Real-time appsDesign for the 4th dimension: Real-time apps
Design for the 4th dimension: Real-time apps
 
AgilityFeat Real Time Disruptive Communications with WebRTC
AgilityFeat Real Time Disruptive Communications with WebRTCAgilityFeat Real Time Disruptive Communications with WebRTC
AgilityFeat Real Time Disruptive Communications with WebRTC
 
Just Deploy It
Just Deploy ItJust Deploy It
Just Deploy It
 

Último

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

5 reasons you'll love to hate Agile Development

  • 1. 5 Things you’ll love to hate about Agile Development @ArinSime Arin@AgilityFeat.com 434 996 5226
  • 2. Design & Development in Central America
  • 3. A few that have paid us…
  • 4. Hey, Look at me! I can talk.
  • 5. 5 Things you’ll love to hate about Agile Development #1: Pair Programming
  • 6. Pair Programming 2 developers working together on the same story, using the same computer and keyboard. One Driver and one Navigator, and they must switch roles regularly. What’s the Beef?  Manager: Why pay for two developers to only do one thing?  Developer: But he smells, and I don’t like to share!
  • 7. Independent Developers Developers Pair Programming Building Feature “A” Building Feature “A” Test Rework Test Redo Also fewer expensive post-release defects Pairs are 15% slower, but produce half as many bugs Williams study showed error free code went from 70% to 85%, cutting the error rate in half. Study by Laurie Williams of the University of Utah, as quoted in the Economist: http://www.economist.com/node/779429?Story_ID=779429
  • 8. Reasons to pair program: Lower Defect Rates Constant Peer Review Cross Training Cleaner Solutions Pairs are 15% slower, but produce half as many bugs Williams study showed error free code went from 70% to 85%, cutting the error rate in half. Study by Laurie Williams of the University of Utah, as quoted in the Economist: http://www.economist.com/node/779429?Story_ID=779429
  • 9. Painless Pair Programming Ideas  Require two people to sign up for every user story  Or only require pairing on certain user stories  Allow “me time” daily  Enforce pair programming most strictly on difficult or risky changes and with new team members  Use a sign up sheet and rotate pairs daily or on stories
  • 10. 5 Things you’ll love to hate about Agile Development #2: Test Driven Development & Automation
  • 11. Test Driven Development Build the automated tests for each story prior to coding the solution. Result: Automated Test Suite & High Quality! Write a new test What’s the Beef?  Manager: Isn’t this going to take longer? Green (Test Passes) Red (Failing Test)  Developer: How will I maintain all these old tests? Refactor Code Write Code  Tester: You can’t automate me! I am a human being! Green (Test Passes)
  • 12. Automation frees you to do more exploratory testing! Acceptance Test Driven Development (ATDD) Test Driven Development (TDD) http://watirmelon.com/2012/01/31/introducing-the-software-testing-ice-cream-cone/
  • 13. Painless TDD Ideas Write a new test Green (Test Passes)  Start with “Manual” TDD – write acceptance criteria  Leave legacy code behind Red (Failing Test)  “Cover and Modify”  Focus on unit tests first Refactor Code Write Code Green (Test Passes)  GUI level automation should focus on just a few paths that cover large sets of functionality
  • 14. 5 Things you’ll love to hate about Agile Development #3: Manual Testing Patterns
  • 15. Manual Testing Automation is great, but exploratory testing is still recommended. Manual testing in agile teams should be done within the sprint, and is part of that sprint’s “Definition of Done.” What’s the Beef?  Tester: How will I have time to do quality testing in each sprint? What about regression testing?  Developer: So I have to be done 2 days early now? Then what do I do?
  • 16. Sprint BusynessTM BusynessTM O M G developers This is what typically happens, but is not “good”. testers lolcats Days of the Sprint
  • 17. Sprint BusynessTM developers BusynessTM O M G testers lolcats Instead, let’s make sure stories are small and delivered frequently to testing… Days of the Sprint
  • 18. A Typical 2-week Cadence Sprint 2 Sprint 1 Monday Tuesday Wednesday S1 Planning Thursday The last stories should have made it to testing The first stories should be in testing by now S2 Planning Monday of the new sprint is a good time for testers to regression test Friday S1 Demo & Retro Developers work ahead, help test, maybe refactor S2 Demo & Retro
  • 19. Painless Testing Ideas  Enforce small user stories!  Developers deliver highest value stories first in the sprint  In-sprint testing focuses only on the stories at hand  Use the beginning of the next sprint to regression test before deploying the current sprint  In sprint bugs are communicated, not tracked
  • 20. 5 Things you’ll love to hate about Agile Development #4: Branching & Release Streams
  • 21. Release Streams Agile teams work in small chunks, and deployments happen on cadences like this: Scrum – deploy at end of sprint What’s the Beef?  Developer: I have to work in multiple branches every day!?!? Kanban – deploy story by story This means frequent deployments, and multiple branches to keep code independently testable and deployable.  Release Engineer: I hate merging, and now I hate U.  Tester: How do I know what codebase I am testing?
  • 23. Branching Challenges for Agile teams  Deploy frequently  Work on very small stories  Work towards big goals, aka “epics”  Balance production fixes with ongoing work  Keep the testing environments straight
  • 24. Branching by features feature_1 feature_4 feature_2 feature_3 master branch merge Deploy to Production Deploy to Production Deploy to Production Works great with very independent features and a kanban style system. May be too fluid for scrum teams and large epics.
  • 25. Sprint Branching Strategy epic sprint_x sprint_x+1 sprint_x+2 master testing production A little complicated … but the value created here is balancing short term and long term work while still delivering frequent releases.
  • 26. Hot fixes to production epic sprint_x sprint_x+1 sprint_x+2 master hf_issue testing production Hot fixes to production should be rare … use the sprints instead when ever possible!
  • 27. 5 Things you’ll love to hate about Agile Development #5: Iterative Architecture & Design
  • 28. Iterative Design & Architecture Vision is good, but detailed design documents are bad. Remember that whole “working software over comprehensive documentation” thing? Agile teams work in small chunks, and architectural and UX/visual design tasks should be done at the last responsible moment. What’s the Beef?  Architect: No more design documents? I can’t decide whether to kiss you or punch you right now.  Visual Designer: I’m an artist, don’t oppress me!  Developer: FR33D0M!!!
  • 29. Vision and customer research are good things But details are waste
  • 33. 5 Things you’ll love to hate about Agile Development Why you should bother…
  • 34.
  • 35. Avoid Big Bang Deployments “Big release” Feature B Feature A Design Change Feature C Bug fix Pricing Change Which was the cause? meh.
  • 36. Instead… Define Biz Test Code it! Test the code Deploy! Measure results Learn!
  • 38. Testing process changes Standard path Common entry point Common conversion or exit point Which path? Alternate path Log user behavior
  • 39. 5 Things you’ll love to hate about Agile Development Additional Slides
  • 40. A Typical 2-week Cadence Sprint 2 Sprint 1 Monday UX has wireframes approved by the team or list of S1 revisions Planning Tuesday Wednesday UX now knows what wireframes Thursday to focus on… Friday S2 Prioritization Team now has approved S2 S2 3 Amigos wireframes and possibly Estimation mockups too S1 Demo & Retro S2 Planning S3 Prioritization S3 3 Amigos S3 UX starts Estimationworking ahead on next sprint S2 Demo & Retro
  • 41. Prioritization Meeting  Purpose: Review the backlog, and adjust the priorities of upcoming stories as necessary. Product Owner can make projections of when stories will be worked on based on historical velocity, but they cannot commit the team. Required Attendees: Product Owner, Scrummaster, UX Optional Attendees: Other stakeholders that the Product Owner reports to Time: 1 hour  Look out for: Any fixed constraints or new issues from stakeholders may require changing priorities  Outcomes: Product Owner and UX knows what stories to prepare for the 3 Amigos meeting
  • 42. 3 Amigos Meeting  Purpose: Review the upcoming stories for the next sprint. This is a chance for the team to verify that the “Definition of Ready” criteria are all met and the team has a shared understanding of the story to be developed. Required Attendees: Product Owner, Scrummaster, UX, Developers, Testers. Some teams prefer to rotate which developers and testers attend. It’s usually best to start with the whole team until comfortable with the process though. Time: 1 hour (time boxed)  Look out for: Missing Acceptance Criteria, dependencies on external resources or architects, edge cases that need to be considered.  Outcomes: The team agrees that this story can be estimated and can be considered for the next sprint’s planning session.
  • 43. Estimation Meeting  Purpose: Go through all the candidate stories for the next sprint. These stories should have already been approved in a 3 Amigos meeting, or adjustments made based on feedback from that meeting. Stories are estimated by the full team using story points. Required Attendees: Product Owner, Scrummaster, UX, Developers, Testers. All developers and testers should be present, not just representatives in this case. Time: 1 hour (time boxed)  Look out for: Major team disagreements on what a story means. If stories are too big to be comfortably completed in the sprint, they should be broken up.  Outcomes: 1-2 Sprint’s worth of User Stories are ready for planning.
  • 44. Planning Meeting  Purpose: The hard work has already been done. Now the team is just going to compare the list of prioritized, estimated stories to historical velocity and decide how many to commit to in this sprint. Required Attendees: Product Owner, Scrummaster, UX, Developers, Testers. All developers and testers should be present, not just representatives in this case. Time: 30 minutes - 1 hour  Look out for: It’s ok for the Product Owner to add stories at the last minute on occasion, just prioritize and estimate them quickly at the beginning of the meeting prior to the planning.  Outcomes: A completed Sprint that the team is comfortable committing to and tackles the Product Owner’s highest priorities.

Notas del editor

  1. Add in that you do need some high level customer research is needed up front
  2. Lean UX is about doing this iteratively – take one bite at a timehttp://upload.wikimedia.org/wikipedia/commons/0/01/Leafcutter_ants_transporting_leaves.jpg