Scouting (for tests)

Photo by Mukuko Studio on Unsplash

I’ve found the propaganda, hyperbole and stints of doing TDD alluring but I never really found it sticks, much like an intensive exercise regime. My sentiment is that it’s a methodology more concerned with code quality than user value or time constraints.

I have however found a sustainable flow that gives me a lot of the upside of writing tests with a reduction in the downside of writing upfront tests & code for features that turned out to be misguided and ultimately scrapped. I believe in accepting change rather than fighting it (as is tempting to do once you’ve got “skin in the game” under TDD) as you can’t expect a user story to be written watertight first time.

I’ve called this process “scouting” which involves taking on a new user story, writing what’s essentially prototype quality code, getting stakeholder feedback on an early demonstrable flow, iterating until the proposal is validated. Once there’s a loose sign off of what’s been presented, I’ll drop down to writing unit and integration tests in anger as there’s a clear(er) idea of what’s needed to be shipped. This phase will also include bringing the prototype quality code to production quality (ironing out ignored edge cases, accessibility, security etc).

I tend to iterate and evolve “prototype quality code” even though I’ve heard the arguments of treating it as dirty and disposable a trillion times before. Perhaps this is because I’ve had enough best practices instilled in me that I write a half reasonable code first time but more plausibly, it’s because I’m human and would prefer to get value to customers sooner than ship perfect code weeks or months overdue.

--

--

--

CTO @ OnCare

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

DevIncept- A great opportunity to learn more about Open Source Contributions

medical director of the Brigham and Women’s Hospital Heart and Vascular Center

REST services

Golang WaitGroup

Understanding the Town Star Watchdog Software; Protecting the Integrity of the Game

Building a Tic Tac Toe Game Using Python

3 Straightforward Tips That Improve Landing Page Mobile Speeds

Mac with loading symbol and an arrow that says “This lowers conversions”

MaxCompute Table Design Specification

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
James Broad

James Broad

CTO @ OnCare

More from Medium

EXPLORING UNIT TESTING WITH JUNIT TEST FRAMEWORK

IS-A and HAS-A

Behavior Driven Testing (BDT) approach

Embracing Test-Driven Development

Test-Driven Development Cycle