SlideShare a Scribd company logo
1 of 91
Download to read offline
o th er
                              D a nd
                         TD
                  min g,
                                                 in g s
   ir   P ro gram
                                c a l th
Pa
                    rac ti
             im p

                                                  by @_md
I coach teams into
collaborative software development
software is about people
software is not as much about Øs and 1s

Ø111ØØØ1ØØ111ØØØ1ØØ111ØØ111111ØØ111Ø111ØØ
Ø1ØØ111ØØØ1ØØ111ØØØ1ØØ111ØØØ1ØØ111ØØØ1Ø
Ø111ØØ111111ØØ1111111ØØØ1ØØ111ØØ1Ø1111ØØ111
as it is about Xs and Ys
{
                  use it

it’s people who
{
                  use it
                  develop it
it’s people who
{
                  use it
                  develop it
it’s people who   order it
{
                  use it
                  develop it
it’s people who   order it
                  accept it
                  ...
coding is not as hard as collaborating
1 impractical thing #1
Listen to your customer
Customers don’t know what they want
Customers change their mind all the time
 Customers are too busy to get involved
       i mp ra ct ic a l
   If I listen... BANG! Scope creeps in!
      Customers want everything!
I keep adding and removing must haves
http://www.photoree.com/photos/permalink/137988-22339026@N00
         why do I need to listen?
can I please just sit and write my code?
Pair Programming, TDD and other impractical things
http://www.flickr.com/photos/samsungtomorrow/8096115179/
“Nobody wants a washing machine just to
have a machine, but to have clean clothes.”
                         – Jon Sundbo
When to listen?
Continuously
project mission   sprint planning sprint vision   sign off   retrospective
project mission   sprint vision     sprint planning   sign off   retrospective




                  First create a project mission
                    based on business goals...


                                  not scope!
http://impactmapping.org
impact map                     WHAT

                           HOW
                                 WHAT
                     WHO

               WHY         HOW
                                 WHAT
                     WHO
                           HOW
                                 WHAT
[Adzic 2012]
project mission          sprint vision   sprint planning   sign off   retrospective




                  Include a sprint vision (example) workshop
                  in every iteration, prior to sprint planning
Goal of sprint vision (example) workshop


To define sprint vision and acceptance criteria
As an <actor>
                  I can <behaviour>
                  So that <value>


                  Given <pre-condition>
                  When <act>
product backlog




                  Then <expectation>
What if the customer isn’t available?
proxy
project mission   sprint vision   sprint planning              sign off   retrospective


                                                                            Write the form for
                                                                            the comment area


                                                                                            1/2 d
product backlog




                                                           sprint backlog
project mission   sprint vision   sprint planning   sign off   retrospective
project mission   sprint vision   sprint planning   sign off   retrospective
2 impractical thing #2
Test Driven Development
How can I test something I haven’t done yet?
         It takes time to learn TDD
  The team is not confident they can do it
         i mp ra ct ic a l
     It’s legacy. The code is untestable
      Customer is not paying for tests
  My manager doesn’t give me time to test
requirements
      analysis
           design
                code
                       test
                              deploy
requirements
            analysis
9
  m
    on
       th
                 design
                      code
          s


                             test
                                    deploy
Pair Programming, TDD and other impractical things
most of the cost in software comes from

feedback delay
user stories
     conversation
            test
     design     code

     deploy increment
user stories
     conversation
            test




                        20 min
     design     code

     deploy increment
test



refactor          code
test

Arrange

          Act

                 Assert
test

Arrange
                     Write the code
          Act        you wish you had
                 Assert
code


Change the message or get it green, not right
refactor


Now get it right. Without modifying behaviour.
refactor

1. All tests run and pass
2. Remove duplication
3. Remove opacity
4. Remove complexity
results in code

1. Testable
2. Modular
3. Expressive
4. Simple
lack of tests breaks inner quality

1. Viscosity
2. Immobility, Rigidity, Fragility
3. Unreadable
4. Complex
THE CODE IS TERRIBLE!!
WE NEED ONE SPRINT TO REFACTOR
Refactoring: changing the structure
    not the external behaviour
                      – Fowler, 99
There is no refactoring without tests
There is no testing without refactoring
“Code is a representation of design”
                – Jack W. Reeves
refactoring === design
Agile without TDD*
             is like cinema without popcorn



*or similar practice
3 impractical thing #3
Focus on Quality over Schedule
There is no time for quality
      The budget doesn’t cover quality
           It’s a very simple project
          i mp ra ct ic a l
        We’ve done it thousand times
     Quality is vague, deadlines are real!
Do the needful now. We’ll come back to it later
Outer Quality
                                                      Quality is like onions




Inner Quality




                                http://www.flickr.com/photos/monteregina/4103317832/
Outer Quality

Works as expected              Built efficiently

Looks like expected       Focused on goals
Inner Quality

 Testable           Modular

Expressive              Simple
Lack of Outer Quality Causes...
http://www.flickr.com/photos/hayeycart/5900737110/
         Rework Going over budget
           Bugs Low Morale
Missing deadlines Project abortion
Unusable systems Relationships deteriorate
But what causes poor Outer Quality?
Lack of automated acceptance tests
   Lack of customer involvement
Team not focused on Project Mission
       Lack of Inner Quality
Lack of automated acceptance tests
   Lack of customer involvement
Team not focused on Project Mission
       Lack of Inner Quality
Focus on schedule

                  Fear

Low morale                       Haste

                  Re-work
Focus on quality

        Align with goals

Pride                      Do the right
                              thing
             Achieve
How do you ensure Outer Quality?
Example workshops
 Automate acceptance tests
Have a sprint vision statement
    Sign off during Sprint
How do you ensure Inner Quality?
TDD
 CI (tests, static analysis) from day one
Pair Programming or at least Peer Review
4impractical thing #4
Pair Programming
2 resources 1 task? do the math!
     Why isn’t everyone else doing it?
They will just chat and not get anything done
          i mp ra ct ic a l
  I do all the work the other guy just looks
    How do you track the time per task?
  Geeks don’t want to talk to other people
2 developers
    sharing a screen
working on the same task
What is Pair Programming about?
Pair Programming, TDD and other impractical things
Addiction
Company                                      Feedback


        Jon Jagger’s Principles of Improvement

Visibility                                  Provocation
                     Success
Pair programming is about improving faster
One of the few proven agile practices


   “Strengthening the case
    for pair programming”

          bit.ly/pair-case
Should pairs be kept together?
Who to pair with who?
Important stuff

✓   Focus on the code
✓   Use the test list
✓   Don’t “I-show-you” your pair
✓   Time box decisions
How do I learn this?
5
impractical thing #5
 Code Katas
Who’s paying for that?
    What? Write code and delete it? What?
          I am already working 9 to 5
           i mp ra ct ic a l
Solving a problem that has already been solved?
          I am committed to a sprint
     I have a release, can’t join you today
“Adults don’t think their way into a new way of acting.
   They act their way into a new way of thinking” –
                                       Richard Pascale
✓   1 hour every week
✓   developers go to a meeting room
✓   do TDD in pairs
✓   20 mins each round
✓   at the end of each round:
✓   delete the code and swap pairs
http://lmgtfy.com/?q=code+kata
“We have a great tool in this language. We can kill
    it by making a mess. We can kill it by being
arrogant. We can kill it by ignoring the enterprise.”
Pair Programming, TDD and other impractical things
“Be daring, be different, be impractical, be anything
that will assert integrity of purpose and imaginative
vision against the play-it-safers, the creatures of the
      commonplace, the slaves of the ordinary.”


                ImpracticalQuote
Marcello Duarte

  I work here
I contribute here
  I tweet here @_md
Thank you !
Questions or Comments?

joind.in/8110                    slidesha.re/13sYRzS

   looking for a new challenge? inviqa.com/careers

More Related Content

What's hot

Explore Events of Scrum Framework
Explore Events of Scrum FrameworkExplore Events of Scrum Framework
Explore Events of Scrum FrameworkNaveen Kumar Singh
 
Practices of agile developers
Practices of agile developersPractices of agile developers
Practices of agile developersDUONG Trong Tan
 
Flavours of agile software engineering
Flavours of agile software engineeringFlavours of agile software engineering
Flavours of agile software engineeringZeeshan Masood S
 
Acceptance testfurureinmind
Acceptance testfurureinmindAcceptance testfurureinmind
Acceptance testfurureinmindLeanDog
 
다양한 입장에서의 애자일 도입
다양한 입장에서의 애자일 도입다양한 입장에서의 애자일 도입
다양한 입장에서의 애자일 도입Won Shin
 
Scrum plus – why scrum is not enough for successful delivery
Scrum plus – why scrum is not enough for successful deliveryScrum plus – why scrum is not enough for successful delivery
Scrum plus – why scrum is not enough for successful deliveryNaveen Kumar Singh
 
Arch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesArch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesIgor Moochnick
 
Pair Programming in Theory and Practice By Garrick West
Pair Programming in Theory and Practice By Garrick WestPair Programming in Theory and Practice By Garrick West
Pair Programming in Theory and Practice By Garrick WestXP Conference India
 
Best practices for agile design
Best practices for agile designBest practices for agile design
Best practices for agile designIgor Moochnick
 
Scrum And The Enterprise
Scrum And The EnterpriseScrum And The Enterprise
Scrum And The EnterpriseJames Peckham
 
Offshore Agile Maintenance
Offshore Agile MaintenanceOffshore Agile Maintenance
Offshore Agile MaintenanceNaresh Jain
 
SXSW 2013: Get Agile! Scrum for UX, Design & Development
SXSW 2013: Get Agile! Scrum for UX, Design & DevelopmentSXSW 2013: Get Agile! Scrum for UX, Design & Development
SXSW 2013: Get Agile! Scrum for UX, Design & DevelopmentFabrique
 
2013 Scrum Gathering Keynote: Buy or build — where did your agile come from?
2013 Scrum Gathering Keynote: Buy or build — where did your agile come from?2013 Scrum Gathering Keynote: Buy or build — where did your agile come from?
2013 Scrum Gathering Keynote: Buy or build — where did your agile come from?James Coplien
 
Pragmatic Not Dogmatic TDD Agile2012 by Joseph Yoder and Rebecca Wirfs-Brock
Pragmatic Not Dogmatic TDD Agile2012 by Joseph Yoder and Rebecca Wirfs-BrockPragmatic Not Dogmatic TDD Agile2012 by Joseph Yoder and Rebecca Wirfs-Brock
Pragmatic Not Dogmatic TDD Agile2012 by Joseph Yoder and Rebecca Wirfs-BrockJoseph Yoder
 
Waterfall And Agile Methodology Coexistence 2011
Waterfall And Agile Methodology Coexistence 2011Waterfall And Agile Methodology Coexistence 2011
Waterfall And Agile Methodology Coexistence 2011Tim Morris ★
 
Testers and Coders - Blurring the Lines
Testers and Coders - Blurring the LinesTesters and Coders - Blurring the Lines
Testers and Coders - Blurring the LinesNoam Kfir
 
Software Development Practices Patterns: from Pair to Mob Programming
Software Development Practices Patterns: from Pair to Mob ProgrammingSoftware Development Practices Patterns: from Pair to Mob Programming
Software Development Practices Patterns: from Pair to Mob ProgrammingHerez Moise Kattan
 

What's hot (20)

Explore Events of Scrum Framework
Explore Events of Scrum FrameworkExplore Events of Scrum Framework
Explore Events of Scrum Framework
 
Stepping Outside
Stepping OutsideStepping Outside
Stepping Outside
 
Practices of agile developers
Practices of agile developersPractices of agile developers
Practices of agile developers
 
Flavours of agile software engineering
Flavours of agile software engineeringFlavours of agile software engineering
Flavours of agile software engineering
 
Acceptance testfurureinmind
Acceptance testfurureinmindAcceptance testfurureinmind
Acceptance testfurureinmind
 
다양한 입장에서의 애자일 도입
다양한 입장에서의 애자일 도입다양한 입장에서의 애자일 도입
다양한 입장에서의 애자일 도입
 
Scrum plus – why scrum is not enough for successful delivery
Scrum plus – why scrum is not enough for successful deliveryScrum plus – why scrum is not enough for successful delivery
Scrum plus – why scrum is not enough for successful delivery
 
Arch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesArch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best Practices
 
Pair Programming in Theory and Practice By Garrick West
Pair Programming in Theory and Practice By Garrick WestPair Programming in Theory and Practice By Garrick West
Pair Programming in Theory and Practice By Garrick West
 
Best practices for agile design
Best practices for agile designBest practices for agile design
Best practices for agile design
 
Agile Webinar: Managing Distributed Teams
Agile Webinar: Managing Distributed TeamsAgile Webinar: Managing Distributed Teams
Agile Webinar: Managing Distributed Teams
 
Secrets of Scrum
Secrets of ScrumSecrets of Scrum
Secrets of Scrum
 
Scrum And The Enterprise
Scrum And The EnterpriseScrum And The Enterprise
Scrum And The Enterprise
 
Offshore Agile Maintenance
Offshore Agile MaintenanceOffshore Agile Maintenance
Offshore Agile Maintenance
 
SXSW 2013: Get Agile! Scrum for UX, Design & Development
SXSW 2013: Get Agile! Scrum for UX, Design & DevelopmentSXSW 2013: Get Agile! Scrum for UX, Design & Development
SXSW 2013: Get Agile! Scrum for UX, Design & Development
 
2013 Scrum Gathering Keynote: Buy or build — where did your agile come from?
2013 Scrum Gathering Keynote: Buy or build — where did your agile come from?2013 Scrum Gathering Keynote: Buy or build — where did your agile come from?
2013 Scrum Gathering Keynote: Buy or build — where did your agile come from?
 
Pragmatic Not Dogmatic TDD Agile2012 by Joseph Yoder and Rebecca Wirfs-Brock
Pragmatic Not Dogmatic TDD Agile2012 by Joseph Yoder and Rebecca Wirfs-BrockPragmatic Not Dogmatic TDD Agile2012 by Joseph Yoder and Rebecca Wirfs-Brock
Pragmatic Not Dogmatic TDD Agile2012 by Joseph Yoder and Rebecca Wirfs-Brock
 
Waterfall And Agile Methodology Coexistence 2011
Waterfall And Agile Methodology Coexistence 2011Waterfall And Agile Methodology Coexistence 2011
Waterfall And Agile Methodology Coexistence 2011
 
Testers and Coders - Blurring the Lines
Testers and Coders - Blurring the LinesTesters and Coders - Blurring the Lines
Testers and Coders - Blurring the Lines
 
Software Development Practices Patterns: from Pair to Mob Programming
Software Development Practices Patterns: from Pair to Mob ProgrammingSoftware Development Practices Patterns: from Pair to Mob Programming
Software Development Practices Patterns: from Pair to Mob Programming
 

Viewers also liked

Experience Agile Programming - Kiev
Experience Agile Programming - KievExperience Agile Programming - Kiev
Experience Agile Programming - KievJohannes Brodwall
 
BDD with Behat and PHPSpec
BDD with Behat and PHPSpecBDD with Behat and PHPSpec
BDD with Behat and PHPSpecRob Ingram
 
Engineering practices within scrum
Engineering practices within scrumEngineering practices within scrum
Engineering practices within scrumSoftServe
 
Presentation of agile engineering practices
Presentation of agile engineering practicesPresentation of agile engineering practices
Presentation of agile engineering practicesRoberto Bettazzoni
 
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)Joshua Warren
 
(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should knowRichard Cheng
 
Requirements Engineering in an Agile Environment
Requirements Engineering in an Agile EnvironmentRequirements Engineering in an Agile Environment
Requirements Engineering in an Agile Environmentsunil1993
 

Viewers also liked (9)

Experience Agile Programming - Kiev
Experience Agile Programming - KievExperience Agile Programming - Kiev
Experience Agile Programming - Kiev
 
Barely Enough Design
Barely Enough DesignBarely Enough Design
Barely Enough Design
 
BDD with Behat and PHPSpec
BDD with Behat and PHPSpecBDD with Behat and PHPSpec
BDD with Behat and PHPSpec
 
Engineering practices within scrum
Engineering practices within scrumEngineering practices within scrum
Engineering practices within scrum
 
Presentation of agile engineering practices
Presentation of agile engineering practicesPresentation of agile engineering practices
Presentation of agile engineering practices
 
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)
 
(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know
 
Requirements Engineering in an Agile Environment
Requirements Engineering in an Agile EnvironmentRequirements Engineering in an Agile Environment
Requirements Engineering in an Agile Environment
 
Mocking Demystified
Mocking DemystifiedMocking Demystified
Mocking Demystified
 

Similar to Pair Programming, TDD and other impractical things

Moving to tdd bdd
Moving to tdd bddMoving to tdd bdd
Moving to tdd bddKim Carter
 
Andrew Lukianenko: How product thinking can change your project management mo...
Andrew Lukianenko: How product thinking can change your project management mo...Andrew Lukianenko: How product thinking can change your project management mo...
Andrew Lukianenko: How product thinking can change your project management mo...Lviv Startup Club
 
How to get your app or site built
How to get your app or site builtHow to get your app or site built
How to get your app or site builtJoe Chin
 
What it Really Means to Be Agile
What it Really Means to Be AgileWhat it Really Means to Be Agile
What it Really Means to Be AgileKent McDonald
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme ProgrammingKnoldus Inc.
 
What every developer can learn from startups
What every developer can learn from startupsWhat every developer can learn from startups
What every developer can learn from startupsOleg Podsechin
 
Aligning Feature Delivery with OKRs by Gtmhub CPO
Aligning Feature Delivery with OKRs by Gtmhub CPOAligning Feature Delivery with OKRs by Gtmhub CPO
Aligning Feature Delivery with OKRs by Gtmhub CPOProduct School
 
L'illusione dell'ortogonalità
L'illusione dell'ortogonalitàL'illusione dell'ortogonalità
L'illusione dell'ortogonalitàAlberto Brandolini
 
Introduction to Agile Methodologies
Introduction to Agile MethodologiesIntroduction to Agile Methodologies
Introduction to Agile MethodologiesSiddhi
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovSvetlin Nakov
 
BDD presentation
BDD presentationBDD presentation
BDD presentationtemebele
 
Agile for Me- CodeStock 2009
Agile for Me- CodeStock 2009Agile for Me- CodeStock 2009
Agile for Me- CodeStock 2009Adrian Carr
 
DevOpsDays Jakarta Igites
DevOpsDays Jakarta IgitesDevOpsDays Jakarta Igites
DevOpsDays Jakarta IgitesDevOpsDaysJKT
 
Introduction To Scrum
Introduction To ScrumIntroduction To Scrum
Introduction To ScrumDave Neuman
 
From Waterfall to Agile - from predictive to adaptive methods
From Waterfall to Agile - from predictive to adaptive methodsFrom Waterfall to Agile - from predictive to adaptive methods
From Waterfall to Agile - from predictive to adaptive methodsBjörn Jónsson
 

Similar to Pair Programming, TDD and other impractical things (20)

Moving to tdd bdd
Moving to tdd bddMoving to tdd bdd
Moving to tdd bdd
 
Andrew Lukianenko: How product thinking can change your project management mo...
Andrew Lukianenko: How product thinking can change your project management mo...Andrew Lukianenko: How product thinking can change your project management mo...
Andrew Lukianenko: How product thinking can change your project management mo...
 
How to get your app or site built
How to get your app or site builtHow to get your app or site built
How to get your app or site built
 
Agile product development
Agile product developmentAgile product development
Agile product development
 
What it Really Means to Be Agile
What it Really Means to Be AgileWhat it Really Means to Be Agile
What it Really Means to Be Agile
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
What every developer can learn from startups
What every developer can learn from startupsWhat every developer can learn from startups
What every developer can learn from startups
 
Aligning Feature Delivery with OKRs by Gtmhub CPO
Aligning Feature Delivery with OKRs by Gtmhub CPOAligning Feature Delivery with OKRs by Gtmhub CPO
Aligning Feature Delivery with OKRs by Gtmhub CPO
 
L'illusione dell'ortogonalità
L'illusione dell'ortogonalitàL'illusione dell'ortogonalità
L'illusione dell'ortogonalità
 
Why we use scrum
Why we use scrumWhy we use scrum
Why we use scrum
 
Introduction to Agile Methodologies
Introduction to Agile MethodologiesIntroduction to Agile Methodologies
Introduction to Agile Methodologies
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
BDD presentation
BDD presentationBDD presentation
BDD presentation
 
Agile for Me- CodeStock 2009
Agile for Me- CodeStock 2009Agile for Me- CodeStock 2009
Agile for Me- CodeStock 2009
 
DevOpsDays Jakarta Igites
DevOpsDays Jakarta IgitesDevOpsDays Jakarta Igites
DevOpsDays Jakarta Igites
 
TDD in Agile
TDD in AgileTDD in Agile
TDD in Agile
 
Agile Engineering Practices
Agile Engineering PracticesAgile Engineering Practices
Agile Engineering Practices
 
Gateway to Agile: XP and BDD
Gateway to Agile: XP and BDD Gateway to Agile: XP and BDD
Gateway to Agile: XP and BDD
 
Introduction To Scrum
Introduction To ScrumIntroduction To Scrum
Introduction To Scrum
 
From Waterfall to Agile - from predictive to adaptive methods
From Waterfall to Agile - from predictive to adaptive methodsFrom Waterfall to Agile - from predictive to adaptive methods
From Waterfall to Agile - from predictive to adaptive methods
 

More from Marcello Duarte

Functional Structures in PHP
Functional Structures in PHPFunctional Structures in PHP
Functional Structures in PHPMarcello Duarte
 
Introducing Eager Design
Introducing Eager DesignIntroducing Eager Design
Introducing Eager DesignMarcello Duarte
 
Understanding Craftsmanship SwanseaCon2015
Understanding Craftsmanship SwanseaCon2015Understanding Craftsmanship SwanseaCon2015
Understanding Craftsmanship SwanseaCon2015Marcello Duarte
 
Understanding craftsmanship
Understanding craftsmanshipUnderstanding craftsmanship
Understanding craftsmanshipMarcello Duarte
 
The framework as an implementation detail
The framework as an implementation detailThe framework as an implementation detail
The framework as an implementation detailMarcello Duarte
 
PhpSpec 2.0 ilustrated by examples
PhpSpec 2.0 ilustrated by examplesPhpSpec 2.0 ilustrated by examples
PhpSpec 2.0 ilustrated by examplesMarcello Duarte
 
Emergent design with phpspec
Emergent design with phpspecEmergent design with phpspec
Emergent design with phpspecMarcello Duarte
 
BDD For Zend Framework With PHPSpec
BDD For Zend Framework With PHPSpecBDD For Zend Framework With PHPSpec
BDD For Zend Framework With PHPSpecMarcello Duarte
 

More from Marcello Duarte (14)

Functional Structures in PHP
Functional Structures in PHPFunctional Structures in PHP
Functional Structures in PHP
 
Empathy from Agility
Empathy from AgilityEmpathy from Agility
Empathy from Agility
 
Introducing Eager Design
Introducing Eager DesignIntroducing Eager Design
Introducing Eager Design
 
Understanding Craftsmanship SwanseaCon2015
Understanding Craftsmanship SwanseaCon2015Understanding Craftsmanship SwanseaCon2015
Understanding Craftsmanship SwanseaCon2015
 
Transitioning to Agile
Transitioning to AgileTransitioning to Agile
Transitioning to Agile
 
Understanding craftsmanship
Understanding craftsmanshipUnderstanding craftsmanship
Understanding craftsmanship
 
Hexagonal symfony
Hexagonal symfonyHexagonal symfony
Hexagonal symfony
 
The framework as an implementation detail
The framework as an implementation detailThe framework as an implementation detail
The framework as an implementation detail
 
PhpSpec 2.0 ilustrated by examples
PhpSpec 2.0 ilustrated by examplesPhpSpec 2.0 ilustrated by examples
PhpSpec 2.0 ilustrated by examples
 
Emergent design with phpspec
Emergent design with phpspecEmergent design with phpspec
Emergent design with phpspec
 
Deliberate practice
Deliberate practiceDeliberate practice
Deliberate practice
 
BDD For Zend Framework With PHPSpec
BDD For Zend Framework With PHPSpecBDD For Zend Framework With PHPSpec
BDD For Zend Framework With PHPSpec
 
PHPSpec BDD for PHP
PHPSpec BDD for PHPPHPSpec BDD for PHP
PHPSpec BDD for PHP
 
PHPSpec BDD Framework
PHPSpec BDD FrameworkPHPSpec BDD Framework
PHPSpec BDD Framework
 

Pair Programming, TDD and other impractical things