Microsoft Research: Janie Chang: Exploding Software-Engineering Myths:
…there is one point that gives this software-engineering myth buster a great deal of satisfaction.
“I feel that we’ve closed the loop,” Nagappan says. “It started with Conway’s Law, which Brooks cited in The Mythical Man-Month; now, we can show that, yes, the design of the organization building the software system is as crucial as the system itself.”
Bruce Eckel: 5-2-03 Strong Typing vs. Strong Testing
Random Thoughts: TDD is not test-first. TDD is specify-first and test-last.
97 Things Every Programmer Should Know: Uncle Bob: Speed Kills:
If you want to be a professional, if you want to be a craftsman, then you must not rush. You must keep your code clean. So clean it barely needs comments.
Coding Horror: The Xanadu Dream:
Consider the reality of what’s actually possible, what people can understand, and what us all too human programmers can practically implement. It might not be the Xanadu you dreamed of — heck, it might even suck — but it’ll at least have a fighting chance of existing in reality rather than fantasy.
The urge the reduce the complexity of the tools used to solve software problems is one that every software developer should share. However even more important is reducing the complexity of the actual solutions that are delivered to your customers at the end of the day. End users can’t tell if you used complicated C++ techniques like template metaprogramming and mixins to build the application. They can tell when your application fails to solve their actual problems in a straightforward way or is so late to ship due to project delays that they lose interest in waiting for you to solve their problems.