AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT...

28
Philip Japikse (@skimedic) [email protected] www.skimedic.com/blog MVP, MCSD.Net, MCDBA, CSM, CSP Patterns & Practices Evangelist, Telerik AGILE DEVELOPMENT: INSIDE AND OUT

Transcript of AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT...

Page 1: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

Philip Japikse (@skimedic)

[email protected]

www.skimedic.com/blog

MVP, MCSD.Net, MCDBA, CSM, CSP

Patterns & Practices Evangelist, Telerik

AGILE DEVELOPMENT: INSIDE AND OUT

Page 2: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

WHO AM I?

• Patterns & Practices Evangelist, Telerik, Inc.

• Microsoft MVP

• MCSD, MCDBA, CSM, CSP

• Developer().Speaker().Writer()

• Lead Director, Cincinnati .NET User’s Group

• Founder, Agile Conferences, Inc.

• Columnist, www.developer.com

1/16/2012 2

Page 3: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

AGILE MANIFESTO

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions over processes and tools Working 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.

http://agilemanifesto.org

1/16/2012 3

Page 4: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

KEY CONCEPTS

• Development

• “Last Responsible Moment”

• Architecture, Design, Docs, etc

• YAGNI

• Communication

• Transparency

• Rapid Feedback Loops

1/16/2012 4

Page 5: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

(SOME) AGILE FLAVORS

• Scrum is a framework for developing complex products and systems based on:

• Self Managed Teams

• Iterative Development and Planning

• Transparency

• eXtreme Programming improves software development through:

• Communication

• Simplicity

• Feedback

• Respect

• Courage

1/16/2012 5

Page 6: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

OPENING A RESTAURANT?

• “Pigs” – Committed to the Project

• Product Owner

• Scrum Master

• The Development Team

• “Chickens” – Interested in the Project

• Users

• Managers

• Others

1/16/2012 6

Page 7: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

• Product Owner

• There can be only

one

• Development Team

• Cross Functional

• Co-located

• “WE” – not “I”

• Scrum Master

• Coach, Mentor

• NOT HR Role

• Project Manager

• Different

responsibilities than

Scrum Master

ROLES

1/16/2012 7

Page 8: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

PRODUCT BACKLOG

• The Product Requirements

• Each Item consists of

• Description

• Priority ( 1 to n)

• Estimate

• Dynamic, can be modified at any time

• By the Product Owner

• Also includes triaged bugs

1/16/2012 8

Page 9: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

ITERATIONS/SPRINTS

• Predetermined duration of work

• Time boxed, not Scope boxed

• Length must stay consistent throughout the

development life cycle

• Personal recommendation is 14 days

• Each Sprint’s goal is to deliver potentially releasable

code

1/16/2012 9

Page 10: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

CLASSIC SCRUM LIFECYCLE

• Sprint Planning Meeting (2-8 hours)

• Sprint (7-30 days)

• Daily Standup (15 minutes every day)

• Sprint Review (4 Hours)

• Sprint Retrospective (4 Hours)

• Each Sprint’s goal:

• Deliver potentially releasable code

1/16/2012 10

Page 11: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

SPRINT PLANNING

• Separated into two parts

• Select Items to pull from the Product Backlog

• Consider only prioritized and well defined items

• How will it be developed

• High level architecture

• Get clarifications from Product Owner

• End result is Sprint Backlog

1/16/2012 11

Page 12: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

SPRINT BACKLOG

• Defines the work items for the sprint

• Controlled by the team

• Items from Product Backlog can be added

• Task Estimates <= 8 hours

• Don’t max out capacity during planning

• Deferment is evil

1/16/2012 12

Page 13: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

DAILY STANDUP

• Held every day. No EXCEPTIONS!

• Only PIGS can speak

• Three Questions

• What did you do yesterday

• What are you going to do today

• What’s holding you back

• If meeting is lasting longer than 15 minutes, you’re talking too much!

• Sidebars

1/16/2012 13

Page 14: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

BUG TRIAGE

• Bug triage meetings happen immediately after the Daily Standup

• Triage Team

• Lead QA, Architect/Dev Lead, Product Owner

• Bugs are marked for either:

• Sprint Backlog

• Product Backlog

• Bug

• Change Request

1/16/2012 14

Page 15: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

TEST/BEHAVIOR

DRIVEN DEVELOPMENT

• Development needs to be Test Driven

• QA personnel need to understand what that means

• Successful T/BDD development teams build confidence in themselves and with others

• QA shouldn’t have to test that Math.Add(2,3) returns 5

• QA can focus on the bigger picture

• Making sure the requirements are met

• Integration Testing

1/16/2012 15

Page 16: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

PAIR PROGRAMMING

• Slightly reduces productivity

• Significantly increases code quality

• Should be polygamous

• Don’t do it full-time

1/16/2012 16

Page 17: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

USER TESTING

• User Testing is used to validate the state of the

software after every sprint.

• The Team (via the Product Owner) must fully

disclose what they believe to be working and not

working

• Key Users test the software from the previous sprint

• Users can enter potential defects into the tracking

system

1/16/2012 17

Page 18: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

QA/TESTERS

• Best if QA is co-located with the team

• Create Test Plans based on each Sprint

• Not on requirements that might never be developed

• When developers believe they are “Done”

• QA Reviews Unit Tests/Peer Review

• Bottom line, QA should be Proactive, and not Reactive

1/16/2012 18

Page 19: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

DEFINING “DONE”

• All (Dev, Users, QA, etc) must agree on definition of Done

• Developer

• Unit Tests, Documentation, Code Reviews, etc

• QA

• Integration Testing, Black Box Testing, etc

• Users

• UAT

• Will be different based on the product

• NASA vs XBOX

1/16/2012 19

Page 20: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

BURN DOWN CHARTS

• Display of:

• What’s been accomplished

• What is remaining

• Updated daily

• Transparent to all

• Pigs AND Chickens

1/16/2012 20

Page 21: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

SWIM LANES

• Instead of Burn Down Charts

• “Stolen” from Kanban

• Tasks/Features move from

• In Queue

• In Process

• Ready for QA

• Ready for UAT

• Ready for Release

1/16/2012 21

Page 22: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

SPRINT REVIEW

• Attended by Pigs and Chickens

• Team Demonstrates the Product

• Product Owner reviews:

• What was accomplished

• What (if anything) was deferred

• What remains on the Product Backlog

• Updated Release scope

1/16/2012 22

Page 23: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

SPRINT RETROSPECTIVE

• Identify

• Successes

• Areas for Improvement

• Inspect Everything

• People

• Relationships

• Processes

• Tools

• Tackle the most relevant 1-2 items

1/16/2012 23

Page 24: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

VERIFICATION SPRINT

• Occurs after code “chill”

• Used for:

• Security audits

• Performance/Load/UAT/Integration testing

• Deployment documentation

• Team uses this time to work on:

• Required documentation, improving Unit Tests, etc.

• NOT refactoring application code

1/16/2012 24

Page 25: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

SPRINT 0

• Also referred to as the Foundational Sprint

• Occurs before full Team is formed

• Product Owner, Application Architect

• Used for:

• Configuration (e.g. Build Server, developer Virtuals)

• Product Backlog creation

• Acquiring Funding

• Release/Hardware planning

• Assembling the Development Team

1/16/2012 25

Page 26: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

CLASSIC MODIFIED SCRUM LIFECYCLE

• Production Release Planning*

• Sprint 0/Foundation Sprint*

• Sprint Planning Meeting (2-8 hours)

• Sprint (7-30 days)

• Daily Standup (15 minutes every day)

• Bug Triage*

• Sprint Review (4 Hours)

• Sprint Retrospective (4 Hours)

• Verification Sprint*

1/16/2012 26 *Not “Textbook” Scrum

Page 27: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

SUMMARY

• Survive the waterfall

• Play nice with others

• Bring success to the table, it will spread

1/16/2012 27

Page 28: AGILE DEVELOPMENT: INSIDE AND OUT · 2019. 12. 16. · TEST/BEHAVIOR DRIVEN DEVELOPMENT •Development needs to be Test Driven •QA personnel need to understand what that means •Successful

CONTACT ME

[email protected]

• www.skimedic.com/blog

• www.twitter.com/skimedic

• www.tinyurl.com/teleriktour

• Telerik

• www.twitter.com/Telerik

• www.facebook.com/Telerik

1/16/2012 28