— Это довольно стандартные вещи для всех. Есть история про командную работу, ведь современная разработка — это командная игра.
Также важны терпимость к чужим решениям и способность договариваться. Как это обычно в бизнесе? Если мы видим какое-то другое решение, которое работает, то бизнесмену будет интересно. Если в программировании кто-то делает не так, как делаешь ты, то тебе говорят: «Да ты просто не умеешь». При этом сложно проверить, действительно ли оно эффективно. Потому что если в бизнесе все меряется деньгами и уровнем удовлетворения клиентов, то здесь сложнее. Не с чем сравнивать.
Вторая вещь (я бы сказал, самая важная) — это способность докопаться до истины, понять причину и следствие. Это похоже, кстати, на работу врачей. Мы иногда приходим к врачу с предположениями о том, что у нас, возможно, такая-то болезнь. А он останавливает и говорит: «Вы пока не делайте выводы, молодой человек, расскажите про симптомы, а я уже подскажу, что и как». Здесь то же самое. Когда приходит заказчик, он, как правило, идет уже с каким-то решением. И чаще всего оно неправильное. Задача программиста — докопаться до сути и предложить другой, лучший вариант. Это не всегда возможно, но имеется в виду, что то решение, с которым пришли, например, маркетологи, продавцы, продакты, может быть ошибочным, потому что они не учли миллион других факторов. А программисты, которые этого не делают, быстро заводят систему в такое состояние, что ее становится невозможно нормально развивать, любые изменения начинают требовать огромных усилий. И это, действительно, самая важная история, когда ты с ними работаешь, потому что иначе нельзя доверять человеку. Если он будет молча соглашаться со всем, что ему говорят делать, то через пару месяцев проект просто встанет.