Double-entry bookkeeping revolutionised business by introducing a self-checking system of financial integrity. In the world of software, Behaviour-Driven Development (BDD) does something strikingly similar — pairing each feature with a clear, testable description of how it should behave. Double-entry bookkeeping and automated software testing might seem worlds apart – one emerged in Renaissance-era accounting and the other in modern software development. Yet conceptually, they serve a similar purpose: both introduce systems of checks and balances to ensure integrity and accuracy in their respective domains. In accounting, double-entry bookkeeping requires every transaction to be recorded in two accounts (debits and credits) that must balance, creating an internal self-checking mechanism. In software, automated tests act as a parallel record of expected behaviour, continuously verifying that the code produces the intended outcomes. This post explores how a 500-year-old accounting innovation revolutionised financial record-keeping and how its spirit lives on in the way we write and test software today.
Tag Archives: quality
Quality is a choice: the case of the Next Generation Apps
Over the last year I’ve had the privilege of overseeing the development of the next generation of mobile apps (iOS and Android) for the major commercial radio brands in the UK. The most amazing thing about this experience was the priorities – UX&D was #1 priority – something I’ve never had before.
Continue reading
What is the optimal number of manual testers in a development team? Zero?
To have manual testers, or not to have manual testers, that is the question. Typically I have one per team: Less than many teams but more than some organisations get away with.
Continue reading
Test driven architecture – use your tests to inform architecture
As test-loving development teams, we are all painfully aware of the complexity of getting an application into the zen state of development – quick, test-driven red/green feedback for developers, software designs that are functionally on-the-money from a test-led, “outside-in” approach (from BDD), and a nigh on seamless continuous delivery process as a result. Very few teams achieve this, and those that do are frequently gifted a green-field project in which to engender them.
As test-savvy teams, when tests start to hamper the release process, we often assume our approach to testing needs an overhaul, but that might not be the case. Here we look at the role of architecture in test-driven applications, and examine whether we should listen to our tests to examine our macro design.
Continue reading
Seven Things to do When Starting Specification by Example with Cucumber
I was asked “What to do in terms of training and practice when starting to use gherkin to define requirements?” Although I’ve written quite a lot of material on Specification by Example I haven’t written about how to start doing it.
Continue reading
I always work with a Technical Lead. Always
They might be called an Architect or a Tech Lead or just “Bob” but I always work closely with a senior technical person.
Continue reading
Five things to do when people don’t to see the value of automation
Not everybody sees the value of automation, specifically test automation. But I believe effective software development demands test automation. What to do?
Continue reading
PMs Need a Technical Ally When Introducing Automated Testing
I need a technical ally when introducing Specification by Example and BDD. Actually I need a technical ally when introducing automated testing of any kind. Somebody to coach / mentor / encourage / explain / enthuse about the technology and how it helps.
Continue reading
Specification by Example helps even with no Automation
I’m keen on Specification by Example particularly with a tool like Cucumber to automate tests. However this style of specification is also useful without the automation. I introduced my current team to Specification by Example and, with some help from me, the customer is now using the same disciplines to define requirements to hand to a 3rd party development shop. The experiment has been very successful.
Continue reading
Improve Customer Collaboration with Ubiquitous language
Normally I’m quite a calm chap but I get quite grumpy when developers want to model the business domain using technical language. I believe in using “ubiquitous language” and that means using business language to model the business domain.
Continue reading