January 2005 Archives
The Developer Testing Paradox:
The root cause of most software project failures, and of the poor general health of most software, is the lack of early-stage unit testing.
The metrics presented are a little bit off IMHO, especially when dealing with legacy systems. Still an excellent read.
Two excellent posts on TDD (Test-Driven-Development) by Keith Ray:
Comedix.de nun auch mit RSS-Feed.
'If we take time to add tests, we can't add as many features.'
You're absolutely right. But here's the problem. You're not adding the features now. You're adding broken almost-features. That's not helping the customers. The customers deserve to have features that work.
Willy Bretscher (Chefredakteur der NZZ von 1933-1967, 68 Jahre Mitarbeiter der NZZ) sagte der Legende nach einmal zu einem renitenten Leser:Wahnsinn. Eine Zeitung mit dieser Haltung muß man eigentlich abonnieren.
"Sie sind nicht würdig, diese Zeitung zu lesen. Ich entziehe Ihnen Ihr Abonnement."
Here are two quotes from a CNBC interview of Steve Jobs:
"If there is one word that categorizes the culture at Apple concerning products, its 'excellence'""I think Apple's core expertise outside of phenomenally good engineering is really to figure out how to make complex technology easy to use by us mere mortals."
Wether you're an Apple devotee or not, those are great goals for the engineering/products division of any company.
(Via AppleInsider).
Very cool. How about a Windows version?
Ahhh, sweet bird of youth: Thinking FORTH (via Mark Bernstein).
(via Sarah Allen)
As IT systems finally make their way into the non-info service sector such as health care practices, blue collar e-learning, etc. we are starting to really see that our notions of “(GUI) conventions” even the most basic are just totally bogus. People can’t even use a mouse, let alone know that a blue under lined piece of text means something that will show me something else.
Excellent advice if you aspire to become a great software developer. Required reading. There's one thing missing:
- Learn how to write before graduating.
- Learn C before graduating.
- ...
- ...
- Take programming-intensive courses.
- ...
Focus on the basics - Everyday
Work on improving your code thus making it easier to maintain. Work hard on seemingly trivial things like naming functions, cohesion, simple design, testing. Everyday.At the end of the day, nobody cares if you came up with a brilliant, incomprehensible algorithmn revolutionizing computer science. At the end of the day, what matters is that the code you wrote works and can be changed easily - tomorrow morning. It will be changed, trust me.
...on agile software development here. Here's one of them: The Humble Dialog Box.
Reviews of C++ Unit Testing Frameworks.
Great write-up. What a coincidence that I'm fighting with CppUnitLite (as we speak :-) to make it run within our environment.
Roy Miller on Acceptance testing. Pretty java-centric, but still useful stuff.