SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
Stories of adopting technical practices
Steven Mak
Saturday, 27 July, 13
Who am I?
•Agile, TDD Coaching, Ugly Code
Cleaning Dude
•I love coding - Java, C#, Javascript, C/
C++, PHP, Perl, and some weird ones
•I speak English, Cantonese, and
Mandarin
2
Odd-e Pte. Ltd.
Steven Mak 麥天志
Agile Coach
Hong Kong
Email: steven@odd-e.com
Web: www.odd-e.com
Twitter: stevenmak
Saturday, 27 July, 13
Disclaimer
3
If you hear any stories in this evening, they probably come from some customers
I visit recently.
No names will be revealed. But any resemblance to actual individuals or events
are coincidental. :)
是日分享內容基於工作情節提 而成,如有雷同,實屬不幸 :)
Saturday, 27 July, 13
Before you want to adopt agile practices...
What is the problem?
• Buggy software?
• Schedule slip?
• People don’t talk to each other?
• Unhappy customers?
• Deployment too scary?
4
Learn about these before
trying to convince your boss
Saturday, 27 July, 13
Where?
• Code quality?
• Time spent on bug fixing?
• How do these go over a time period?
• Interviews
- Avoid hypothetical questions, e.g. “Would you like...”
- Tell stories, “Tell us about the last time...”
• See how others actually work
- be careful with your subjective judgement
5
Saturday, 27 July, 13
6
Sonar
Saturday, 27 July, 13
7
What does this mean?
Saturday, 27 July, 13
Longitudinal study
8http://almossawi.com/firefox/prose/
Anything happened
during some point in
time?
• Project deadline?
• Firefighting?
• Policy change?
Saturday, 27 July, 13
Don’t forget your
version control system
9
http://www.stickyminds.com/sitewide.asp?Function=edetail&ObjectType=COL&ObjectId=16679
Saturday, 27 July, 13
More visualization: JUnit project
10http://dkandalov.github.io/code-history-mining/junit.html
Files often commit together? Is there collective code ownership?
Which part of the project
have more attention?
When commit happens? How frequent commit happens?
Saturday, 27 July, 13
What kind of tests in place?
11
Saturday, 27 July, 13
Why do you want these tests?
12
Saturday, 27 July, 13
Before you start
• Is the team prepare to learn?
- Be very careful with busy teams
- Do they cover this during retrospectives before?
• Are the stakeholders aware of the teams learning new things?
• Are there training in place?
• Coaches help :)
13
Saturday, 27 July, 13
Buy-in from the Team
• It takes time for the team to learn, allow time in their planning for learning
• Any compelling reasons before they will commit to making on the extra work of
writing automated tests?
• Most team begins with:
- Write tests for new code and any changes to existing code
• Discuss with the team and see if they are committed to do this
• Target of writing a few tests every day
14
Saturday, 27 July, 13
Lots of Coaching
• No structure in place to decide when and with teams to work?
• Internal coaches were asked to do normal development?
• Not listening to internal coaches?
• Coaching skills not appreciated and further developed?
• Both internal and external coaching!
15
Saturday, 27 July, 13
Definition of Done
16
coded and reviewed
unit tested
documented
packaged
etc.
Activities required for
Potentially Shippable
Product Increment
Sprint
Retro-
spective
Sprint
Review
Potentially
(2-4 h) (1.5-3h)
Saturday, 27 July, 13
Extending “done”
17
implement
unit test
analysis
customer
test
customer
doc
performance
test
marketing
material
production
pricing
update
manufacturing
process
current Definition on Done needed to be potentially
shippable
done
undone
goal:
expand
2 year
improvement
goal
10 year
improvement
goal
www.craiglarman.com
www.odd-e.com
Copyright © 2010
C.Larman & B. Vodde
All rights reserved.
Saturday, 27 July, 13
Sprint Planning
18
Sprint
Planning
Part 1
Product Backlog
Product Owner
4htimebox
Selected Product
Backlog Items
Sprint
Planning
Part 2
Sprint Backlog
4htimebox
Product Owner
Available
Team Capabilities
Business Conditions
Technology Stability
Previous Sprint
Product Increment
input
Updated
Product
Backlog
Clarify Requirements
Initial Design and Plan
output
Sprint Goal
Saturday, 27 July, 13
Making commitment
• Part 1:
- Product Owner decides on which requirements are selected
- Team decides how much they can commit rather than assigned by Product
Owner
- Product Owner and Team collaborates instead of bargain
- Product Owner prepares Product Backlog before Sprint Planning
- Do not allow un-clarified requirements into the Sprint
• Part 2:
- Design more than planning
- Focus on serious commitment rather than precise estimates
- Avoid computers
19
Saturday, 27 July, 13
How likely are you keeping your promise?
20
No story done two days
before the end of sprint?
Stories all in progress
and waiting for testing?
Why testing only happens at the end?
Saturday, 27 July, 13
Starting ATDD/SbE/BDD
with product backlog refinement
21
Saturday, 27 July, 13
Use Examples
22
With 3 judges giving
scores 4, 20, and 18,
the displayed score
should be 42.
When the first 2
judges have given
their scores, e.g. 10
and 5, the
intermediate score of
15 should be displayed
already.
No scores displayed as
a dash (–), not zero.
Maximum score from
a judge is 20 points!
Saturday, 27 July, 13
Examples, Tests, and Spec
23
Examples Tests
Requirements
can become
elaborate
verify
Saturday, 27 July, 13
Technical
Activity
Workflow
Specification pyramid
24
RuleClarity
Stability
Specification
Users can
understand
Automation
Technical
Saturday, 27 July, 13
Tools come after
people and interaction
• Cucumber
• Robot Framework
• Fitnesse
25
Saturday, 27 July, 13
Who wants writing unit tests
for legacy code?
26
Saturday, 27 July, 13
27
Pair Programming
More Pair Programming Study:
http://www.computer.org/cms/Computer.org/ComputingNow/homepage/2010/0110/W_SW_PairProgramming.pdf
Saturday, 27 July, 13
Recap...
• Training
• Coaching
• Definition of Done
• Budget time in planning
• Test Code Coverage... with care
• Pair Programming
• Practice
28
Saturday, 27 July, 13
Practice makes prefect!
29
Saturday, 27 July, 13
Coding Dojo
30
Saturday, 27 July, 13
Coding Kata
31
“A kata is an exercise in karate where you repeat a form
many, many times, making little improvements in each. “
“What makes a good practice session? You need time
without interruptions, and a simple thing you want to try.
You need to try it as many times as it takes, and be
comfortable making mistakes. You need to look for
feedback each time so you can work to improve. There
needs to be no pressure: this is why it is hard to practice
in a project environment.”
• http://codekata.pragprog.com/
• http://codingdojo.org/cgi-bin/wiki.pl?KataCatalogue
• http://www.projecteuler.net
Saturday, 27 July, 13
It can be done over the
Internet too!
32
Saturday, 27 July, 13
33
Cyber Dojo
www.cyber-dojo.com
Saturday, 27 July, 13
34
RED
GREEN
REFACTOR
Saturday, 27 July, 13
35
Going Internet doesn’t mean
we can’t do it face to face
Saturday, 27 July, 13
Let’s make it whole day!
(in Taipei too)
36
Saturday, 27 July, 13
Code Retreat
37
• Same kata throughout the group, typically
Conway’s game of life
• Every pair is working at the same time
• Switch pair often to enhance learning
http://coderetreat.com/
Saturday, 27 July, 13
Example constraints
38
• Only one level of indentation per method
• Don’t use “else”
• Wrap all primitives, strings, and even lists
• One dot per line
• Don’t abbreviate names
• No more than two instance variable per class
• Don’t use setters, getters, or properties
Saturday, 27 July, 13
Thank you for spending time with me this evening.
More feedback can be sent to:
39
Odd-e Hong Kong Ltd.
Steven Mak 麥天志
Agile Coach
Hong Kong
Email: steven@odd-e.com
Web: www.odd-e.com
Twitter: stevenmak
Saturday, 27 July, 13

Contenu connexe

Tendances

Evil testers guide to technical testing
Evil testers guide to technical testingEvil testers guide to technical testing
Evil testers guide to technical testingAlan Richardson
 
Growing a Company Test Community: Roles and Paths for Testers
Growing a Company Test Community: Roles and Paths for TestersGrowing a Company Test Community: Roles and Paths for Testers
Growing a Company Test Community: Roles and Paths for TestersTEST Huddle
 
How to use selenium successfully
How to use selenium successfullyHow to use selenium successfully
How to use selenium successfullyTEST Huddle
 
TestIstanbul May 2013 Keynote Experiences With Exploratory Testing
TestIstanbul May 2013 Keynote Experiences With Exploratory TestingTestIstanbul May 2013 Keynote Experiences With Exploratory Testing
TestIstanbul May 2013 Keynote Experiences With Exploratory TestingAlan Richardson
 
Level Up Your Automated Tests
Level Up Your Automated TestsLevel Up Your Automated Tests
Level Up Your Automated TestsTrisha Gee
 
Is Groovy better for testing than Java?
Is Groovy better for testing than Java?Is Groovy better for testing than Java?
Is Groovy better for testing than Java?Trisha Gee
 
TLC2018 Shyam Sunder: Legoizing Testing
TLC2018 Shyam Sunder: Legoizing TestingTLC2018 Shyam Sunder: Legoizing Testing
TLC2018 Shyam Sunder: Legoizing TestingAnna Royzman
 
Test driven-development
Test driven-developmentTest driven-development
Test driven-developmentDavid Paluy
 
Agile and ATDD the perfect couple
Agile and ATDD the perfect coupleAgile and ATDD the perfect couple
Agile and ATDD the perfect coupleStephen Tucker
 
Sustainable Automation Frameworks by Kelsey Shannahan
Sustainable Automation Frameworks by Kelsey ShannahanSustainable Automation Frameworks by Kelsey Shannahan
Sustainable Automation Frameworks by Kelsey ShannahanQA or the Highway
 
The limits of unit testing by Craig Stuntz
The limits of unit testing by Craig StuntzThe limits of unit testing by Craig Stuntz
The limits of unit testing by Craig StuntzQA or the Highway
 
Selenium Users Anonymous
Selenium Users AnonymousSelenium Users Anonymous
Selenium Users AnonymousDave Haeffner
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven DevelopmentTung Nguyen Thanh
 
Unit Testing and TDD 2017
Unit Testing and TDD 2017Unit Testing and TDD 2017
Unit Testing and TDD 2017Xavi Hidalgo
 
Working with Legacy Code
Working with Legacy CodeWorking with Legacy Code
Working with Legacy CodeEyal Golan
 
Test Strategy-The real silver bullet in testing by Matthew Eakin
Test Strategy-The real silver bullet in testing by Matthew EakinTest Strategy-The real silver bullet in testing by Matthew Eakin
Test Strategy-The real silver bullet in testing by Matthew EakinQA or the Highway
 
Working Effectively With Legacy Code
Working Effectively With Legacy CodeWorking Effectively With Legacy Code
Working Effectively With Legacy CodeExcella
 
A Not-So-Serious Introduction to Test Driven Development (TDD)
A Not-So-Serious Introduction to Test Driven Development (TDD) A Not-So-Serious Introduction to Test Driven Development (TDD)
A Not-So-Serious Introduction to Test Driven Development (TDD) CodeOps Technologies LLP
 

Tendances (20)

Evil testers guide to technical testing
Evil testers guide to technical testingEvil testers guide to technical testing
Evil testers guide to technical testing
 
Questions1
Questions1Questions1
Questions1
 
Growing a Company Test Community: Roles and Paths for Testers
Growing a Company Test Community: Roles and Paths for TestersGrowing a Company Test Community: Roles and Paths for Testers
Growing a Company Test Community: Roles and Paths for Testers
 
How to use selenium successfully
How to use selenium successfullyHow to use selenium successfully
How to use selenium successfully
 
TestIstanbul May 2013 Keynote Experiences With Exploratory Testing
TestIstanbul May 2013 Keynote Experiences With Exploratory TestingTestIstanbul May 2013 Keynote Experiences With Exploratory Testing
TestIstanbul May 2013 Keynote Experiences With Exploratory Testing
 
Assorted TDD tips
Assorted TDD tipsAssorted TDD tips
Assorted TDD tips
 
Level Up Your Automated Tests
Level Up Your Automated TestsLevel Up Your Automated Tests
Level Up Your Automated Tests
 
Is Groovy better for testing than Java?
Is Groovy better for testing than Java?Is Groovy better for testing than Java?
Is Groovy better for testing than Java?
 
TLC2018 Shyam Sunder: Legoizing Testing
TLC2018 Shyam Sunder: Legoizing TestingTLC2018 Shyam Sunder: Legoizing Testing
TLC2018 Shyam Sunder: Legoizing Testing
 
Test driven-development
Test driven-developmentTest driven-development
Test driven-development
 
Agile and ATDD the perfect couple
Agile and ATDD the perfect coupleAgile and ATDD the perfect couple
Agile and ATDD the perfect couple
 
Sustainable Automation Frameworks by Kelsey Shannahan
Sustainable Automation Frameworks by Kelsey ShannahanSustainable Automation Frameworks by Kelsey Shannahan
Sustainable Automation Frameworks by Kelsey Shannahan
 
The limits of unit testing by Craig Stuntz
The limits of unit testing by Craig StuntzThe limits of unit testing by Craig Stuntz
The limits of unit testing by Craig Stuntz
 
Selenium Users Anonymous
Selenium Users AnonymousSelenium Users Anonymous
Selenium Users Anonymous
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Unit Testing and TDD 2017
Unit Testing and TDD 2017Unit Testing and TDD 2017
Unit Testing and TDD 2017
 
Working with Legacy Code
Working with Legacy CodeWorking with Legacy Code
Working with Legacy Code
 
Test Strategy-The real silver bullet in testing by Matthew Eakin
Test Strategy-The real silver bullet in testing by Matthew EakinTest Strategy-The real silver bullet in testing by Matthew Eakin
Test Strategy-The real silver bullet in testing by Matthew Eakin
 
Working Effectively With Legacy Code
Working Effectively With Legacy CodeWorking Effectively With Legacy Code
Working Effectively With Legacy Code
 
A Not-So-Serious Introduction to Test Driven Development (TDD)
A Not-So-Serious Introduction to Test Driven Development (TDD) A Not-So-Serious Introduction to Test Driven Development (TDD)
A Not-So-Serious Introduction to Test Driven Development (TDD)
 

Similaire à Adopting technical practices 2013

Designer As Founder: Class One Intro to Lean Startup & Business Model Generation
Designer As Founder: Class One Intro to Lean Startup & Business Model GenerationDesigner As Founder: Class One Intro to Lean Startup & Business Model Generation
Designer As Founder: Class One Intro to Lean Startup & Business Model GenerationChristina Wodtke
 
Scrum training day 1
Scrum training day 1Scrum training day 1
Scrum training day 1Elad Sofer
 
An Agile Way As an SET at LINE -Product Ownership Edition-
An Agile Way As an SET at LINE -Product Ownership Edition-An Agile Way As an SET at LINE -Product Ownership Edition-
An Agile Way As an SET at LINE -Product Ownership Edition-LINE Corporation
 
Driving Quality with TDD
Driving Quality with TDDDriving Quality with TDD
Driving Quality with TDDSteven Mak
 
Do testers have to code... to be useful? Janet Gregory and Lisa Crispin plena...
Do testers have to code... to be useful? Janet Gregory and Lisa Crispin plena...Do testers have to code... to be useful? Janet Gregory and Lisa Crispin plena...
Do testers have to code... to be useful? Janet Gregory and Lisa Crispin plena...lisacrispin
 
Stanford University Design lab
 Stanford University Design lab Stanford University Design lab
Stanford University Design labAdi Shukla
 
Artur Suchwalko “What are common mistakes in Data Science projects and how to...
Artur Suchwalko “What are common mistakes in Data Science projects and how to...Artur Suchwalko “What are common mistakes in Data Science projects and how to...
Artur Suchwalko “What are common mistakes in Data Science projects and how to...Lviv Startup Club
 
Atd advanced topicsworkshop
Atd advanced topicsworkshopAtd advanced topicsworkshop
Atd advanced topicsworkshoplisacrispin
 
Mqug2015 july richard whyte
Mqug2015 july richard whyteMqug2015 july richard whyte
Mqug2015 july richard whyteRichard Whyte
 
Agile in a Legacy World - Sonik Chopra
Agile in a Legacy World - Sonik ChopraAgile in a Legacy World - Sonik Chopra
Agile in a Legacy World - Sonik ChopraAgileNCR2014
 
Agile - A failure story
Agile - A failure storyAgile - A failure story
Agile - A failure storyMiki Lior
 
Product Agility: 3 fundamentals from the trenches
Product Agility: 3 fundamentals from the trenchesProduct Agility: 3 fundamentals from the trenches
Product Agility: 3 fundamentals from the trenchesPedro Teixeira
 
How to Pitch a Software Development Initiative and Ignite Culture Change
How to Pitch a Software Development Initiative and Ignite Culture ChangeHow to Pitch a Software Development Initiative and Ignite Culture Change
How to Pitch a Software Development Initiative and Ignite Culture ChangeRed Gate Software
 
Working together: Agile teams, developers, and product managers
Working together: Agile teams, developers, and product managersWorking together: Agile teams, developers, and product managers
Working together: Agile teams, developers, and product managersDanielle Martin
 
How to start your data career
How to start your data careerHow to start your data career
How to start your data careerAdwait Bhave
 
Agile Testing Agile Ottawa April 2015
Agile Testing   Agile Ottawa April 2015Agile Testing   Agile Ottawa April 2015
Agile Testing Agile Ottawa April 2015Dag Rowe
 
Do testers have to code... to be useful?
Do testers have to code... to be useful?Do testers have to code... to be useful?
Do testers have to code... to be useful?lisacrispin
 
Core Agility Workout - AgileIndy 2015
Core Agility Workout - AgileIndy 2015Core Agility Workout - AgileIndy 2015
Core Agility Workout - AgileIndy 2015Matt Block, CSP
 
Req-usingDesignSprint.pdf
Req-usingDesignSprint.pdfReq-usingDesignSprint.pdf
Req-usingDesignSprint.pdfBoykepaulus1
 

Similaire à Adopting technical practices 2013 (20)

Designer As Founder: Class One Intro to Lean Startup & Business Model Generation
Designer As Founder: Class One Intro to Lean Startup & Business Model GenerationDesigner As Founder: Class One Intro to Lean Startup & Business Model Generation
Designer As Founder: Class One Intro to Lean Startup & Business Model Generation
 
Scrum training day 1
Scrum training day 1Scrum training day 1
Scrum training day 1
 
An Agile Way As an SET at LINE -Product Ownership Edition-
An Agile Way As an SET at LINE -Product Ownership Edition-An Agile Way As an SET at LINE -Product Ownership Edition-
An Agile Way As an SET at LINE -Product Ownership Edition-
 
Driving Quality with TDD
Driving Quality with TDDDriving Quality with TDD
Driving Quality with TDD
 
Do testers have to code... to be useful? Janet Gregory and Lisa Crispin plena...
Do testers have to code... to be useful? Janet Gregory and Lisa Crispin plena...Do testers have to code... to be useful? Janet Gregory and Lisa Crispin plena...
Do testers have to code... to be useful? Janet Gregory and Lisa Crispin plena...
 
Intro to TDD
Intro to TDDIntro to TDD
Intro to TDD
 
Stanford University Design lab
 Stanford University Design lab Stanford University Design lab
Stanford University Design lab
 
Artur Suchwalko “What are common mistakes in Data Science projects and how to...
Artur Suchwalko “What are common mistakes in Data Science projects and how to...Artur Suchwalko “What are common mistakes in Data Science projects and how to...
Artur Suchwalko “What are common mistakes in Data Science projects and how to...
 
Atd advanced topicsworkshop
Atd advanced topicsworkshopAtd advanced topicsworkshop
Atd advanced topicsworkshop
 
Mqug2015 july richard whyte
Mqug2015 july richard whyteMqug2015 july richard whyte
Mqug2015 july richard whyte
 
Agile in a Legacy World - Sonik Chopra
Agile in a Legacy World - Sonik ChopraAgile in a Legacy World - Sonik Chopra
Agile in a Legacy World - Sonik Chopra
 
Agile - A failure story
Agile - A failure storyAgile - A failure story
Agile - A failure story
 
Product Agility: 3 fundamentals from the trenches
Product Agility: 3 fundamentals from the trenchesProduct Agility: 3 fundamentals from the trenches
Product Agility: 3 fundamentals from the trenches
 
How to Pitch a Software Development Initiative and Ignite Culture Change
How to Pitch a Software Development Initiative and Ignite Culture ChangeHow to Pitch a Software Development Initiative and Ignite Culture Change
How to Pitch a Software Development Initiative and Ignite Culture Change
 
Working together: Agile teams, developers, and product managers
Working together: Agile teams, developers, and product managersWorking together: Agile teams, developers, and product managers
Working together: Agile teams, developers, and product managers
 
How to start your data career
How to start your data careerHow to start your data career
How to start your data career
 
Agile Testing Agile Ottawa April 2015
Agile Testing   Agile Ottawa April 2015Agile Testing   Agile Ottawa April 2015
Agile Testing Agile Ottawa April 2015
 
Do testers have to code... to be useful?
Do testers have to code... to be useful?Do testers have to code... to be useful?
Do testers have to code... to be useful?
 
Core Agility Workout - AgileIndy 2015
Core Agility Workout - AgileIndy 2015Core Agility Workout - AgileIndy 2015
Core Agility Workout - AgileIndy 2015
 
Req-usingDesignSprint.pdf
Req-usingDesignSprint.pdfReq-usingDesignSprint.pdf
Req-usingDesignSprint.pdf
 

Plus de Steven Mak

100 doors kata solution
100 doors kata solution100 doors kata solution
100 doors kata solutionSteven Mak
 
Bossless companies
Bossless companiesBossless companies
Bossless companiesSteven Mak
 
Is this how you hate unit testing?
Is this how you hate unit testing?Is this how you hate unit testing?
Is this how you hate unit testing?Steven Mak
 
Unbearable Test Code Smell
Unbearable Test Code SmellUnbearable Test Code Smell
Unbearable Test Code SmellSteven Mak
 
Sustainable TDD
Sustainable TDDSustainable TDD
Sustainable TDDSteven Mak
 
Introduction to Acceptance Test Driven Development
Introduction to Acceptance Test Driven DevelopmentIntroduction to Acceptance Test Driven Development
Introduction to Acceptance Test Driven DevelopmentSteven Mak
 
Essential practices and thinking tools for Agile Adoption
Essential practices and thinking tools for Agile AdoptionEssential practices and thinking tools for Agile Adoption
Essential practices and thinking tools for Agile AdoptionSteven Mak
 
ATDD in Practice
ATDD in PracticeATDD in Practice
ATDD in PracticeSteven Mak
 

Plus de Steven Mak (8)

100 doors kata solution
100 doors kata solution100 doors kata solution
100 doors kata solution
 
Bossless companies
Bossless companiesBossless companies
Bossless companies
 
Is this how you hate unit testing?
Is this how you hate unit testing?Is this how you hate unit testing?
Is this how you hate unit testing?
 
Unbearable Test Code Smell
Unbearable Test Code SmellUnbearable Test Code Smell
Unbearable Test Code Smell
 
Sustainable TDD
Sustainable TDDSustainable TDD
Sustainable TDD
 
Introduction to Acceptance Test Driven Development
Introduction to Acceptance Test Driven DevelopmentIntroduction to Acceptance Test Driven Development
Introduction to Acceptance Test Driven Development
 
Essential practices and thinking tools for Agile Adoption
Essential practices and thinking tools for Agile AdoptionEssential practices and thinking tools for Agile Adoption
Essential practices and thinking tools for Agile Adoption
 
ATDD in Practice
ATDD in PracticeATDD in Practice
ATDD in Practice
 

Dernier

Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 

Dernier (20)

Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 

Adopting technical practices 2013

  • 1. Stories of adopting technical practices Steven Mak Saturday, 27 July, 13
  • 2. Who am I? •Agile, TDD Coaching, Ugly Code Cleaning Dude •I love coding - Java, C#, Javascript, C/ C++, PHP, Perl, and some weird ones •I speak English, Cantonese, and Mandarin 2 Odd-e Pte. Ltd. Steven Mak 麥天志 Agile Coach Hong Kong Email: steven@odd-e.com Web: www.odd-e.com Twitter: stevenmak Saturday, 27 July, 13
  • 3. Disclaimer 3 If you hear any stories in this evening, they probably come from some customers I visit recently. No names will be revealed. But any resemblance to actual individuals or events are coincidental. :) 是日分享內容基於工作情節提 而成,如有雷同,實屬不幸 :) Saturday, 27 July, 13
  • 4. Before you want to adopt agile practices... What is the problem? • Buggy software? • Schedule slip? • People don’t talk to each other? • Unhappy customers? • Deployment too scary? 4 Learn about these before trying to convince your boss Saturday, 27 July, 13
  • 5. Where? • Code quality? • Time spent on bug fixing? • How do these go over a time period? • Interviews - Avoid hypothetical questions, e.g. “Would you like...” - Tell stories, “Tell us about the last time...” • See how others actually work - be careful with your subjective judgement 5 Saturday, 27 July, 13
  • 7. 7 What does this mean? Saturday, 27 July, 13
  • 8. Longitudinal study 8http://almossawi.com/firefox/prose/ Anything happened during some point in time? • Project deadline? • Firefighting? • Policy change? Saturday, 27 July, 13
  • 9. Don’t forget your version control system 9 http://www.stickyminds.com/sitewide.asp?Function=edetail&ObjectType=COL&ObjectId=16679 Saturday, 27 July, 13
  • 10. More visualization: JUnit project 10http://dkandalov.github.io/code-history-mining/junit.html Files often commit together? Is there collective code ownership? Which part of the project have more attention? When commit happens? How frequent commit happens? Saturday, 27 July, 13
  • 11. What kind of tests in place? 11 Saturday, 27 July, 13
  • 12. Why do you want these tests? 12 Saturday, 27 July, 13
  • 13. Before you start • Is the team prepare to learn? - Be very careful with busy teams - Do they cover this during retrospectives before? • Are the stakeholders aware of the teams learning new things? • Are there training in place? • Coaches help :) 13 Saturday, 27 July, 13
  • 14. Buy-in from the Team • It takes time for the team to learn, allow time in their planning for learning • Any compelling reasons before they will commit to making on the extra work of writing automated tests? • Most team begins with: - Write tests for new code and any changes to existing code • Discuss with the team and see if they are committed to do this • Target of writing a few tests every day 14 Saturday, 27 July, 13
  • 15. Lots of Coaching • No structure in place to decide when and with teams to work? • Internal coaches were asked to do normal development? • Not listening to internal coaches? • Coaching skills not appreciated and further developed? • Both internal and external coaching! 15 Saturday, 27 July, 13
  • 16. Definition of Done 16 coded and reviewed unit tested documented packaged etc. Activities required for Potentially Shippable Product Increment Sprint Retro- spective Sprint Review Potentially (2-4 h) (1.5-3h) Saturday, 27 July, 13
  • 17. Extending “done” 17 implement unit test analysis customer test customer doc performance test marketing material production pricing update manufacturing process current Definition on Done needed to be potentially shippable done undone goal: expand 2 year improvement goal 10 year improvement goal www.craiglarman.com www.odd-e.com Copyright © 2010 C.Larman & B. Vodde All rights reserved. Saturday, 27 July, 13
  • 18. Sprint Planning 18 Sprint Planning Part 1 Product Backlog Product Owner 4htimebox Selected Product Backlog Items Sprint Planning Part 2 Sprint Backlog 4htimebox Product Owner Available Team Capabilities Business Conditions Technology Stability Previous Sprint Product Increment input Updated Product Backlog Clarify Requirements Initial Design and Plan output Sprint Goal Saturday, 27 July, 13
  • 19. Making commitment • Part 1: - Product Owner decides on which requirements are selected - Team decides how much they can commit rather than assigned by Product Owner - Product Owner and Team collaborates instead of bargain - Product Owner prepares Product Backlog before Sprint Planning - Do not allow un-clarified requirements into the Sprint • Part 2: - Design more than planning - Focus on serious commitment rather than precise estimates - Avoid computers 19 Saturday, 27 July, 13
  • 20. How likely are you keeping your promise? 20 No story done two days before the end of sprint? Stories all in progress and waiting for testing? Why testing only happens at the end? Saturday, 27 July, 13
  • 21. Starting ATDD/SbE/BDD with product backlog refinement 21 Saturday, 27 July, 13
  • 22. Use Examples 22 With 3 judges giving scores 4, 20, and 18, the displayed score should be 42. When the first 2 judges have given their scores, e.g. 10 and 5, the intermediate score of 15 should be displayed already. No scores displayed as a dash (–), not zero. Maximum score from a judge is 20 points! Saturday, 27 July, 13
  • 23. Examples, Tests, and Spec 23 Examples Tests Requirements can become elaborate verify Saturday, 27 July, 13
  • 25. Tools come after people and interaction • Cucumber • Robot Framework • Fitnesse 25 Saturday, 27 July, 13
  • 26. Who wants writing unit tests for legacy code? 26 Saturday, 27 July, 13
  • 27. 27 Pair Programming More Pair Programming Study: http://www.computer.org/cms/Computer.org/ComputingNow/homepage/2010/0110/W_SW_PairProgramming.pdf Saturday, 27 July, 13
  • 28. Recap... • Training • Coaching • Definition of Done • Budget time in planning • Test Code Coverage... with care • Pair Programming • Practice 28 Saturday, 27 July, 13
  • 31. Coding Kata 31 “A kata is an exercise in karate where you repeat a form many, many times, making little improvements in each. “ “What makes a good practice session? You need time without interruptions, and a simple thing you want to try. You need to try it as many times as it takes, and be comfortable making mistakes. You need to look for feedback each time so you can work to improve. There needs to be no pressure: this is why it is hard to practice in a project environment.” • http://codekata.pragprog.com/ • http://codingdojo.org/cgi-bin/wiki.pl?KataCatalogue • http://www.projecteuler.net Saturday, 27 July, 13
  • 32. It can be done over the Internet too! 32 Saturday, 27 July, 13
  • 35. 35 Going Internet doesn’t mean we can’t do it face to face Saturday, 27 July, 13
  • 36. Let’s make it whole day! (in Taipei too) 36 Saturday, 27 July, 13
  • 37. Code Retreat 37 • Same kata throughout the group, typically Conway’s game of life • Every pair is working at the same time • Switch pair often to enhance learning http://coderetreat.com/ Saturday, 27 July, 13
  • 38. Example constraints 38 • Only one level of indentation per method • Don’t use “else” • Wrap all primitives, strings, and even lists • One dot per line • Don’t abbreviate names • No more than two instance variable per class • Don’t use setters, getters, or properties Saturday, 27 July, 13
  • 39. Thank you for spending time with me this evening. More feedback can be sent to: 39 Odd-e Hong Kong Ltd. Steven Mak 麥天志 Agile Coach Hong Kong Email: steven@odd-e.com Web: www.odd-e.com Twitter: stevenmak Saturday, 27 July, 13