This is a partial list of important corporate programmer productivity-tools that I consider necessary to boost my output and lower my stress when Im dealing with difficult work.
Ive noted down an estimate of the value of each of these tools, based on my forty years experience working both with and without each of these tools. The plus percentage Ive listed is the productivity advantage I believe programmers enjoy if they have this tool; the minus percentage represents the productivity disadvantage they labor under if they do not have this tool. The increase or decrease in productivity refers to both the speed of completion of the delivered programming project and its quality. I have purposely left out of this analysis the differing effects of a good manager versus a bad manager on a programmers productivity.
Very fast and always available corporate computer
Plus 75%, minus 50%
There is no excuse for your company not to give you the tools you need. If you have mediocre tools, you will be a mediocre producer. There is no other way to put it.
Private, quiet programming environment
Plus 25%, minus 25%
A private office may not be a reality for some programmers today, but it is a reality for othersand a reality you should make one of your goals.
High-quality project specifications and project management
Plus 75%, minus 75%
Without a roadmap and a destination, your project is doomed to failure. Make sure you get the information you need to start and finish your project.
Full testing environment with representative data
Plus 30%, minus 30%
Testing is the sign of a professional programmer. If you dont test and your program crashes spectacularly, you cant offer up as a consolation prize the fact that you saved time and money by not testing your work.
Comprehensive continuing education and reference material
Plus 20%, minus 30%
This includes an in-house IT reference library of appropriate manuals, magazines, and books purchased by your employer.
Comprehensive program logic and data auditing tool
Plus 30%, minus 40%
Program logic and data auditing tools are critical to programming success, because they provide at least a glimpse of what is happening inside the computer as your program is executing. At best they allow you to see the panorama of what is happening inside your program. There are program steppers that allow stopping the program at a specific statement as it is executed, and there are program auditors that record all the statements as they execute, with the data processed on disk for review. You, too, can create a program auditing capability that will enable you to see exactly what is happening inside the computer as your program executes, including the source statements as they execute and the data as it is processed by complex computer code. I consider this auditing (or visualization) capability of the program and data to be the capability most useful to programmers attempting to master a program fat with complicated code.
Disk File Utility (to display and change disk records)
Plus 15%, minus 15%
A disk file utility program allows the programmer to select, display, change, add, and delete disk file records, and to change the contents of the fields on the disk record. This is a powerful and much-needed programmer productivity tool. Ive found the most important advantage of a disk file utility tool to be that it allows me to visualize all of the information in an entire disk record or group of records. I can see the field descriptions and the data in each field in the record, and it is easy to see the related information for, say, a customer in the record that contains the customer master information. Just looking at the information the company keeps on a master file disk record for customers, products, orders, or inventory enables me to quickly associate the actual customer data (such as ABC Company) with the field name that is used in the programs to access this information, like CUNAME.
The first thing I do as a programmer trying to understand a complex program that uses files that I do not know is to print the program compile listing and hand-write the file description next to the file name for instance, for file CUSTP I would write Customer Master File by Customer Number. I then use the disk file utility productivity tool to (1) display a customer master record and visualize the data fields in that customer master record, and (2) relate them to record field names . In my own programs I enter the file description and the access path (key sequence) as a comment for each of the files used in my program. I do this to visualize in my mind the file and its keyand indeed the fields in the file as I start the programand also as a courtesy for me and for others who will follow.
Structured Query Language (SQL) or Query
Plus 15%, minus 15%
A Structured Query Language utility provides the programmer with a very widely utilized method of querying, updating, inserting, and deleting disk file records with easy-to-use commands like SELECT, INSERT, DELETE.
Programmers without this SQL program or the disk file utility program would have to write programs frequently to do these functions (which are needed daily in a programming environment), taking time and incurring risks that these quickie programs are not correct. A programmer virtually always needs to create or modify and then review test data so that program testing is comprehensive. However, in my opinion, that does not provide the wonderful visualization capability that is provided by a disk file utility program.
Comprehensive project (program) change management system
Plus 20%, minus 25%
A project, or program, change management system is a software utility that automates and documents the implementation of projects into the companys development and production environments. It also archives the previous source programs and executable object programs being replaced . This allows a history to be kept of that previous production level, and it allows for back-out of the programming change and recovery of the previous level, if that becomes necessary. Every corporate computing department has some change management procedure, even if it is manual and undocumented, to implement programming changes. Automated and comprehensive project change management systems greatly smooth and simplify the project implementation process.
Comprehensive file, field and program cross-reference tool
Plus 10%, minus 10%
There are comprehensive software utility programs that provide cross-references among programs, files, and fields. These cross-references are normally created by major business function or application software packages, so programmers working in that area, such as financial, customer relationship management (CRM), manufacturing, or distribution, can quickly reference all the program-related informationoften tens of thousands of fields, records, files, and programswhen that information is needed.