Verification First Development
From the “Listen to Hillel” file, an article on Verification First Development. I really like the idea of Test Driven Development, but I have to be honest. I don’t always do it. Sometimes I practice Test After Development. Meaning I write my tests to verify that the code I wrote does what I wanted it to do. But after reading Hillel’s article, I realized that even though I sometimes write my tests after, I almost always know how I’m going to verify it. I have a positive test case in place, and I often have a large handful of known error cases. Having a name to put on things makes me feel good.
Another good thing about verification first is that it’s a great definition of done. And knowing when you’re done is critical. You’ve added some kind of value when you’re done. You get to stop what you’re doing when you’re done. You get to build up some momentum and celebrate when you’re done. You get to move on to the next thing when you’re done. These are all good things. And it’s part of the Purpose that Pink talked about in Drive. It helps motivate us.
And thinking about verification first development of course makes me think of my current job. At Aurora, our mission is to deliver the benefits self-driving technology, safely, quickly, and broadly. To do that, Aurora has a safety case. That safety case, which was built long before the code was finished, defines done. And not just in big broad terms, but also in detail. With specific requirements. To be done, we need to close the safety case. That means that a lot of work goes into building and executing the plan to verify that things are safe. So while different teams have their own flavors of development style, it’s all guided by a verification first mindset.
So, depending on what I’m developing, I might be using BDD, DDD, TDD, Test After Development, or sometimes I’m just experimenting to learn about a space and to figure out what I really want to do. Regardless of how I’m doing it though, there’s always at least a plan for how I verify the results are what I want.
The question now is, as that other Hillel would say,
If not now, then when?
