Программист на своей работе пишет программы, отлаживает их, исключая в них ошибки, а затем, если он работает лишь над частью большого проекта, он пытается корректно увязать свою наработку в общую схему. При этом он взаимодействует с теми другими программистами, которые писали те части общего проекта, в которые будет втиснута его разработка. Когда это будет сделано, то возможно программисту придётся выступать уже в роли согласующего, когда кто-то другой будет также укладывать свою наработку в общую схему.
Когда же весь проект будет собран, начнётся его отладка, как единого целого, причём каждый программист должен гарантировать работоспособность своего модуля.
Кроме этого, если этот проект управляет каким-то 'железом', то многие программисты должны кроме рабочих модулей разрабатывать ещё и имитационные модули, чтобы иметь возможность отладки проекта без задействия какой-то его части, или всего этого 'железа'. К тому же необходимо разрабатывать какие-то тестирующие программы, которые будут тестировать отдельные части этого 'железа' на работоспособность и готовность.
Когда же всё это будет сделано, то каждый программист должен прокомментировать код своего модуля или даже составить инструкцию, по которой будет эксплуатироваться весь этот программный комплекс. Не исключаются и командировки программиста в ту часть страны, или даже мира, куда этот комплекс будет продан для обучения персонала, который собирается обслуживать его.
Ну, а вечные чай, кофе и перекуры - это тоже будет входить в ту деятельность программиста, без которой трудно что-то дельное написать :^)