SlideShare uma empresa Scribd logo
1 de 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

Mais conteúdo relacionado

Mais procurados

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 #sqlsat126Mike Hillwig
 
Kanban Basics for Beginners Revised
Kanban Basics for Beginners RevisedKanban Basics for Beginners Revised
Kanban Basics for Beginners RevisedZsolt Fabok
 
From Scrum to Scrumban
From Scrum to ScrumbanFrom Scrum to Scrumban
From Scrum to ScrumbanJohn Peltier
 
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
 
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)Nickolay Ninarski
 
9 Productive Tips to Work Faster
9 Productive Tips to Work Faster9 Productive Tips to Work Faster
9 Productive Tips to Work FasterShore Labs
 
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?Sebastian Radics
 
Kanban presentation
Kanban presentationKanban presentation
Kanban presentationBijo Joseph
 
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 actionCiklum Ukraine
 
Denver ACE March Remote Transition Tips
Denver ACE March Remote Transition TipsDenver ACE March Remote Transition Tips
Denver ACE March Remote Transition Tipsdenveraug
 
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 stepsSebastian Radics
 
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 NebraskaJSChristian Heilmann
 
An Introduction to Kanban
An Introduction to KanbanAn Introduction to Kanban
An Introduction to KanbanCamille Bell
 
Debugging WooCommerce - WooConf Talk
Debugging WooCommerce - WooConf TalkDebugging WooCommerce - WooConf Talk
Debugging WooCommerce - WooConf TalkAndrew Wikel
 
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 WIPDominica DeGrandis
 
[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 DebtScrum Breakfast Vietnam
 

Mais procurados (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
 

Semelhante a Creating change from within - DevReach 2012

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 2012Dror Helper
 
Building a Startup in .NET
Building a Startup in .NETBuilding a Startup in .NET
Building a Startup in .NETMarcelo Calbucci
 
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 ProductsBen Hall
 
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!Andreas Grabner
 
Completely Test-Driven
Completely Test-DrivenCompletely Test-Driven
Completely Test-DrivenIan Truslove
 
Refactoring Applications using SOLID Principles
Refactoring Applications using SOLID PrinciplesRefactoring Applications using SOLID Principles
Refactoring Applications using SOLID PrinciplesSteven Smith
 
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 projectSymetris
 
Extreme Programming (XP): Revisted
Extreme Programming (XP): RevistedExtreme Programming (XP): Revisted
Extreme Programming (XP): RevistedMike Harris
 
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 CultureAllison Pollard
 
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.5SSW
 
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 EverKiryl Baranoshnik
 
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 ExplainedSandy Mamoli
 
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
 
The View - Lotusscript coding best practices
The View - Lotusscript coding best practicesThe View - Lotusscript coding best practices
The View - Lotusscript coding best practicesBill Buchan
 
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 FailSteve Poole
 
Advanced dev ops governance with terraform
Advanced dev ops governance with terraformAdvanced dev ops governance with terraform
Advanced dev ops governance with terraformJames Counts
 
Leandro Melendez - Switching Performance Left & Right
Leandro Melendez - Switching Performance Left & RightLeandro Melendez - Switching Performance Left & Right
Leandro Melendez - Switching Performance Left & RightNeotys_Partner
 
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 applicationNick Josevski
 

Semelhante a 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
 

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

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 

Último (20)

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 

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

Notas do Editor

  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!