In C, C++, Java, and other languages, you use curley-braces — ‘{‘ and ‘}’ — to indicate the start and the end of a block of code. However, the braces are optional if the block is only a single line. This is an option you should never use. Always use the brace, even if it is a single line. Read the rest of this entry »
Discuss Each Bug Report Only Once
Run your team in an action oriented way. Sometimes, the same bug gets discussed over and over, and this represents a waste, particularly when they are discussed in a group. Be mindful of this, and while it is not entirely possible in all cases, try to discuss a bug once and only once. Read the rest of this entry »
Usability Means Not Jumping Through Hoops
The image of being forced to jump through hoops is one of being required to take arbitrary actions in arbitrary orders just to satisfy some goals that are either unseen or at least not in the interest of the user. Some software is like that. You have to perform functions that you don’t want to do, that you know you are going to get rid of, in order to satisfy some internal constraint of the software. Read the rest of this entry »
Method Exception Signature
In short, all interface methods, if they throw anything, should be declared to throw ‘java.lang.Exception’ and never a specialized exception class. Find this surprising? then please read on. The original goal to allow methods to declare the type of exceptions they might throw was a valiant attempt to clarify program behavior, but unfortunately it was misguided, does not work, and if used incorrectly can turn into a maintenance nightmare. Read the rest of this entry »
Usability Means Well-Behaved, even when the User Isn’t
Users of a program found that sometimes, when they went to log in, they did not get a place to enter the username & password. Instead of the normal login prompt, they got a blank screen, and it was completely impossible to login. Sounds like a bad bug that needs to be fixed immediately, but the development team response was even more surprising: this was the user’s fault! Read the rest of this entry »
Letter to Someone Considering Switching from Waterfall to Agile
If you have a development team, and you are considered switching from waterfall to Agile. And particularly if in your organization you have no people who have worked on an agile project for a year or more, there you must pay heed to these recommendations. Read the rest of this entry »
Improving the Code through Installation Manual Analysis
What can you learn from your install manual that can make your product better? Below I outline a technique to work through an existing installation manual, and methodically find clues on how to make a software product better. Read the rest of this entry »