Monday, January 6, 2014

Test Driven Development, part 2 (Acceptance Testing and Outside-in Development)

I've already written about the importance of Test Driven Development, but that was written before I had been exposed to Acceptance Testing and Outside-In Development.  I thought TDD was cool then.  Now I think it is so far past cool that I can't even describe it.

My name is Ryan.  And I'm a TDD junkie.  It's been 10 minutes since my last test.  (Hi, Ryan.)

All kidding aside, TDD has been one of the most powerful skills I've learned and developed during my time at Launch Academy. Married with the Outside-In approach towards app development and I feel like I've always got a starting point from which to expand.

Every program feels so big at first approach.  Outside-In and testing helps the programmer to eat the proverbial 'elephant' (one bite at a time, as they say).  I referenced inspiration vs. motivation in a past post and TDD/OID helps to overcome the barrier that minimal inspiration might provide.  You don't need to be overly inspired to write your first test.  You just need to be able to put yourself into the mindset of your user.

I find that inspiration can sometimes be ignited with movement.  And OID/TDD is really just incremental movement.

Taking inspiration out of the picture and focusing on the more practical aspect of OID/TDD, it's pretty clear how this technique will enhance anything that I produce.  Forcing yourself to build an application in a feature-specific technique, which is emphasized in TDD/OID, leads to focused and lightweight code.  Focused and lightweight code is easier to come back to in the future, and easier for another programmer to interpret.

I'm hooked.  And hope to utilize TDD/OID as often as possible going forward.  I understand that it might be hard to explain the business cost of doing TDD, but the opportunity cost of NOT using the technique has the potential to far outweigh the upfront investment.  It will be my challenge to always lead with this mantra and use it with all stakeholders in future project.  I'm ready!

No comments:

Post a Comment