One of the sad side-effects of moving upwards in the programmer career path can be the loss of direct contact with system users. It was greatly gratifying to sit beside users in the office where I started to develop, to see what their actual needs were and to be able to provide solutions.
As part of a larger team of programmers one is shielded from those situations, and explicitly not allowed to make those decisions. It can probably not be any other way, but something is lost in translation.