SlideShare a Scribd company logo
1 of 38
Essential Thinking tools and
Practices for Agile Adoption
Steven Mak
Agile Coach
http://www.odd-e.com
steven@odd-e.com
About me and my job
Grow a productive team that thinks for itself
Change how they work and think, and very often
unlearn old habits
Guide the team through the tough patches until they find
their own way
So it’s about helping organisations adopting Agile
Today’s discussion
What is needed and difficulties in adopting Agile
Organisational and Engineering Practices
Thinking tools
How to begin with them
Do you enjoy this course?
So you have heard something about Agile software
development
Want to try it out?
Welcome to the reality!
You are not alone
Adelaide Bank Australia, Adobe Systems Seattle WA USA, Air New Zealand, APL ,
Ariba , b+m Informatik AG Melsdorf Germany, BBC New Media Dept London England
UK, Bentley Systems, BMC, Bose, CAN, CapitalOne, ClearChannel, Conchango,
Federal Reserve Bank, Ericsson, FormScape Fleet England U, French Post Office,
Gestalt, Google, HP, IBM, IDX, Intel, InterAct Public Safety Systems Asheville NC
USA, InterBusiness Technologies Curitiba/São Paulo PR/SP Brasil, Leapfrog, Online
Evanston IL USA, Lexis-Nexis, LMCO, Lockheed Martin, Medtronics, Microsoft,
Mobile Fun Limited Birmingham England UK, Motorola, Motorola Poland Cracow
Poland, Nokia, Nokia NET, Océ Netherlands, Philips, Primavera , Print Inc Bellevue
WA USA, Qpass/Amdocs Vienna Austria, Qualcomm San Diego CA USA, SAIC,
Sammy Studios, SAP, Security Benefit, Siemens, Siemens Austria, Siemens Medical,
Siemens Medical Solutions Malvern PA USA, Smith Seckman Reid, Inc. Nashville TN
USA, State Farm, State Street Bank, Sun, Symphony Services Corp. (India) Pvt. Ltd
Bangalore India, Telegraaf Media Group NV Amsterdam Netherlands, Trango
(Siemens) Toronto CAN, TransUnion, TrendMicro, Wildcard Systems, Xerox, Yahoo
Does this happen to your
     organisation?
Sprint/Iteration requires a lot more work than was
planned
Team member reports the same item more than two
days with the same or greater estimates and nobody
notices or cares
No interaction outside (or even inside) daily stand-up
meeting
Customer/Product Owner not available for consultation
Distractions from outside the team
Does this happen to your
 organisation? (more)
Single-Function groups
Individual performance evaluation and reward
Assumption that Book learning is enough
Silver bullet thinking or Cargo-Cult adoption
Culture of individual workers rather than teamwork
Gap between people in management roles and those
doing the hands-on work
Technical Debt
The sum of future maintenance that could have been
avoided if the software had been developed according
to reasonable software-design practices.
For example: Cut-and-paste coding
Other sources: design that lacks testability, inappropriate
coupling...
Cost of Change
Legacy systems
Doesn’t have test harnesses
Few people still know how to or are willing to touch it
Requires more time to work on
“Equally responsible for the initiation of project with
predefined failure is management that insists upon
having fixed commitments from programming
personnel prior to the latterʼs understanding what the
commitment are for. Too frequently, management does
not realize that in asking the staff for “the impossible”,
the staff will feel the obligation to respond out of
respect, fear or misguided loyalty. Saying “no” to the
boss frequently requires courage, political and
psychological wisdom, and business maturity that
comes with much experience.”

                                                                Charles Lecht -
                       “The Management of Computer Programming Projects” - 1967
Avoiding Technical Debt
Refactoring
Test-driven development
Acceptance test-driven development
Continuous Integration
Refactoring
Disciplined technique for restructuring an existing body
of code, altering its internal structure without changing
its external behaviour.
Small step each time
Protected by tests
Why Refactoring
Improve the design
Better understanding
Easier to add new code
Test-driven development
Use tests to drive the development/design
No production code is written before there is a failing
test
Not a testing technique
Test-driven development
    1 Rule:
-
      Only ever write code to fix a failing test
    3 Steps:
1. Write a test (which fails “red”)
2. Code (to make test pass “green”)
3. Refactor (test still pass “green”)
Test-driven development
Cost of bug fixing is lower if it is found earlier
In 2008, Case Study of TDD at IBM and Microsoft
shows that TDDers enjoy a defect density reduction
ranging from 30% to 90% and a productivity cost of
between 15% and 35%
http://research.microsoft.com/en-us/projects/esm/
nagappan_tdd.pdf
Kent Beck: “If it doesn’t have to work, I can get it done a
lot faster!”
Test-driven development
Allow plenty of time for the team to pick up TDD
Think more during test, be pragmatic and quick to write
code
Shared commitment and working agreement
Try Coding Dojo
Try Ping-Pong programming
Acceptance TDD


Requirement         Acceptance Test      Feedback     Implementation




         Drive implementation of a requirement through a set of
         automated, executable acceptance tests
         It’s a whole team practice, not just developers
Examples, Tests, and Spec

Examples     can become        Tests
 ela




                                   rify
   bo




                               ve
    ra
       te




              Requirements
Acceptance TDD
Real-world examples to build a shared understanding of
the domain
Select a set of these examples to be a specification and
an acceptance test suite
Automate the verification of acceptance tests
Focus the software development effort on the acceptance
tests
Use the set of acceptance tests to facilitate discussion
about future change requests
Open Source tools, e.g. FIT, Robot Framework,
Cucumber
Acceptance TDD
                                                          •Implementation   of tests
                    coding                                 usually occur before the
                    testing                                code is done
                                                          • Feature not done until test




                                             Feature
Specification        architecture                           passes




                                              Done
 Workshop
                    customer documentation

                    other activities
                                                         • Activities happen in
                                                         parallel



   Developers
     Testers                                           •Team clarifies and implement
 Product Owner                         Example          the feature together
    Architect                           tests          •Tests are executable at the
Technical writers                                       end of the ATDD Workshop
Continuous Integration
Developer practice
To keep a working system
Small changes
Growing the system by integration at least daily
Supported by automated tests
Open Source tools, e.g. Hudson, Apache Gump,
Tinderbox
CI System
             Check-in                  Monitor     CI
                                 SCM
                                                 Server
                                                  Compile

  Email/SMS                 find out who          Unit Test
“Fix the build”            broke the build
                                                  Install /
             any step failed?                     deploy

                                                 acceptance
                                                    test

                                                 any other
                                                    test
Facilitate Adoption
Evangelise - increase awareness
Lower the bar - quick path to the first success
Train and educate - from general training to specific needs
Share and infect - sit together and sharing sessions
Coach and facilitate -      learn about yourselves and cope with the
findings

Involve others - know the stake-holder groups and give them roles
Organisational Assumptions
Self-management teams
Cross functional teams
Team incentives
Continuous improvement
Respect for people
Self-management teams
Higher motivation when the team is responsible for end-to-
end result.
The authority to design, plan, and execute their tasks
Leadership shared among team members
  Autonomous
  Cross-functional
  Challenged - realistic goals
But you can’t start by simply asking the team “go self-
organise themselves”
Cross-Functional teams
Do your company still have a QA team?

Self-management teams are cross-functional, at working
level
“Group of people with a clear purpose representing a variety
of functions or disciplines in the organisation whose
combined efforts are necessary for achieving the team’s
purpose”
Global optimisation over local optimisation
Avoid creating queues and hand-off, reducing feedback loop
and hence decreasing learning opportunities
More about teams
Team owns the process, responsible for improving his
team’s work
Working agreements
Manage across their boundaries reaching out to find the
information they need, understand the context in which
they work, manage the politics and power struggles, get
support for their ideas
Dedicated team members and long-lived teams
Let the team make decisions
Team incentives
Paying solely on individual basis signals what the
organisation believes is actually important - individual
behaviour and performance
Avoid incentives on productivity measures,e.g. LOC
Avoid performance appraisals
Try “Go See” instead of annual review
Lean Thinking -
Continuous Improvement
Go See -    go to the source and find the facts to make correct decisions,
build consensus, and achieve goals at our best speed

Kaizen - “my     work is to do my work and to improve my work, and
continuously improve for its own sake”

   Choose and practice techniques the team has agreed to try, until they
   are fully understood

   Experiment until you find a better way

   repeat

Perfection challenge - high expectations beyond status quo
Lean Thinking -
      Respect for People
Manager - teachers mentor people closely for years
Managers “Walk the Talk”
Teams and Individuals evolve their own practices and
improvements
Lots of formal education and coaching
Lots of coaching
More thinking tools
Systems Thinking
Queueing Theory
Theory of Constraints
Agile values is also a thinking tool
Software Craftsmanship Manifesto
Beyond Budgeting Movement
Good books to read - Agile
Good books to read - Technical
Good books to read - People
Extra
    Certified Scrum Master Course
-
       Tentatively in March 2010 - Hong Kong
    Check out on http://www.odd-e.com and http://
    www.scrumalliance.org/
    S c r u m G u i d e h t t p : / / w w w. s c r u m a l l i a n c e . o r g /
    resource_download/598
    Scrum Primer http://www.goodagile.com/scrumprimer/
    scrumprimer.pdf
    http://tech.groups.yahoo.com/group/agilehongkong/
    http://www.agilehongkong.com
Thank you




                           Steven Mak
                http://www.odd-e.com
            Email: steven@odd-e.com
Twitter: http://twitter.com/stevenmak

More Related Content

What's hot

Tester Challenges in Agile ?
Tester Challenges in Agile ?Tester Challenges in Agile ?
Tester Challenges in Agile ?alind tiwari
 
eXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OvervieweXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OverviewGurtej Pal Singh
 
Behavior Driven Development (BDD)
Behavior Driven Development (BDD)Behavior Driven Development (BDD)
Behavior Driven Development (BDD)Ajay Danait
 
Building Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed AgileBuilding Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed AgileWee Witthawaskul
 
ATDD in Practice
ATDD in PracticeATDD in Practice
ATDD in PracticeSteven Mak
 
Going extreme-with-extreme-programming
Going extreme-with-extreme-programmingGoing extreme-with-extreme-programming
Going extreme-with-extreme-programmingMichael Green
 
Introduction to Acceptance Test Driven Development
Introduction to Acceptance Test Driven DevelopmentIntroduction to Acceptance Test Driven Development
Introduction to Acceptance Test Driven DevelopmentSteven Mak
 
Releasing fast code - The DevOps approach
Releasing fast code - The DevOps approachReleasing fast code - The DevOps approach
Releasing fast code - The DevOps approachMichael Kopp
 
Practices of agile developers
Practices of agile developersPractices of agile developers
Practices of agile developersDUONG Trong Tan
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationMuaazZubairi
 
extreme Programming
extreme Programmingextreme Programming
extreme ProgrammingBilal Shah
 
XP Explained
XP ExplainedXP Explained
XP Explainedvineet
 
Software Testing with Agile Requirements Practices
Software Testing with Agile Requirements Practices Software Testing with Agile Requirements Practices
Software Testing with Agile Requirements Practices A B M Moniruzzaman
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test AutomationNaveen Kumar Singh
 
How to develop a common sense of "DONE"?
How to develop a common sense of "DONE"?How to develop a common sense of "DONE"?
How to develop a common sense of "DONE"?Dr. Alexander Schwartz
 

What's hot (19)

Tester Challenges in Agile ?
Tester Challenges in Agile ?Tester Challenges in Agile ?
Tester Challenges in Agile ?
 
eXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OvervieweXtreme programming (XP) - An Overview
eXtreme programming (XP) - An Overview
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Behavior Driven Development (BDD)
Behavior Driven Development (BDD)Behavior Driven Development (BDD)
Behavior Driven Development (BDD)
 
test
testtest
test
 
Building Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed AgileBuilding Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed Agile
 
ATDD in Practice
ATDD in PracticeATDD in Practice
ATDD in Practice
 
Going extreme-with-extreme-programming
Going extreme-with-extreme-programmingGoing extreme-with-extreme-programming
Going extreme-with-extreme-programming
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Introduction to Acceptance Test Driven Development
Introduction to Acceptance Test Driven DevelopmentIntroduction to Acceptance Test Driven Development
Introduction to Acceptance Test Driven Development
 
Releasing fast code - The DevOps approach
Releasing fast code - The DevOps approachReleasing fast code - The DevOps approach
Releasing fast code - The DevOps approach
 
Practices of agile developers
Practices of agile developersPractices of agile developers
Practices of agile developers
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
 
ATDD in practice
ATDD in practiceATDD in practice
ATDD in practice
 
extreme Programming
extreme Programmingextreme Programming
extreme Programming
 
XP Explained
XP ExplainedXP Explained
XP Explained
 
Software Testing with Agile Requirements Practices
Software Testing with Agile Requirements Practices Software Testing with Agile Requirements Practices
Software Testing with Agile Requirements Practices
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test Automation
 
How to develop a common sense of "DONE"?
How to develop a common sense of "DONE"?How to develop a common sense of "DONE"?
How to develop a common sense of "DONE"?
 

Similar to Essential practices and thinking tools for Agile Adoption

Agile Testing 20021015
Agile Testing 20021015Agile Testing 20021015
Agile Testing 20021015Raghu Karnati
 
Scrum plus – why scrum is not enough for successful delivery
Scrum plus – why scrum is not enough for successful deliveryScrum plus – why scrum is not enough for successful delivery
Scrum plus – why scrum is not enough for successful deliveryNaveen Kumar Singh
 
Unit Testing, TDD and the Walking Skeleton
Unit Testing, TDD and the Walking SkeletonUnit Testing, TDD and the Walking Skeleton
Unit Testing, TDD and the Walking SkeletonSeb Rose
 
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
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanQA or the Highway
 
Software presentation
Software presentationSoftware presentation
Software presentationJennaPrengle
 
Effective Testing Practices in an Agile Environment
Effective Testing Practices in an Agile EnvironmentEffective Testing Practices in an Agile Environment
Effective Testing Practices in an Agile EnvironmentRaj Indugula
 
Trends in Agile Testing by Lisa Crispin
Trends in Agile Testing by Lisa CrispinTrends in Agile Testing by Lisa Crispin
Trends in Agile Testing by Lisa CrispinDirecti Group
 
Role Of Qa And Testing In Agile 1225221397167302 8
Role Of Qa And Testing In Agile 1225221397167302 8Role Of Qa And Testing In Agile 1225221397167302 8
Role Of Qa And Testing In Agile 1225221397167302 8a34sharm
 
DevOps Roadshow - removing barriers between development and operations
DevOps Roadshow - removing barriers between development and operationsDevOps Roadshow - removing barriers between development and operations
DevOps Roadshow - removing barriers between development and operationsMicrosoft Developer Norway
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven Developmentadrianmitev
 
Test Driven Development - Overview and Adoption
Test Driven Development - Overview and AdoptionTest Driven Development - Overview and Adoption
Test Driven Development - Overview and AdoptionPyxis Technologies
 
Atmosphere 2016 - Berk Dulger - DevOps Tactical Adoption Theory
Atmosphere 2016 - Berk Dulger  - DevOps Tactical Adoption TheoryAtmosphere 2016 - Berk Dulger  - DevOps Tactical Adoption Theory
Atmosphere 2016 - Berk Dulger - DevOps Tactical Adoption TheoryPROIDEA
 
Tester’s considerations when moving towards successful CI/CD
Tester’s considerations when moving towards successful CI/CDTester’s considerations when moving towards successful CI/CD
Tester’s considerations when moving towards successful CI/CDDerk-Jan de Grood
 

Similar to Essential practices and thinking tools for Agile Adoption (20)

Agile testing
Agile testingAgile testing
Agile testing
 
Agile Testing 20021015
Agile Testing 20021015Agile Testing 20021015
Agile Testing 20021015
 
Scrum plus – why scrum is not enough for successful delivery
Scrum plus – why scrum is not enough for successful deliveryScrum plus – why scrum is not enough for successful delivery
Scrum plus – why scrum is not enough for successful delivery
 
Unit Testing, TDD and the Walking Skeleton
Unit Testing, TDD and the Walking SkeletonUnit Testing, TDD and the Walking Skeleton
Unit Testing, TDD and the Walking Skeleton
 
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 testing
Agile testingAgile testing
Agile testing
 
Agile testing
Agile testingAgile testing
Agile testing
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
 
Fundamentals of Agile
Fundamentals of AgileFundamentals of Agile
Fundamentals of Agile
 
Software presentation
Software presentationSoftware presentation
Software presentation
 
Effective Testing Practices in an Agile Environment
Effective Testing Practices in an Agile EnvironmentEffective Testing Practices in an Agile Environment
Effective Testing Practices in an Agile Environment
 
Trends in Agile Testing by Lisa Crispin
Trends in Agile Testing by Lisa CrispinTrends in Agile Testing by Lisa Crispin
Trends in Agile Testing by Lisa Crispin
 
Continuous testing the new must have skill of tomorrow's tech leaders
Continuous testing  the new must have skill of tomorrow's tech leadersContinuous testing  the new must have skill of tomorrow's tech leaders
Continuous testing the new must have skill of tomorrow's tech leaders
 
Role Of Qa And Testing In Agile 1225221397167302 8
Role Of Qa And Testing In Agile 1225221397167302 8Role Of Qa And Testing In Agile 1225221397167302 8
Role Of Qa And Testing In Agile 1225221397167302 8
 
DevOps Roadshow - removing barriers between development and operations
DevOps Roadshow - removing barriers between development and operationsDevOps Roadshow - removing barriers between development and operations
DevOps Roadshow - removing barriers between development and operations
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven Development
 
Devops Mindset Essentials
Devops Mindset EssentialsDevops Mindset Essentials
Devops Mindset Essentials
 
Test Driven Development - Overview and Adoption
Test Driven Development - Overview and AdoptionTest Driven Development - Overview and Adoption
Test Driven Development - Overview and Adoption
 
Atmosphere 2016 - Berk Dulger - DevOps Tactical Adoption Theory
Atmosphere 2016 - Berk Dulger  - DevOps Tactical Adoption TheoryAtmosphere 2016 - Berk Dulger  - DevOps Tactical Adoption Theory
Atmosphere 2016 - Berk Dulger - DevOps Tactical Adoption Theory
 
Tester’s considerations when moving towards successful CI/CD
Tester’s considerations when moving towards successful CI/CDTester’s considerations when moving towards successful CI/CD
Tester’s considerations when moving towards successful CI/CD
 

More from Steven Mak

Continuous Security Testing
Continuous Security TestingContinuous Security Testing
Continuous Security TestingSteven Mak
 
Quality comes free with open source testing tools
Quality comes free with open source testing toolsQuality comes free with open source testing tools
Quality comes free with open source testing toolsSteven Mak
 
Adopting technical practices 2013
Adopting technical practices 2013Adopting technical practices 2013
Adopting technical practices 2013Steven 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
 
Driving Quality with TDD
Driving Quality with TDDDriving Quality with TDD
Driving Quality with TDDSteven 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
 

More from Steven Mak (9)

Continuous Security Testing
Continuous Security TestingContinuous Security Testing
Continuous Security Testing
 
Quality comes free with open source testing tools
Quality comes free with open source testing toolsQuality comes free with open source testing tools
Quality comes free with open source testing tools
 
Adopting technical practices 2013
Adopting technical practices 2013Adopting technical practices 2013
Adopting technical practices 2013
 
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?
 
Driving Quality with TDD
Driving Quality with TDDDriving Quality with TDD
Driving Quality with TDD
 
Unbearable Test Code Smell
Unbearable Test Code SmellUnbearable Test Code Smell
Unbearable Test Code Smell
 
Sustainable TDD
Sustainable TDDSustainable TDD
Sustainable TDD
 

Recently uploaded

Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
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
 
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
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
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
 
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
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
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
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
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
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
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
 
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
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
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
 
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...
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
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.
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
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
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
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
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 

Essential practices and thinking tools for Agile Adoption

  • 1. Essential Thinking tools and Practices for Agile Adoption Steven Mak Agile Coach http://www.odd-e.com steven@odd-e.com
  • 2. About me and my job Grow a productive team that thinks for itself Change how they work and think, and very often unlearn old habits Guide the team through the tough patches until they find their own way So it’s about helping organisations adopting Agile
  • 3. Today’s discussion What is needed and difficulties in adopting Agile Organisational and Engineering Practices Thinking tools How to begin with them
  • 4. Do you enjoy this course? So you have heard something about Agile software development Want to try it out? Welcome to the reality!
  • 5. You are not alone Adelaide Bank Australia, Adobe Systems Seattle WA USA, Air New Zealand, APL , Ariba , b+m Informatik AG Melsdorf Germany, BBC New Media Dept London England UK, Bentley Systems, BMC, Bose, CAN, CapitalOne, ClearChannel, Conchango, Federal Reserve Bank, Ericsson, FormScape Fleet England U, French Post Office, Gestalt, Google, HP, IBM, IDX, Intel, InterAct Public Safety Systems Asheville NC USA, InterBusiness Technologies Curitiba/São Paulo PR/SP Brasil, Leapfrog, Online Evanston IL USA, Lexis-Nexis, LMCO, Lockheed Martin, Medtronics, Microsoft, Mobile Fun Limited Birmingham England UK, Motorola, Motorola Poland Cracow Poland, Nokia, Nokia NET, Océ Netherlands, Philips, Primavera , Print Inc Bellevue WA USA, Qpass/Amdocs Vienna Austria, Qualcomm San Diego CA USA, SAIC, Sammy Studios, SAP, Security Benefit, Siemens, Siemens Austria, Siemens Medical, Siemens Medical Solutions Malvern PA USA, Smith Seckman Reid, Inc. Nashville TN USA, State Farm, State Street Bank, Sun, Symphony Services Corp. (India) Pvt. Ltd Bangalore India, Telegraaf Media Group NV Amsterdam Netherlands, Trango (Siemens) Toronto CAN, TransUnion, TrendMicro, Wildcard Systems, Xerox, Yahoo
  • 6. Does this happen to your organisation? Sprint/Iteration requires a lot more work than was planned Team member reports the same item more than two days with the same or greater estimates and nobody notices or cares No interaction outside (or even inside) daily stand-up meeting Customer/Product Owner not available for consultation Distractions from outside the team
  • 7. Does this happen to your organisation? (more) Single-Function groups Individual performance evaluation and reward Assumption that Book learning is enough Silver bullet thinking or Cargo-Cult adoption Culture of individual workers rather than teamwork Gap between people in management roles and those doing the hands-on work
  • 8. Technical Debt The sum of future maintenance that could have been avoided if the software had been developed according to reasonable software-design practices. For example: Cut-and-paste coding Other sources: design that lacks testability, inappropriate coupling...
  • 10. Legacy systems Doesn’t have test harnesses Few people still know how to or are willing to touch it Requires more time to work on
  • 11. “Equally responsible for the initiation of project with predefined failure is management that insists upon having fixed commitments from programming personnel prior to the latterʼs understanding what the commitment are for. Too frequently, management does not realize that in asking the staff for “the impossible”, the staff will feel the obligation to respond out of respect, fear or misguided loyalty. Saying “no” to the boss frequently requires courage, political and psychological wisdom, and business maturity that comes with much experience.” Charles Lecht - “The Management of Computer Programming Projects” - 1967
  • 12. Avoiding Technical Debt Refactoring Test-driven development Acceptance test-driven development Continuous Integration
  • 13. Refactoring Disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behaviour. Small step each time Protected by tests
  • 14. Why Refactoring Improve the design Better understanding Easier to add new code
  • 15. Test-driven development Use tests to drive the development/design No production code is written before there is a failing test Not a testing technique
  • 16. Test-driven development 1 Rule: - Only ever write code to fix a failing test 3 Steps: 1. Write a test (which fails “red”) 2. Code (to make test pass “green”) 3. Refactor (test still pass “green”)
  • 17. Test-driven development Cost of bug fixing is lower if it is found earlier In 2008, Case Study of TDD at IBM and Microsoft shows that TDDers enjoy a defect density reduction ranging from 30% to 90% and a productivity cost of between 15% and 35% http://research.microsoft.com/en-us/projects/esm/ nagappan_tdd.pdf Kent Beck: “If it doesn’t have to work, I can get it done a lot faster!”
  • 18. Test-driven development Allow plenty of time for the team to pick up TDD Think more during test, be pragmatic and quick to write code Shared commitment and working agreement Try Coding Dojo Try Ping-Pong programming
  • 19. Acceptance TDD Requirement Acceptance Test Feedback Implementation Drive implementation of a requirement through a set of automated, executable acceptance tests It’s a whole team practice, not just developers
  • 20. Examples, Tests, and Spec Examples can become Tests ela rify bo ve ra te Requirements
  • 21. Acceptance TDD Real-world examples to build a shared understanding of the domain Select a set of these examples to be a specification and an acceptance test suite Automate the verification of acceptance tests Focus the software development effort on the acceptance tests Use the set of acceptance tests to facilitate discussion about future change requests Open Source tools, e.g. FIT, Robot Framework, Cucumber
  • 22. Acceptance TDD •Implementation of tests coding usually occur before the testing code is done • Feature not done until test Feature Specification architecture passes Done Workshop customer documentation other activities • Activities happen in parallel Developers Testers •Team clarifies and implement Product Owner Example the feature together Architect tests •Tests are executable at the Technical writers end of the ATDD Workshop
  • 23. Continuous Integration Developer practice To keep a working system Small changes Growing the system by integration at least daily Supported by automated tests Open Source tools, e.g. Hudson, Apache Gump, Tinderbox
  • 24. CI System Check-in Monitor CI SCM Server Compile Email/SMS find out who Unit Test “Fix the build” broke the build Install / any step failed? deploy acceptance test any other test
  • 25. Facilitate Adoption Evangelise - increase awareness Lower the bar - quick path to the first success Train and educate - from general training to specific needs Share and infect - sit together and sharing sessions Coach and facilitate - learn about yourselves and cope with the findings Involve others - know the stake-holder groups and give them roles
  • 26. Organisational Assumptions Self-management teams Cross functional teams Team incentives Continuous improvement Respect for people
  • 27. Self-management teams Higher motivation when the team is responsible for end-to- end result. The authority to design, plan, and execute their tasks Leadership shared among team members Autonomous Cross-functional Challenged - realistic goals But you can’t start by simply asking the team “go self- organise themselves”
  • 28. Cross-Functional teams Do your company still have a QA team? Self-management teams are cross-functional, at working level “Group of people with a clear purpose representing a variety of functions or disciplines in the organisation whose combined efforts are necessary for achieving the team’s purpose” Global optimisation over local optimisation Avoid creating queues and hand-off, reducing feedback loop and hence decreasing learning opportunities
  • 29. More about teams Team owns the process, responsible for improving his team’s work Working agreements Manage across their boundaries reaching out to find the information they need, understand the context in which they work, manage the politics and power struggles, get support for their ideas Dedicated team members and long-lived teams Let the team make decisions
  • 30. Team incentives Paying solely on individual basis signals what the organisation believes is actually important - individual behaviour and performance Avoid incentives on productivity measures,e.g. LOC Avoid performance appraisals Try “Go See” instead of annual review
  • 31. Lean Thinking - Continuous Improvement Go See - go to the source and find the facts to make correct decisions, build consensus, and achieve goals at our best speed Kaizen - “my work is to do my work and to improve my work, and continuously improve for its own sake” Choose and practice techniques the team has agreed to try, until they are fully understood Experiment until you find a better way repeat Perfection challenge - high expectations beyond status quo
  • 32. Lean Thinking - Respect for People Manager - teachers mentor people closely for years Managers “Walk the Talk” Teams and Individuals evolve their own practices and improvements Lots of formal education and coaching Lots of coaching
  • 33. More thinking tools Systems Thinking Queueing Theory Theory of Constraints Agile values is also a thinking tool Software Craftsmanship Manifesto Beyond Budgeting Movement
  • 34. Good books to read - Agile
  • 35. Good books to read - Technical
  • 36. Good books to read - People
  • 37. Extra Certified Scrum Master Course - Tentatively in March 2010 - Hong Kong Check out on http://www.odd-e.com and http:// www.scrumalliance.org/ S c r u m G u i d e h t t p : / / w w w. s c r u m a l l i a n c e . o r g / resource_download/598 Scrum Primer http://www.goodagile.com/scrumprimer/ scrumprimer.pdf http://tech.groups.yahoo.com/group/agilehongkong/ http://www.agilehongkong.com
  • 38. Thank you Steven Mak http://www.odd-e.com Email: steven@odd-e.com Twitter: http://twitter.com/stevenmak