My blog post the other day about giving up on test-first development attracted a lot of attention, not least from ‘Uncle Bob’ Martin, an agile pioneer who wrote an entertaining riposte to my comments on his ‘Clean Code’ blog. He correctly made the point that my experience of TDD is limited and that some of the […]
Category Archive for 'agile methods'
In my recent blog post on TDD, several people suggested that some of the problems that I was having with TDD were that I may have a system with a tightly coupled UI and that I was trying to test through that UI. They suggested that TDD is more effective when the UI is made as […]
My last post on top-down development attracted a lot of attention from the Twittersphere and lots of comments. The vast majority of these were constructive, whether they agreed with me or not. I am delighted that the post sparked such a response because we can only improve approaches through challenge and discussion. It’s well worth […]
Test-first or test-driven driven development (TDD) is an approach to software development where you write the tests before you write the program. You write a program to pass the test, extend the test or add further tests and then extend the functionality of the program to pass these tests. You build up a set of […]
I wrote the 1st edition of my book on software engineering at the beginning of the 1980s when there was no doubt what software engineering was about. The ideas underlying software engineering then came from military and aerospace systems. Large business systems were built using the same approach so there was no ambiguity about what […]
I recently found on my bookshelves an old copy of Zen and the Art of Motorcycle Maintenance – a 1970s book in which the author, Robert Pirsig, reflects on what he calls the ‘metaphysics of quality’. I remember reading it shortly after I had started my first academic job and relating quite strongly to the […]
Agile development gets lots of hype. Governments around the world are saying that we must be agile and use agile practices for IT systems development. Whatever the question, ‘agile’ is the answer. I am sympathetic to the agile manifesto and I think some agile practices such as time-bounded increments and test-driven development are universally useful. […]