Программист пишет код в рамках поставленной задачи. В его задачи не входит разрабатывать логику проекта в целом, его главная задача сделать так, чтобы это работало, а по возможности, чтобы хорошо работало.
Разработчик может как писать код, так и разрабатывать весь проект в целом: начиная от самостоятельного программирования/проектирования исходных частей проекта, заканчивая координацией проекта и управлением программистами, дизайнерами, PR-менеджерами и тд.