Software Craftsmanship: While sounding really nice at first glance, I really don’t see where to draw the boundary between a software craftsman and anyone else working in the industry. Of course the things listed in the Software Craftsmanship Manifesto (“Not only X, but also Y.”) are all good things ™. However, improving on one thing always comes at the price of getting worse at something else. So at what cost does it come? I like the wording of the Agile manifesto much more (“We value X over Y.”). I’m not surprised that the whole Software Craftsmanship idea is so vague and romaticized.
via Heise: Tom DeMarco questions the idea of Software Engineering:
My early metrics book, Controlling Software Projects: Management, Measurement, and Estimation (Prentice Hall/Yourdon Press, 1982), played a role in the way many budding software engineers quantified work and planned their projects. In my reflective mood, I’m wondering, was its advice correct at the time, is it still relevant, and do I still believe that metrics are a must for any successful software development effort? My answers are no, no, and no.
In your face, quoters of “You can’t control what you can’t meaure”!
http://www2.computer.org/cms/Computer.org/ComputingNow/homepage/2009/0709/rW_SO_Viewpoints.pdf
Also see “Software Engineering ist eine Idee, deren Zeit gekommen und auch wieder gegangen ist.” (in german). This is an interview with Tom DeMarco where he says basically the same.
An interesting read.
Yes, I do like Test Driven Development. It works for me.
What doesn’t work for me are articles like this one by Tim Bray1, or rather their endless number of contradicting comments on what TDD and its properties are. You think you know what TDD is? Time to meet an infinite number of monkeys who have understood it in a completely different way. Or haven’t they?
Some random opinions (with remarks by me):
- If your tests are too hard to make, you know that your API is too complicated. [link]
- TDD doesn’t make sense in small projects. [link]
- Never use mocks unless you’re sure their interface is absolutely stable. [link]
- TDD doesn’t help when people don’t do it properly. It’s hard to introduce tests when the code base grew too large without them. This is a major weakness in the TDD philosophy. [link]
- TDD is too expensive. We have had code rot in our automated tests. [link] (When doing TDD, I usually run tests about ten times in each commit cycle. How can your test code rot?)
- Don’t fall for the seductive TDD trap! In practice, everybody hates it, even if they first thought they liked it. TDD sucks away your soul and desire. [link] (I’m not paraphrasing this last sentence.)
- TDD is inpractical for anything above bowling card calculators and stacks. [link] (Note to self: I’m waiting for the blog post explaining this on this weblog.)
- This is not TDD. TDD is Test Driven *Design*. [link] (Hey, why don’t you get a copy of the Test Driven Development by Example book?)
- My tests are often copied from the REPL that I use anyway for my exploratory coding. It doesn’t feel hard to me to write them. [link]
I like the comment about the REPL. This is an observation that I also made. However, would it help if C++ had a REPL? :->
I cannot escape the feeling that these commenters come from very different backgrounds. Who can I trust there? Whose background is closest to mine? Can these comments help anyone without this context information at all?
Or am I maybe just naive to assume I could learn something from discussions on the internet? NO, don’t comment on this yet! I just realized that I probably am. Never mind. I go read TDD by Example again, that’ll help me more.

1Wow, this guy even has his own Wikipedia article. I didn’t know him before, though, and I also can’t tell you who it is. Everything looks important when you got the link from the Delicious social bookmarking service’s home page.
A few images from the last weeks. The Bavaria at the Theresienwiese is very large and can be climbed up. I sat in her head together with two other people and looked out.
I also saw the surfers in the English Garden, Anne!
















