SlideShare uma empresa Scribd logo
1 de 40
Creating change
from within
 The Agile Developer story
 By
 Dror Helper
About.Me
• Software Developer 9+ years

• Team’s technical lead

• TDD/Unit testing enthusiast

• Some SCRUM/Kanban background

• Blogger – http://blog.drorhelper.com
The problem with Agile
We don’t have time
                     It would never
                       work in this   I don’t want to do this!
                         project
So what can a single
    person do?
Let me tell you
 about the last
year and a half
The cast

                   Manager




Developer   Developer   Consultant   Me
Team’s methodology
• Unit tests – more or less

• Iteration tracking?

• Manual deploy builds – from developer’s PC

• Code reviews
My   1 st   week on the job
Let’s do TDD!
Analysis
• Took two days to fix 40% of tests and make all of the
  test run

• Find what are the main issues – and focus on them
   o   Not readable
   o   Using logic inside test
   o   Testing too much
   o   Hand rolled mocks
   o   Scenarios hiding as unit tests
   o   Highly coupled code
Teach the team




And decide on next steps
CI server                      Build Server

                           What’s new?

Commit
                          There you go

         Source Control




                   Build Agents
Immediate steps
•   Using MSTest
•   Write test before fixing bug
•   Fix existing tests when implementing new features
•   Delete obsolete tests
Code reviews
Then came mocking
• Hard to explain at the beginning
• Instead show them!
   o Free tools – low cost upfront
   o Commercial products

• Get rid of existing hand-rolled mocks
And excuses
•   “I didn’t have enough time so I didn’t write a test”
•   Crisis mode
•   I cannot test it – so I won’t…
•   There’s no need to test everything
•   It’s much better to have one big test

• Remember not to be discouraged
Today
•   More than 3000 tests
•   Good code coverage
•   Most features are developed using TDD
•   CI server run all tests on commit

• Change code without fear
How to decide
 what to do?
Total cost of change
                 Participants




  Maintenance                   Effort (Time)




                Cost of
                Change
  Emotional                         Cost
   Value                          (Money)




                  Previous
                 investment
The most difficult task

  Replace
existing tool
      or          Hard!
methodology
Your knowledge


               What
Subject
domain
                you        Gap
               know
Iteration
tracking
In the beginning
Post-it + wall
Excel in shared folder
TFS + Work item manager
Tips and tricks
The power of code reviews
Effective Code reviews
• Advise don’t force
• Review the code not the person
• It’s ok to discuss the good things as well

• You should get reviewed as well!
• After a while team members can review each other
Have the right attitude
•   Be positive
•   Don’t tell them what to so - suggest improvements
•   Don’t force – convince
•   Be ready to change if proven wrong
•   Don’t be “that guy”
Communicate!
•   Email
•   Phone call
•   Face to face
•   Presentation
•   Coder reviews
•   Pair programming
•   Daily meetings
Create success record
Enlist Help
Because You cannot do it all by yourself
Change is iterative
• Hard to perform big changes overnight
• Small incremental changes
• Teach the team about the “boy scout rule”.
Be pragmatic!
•   Every action should have a purpose
•   If it doesn’t work – change it!
•   Names are not important – just what you do
•   Practices can be adapted for the team
•   Don’t be a strict task master




     Know where to draw the line
Journey not a destination
Aftermath
Team growth
opportunity/challenge
The end?
•   TDD & unit tests
•   CI server
•   Code reviews before commit
•   Automatic deployment
•   Task board and iterations
•   Better estimations
•   Faster time to deploy
Thank you

Mais conteúdo relacionado

Mais procurados

Gearing Startups for Success through Product Engineering
Gearing Startups for Success through Product EngineeringGearing Startups for Success through Product Engineering
Gearing Startups for Success through Product Engineering99X Technology
 
Become a Quality Enabler
Become a Quality EnablerBecome a Quality Enabler
Become a Quality Enabler99X Technology
 
Lessons learnt in ten years of agile testing
Lessons learnt in ten years of agile testingLessons learnt in ten years of agile testing
Lessons learnt in ten years of agile testingBaiju Joseph
 
Agile testing experiments
Agile testing experimentsAgile testing experiments
Agile testing experimentsBaiju Joseph
 
Spec By Example or How to teach people talk to each other
Spec By Example or How to teach people talk to each otherSpec By Example or How to teach people talk to each other
Spec By Example or How to teach people talk to each otherAndrey Rebrov
 
Waterfalls for Agile in a bag
Waterfalls for Agile in a bagWaterfalls for Agile in a bag
Waterfalls for Agile in a bagSteve Wells
 
Waterfalls for agile cambridge
Waterfalls for agile cambridgeWaterfalls for agile cambridge
Waterfalls for agile cambridgeSteve Wells
 
Agile San Diego: Testing as Exploration (Continuous Delivery w/o Automation)
Agile San Diego: Testing as Exploration (Continuous Delivery w/o Automation)Agile San Diego: Testing as Exploration (Continuous Delivery w/o Automation)
Agile San Diego: Testing as Exploration (Continuous Delivery w/o Automation)Maaret Pyhäjärvi
 
Adventures in Agile Testing
Adventures in Agile TestingAdventures in Agile Testing
Adventures in Agile TestingAgileThought
 
Mujeebur rahmansaher introduction-to-scrum_v2
Mujeebur rahmansaher introduction-to-scrum_v2Mujeebur rahmansaher introduction-to-scrum_v2
Mujeebur rahmansaher introduction-to-scrum_v2Mujeebur Rahmansaher
 
Tester Challenges in Agile ?
Tester Challenges in Agile ?Tester Challenges in Agile ?
Tester Challenges in Agile ?alind tiwari
 
Shipping code is not the problem, deciding what to ship it is!
Shipping code is not the problem, deciding what to ship it is!Shipping code is not the problem, deciding what to ship it is!
Shipping code is not the problem, deciding what to ship it is!Mauro Servienti
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Codemotion
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Codemotion
 
Making a Mock by Kelsey Shannahan
Making a Mock by Kelsey ShannahanMaking a Mock by Kelsey Shannahan
Making a Mock by Kelsey ShannahanQA or the Highway
 
Agile testing practice
Agile testing practiceAgile testing practice
Agile testing practiceMary Jiang
 
Communicated deadlines = bad quality
Communicated deadlines = bad qualityCommunicated deadlines = bad quality
Communicated deadlines = bad qualityJohan Hoberg
 
Advancing Testing Using Axioms
Advancing Testing Using AxiomsAdvancing Testing Using Axioms
Advancing Testing Using AxiomsSQALab
 

Mais procurados (19)

Gearing Startups for Success through Product Engineering
Gearing Startups for Success through Product EngineeringGearing Startups for Success through Product Engineering
Gearing Startups for Success through Product Engineering
 
Become a Quality Enabler
Become a Quality EnablerBecome a Quality Enabler
Become a Quality Enabler
 
Lessons learnt in ten years of agile testing
Lessons learnt in ten years of agile testingLessons learnt in ten years of agile testing
Lessons learnt in ten years of agile testing
 
Agile testing experiments
Agile testing experimentsAgile testing experiments
Agile testing experiments
 
Spec By Example or How to teach people talk to each other
Spec By Example or How to teach people talk to each otherSpec By Example or How to teach people talk to each other
Spec By Example or How to teach people talk to each other
 
Bad metric, bad!
Bad metric, bad!Bad metric, bad!
Bad metric, bad!
 
Waterfalls for Agile in a bag
Waterfalls for Agile in a bagWaterfalls for Agile in a bag
Waterfalls for Agile in a bag
 
Waterfalls for agile cambridge
Waterfalls for agile cambridgeWaterfalls for agile cambridge
Waterfalls for agile cambridge
 
Agile San Diego: Testing as Exploration (Continuous Delivery w/o Automation)
Agile San Diego: Testing as Exploration (Continuous Delivery w/o Automation)Agile San Diego: Testing as Exploration (Continuous Delivery w/o Automation)
Agile San Diego: Testing as Exploration (Continuous Delivery w/o Automation)
 
Adventures in Agile Testing
Adventures in Agile TestingAdventures in Agile Testing
Adventures in Agile Testing
 
Mujeebur rahmansaher introduction-to-scrum_v2
Mujeebur rahmansaher introduction-to-scrum_v2Mujeebur rahmansaher introduction-to-scrum_v2
Mujeebur rahmansaher introduction-to-scrum_v2
 
Tester Challenges in Agile ?
Tester Challenges in Agile ?Tester Challenges in Agile ?
Tester Challenges in Agile ?
 
Shipping code is not the problem, deciding what to ship it is!
Shipping code is not the problem, deciding what to ship it is!Shipping code is not the problem, deciding what to ship it is!
Shipping code is not the problem, deciding what to ship it is!
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
 
Making a Mock by Kelsey Shannahan
Making a Mock by Kelsey ShannahanMaking a Mock by Kelsey Shannahan
Making a Mock by Kelsey Shannahan
 
Agile testing practice
Agile testing practiceAgile testing practice
Agile testing practice
 
Communicated deadlines = bad quality
Communicated deadlines = bad qualityCommunicated deadlines = bad quality
Communicated deadlines = bad quality
 
Advancing Testing Using Axioms
Advancing Testing Using AxiomsAdvancing Testing Using Axioms
Advancing Testing Using Axioms
 

Destaque

Auditoria-metodologia agil-proyecto de auditoria-auditoria de escuela
Auditoria-metodologia agil-proyecto de auditoria-auditoria de escuelaAuditoria-metodologia agil-proyecto de auditoria-auditoria de escuela
Auditoria-metodologia agil-proyecto de auditoria-auditoria de escuelamarimallol
 
Scrum: Waterfall Into Scrum
Scrum: Waterfall Into ScrumScrum: Waterfall Into Scrum
Scrum: Waterfall Into ScrumChad Holdorf
 
Scrum user role modeling
Scrum user role modelingScrum user role modeling
Scrum user role modelingMaxcode BV
 
AgileTour-2010, Noida : What it means to be "An Agile Developer"?
AgileTour-2010, Noida : What it means to be "An Agile Developer"?AgileTour-2010, Noida : What it means to be "An Agile Developer"?
AgileTour-2010, Noida : What it means to be "An Agile Developer"?Ganesh Gembali
 
Enter the mind of an Agile Developer
Enter the mind of an Agile DeveloperEnter the mind of an Agile Developer
Enter the mind of an Agile DeveloperBSGAfrica
 

Destaque (6)

Safe Agilist
Safe AgilistSafe Agilist
Safe Agilist
 
Auditoria-metodologia agil-proyecto de auditoria-auditoria de escuela
Auditoria-metodologia agil-proyecto de auditoria-auditoria de escuelaAuditoria-metodologia agil-proyecto de auditoria-auditoria de escuela
Auditoria-metodologia agil-proyecto de auditoria-auditoria de escuela
 
Scrum: Waterfall Into Scrum
Scrum: Waterfall Into ScrumScrum: Waterfall Into Scrum
Scrum: Waterfall Into Scrum
 
Scrum user role modeling
Scrum user role modelingScrum user role modeling
Scrum user role modeling
 
AgileTour-2010, Noida : What it means to be "An Agile Developer"?
AgileTour-2010, Noida : What it means to be "An Agile Developer"?AgileTour-2010, Noida : What it means to be "An Agile Developer"?
AgileTour-2010, Noida : What it means to be "An Agile Developer"?
 
Enter the mind of an Agile Developer
Enter the mind of an Agile DeveloperEnter the mind of an Agile Developer
Enter the mind of an Agile Developer
 

Semelhante a Creating change from within - Agile Practitioners 2012

It's XP Stupid (2019)
It's XP Stupid (2019)It's XP Stupid (2019)
It's XP Stupid (2019)Mike Harris
 
TDD - Christchurch APN May 2012
TDD - Christchurch APN May 2012TDD - Christchurch APN May 2012
TDD - Christchurch APN May 2012Alan Christensen
 
Driving application development through behavior driven development
Driving application development through behavior driven developmentDriving application development through behavior driven development
Driving application development through behavior driven developmentEinar Ingebrigtsen
 
Extreme Programming (XP): Revisted
Extreme Programming (XP): RevistedExtreme Programming (XP): Revisted
Extreme Programming (XP): RevistedMike Harris
 
Becoming a better programmer - unit testing
Becoming a better programmer - unit testingBecoming a better programmer - unit testing
Becoming a better programmer - unit testingDuy Tan Geek
 
Effective engineer
Effective engineerEffective engineer
Effective engineerTony Vu
 
{10.0} Test Driven Development.pptx
{10.0} Test Driven Development.pptx{10.0} Test Driven Development.pptx
{10.0} Test Driven Development.pptxAmalEldhose2
 
Recruiting the right people quickly public
Recruiting the right people quickly   publicRecruiting the right people quickly   public
Recruiting the right people quickly publicAshley Frieze
 
Tester career path
Tester career pathTester career path
Tester career pathgaoliang641
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersSPC Adriatics
 
A Brief Introduction to Test-Driven Development
A Brief Introduction to Test-Driven DevelopmentA Brief Introduction to Test-Driven Development
A Brief Introduction to Test-Driven DevelopmentShawn Jones
 
TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)Nacho Cougil
 
TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)Peter Kofler
 
The Way of The Software Craftsman # Part One: The Beginning
The Way of The Software Craftsman # Part One: The BeginningThe Way of The Software Craftsman # Part One: The Beginning
The Way of The Software Craftsman # Part One: The BeginningVitaliy Kulikov
 
Getting By Without "QA"
Getting By Without "QA"Getting By Without "QA"
Getting By Without "QA"Dave King
 

Semelhante a Creating change from within - Agile Practitioners 2012 (20)

Intro to TDD
Intro to TDDIntro to TDD
Intro to TDD
 
It's XP, Stupid
It's XP, StupidIt's XP, Stupid
It's XP, Stupid
 
It's XP Stupid (2019)
It's XP Stupid (2019)It's XP Stupid (2019)
It's XP Stupid (2019)
 
TDD - Christchurch APN May 2012
TDD - Christchurch APN May 2012TDD - Christchurch APN May 2012
TDD - Christchurch APN May 2012
 
Driving application development through behavior driven development
Driving application development through behavior driven developmentDriving application development through behavior driven development
Driving application development through behavior driven development
 
Extreme Programming (XP): Revisted
Extreme Programming (XP): RevistedExtreme Programming (XP): Revisted
Extreme Programming (XP): Revisted
 
Becoming a better programmer - unit testing
Becoming a better programmer - unit testingBecoming a better programmer - unit testing
Becoming a better programmer - unit testing
 
TDD in Agile
TDD in AgileTDD in Agile
TDD in Agile
 
Effective engineer
Effective engineerEffective engineer
Effective engineer
 
{10.0} Test Driven Development.pptx
{10.0} Test Driven Development.pptx{10.0} Test Driven Development.pptx
{10.0} Test Driven Development.pptx
 
Agile process
Agile processAgile process
Agile process
 
Recruiting the right people quickly public
Recruiting the right people quickly   publicRecruiting the right people quickly   public
Recruiting the right people quickly public
 
Tester career path
Tester career pathTester career path
Tester career path
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill Ayers
 
Presentation delex
Presentation delexPresentation delex
Presentation delex
 
A Brief Introduction to Test-Driven Development
A Brief Introduction to Test-Driven DevelopmentA Brief Introduction to Test-Driven Development
A Brief Introduction to Test-Driven Development
 
TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)TDD - Seriously, try it! (updated '22)
TDD - Seriously, try it! (updated '22)
 
TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)
 
The Way of The Software Craftsman # Part One: The Beginning
The Way of The Software Craftsman # Part One: The BeginningThe Way of The Software Craftsman # Part One: The Beginning
The Way of The Software Craftsman # Part One: The Beginning
 
Getting By Without "QA"
Getting By Without "QA"Getting By Without "QA"
Getting By Without "QA"
 

Mais de Dror Helper

Unit testing patterns for concurrent code
Unit testing patterns for concurrent codeUnit testing patterns for concurrent code
Unit testing patterns for concurrent codeDror Helper
 
The secret unit testing tools no one ever told you about
The secret unit testing tools no one ever told you aboutThe secret unit testing tools no one ever told you about
The secret unit testing tools no one ever told you aboutDror Helper
 
Debugging with visual studio beyond 'F5'
Debugging with visual studio beyond 'F5'Debugging with visual studio beyond 'F5'
Debugging with visual studio beyond 'F5'Dror Helper
 
From clever code to better code
From clever code to better codeFrom clever code to better code
From clever code to better codeDror Helper
 
From clever code to better code
From clever code to better codeFrom clever code to better code
From clever code to better codeDror Helper
 
A software developer guide to working with aws
A software developer guide to working with awsA software developer guide to working with aws
A software developer guide to working with awsDror Helper
 
The secret unit testing tools no one has ever told you about
The secret unit testing tools no one has ever told you aboutThe secret unit testing tools no one has ever told you about
The secret unit testing tools no one has ever told you aboutDror Helper
 
The role of the architect in agile
The role of the architect in agileThe role of the architect in agile
The role of the architect in agileDror Helper
 
Harnessing the power of aws using dot net core
Harnessing the power of aws using dot net coreHarnessing the power of aws using dot net core
Harnessing the power of aws using dot net coreDror Helper
 
Developing multi-platform microservices using .NET core
 Developing multi-platform microservices using .NET core Developing multi-platform microservices using .NET core
Developing multi-platform microservices using .NET coreDror Helper
 
Harnessing the power of aws using dot net
Harnessing the power of aws using dot netHarnessing the power of aws using dot net
Harnessing the power of aws using dot netDror Helper
 
Secret unit testing tools no one ever told you about
Secret unit testing tools no one ever told you aboutSecret unit testing tools no one ever told you about
Secret unit testing tools no one ever told you aboutDror Helper
 
C++ Unit testing - the good, the bad & the ugly
C++ Unit testing - the good, the bad & the uglyC++ Unit testing - the good, the bad & the ugly
C++ Unit testing - the good, the bad & the uglyDror Helper
 
Working with c++ legacy code
Working with c++ legacy codeWorking with c++ legacy code
Working with c++ legacy codeDror Helper
 
Visual Studio tricks every dot net developer should know
Visual Studio tricks every dot net developer should knowVisual Studio tricks every dot net developer should know
Visual Studio tricks every dot net developer should knowDror Helper
 
Secret unit testing tools
Secret unit testing toolsSecret unit testing tools
Secret unit testing toolsDror Helper
 
Electronics 101 for software developers
Electronics 101 for software developersElectronics 101 for software developers
Electronics 101 for software developersDror Helper
 
Navigating the xDD Alphabet Soup
Navigating the xDD Alphabet SoupNavigating the xDD Alphabet Soup
Navigating the xDD Alphabet SoupDror Helper
 
Building unit tests correctly
Building unit tests correctlyBuilding unit tests correctly
Building unit tests correctlyDror Helper
 
Who’s afraid of WinDbg
Who’s afraid of WinDbgWho’s afraid of WinDbg
Who’s afraid of WinDbgDror Helper
 

Mais de Dror Helper (20)

Unit testing patterns for concurrent code
Unit testing patterns for concurrent codeUnit testing patterns for concurrent code
Unit testing patterns for concurrent code
 
The secret unit testing tools no one ever told you about
The secret unit testing tools no one ever told you aboutThe secret unit testing tools no one ever told you about
The secret unit testing tools no one ever told you about
 
Debugging with visual studio beyond 'F5'
Debugging with visual studio beyond 'F5'Debugging with visual studio beyond 'F5'
Debugging with visual studio beyond 'F5'
 
From clever code to better code
From clever code to better codeFrom clever code to better code
From clever code to better code
 
From clever code to better code
From clever code to better codeFrom clever code to better code
From clever code to better code
 
A software developer guide to working with aws
A software developer guide to working with awsA software developer guide to working with aws
A software developer guide to working with aws
 
The secret unit testing tools no one has ever told you about
The secret unit testing tools no one has ever told you aboutThe secret unit testing tools no one has ever told you about
The secret unit testing tools no one has ever told you about
 
The role of the architect in agile
The role of the architect in agileThe role of the architect in agile
The role of the architect in agile
 
Harnessing the power of aws using dot net core
Harnessing the power of aws using dot net coreHarnessing the power of aws using dot net core
Harnessing the power of aws using dot net core
 
Developing multi-platform microservices using .NET core
 Developing multi-platform microservices using .NET core Developing multi-platform microservices using .NET core
Developing multi-platform microservices using .NET core
 
Harnessing the power of aws using dot net
Harnessing the power of aws using dot netHarnessing the power of aws using dot net
Harnessing the power of aws using dot net
 
Secret unit testing tools no one ever told you about
Secret unit testing tools no one ever told you aboutSecret unit testing tools no one ever told you about
Secret unit testing tools no one ever told you about
 
C++ Unit testing - the good, the bad & the ugly
C++ Unit testing - the good, the bad & the uglyC++ Unit testing - the good, the bad & the ugly
C++ Unit testing - the good, the bad & the ugly
 
Working with c++ legacy code
Working with c++ legacy codeWorking with c++ legacy code
Working with c++ legacy code
 
Visual Studio tricks every dot net developer should know
Visual Studio tricks every dot net developer should knowVisual Studio tricks every dot net developer should know
Visual Studio tricks every dot net developer should know
 
Secret unit testing tools
Secret unit testing toolsSecret unit testing tools
Secret unit testing tools
 
Electronics 101 for software developers
Electronics 101 for software developersElectronics 101 for software developers
Electronics 101 for software developers
 
Navigating the xDD Alphabet Soup
Navigating the xDD Alphabet SoupNavigating the xDD Alphabet Soup
Navigating the xDD Alphabet Soup
 
Building unit tests correctly
Building unit tests correctlyBuilding unit tests correctly
Building unit tests correctly
 
Who’s afraid of WinDbg
Who’s afraid of WinDbgWho’s afraid of WinDbg
Who’s afraid of WinDbg
 

Último

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 

Último (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

Creating change from within - Agile Practitioners 2012

  • 1. Creating change from within The Agile Developer story By Dror Helper
  • 2. About.Me • Software Developer 9+ years • Team’s technical lead • TDD/Unit testing enthusiast • Some SCRUM/Kanban background • Blogger – http://blog.drorhelper.com
  • 3. The problem with Agile We don’t have time It would never work in this I don’t want to do this! project
  • 4. So what can a single person do?
  • 5. Let me tell you about the last year and a half
  • 6. The cast Manager Developer Developer Consultant Me
  • 7. Team’s methodology • Unit tests – more or less • Iteration tracking? • Manual deploy builds – from developer’s PC • Code reviews
  • 8. My 1 st week on the job
  • 10. Analysis • Took two days to fix 40% of tests and make all of the test run • Find what are the main issues – and focus on them o Not readable o Using logic inside test o Testing too much o Hand rolled mocks o Scenarios hiding as unit tests o Highly coupled code
  • 11. Teach the team And decide on next steps
  • 12. CI server Build Server What’s new? Commit There you go Source Control Build Agents
  • 13. Immediate steps • Using MSTest • Write test before fixing bug • Fix existing tests when implementing new features • Delete obsolete tests
  • 15. Then came mocking • Hard to explain at the beginning • Instead show them! o Free tools – low cost upfront o Commercial products • Get rid of existing hand-rolled mocks
  • 16. And excuses • “I didn’t have enough time so I didn’t write a test” • Crisis mode • I cannot test it – so I won’t… • There’s no need to test everything • It’s much better to have one big test • Remember not to be discouraged
  • 17. Today • More than 3000 tests • Good code coverage • Most features are developed using TDD • CI server run all tests on commit • Change code without fear
  • 18. How to decide what to do?
  • 19. Total cost of change Participants Maintenance Effort (Time) Cost of Change Emotional Cost Value (Money) Previous investment
  • 20. The most difficult task Replace existing tool or Hard! methodology
  • 21. Your knowledge What Subject domain you Gap know
  • 25. Excel in shared folder
  • 26. TFS + Work item manager
  • 28. The power of code reviews
  • 29. Effective Code reviews • Advise don’t force • Review the code not the person • It’s ok to discuss the good things as well • You should get reviewed as well! • After a while team members can review each other
  • 30. Have the right attitude • Be positive • Don’t tell them what to so - suggest improvements • Don’t force – convince • Be ready to change if proven wrong • Don’t be “that guy”
  • 31. Communicate! • Email • Phone call • Face to face • Presentation • Coder reviews • Pair programming • Daily meetings
  • 33. Enlist Help Because You cannot do it all by yourself
  • 34. Change is iterative • Hard to perform big changes overnight • Small incremental changes • Teach the team about the “boy scout rule”.
  • 35. Be pragmatic! • Every action should have a purpose • If it doesn’t work – change it! • Names are not important – just what you do • Practices can be adapted for the team • Don’t be a strict task master Know where to draw the line
  • 36. Journey not a destination
  • 39. The end? • TDD & unit tests • CI server • Code reviews before commit • Automatic deployment • Task board and iterations • Better estimations • Faster time to deploy

Notas do Editor

  1. We’ve started with sticky notes
  2. Several lessons for the whole teamHow to write better testsMocking frameworksWhat is TDDAgree with the whole team on the next tasks
  3. Now all of the tests must passNew tests have to runNew code have to be tested
  4. We’ve started with sticky notes
  5. We had nothing
  6. Pros:High visibilityEasy to use and maintainCons:Statistics are not automatically createdNeed to go into the room
  7. Pros:Can access from anywhereCan be sent in emailCons:Only one editor at a timeNeed to add statisticsNot automatic
  8. Teach best practices – in the right contextTrack progressFind common issuesAlso pair programming – although I found that managers are more likely to
  9. Don’t force – convinceIt’s ok to be wrong
  10. Choose you short and long term goalsHave patienceDon’t burn out