Task variability refers to the number of exceptions to standard procedures encountered in the application of a given technology. Task analyzability is the extent to which, when an exception is encountered, there are known methods for dealing with it. Although Perrow defined task variability and task analyzability at the level of tasks, these two variables have been used to characterize technologies at the unit and organizational levels of analysis. Arraying task variability and task analyzability in a two-by-two matrix produces four technology types Perrow named routine, craft, engineering, and non-routine.