Improvement of efficiency can be achieved at many levels. As a manager of SAS programmers I saw a lot of efficiency loss by programmers who make ’spaghetti’-programs. That is what I call programs in which modifications regarding the same data process or item are spread throughout the program. This often happens when the programmer adapts an existing program based on feedback or new requirements. Many (unexperienced) programmers tend to make his/her adaptations at the end of the program resolving issues that were invoked earlier in the program. This results in a spaghetti of code. These spaghetti-programs are very hard to review and are prone to errors and bugs which costs a lot of extra time in the process of data analysis and reporting.
So how about program planning? Can we make it more structured without being inflexible and without adding too much preparation time? Trying to resolve it with strict guidelines on program structures does not improve the process since it introduces redundancy in the program and programming process. Each program has its own topics and focus and will therefore need its own structure. In addition, a good programmer likes to be in control and will be demotivated by strictness and directiveness. He likes to start and find his own ways to make it the best program possible.
Therefore, a few years ago I started to implement the project management principle of the
work breakdown structure (WBS) for SAS programs. Before starting, the programmer will prepare a simple scheme in which the functionalities of the program are divided into main functionalities and sub functionalities. Depending on the complexity of the program, the programmer can decide how many levels of sub functionality he wants to add and whether he wants to create separate macro’s for a sub-functionality or not. The WBS for programs will help the programmer to work in a structured way when preparing the program. When a change or addition is requested, the programmer changes the program at the right place thus preventing spaghetti code and errors. As a bonus these programs are also easier to review making the total process faster, better documented and easier to re-use.