How to Fail at Software Development

12. Do you have everything you need?

Score from 0 to 5
Score 0 if every programmer has everything they need to run the software. If, for example, the project is the development of a simple stand-alone program and it can be run right there on the development systems, then everybody has everything they need. This includes the compiler, linker, source archiving tools, and stuff like that. If the entire program were finished today and the programmer would have the capability of running it, in its entirety, right there on his system any time he wanted—this would an example of having everything he needs and you can score 0 and go on to the next question.

Score at least 1 if the testing facility is clumsy to operate in some way. For example, if you have to hook up some special devices or configure a pair of computers in some way, then not as much testing will be done and it won’t be as thorough. If you have to stop thinking about your program and switch to thinking about changing over into test mode, then you have some degree of a clumsy situation.

Score at least 2 if the tests that can be run regularly by the programmers have something missing. And example of this would be the case that most of the software can be executed immediately but one module can’t. It requires some external device, such as a cash register drawer, and that is not available unless some special preparation is made. Then part of the software will not be as well tested as other parts.

Score at least 3 if the test facility is such that you have to share it with other people. The process is always the same. At the beginning of the project the shared test rig is always freely available to anyone who needs to use it. As the software matures, the test hardware becomes available less and less often. By the time the final stages of software development arrive (the second ninety percent of the total time) there will be a signup sheet and you have to plan hours or days ahead to test your stuff. Then you wind up with a time slot allocated to you. Every time you get an hour on the test rig, you either only need a minute or you need four hours. If this is becoming a real pain, score 5.

Score at least 4 you have to share the test setup with people who have priority over you. That is, you can’t schedule a time for testing—you have to wait until they are not using it for something else. When you go in to see what they are doing and when they will be done, you find them playing cards or eating lunch. They have priority so they have no sense of time. And you can’t get a decent estimate from them about when they will be done. And when they do finish with it, it’s already nine o’clock at night. And you spend fifteen minutes clearing away the coffee cups and getting the system back to its initial state. If you’d rather get some sleep, score 5.

Score 5 if there is no test setup. It never ceases to amaze me that people want programmers to develop software but fail to supply them with a place to run the programs for testing. Some managers are under the impression that running a program through a compiler is like running a memo through the spell checker. If it looks good and doesn’t produce any errors, it must be in good shape and ready to go.

Previous Back Next