Давным-давно, когда мы выводили из эксплуатации Пентиумы и вводили новые машины на базе Socket 478, в то время как электрики выводили из работы СМ-2М… Так вот, примерно тогда старшие товарищи в ответ на наши претензии нас учили.
Программист должен знать весь производственный цикл. Зачем? Да чтобы написать правильную, выверенную программу, которая у всех пользователей этого цикла будет работать. Разработчик должен посидеть за рабочим местом оператора в цеху, слазить на кран к терминалу, куда поставят его программу, везде поработать. Программа станет более человеческой, потому как её автор сам посмотрит на то, как она работает с точки зрения пользователя.
Ещё программист должен быть умным — умнее всех пользователей. Потому что он будет отвечать на вопросы пользователей, причём не по сути программы, а скорее про «почему не работает». Он должен уметь поставить себя на место любого пользователя и понять что же именно тот хотел.
Ещё программист-разработчик должен уметь вовремя устранять баги и обновлять свой продукт.
А ещё программист должен учить пользователей, чтобы они справлялись с большинством проблем сами. И молчать в тряпочку, дабы мало кто знал, что только он один знает весь жизненный цикл производства.