I read in this blog post many comments along the line of “In my experience, you don’t need to do X to succeed”, where X is any agile practice such as standup meetings or TDD. Well that’s true. In fact, you don’t need to stand upright to get from A to B. Toddlers around the age of 12 months often are quite skilled at zipping around the room on all fours. But around that age they start experimenting with standing up. At first they fall, and it takes quite a while for them to feel confident, walking on two feet. Yet, once they learn, they find they can cover much greater distances with ease.
Yesterday I was chatting with a collegue around the coffee machine. We were talking about the difference between proper unit tests, and integration tests. The view about testing that most outsiders have, is that all you need is machinery that allows you to record what your code does and play it back. Things around the lines of Selenium. My point is that the most important thing a programmer needs is to learn how to write clean, testable code. Selenium and similar tools are useful, but secondary; what a programmer needs the most is to learn how to do it right, not write a new tool.
My collegue said to me that writing clean code in the sense that I mean is wishful thinking. I told him no, just look into the code that our team is checking in… it’s not wishful thinking, it’s about learning a new level of skill. I’m on that journey.