Verification-First Development: Beyond Test-Driven Development
This article explores Verification-First Development (VFD), a paradigm that emphasizes establishing verification mechanisms before writing code. This could involve writing tests, defining type invariants, adding contracts, or other methods. VFD differs from Test-Driven Development (TDD), which is a specific case of VFD and focuses on using tests to drive code design. VFD's advantages include reducing the likelihood of skipping verification, early error detection, and improved code quality. However, VFD also has drawbacks: it can slow development, hinder exploratory coding, and verification methods might influence code design. The author argues that VFD, as a technique rather than a paradigm, is more flexible and easily integrates with other approaches.