Я начну с дргуго конца

ИМХО:
Программист - это кодер. Он переводит ТЗ в код
незадумываясь о целесообразности той или иной реализации. И он мало знает о стандартном функционале. Разработчик - это тот, кто разрабатывает путь оптимального решения спецификации представленной консультантом и может предложить изменить спецификацию предвидя некоторые проблемы

И он уже ставит ТЗ программистам (сам он конечно тоже программирует в свободное время

). А также разработчик уже гораздо больше знает о стандартном функционале.
Так что ваш разработчик един в двух лицах (или консультант, смотря что вы имеете в виду под спецификацией). Видимо это все из-за того что у вас не хватает народу

...
Я лично знаю людей как программистов, которые скорее изобретут свой велосипед (который будет весьма не плохо ездить вначале), чем используют максимально стандартный функционал, так и разработчиков, которые уже таким не занимаются и другим не дают

)