I met another Japanese executive last week who said “An Agile approach may be fine for other projects, but our software is big and complex, and because of that we have to use Waterfall approach.” This is the exact opposite from the truth: the larger and more complex the code, the greater the need for an agile, iterative approach. Continue reading
Monthly Archives: April 2012
Don’t Fear Rewriting New Code
The last post #28 Avoid “Test Script” Fever was about simplifying an implementation that was more elaborate than it needed to be. There was a waterfall-style project in exactly this situation, and leader responded saying “It has already been coded the other way, and if your goal is to save programmer time, rewriting will just waste more time.” No, it won’t, and this post explains why. Continue reading
#28 Avoid “Test Script” Fever
There is a strange propensity among developers to make tests more complicated than they need to be in the name of flexibility. Tests don’t need to be flexible, they need to be reliable and maintainable. I have seen this pattern so many times it is worth a mention here to avoid it. To understand it, you have to consider a specific example. Continue reading
#27 Don’t Declare Variables at the Top
Somewhere long ago you attended a course that said that all variables should be declared at the top of the method. Modern languages allow you to declare the variable at the point in the code that it is initialized and this is a significant advantage. However, the outdated idea of declaring all variables at the top of the method persists. This post explains why this is a bad idea. Continue reading
Two is Not Better Than One
In software design you often must choose between two competing approaches. Which is better? It is tempting at times to say “Let’s do both, and let the user choose.” That might be good, but there are many cases where that is a serious mistake. Continue reading
#26 Don’t add Methods and Classes that you don’t need.
This should be obvious, but it is a rule that is violated quite often. This is one corollary to the YAGNI (You Aren’t Gonna Need It) Principle. This post discusses that there is a proper time to do things, and it is a waste to do them ahead of time. Continue reading