I tend to view the presence of decode an indicator that I'm missing a lookup table somewhere. Not always, but more often than not programmers use decode to turn codes into strings - the codes and strings ought to be in a table. Otherwise, traipsing through the code trying to figure out which code means what gets awfully tedious.