SlideShare a Scribd company logo
1 of 33
Create change from within –
the Agile Developer’s story




Dror Helper | Better Place
About.Me
 • Software Developer 9+ years

 • Team’s technical lead

 • TDD/Unit testing enthusiast

 • Some SCRUM/Kanban background

 • Blogger – http://blog.drorhelper.com

www.devreach.com
The problem with Agile


We don’t have time
                     It would never
                       work in this   I don’t want to do this!
                         project




www.devreach.com
What can one person do?




www.devreach.com
My team 2010
 • One     manager + 3 developers

 • Unit tests – more or less
 • Iteration tracking ?
 • Manual deployment
 • Code reviews




www.devreach.com
My 1st week on the job




www.devreach.com
LET’S DO TDD!


www.devreach.com
Step #1 - Analysis
 •   Took two days to fix 40% of tests

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




www.devreach.com
Step #2 – CI Server
                                                      Build Server

                                        What’s new?

             Commit
                                       There you go

                      Source Control




www.devreach.com                 Build Agents
Step #3 - Teach the team




www.devreach.com
Communicate!
 •   Email
 •   Phone call
 •   Face to face
 •   Presentation
 •   Code reviews
 •   Pair programming
 •   Daily meetings

www.devreach.com
The power of code reviews
Immediate steps
 • MSTest

 • Write new test before fixing bug

 • Fix existing tests when implementing new features

 • Delete obsolete tests




www.devreach.com
Change is iterative
 • Hard to perform big changes overnight

 • Small incremental changes




www.devreach.com
Today
 • More than 5000 tests

 • Good code coverage

 • Most features are developed using TDD

 • CI server run all tests on commit

 • Nightly builds

 • Change code without fear



www.devreach.com
DECIDING WHAT TO CHANGE


www.devreach.com
Passion is a must!
 • Become champion

 • Need to convince co-workers

 • Survive the road




www.devreach.com
The cost of change
                                  Participants




                   Maintenance                   Effort (Time)




                                 Cost of
                                 Change
                   Emotional
                                                 Cost (Money)
                    Value




                                   Previous
                                  investment




www.devreach.com
Create success record




www.devreach.com
ITERATION TRACKING


www.devreach.com
In the beginning…
Post it + wall




www.devreach.com
Demonstration > Discussion




www.devreach.com
Individual task boards




www.devreach.com
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


    Know where to draw the
            line
www.devreach.com
TFS + Work item manager




www.devreach.com
What to when change fails?

Understand why it failed
                   Wait and see
 Choose a different path
              Cut your losses
www.devreach.com
TIPS AND TRICKS


www.devreach.com
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


www.devreach.com
Don’t be “that guy”




www.devreach.com
Enlist help
                   Because You cannot do it all by yourself




www.devreach.com
Journey not a destination




www.devreach.com
Thank you!
  @dhelper
  http://blog.drorhelper.com/
  http://www.linkedin.com/in/drorhelper




Dror Helper | Better Place

More Related Content

What's hot

Kanban Basics for Beginners Revised
Kanban Basics for Beginners RevisedKanban Basics for Beginners Revised
Kanban Basics for Beginners Revised
Zsolt Fabok
 
Agile Network India | "Make Work Visible" - Expose the time thieves to optimi...
Agile Network India | "Make Work Visible" - Expose the time thieves to optimi...Agile Network India | "Make Work Visible" - Expose the time thieves to optimi...
Agile Network India | "Make Work Visible" - Expose the time thieves to optimi...
AgileNetwork
 
Ciklum net sat12112011-vladimir gorshunov -scrum and kanban in action
Ciklum net sat12112011-vladimir gorshunov -scrum and kanban in actionCiklum net sat12112011-vladimir gorshunov -scrum and kanban in action
Ciklum net sat12112011-vladimir gorshunov -scrum and kanban in action
Ciklum Ukraine
 
Responsive, adaptive and responsible - keynote at NebraskaJS
Responsive, adaptive and responsible - keynote at NebraskaJSResponsive, adaptive and responsible - keynote at NebraskaJS
Responsive, adaptive and responsible - keynote at NebraskaJS
Christian Heilmann
 

What's hot (20)

Seven Jobs You Should Be Running #sqlsat126
Seven Jobs You Should Be Running #sqlsat126Seven Jobs You Should Be Running #sqlsat126
Seven Jobs You Should Be Running #sqlsat126
 
Devops down-under
Devops down-underDevops down-under
Devops down-under
 
Kanban Basics for Beginners Revised
Kanban Basics for Beginners RevisedKanban Basics for Beginners Revised
Kanban Basics for Beginners Revised
 
From Scrum to Scrumban
From Scrum to ScrumbanFrom Scrum to Scrumban
From Scrum to Scrumban
 
Kanban Methodology
Kanban MethodologyKanban Methodology
Kanban Methodology
 
Agile Network India | "Make Work Visible" - Expose the time thieves to optimi...
Agile Network India | "Make Work Visible" - Expose the time thieves to optimi...Agile Network India | "Make Work Visible" - Expose the time thieves to optimi...
Agile Network India | "Make Work Visible" - Expose the time thieves to optimi...
 
Get responsive in 30 minutes (WordCamp Sofia)
Get responsive in 30 minutes (WordCamp Sofia)Get responsive in 30 minutes (WordCamp Sofia)
Get responsive in 30 minutes (WordCamp Sofia)
 
9 Productive Tips to Work Faster
9 Productive Tips to Work Faster9 Productive Tips to Work Faster
9 Productive Tips to Work Faster
 
Scrum refresh
Scrum refreshScrum refresh
Scrum refresh
 
Cloud tools
Cloud toolsCloud tools
Cloud tools
 
ScrumBan Evolution - What is you next step?
ScrumBan Evolution - What is you next step?ScrumBan Evolution - What is you next step?
ScrumBan Evolution - What is you next step?
 
Kanban presentation
Kanban presentationKanban presentation
Kanban presentation
 
Ciklum net sat12112011-vladimir gorshunov -scrum and kanban in action
Ciklum net sat12112011-vladimir gorshunov -scrum and kanban in actionCiklum net sat12112011-vladimir gorshunov -scrum and kanban in action
Ciklum net sat12112011-vladimir gorshunov -scrum and kanban in action
 
Denver ACE March Remote Transition Tips
Denver ACE March Remote Transition TipsDenver ACE March Remote Transition Tips
Denver ACE March Remote Transition Tips
 
ScrumBan [R]Evolution - Are #NoEstimate and #NoSprints your next steps
ScrumBan [R]Evolution - Are #NoEstimate and #NoSprints your next stepsScrumBan [R]Evolution - Are #NoEstimate and #NoSprints your next steps
ScrumBan [R]Evolution - Are #NoEstimate and #NoSprints your next steps
 
Responsive, adaptive and responsible - keynote at NebraskaJS
Responsive, adaptive and responsible - keynote at NebraskaJSResponsive, adaptive and responsible - keynote at NebraskaJS
Responsive, adaptive and responsible - keynote at NebraskaJS
 
An Introduction to Kanban
An Introduction to KanbanAn Introduction to Kanban
An Introduction to Kanban
 
Debugging WooCommerce - WooConf Talk
Debugging WooCommerce - WooConf TalkDebugging WooCommerce - WooConf Talk
Debugging WooCommerce - WooConf Talk
 
Make Work Visible - Unmask Capacity Killing WIP
Make Work Visible - Unmask Capacity Killing WIPMake Work Visible - Unmask Capacity Killing WIP
Make Work Visible - Unmask Capacity Killing WIP
 
[Da Nang Scrum Breakfast] Dealing with Technical Debt
[Da Nang Scrum Breakfast] Dealing with Technical Debt[Da Nang Scrum Breakfast] Dealing with Technical Debt
[Da Nang Scrum Breakfast] Dealing with Technical Debt
 

Similar to Creating change from within - DevReach 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
Einar Ingebrigtsen
 
The View - Lotusscript coding best practices
The View - Lotusscript coding best practicesThe View - Lotusscript coding best practices
The View - Lotusscript coding best practices
Bill Buchan
 

Similar to Creating change from within - DevReach 2012 (20)

Creating change from within - Agile Practitioners 2012
Creating change from within - Agile Practitioners 2012Creating change from within - Agile Practitioners 2012
Creating change from within - Agile Practitioners 2012
 
Good behaviors
Good behaviorsGood behaviors
Good behaviors
 
Building a Startup in .NET
Building a Startup in .NETBuilding a Startup in .NET
Building a Startup in .NET
 
DevDay 2013 - Building Startups and Minimum Viable Products
DevDay 2013 - Building Startups and Minimum Viable ProductsDevDay 2013 - Building Startups and Minimum Viable Products
DevDay 2013 - Building Startups and Minimum Viable Products
 
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!
 
Completely Test-Driven
Completely Test-DrivenCompletely Test-Driven
Completely Test-Driven
 
Refactoring Applications using SOLID Principles
Refactoring Applications using SOLID PrinciplesRefactoring Applications using SOLID Principles
Refactoring Applications using SOLID Principles
 
WTF: Where To Focus when you take over a Drupal project
WTF: Where To Focus when you take over a Drupal projectWTF: Where To Focus when you take over a Drupal project
WTF: Where To Focus when you take over a Drupal project
 
Extreme Programming (XP): Revisted
Extreme Programming (XP): RevistedExtreme Programming (XP): Revisted
Extreme Programming (XP): Revisted
 
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship CultureTechnical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
 
A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5
 
Test Driven Development: More Development Than Ever
Test Driven Development: More Development Than EverTest Driven Development: More Development Than Ever
Test Driven Development: More Development Than Ever
 
Flexing your Agile Muscle - Agile Technical Concepts Explained
Flexing your Agile Muscle - Agile Technical Concepts ExplainedFlexing your Agile Muscle - Agile Technical Concepts Explained
Flexing your Agile Muscle - Agile Technical Concepts Explained
 
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
 
The View - Lotusscript coding best practices
The View - Lotusscript coding best practicesThe View - Lotusscript coding best practices
The View - Lotusscript coding best practices
 
Jax Devops 2017 Succeeding in the Cloud – the guidebook of Fail
Jax Devops 2017  Succeeding in the Cloud – the guidebook of FailJax Devops 2017  Succeeding in the Cloud – the guidebook of Fail
Jax Devops 2017 Succeeding in the Cloud – the guidebook of Fail
 
Advanced dev ops governance with terraform
Advanced dev ops governance with terraformAdvanced dev ops governance with terraform
Advanced dev ops governance with terraform
 
Leandro Melendez - Switching Performance Left & Right
Leandro Melendez - Switching Performance Left & RightLeandro Melendez - Switching Performance Left & Right
Leandro Melendez - Switching Performance Left & Right
 
Code stock
Code stockCode stock
Code stock
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable application
 

More from Dror Helper

More from 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
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
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
 
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
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
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...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 

Creating change from within - DevReach 2012

  • 1. Create change from within – the Agile Developer’s story Dror Helper | Better Place
  • 2. About.Me • Software Developer 9+ years • Team’s technical lead • TDD/Unit testing enthusiast • Some SCRUM/Kanban background • Blogger – http://blog.drorhelper.com www.devreach.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 www.devreach.com
  • 4. What can one person do? www.devreach.com
  • 5. My team 2010 • One manager + 3 developers • Unit tests – more or less • Iteration tracking ? • Manual deployment • Code reviews www.devreach.com
  • 6. My 1st week on the job www.devreach.com
  • 8. Step #1 - Analysis • Took two days to fix 40% of tests • Find what are the main issues – and focus on them – Not readable – Using logic inside test – Testing too much – Hand rolled mocks – Scenarios hiding as unit tests – Highly coupled code www.devreach.com
  • 9. Step #2 – CI Server Build Server What’s new? Commit There you go Source Control www.devreach.com Build Agents
  • 10. Step #3 - Teach the team www.devreach.com
  • 11. Communicate! • Email • Phone call • Face to face • Presentation • Code reviews • Pair programming • Daily meetings www.devreach.com
  • 12. The power of code reviews
  • 13. Immediate steps • MSTest • Write new test before fixing bug • Fix existing tests when implementing new features • Delete obsolete tests www.devreach.com
  • 14. Change is iterative • Hard to perform big changes overnight • Small incremental changes www.devreach.com
  • 15. Today • More than 5000 tests • Good code coverage • Most features are developed using TDD • CI server run all tests on commit • Nightly builds • Change code without fear www.devreach.com
  • 16. DECIDING WHAT TO CHANGE www.devreach.com
  • 17. Passion is a must! • Become champion • Need to convince co-workers • Survive the road www.devreach.com
  • 18. The cost of change Participants Maintenance Effort (Time) Cost of Change Emotional Cost (Money) Value Previous investment www.devreach.com
  • 22. Post it + wall www.devreach.com
  • 25. 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 Know where to draw the line www.devreach.com
  • 26. TFS + Work item manager www.devreach.com
  • 27. What to when change fails? Understand why it failed Wait and see Choose a different path Cut your losses www.devreach.com
  • 29. 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 www.devreach.com
  • 30. Don’t be “that guy” www.devreach.com
  • 31. Enlist help Because You cannot do it all by yourself www.devreach.com
  • 32. Journey not a destination www.devreach.com
  • 33. Thank you! @dhelper http://blog.drorhelper.com/ http://www.linkedin.com/in/drorhelper Dror Helper | Better Place

Editor's Notes

  1. Teach best practices – in the right contextTrack progressFind common issuesAlso pair programming – although I found that managers are more likely to
  2. Impossible to convince
  3. We had nothing
  4. Show then let them decideJust do it!