it's always hard to distinguish differences of degree from tose of kind. But the difference between a contract programmer and a per diem typist is a lot like the difference between a craft worker and a worker on a canning assembly line. The former has an advantage, even absent the craft union, in that he or she has a skill that means that management cannot control the ins and outs of work. (Tell a skilled carpenter how to do the job!) Management must rely on the willing compliance of the craft worker. On the other hand, the assembly-line worker or typist works at a job where work is largely deskilled and routine. These workers do the execution, while management has monopolized the conception.
Of course, management is always trying to deskill the programmer's or carpeter's job. But so far they haven't been very successful (as far as I know).
Jim Devine jdevine at popmail.lmu.edu & http://clawww.lmu.edu/Departments/ECON/jdevine.html