It should go without saying that a programmer has a big impact on how easy it is to set up a job. The programmer is, of course, the person who creates the documentation. But even programming inconsistencies can affect setup time.
One inconsistency among programs I've seen that can cause wasted setup time has to do with how the programmer specifies coordinates within the CNC program. Though it is not always heavily stressed in programming courses, the programmer should always program the mean value of each tolerance band within the program. While the setup person and/or operator may not actually be targeting this value for every dimension machined (more on this in a bit), any inconsistencies with programmed values will make it more difficult for the setup person to make the first workpiece in each production run.
Many companies use many of the same cutting tools from job to job. This is especially true of CNC turning centers. Ideally, during a changeover the setup person should not have to make any offset adjustments for tools used in the most recent production run. If the tool was cutting properly in the last production run, it will continue to cut properly in the next production run (an exception would be a dramatic change in workpiece material). However, if the mean value for every dimension is not specified in every program (programs are not consistent), the setup person will have to make offset adjustments even for tools that were cutting properly in the last production run.
Before you're too quick to say that your programs are consistent in this regard, consider how your programs are created. If you're using a CAM system, and if you're importing workpiece geometry from a CAD system, your CAM system will be using dimensions from the design engineer. If the design engineer is not specifying that the CAD system uses the mean value for every dimension for a drawing, you'll be importing bad geometry.
Admittedly, the setup person and operator may not be targeting the mean value of every tolerance band for every dimension they machine. During a long production run, for example, many operators will prolong the time between offset adjustments to hold size, letting a tool wear through the entire tolerance band. For example, if machining an OD on a turning center, the operator may target close to the low end of the tolerance band to make offset adjustments. This way, the tool can wear for a longer period of time before another adjustment is needed. Even if your operators are using this technique, programs must be consistent for setup people to minimize the adjustments that must be made between production runs.
Another programming inconsistency that will waste setup time has to do with cutter radius compensation on machining centers. As you probably know, there are two ways to program cutter radius compensation. With one method (preferred by most manual programmers) the radius of the tool is specified as the cutter compensation offset. With the other (preferred by many CAM system programmers), the deviation from the planed cutter size is specified as the cutter compensation offset. If your company uses both methods (possibly some of your programs have been written manually while others have been developed on a CAM system), your setup person may have to re-enter a cutter radius compensation offset value. Forgetting to do so could result in a scrapped workpiece.
This is especially wasteful for milling cutters that require trial machining in order to perfectly adjust offset value. Again, if the tool was cutting properly in the last production run, it should continue to cut properly in the next production run. If trial machining was required to get the tool cutting properly in the last production run, and if the method by which cutter compensation is used changes for the next setup, it's likely that trial machining will be required again in the next setup.
One last inconsistency has to do with the point on the tool that's being programmed. Most turning center programmers program the extreme tip of each tool in X and Z. For grooving tools, this is the extreme tip of the tool in the X axis and the side of the tool pointing away from the turret in Z (the left side of the grooving tool). Yet there are programmers who program from the right side of the grooving tool. If you have both methods being used in your shop, not only does this create confusion, but it will waste time while the setup person resets the program zero assignment value in Z for the grooving tool.