Tag Archives: XP

Test Driven ?

TDD is a practice that I have found great success with. I have found that I became proficient in it, the name changed its meaning.

TL; DR

TDD like any skill requires time to learn and master. The meaning of the last ‘D’ in the abbreviation changes as does your mastery. As the practice becomes increasingly rote, TDD starts to become less about development and more about design.

Setup

It drives me crazy when I hear someone say “TDD is easy”. For me TDD was anything but easy. In fact, it is still easier for me to revert to coding without tests, even though I have been doing nearly everything test driven for the last 10 years.

It took me 2 years to get the hang of TDD, and 3 more to feel like I started to master it. During this time, I noticed a profound difference in my code. I spent less and less time trying to figure out what my design was. It emerged and coalesced on its own. … Well not exactly on its own.

Development

When I started, I would think about what I wanted the design to be, and write the test to prove out that design. This lead me down quite a few rabbit holes and wrong decisions. The good news was it allowed me to get better at refactoring.

As I started to get proficient in writing tests, my decisions became cleaner. My code never did, but my thought process cleared up. I would stop, and think about my tests. What does the next test highlight. What part of my design is not yet implemented. (And yes, I still got surprised when things turned out never needing to be implemented.) Here the tests were driving the development of my design. I was doing Test Driven Development.

Design

As I became even better at writing tests, I found that the questions I was asking were laborious and time consuming. I simplified them to 2 questions.

  1. Is this the API I want?
  2. What expectation is not met?

I found then that as I wrote the test to satisfy these 2 questions the design would emerge. Now a fundamental change had occurred. I was using the tests to drive my design.

 

Now a fundamental change had occurred. I was using the tests to drive my design. Click To Tweet

About

R. Jason Kerney

Working For: Some Company, San Diego

Position: Agile Technical Coach

Experience: Around 21 years

Hobbies: Programming, Playing Board Games, Reading, Public Speaking, Spending time with my family

Note: Oh by the way, all opinions and ideas are my own and do not represent the place I work.

I am a developer who has benefited greatly from the programming communities of San Diego. Now I try to give some of that back. I have been a programmer for many years and have recently (3yrs) been focusing on the soft side of software; the people and the business.

Contact me, we are only a community if we communicate. I am most easily reached on twitter: @JasonKerney

Me

Twitter

https://speakerrate.com/speakers/177671-jason-kerney

https://www.linkedin.com/in/jasonkerney/

https://registry.jsonresume.org/JasonKerney

Current Talk

None at the moment

Git Hub

https://github.com/jason-kerney

Twitter

How to find me on the web

Publications:

Talks

2018

2017

2016

2015

2014

2010

2009

2008

Places I Have Contributed:

Programming Contributions:

Tutorials I Contributed to:

Contribution as a Conference Reviewer:

Meetup Session I Helped Run:

RPG to Learn Mob Programming

Tuesday, May 8, 2018, 5:30 PM

Hunter Industries
1890 Diamond Street San Marcos, CA

20 Members Went

Have you heard of the Mob Programming RPG? Learn the roles that best support the mob programming paradigm including Navigator, Driver, and even the Rear Admiral. For those who can make it early, the first 30 minutes (5:30 – 6:00) we’ll be networking. There will be light snacks. Since this meetup doesn’t have a sponsor yet, we’re depending on the ge…

Check out this Meetup →

People Who Took Interest:

Blogs about Me:

Interviews I Have Given:

Interviews I Have Given on Pod Casts:

Places Where I am mentioned:

Slides: