157,50
рейтинг
30 ноября 2012 в 20:08

Разное → Какой хороший программист!

Какой хороший программист наш Вася! Всегда опрятно одет, вежлив и предупредителен, хороший семьянин и душа компании. Что? Как он, собственно говоря, программирует? Хм… Постойте… А мы и не знаем. Никто никогда толком результатов его работы и не видел-то. Получается, Вася — не очень хороший программист? Ну ладно.

Вот Петя — точно хороший спец. Его код реально существует, компилируется, что-то делает. Показатель? Показатель. Правда, работает Петя не над тем, что по проекту надо, а над тем, что ему взбредет в голову. Иногда оно совпадает с общими целями, но чаще — нет. Выходит, и Петя наш — не идеал? Выходит так.


А кто у нас есть еще?


Ну вот Коля — Коля всегда предельно точно выполняет указания руководства, работает именно над тем, что ему поручили, никакого своеволия. Ну идеальный же разработчик, да? Правда, последнюю задачу на 50 строк элементарного кода делал он почему-то почти пол-года… Нет, это не образцово-показательный программист.

Сергей — он справляется с задачами быстро. Молодец. Его, пожалуй, и назначим победителем. Правда, получается у него это только при работе в одиночку. А в команде Серёжа наш мямлит, не может ни на вопрос ответить, ни свой задать. Не получается у него работать в больших проектах — а где же нынче маленький-то взять? Вычеркиваем из нашего списка и Сергея.

Но вот Маша — просто рождена для общения. Поговорит с кем угодно, когда угодно, всё обсудит , всех достанет. Молодец Маша! Правда, if от for не отличает. Хороша Маша, но не программистка она наша.

Антон прекрасно владеет кучей языков программирования, но усложняет горой паттернов самый элементарный код, делая его поддержку невероятно сложной.

Славик пишет исключительно простой и понятный код, избегая всего нового и навороченного. И в итоге не использует ничего из достижений программной индустрии последнего десятилетия.

Евгений наоборот порывается выбросить 90% существующего решения и за каких-то смешных пару лет переписать всё на Haskell/Lisp/Prolog.

Или вот, например… Что? Больше людей в нашей команде нет? Закончились?

А кто же у нас в итоге хороший программист?


Ни один критерий (или даже их совокупность) не может быть гарантией того, что человек будет работать нормально. На всяких там собеседованиях спрашивают чем один паттерн отличается от другого и почему множественное наследование — это плохо. Смешно, в самом деле. Хороший теоретик может быть плохим практиком, опытный программист — лентяем, обладатель кучи сертификатов — зубрилой без понимания сути вещей. Плюс специалист вообще любого уровня крутости может страдать манией величия, алкоголизмом, меланхолией и прочими малоприятными вещами.

Ближайшее, к чему я пришел, что мне кажется самым хорошим приближением к термину «хороший программист» — это ответ самого человека на вопросы: «Мне это нужно или нет? Для меня это важно или нет?».

Да или нет? Третьего не дано. Если человеку действительно важно и нужно, то, что он делает — всё остальное по-большому счету можно игнорировать. И не важно даже для чего и почему ему это нужно. Ради денег, славы, знаний, карьеры, покорения мира — всё-равно.

Если бы Васе был действительно важен его проект — он был бы не только хорошо одет и приветлив, но и делал бы что-то реальное. Если бы Петя считал свою работу нужной — он делал бы то, что приближает её к успеху, а не что взбредёт в голову. Если бы Коле было не пофигу — он нашел бы способы научиться работать с приемлемой скоростью. Сергей мог бы предложить какой-то удобный ему способ коммуникаций, Маша — выучить хотя бы основы программирования, Антон — перестать городить чехарду на ровном месте, а Славик с Евгением — вернуться в реальность и начать, наконец, делать что-то нужное правильными инструментами.

Человек, которому не по-барабану итог своей работы, всегда найдёт в себе силы измениться, выучить что-то новое, добить задачу до приемлемого состояния, побороть лень, выслушать и понять коллег, найти компромисс и т.д. Он менее подвержен хандре или скуке. Недостаток опыта, знаний или ресурсов всегда можно как-то восполнить, это решаемые задачи. Получить хороший результат от человека, которому наплевать на этот результат, нельзя будет никогда.

Посмотрите на себя, на своих коллег, спросите их или себя что-нибудь по работе (или представьте, что спросили). Как часто вы получите ответ «да мне вообще-то всё-равно», «подождём, как-то оно будет», «это не важно», «это не моя задача», «и так как-то работает», «я не знаю почему это сделано так». Следует ли за этими ответами продолжение в духе «но я разберусь и отвечу детальнее», «но я думаю что правильно будет сделать так», «я уточню», «но надо подумать как сделать лучше», «но мне бы хотелось изменить это вот-так», «я думал об этом и считаю, что ...»?

Именно наличие/отсутствие таких ответов, мне кажется, и отделяет хорошего программиста от плохого. Именно это — то, что нужно понять в себе и коллегах в первую очередь. Именно это понимание нужности и важности своего труда нужно развивать всеми силами (пусть даже ценой смены проекта/работы/сферы деятельности). Всё остальное — не важно.
Автор: @tangro

Комментарии (88)

  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Чур я — диктор!
      • 0
        А диктор — PM. Он вааще не программирует.
      • +2
        А я — доктор. Следующий!
      • +6
        А я — томат!
        • +5
          Все! Больше не играю…
    • +2
      Я — Вячеслав Петрович
      • НЛО прилетело и опубликовало эту надпись здесь
    • +2
      Я тогда плод какой-то странной любви между Сережей и Петей.
      • 0
        Из пробирки?
    • 0
      Я что-то между Серегой и Антоном.
    • 0
      А меня здесь нет. Хехе. Я пишу быстро, хорошо, по теме и современно. И при этом стараюсь не переусложнять.
      Так что статья не про меня. И не увы. ))

      PS: и на работе пишу код рабочего проекта.
      • 0
        Заметно, как вы на работе в понедельник в 10:52 утра пишете код рабочего проекта.
        • –1
          Мне не нравится Ваш сарказм. Но если у Вас лично есть конкретные претензии к качеству и количеству моего кода, прошу высказать их прямо.
          • 0
            [зануда_mode_on]У меня лично — претензии к качеству и количеству Вашего кода? Не вижу причин для этого. Если у Вашего работодателя нет претензий к качеству и количеству Вашего кода — я за Вас рад.
            • 0
              Тег не закрыт! Вы так половину хабра занудами сделаете!
              • +1
                [/зануда_mode_on] А что вам мешало его закрыть?
                • 0
                  Я не знал заклинания «Горшочек не вари», и все мучался между тем чтобы написать off и поставить слеш.
  • +3
    Не работаю, но скорее всего был бы Петей.
  • +7
    Рано или поздно многие хорошие программисты, независимо от задачи становятся Петями. Так как у каждого из нас появляются свои идеи, которые охота воплотить больше, чем задания данные начальством.
    • +5
      В таком случае нужно заниматься своими идеями, а не парить мозги начальству. Быть самому себе начальником.
      • +9
        Не всегда свои идеи включают бизнес-план и схему монетизации, иногда это просто код.
        • 0
          Такими вещами этичнее заниматься дома. Или идти в компанию типа гугла, где 20% времени можно законно тратить на то, что тебе интересно.
  • +19
    Ваш топик добра поборол мою лень. Хватит на час.
    • +53
      Это примерно на час дольше среднего результата, на который я рассчитывал.
  • +7
    Вообще описанное в топике относится не только к программистом. Любой человек которому безразлична его работа будет выполнять ее хуже того, кому она не безразлична.
    Безразличие это страшно и пожалуй во всех сферах, не только в программировании и наверное даже не только применимо к работе а вообще глобально.
    • +4
      Любой человек которому безразлична его работа будет выполнять ее хуже того, кому она не безразлична.

      Только при прочих равных.

      А то, что более мотивированный будет делать активнее менее мотивированного, — не открытие. И тем не менее, более активно ещё не значит, что лучше.
      • +2
        Только при прочих равных.

        Согласен.
        Но дело не только в активности. В перспективный более заинтересованный человек в самом деле будет прилагать усилия к улучшению, развиваться сам и развивать то, что он делает. Вопрос в направлении развития и развитии вообще.
    • 0
      Ответ на оба вопроса — пох. Я бы не брал на работу людей, которые говорят — важно. Видимо это джуниоры.

      Представьте себе работающего программиста, который говорит, что ему крайне важно, чтобы контора получала больше бабла с помощью его кода. Кода — какого-нибудь управления предприятием. Наверное, человек неадекватный.

      Мне лично совершенно не важны задачи, которые ставит перед собой контора. Деньги, которые получаю, тоже не главный мотив. Мне просто нравится сам процесс программирования. Говорить, что важен позарез результат — вранье. Сомневаюсь, что даже даст мне какой-то новый опыт. Но интересно просто так развивать проект. В том числе, за более короткий срок создать более лучший код
      • +2
        Представьте себе работающего программиста, который говорит, что ему крайне важно, чтобы контора получала больше бабла с помощью его кода. Кода — какого-нибудь управления предприятием. Наверное, человек неадекватный.

        Наверное, я неадекватный. Мне важно, чтобы фирма зарабатывала больше денег. С помощью моего кода и прочих разработок — в том числе (правда, код последнее время — не совсем управления предприятием, а всего лишь автоматизации части производственного процесса). Потому что тогда у нас появится возможность идти дальше, к новым интересным разработкам. А кроме того, там мне какие-то акции обещали...
        • 0
          Ну да, ну да )))))

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

          Да, я болею за проект. Как одна из интересных задач для меня — это сэкономить конторе деньги посредством скорости и качества написания кода, а также соответствования требованиям. Но это просто увлекательный процесс для меня. Не более. Всяким обещаниям премий, акций и чего-то еще в будущем — я давно не верю. Просто договариваюсь о стабильной устраивающей зарплате.
          • 0
            Ну так верить не надо, а заключать соглашения наверное. Что-то было про это здесь на хабре про дерьмовые стартапы.
          • +1
            Для одних важен результат. Для других процесс. Это, кажется, связано с психологической вертностью. И не имеет никакого отношения к успешности. Кто-то осуществляет процесс, чтобы достичь результата, а кто-то достигает результата осуществляя процесс. В этом вся разница.
      • +1
        А мне нравится красота. Красота во всем — в выбранном инструментарии, в постановке задач и структуре пользовательского интерфейса, в структуре модулей системы и в самом коде. Некая гармония.
        В начале своей карьеры пытался работать программистом в банке. Настолько тошно стало от содержания труда, что через 3 дня бросил.
        • +1
          У меня другая модель. Я изначально считаю, что мы занимаемся очень плохими делами. Никакой красоты, никакой эстетики. И оценка, что лучше или что хуже исходит из этого. Т.е. лучше то, что меньше приносит вреда.

          Каждая строчка кода — это зло. Это увеличение энтропии. Хаос растет.

          Вот пример. Мне недавно дали задачу — оптимизировать код. Код делает некоторые сложные вычисления и обрабатывает много данных. Работает верно, но сутки. Надо было ускорить.

          Делал. Как обычно. Сначала переписал код на нормальный язык программирования. Потом нашел узкое место, которое дало ускорение на порядок. Потом код оброс классами, скрывающими некоторую логику, не относящуюся к задаче напрямую. Вроде всё хорошо. Но главный алгоритм так и остался — циклы на пару страниц. 5 отдельных шагов с циклами. Код читается скверно. Оно и понятно. Надо выделять методы. Выделил. При этом общался плотно с заказчиком и выяснил, что и как лучше назвать, что каждый шаг делает.
          Теперь, вроде, код разбит на куски, каждый кусок не очень большой. Но код стал более читаемый? Отнюдь! Теперь главный цикл состоит из вызовов пяти методов. И как только мне нужно что-то понять или далее подумать как оптимизировать, мне проще открыть старый код, когда всё было в одном методе. Почему код не стал более понятным? Потому что я его не упростил, разбивая на методы. Я его усложнил. Потому что ввел новые понятия, которых до этого не существовало — имена методов.

          И с одной стороны нельзя не разбивать код, потому что внимание не может следить за многими объектами одновременно, и с другой стороны разбиение не добавляет ясности, кроме случаев, когда новые введенные понятия (имена методов, например), не являются совсем новыми, а хорошо известны из жизни. Часто так бывает? Нет.

          Где же гармония? Всё, что ни делалось — всё хаос. Ничего с этим не возможно поделать. Наша задача — только находить баланс в коде и минимизировать субъективно сложность.

          Работать программистом в банке — наверное может и затошнить. Но и нет вообще нигде отрасли в программировании, как мне кажется, где была бы красота и романтика. Красоту ощущают новички, которые только первый раз сталкиваются с какой-то проблемой и ее решением. Тогда они испытывают нечто платоновское — удивление и радость познания.
          • НЛО прилетело и опубликовало эту надпись здесь
          • 0
            А удалось ли после того, как было исправлено «узкое место», еще ускорить код?
            • 0
              да. Сейчас 2 минуты выполняется. Думаю, еще можно, но в принципе задача до полчаса стояла. Так что я думал больше, как сделать код читаемым
  • +4
    Это все можно назвать одним словом — ответственность.
    • НЛО прилетело и опубликовало эту надпись здесь
  • +25
    Человек, которому не по-барабану итог своей работы,… Получить хороший результат от человека, которому наплевать на этот результат, нельзя будет никогда.
    — — Мысль в посте в целом верная, но… все же «по барабану» из приведенных примеров здесь только Коле.
    Всем остальным (включая Машу) итог работы НЕ по барабану, просто у них СВОЯ точка зрения на то, каким он должен быть. Не зря же Славик пишет понятный код, а евгений хочет переписать код на правильные языки, а антон использует паттерны, маша вот тоже старается хоть и не догоняет, а сергей так вообще в одиночку может свернуть такие горы которые 3 других прогера в команде не свернут.
    Самое любопытное, что все они хорошие программисты. Так же как хорош молоток, отвертка, дрель. Плох тот, кто молотком начинает завинчивать шурупы пихая сергея в команду, вешая на машу одиночный проект, запивая в евгения горящий проект и так далее.
    • +14
      Это всё подразумевает наличие ещё более редкой штуки, чем хороший программист — хорошего менеджера.
  • +2
    Обычно об этом не задумываются.
    А у Вас задача, наверное, была вручить именную кружку как на картинке: "<name> За вклад в проект"?
    Вот тут и понеслось…
  • +1
    кроме мании величия, предельного алкоголизма и меланхолии по осени, никаких малоприятных мелочей и нет вовсе :D
  • +8
    «Славик пишет исключительно простой и понятный код, избегая всего нового и навороченного. И в итоге не использует ничего из достижений программной индустрии последнего десятилетия.»

    А простой и понятный код противоречит требованию использовать достижения последнего десятилетия?
    • +2
      Это же просто пример.
    • 0
      В какой-то мере да. Заметная тенденция прятать нюансы реализации за высокоуровневыми интерфейсами, что зачастую приводит к ситуации — работает, а как работает непонятно. Скажем видно, что сортировка идёт массива, а каким методом непонятно.
  • 0
    А это Сергей Петрович, он руководит группой разработчиков. Ему надо правильно выстроить команду и замотивировать каждого программиста. Для этого он…
    • +10
      ему надо перевезти капусту на ту сторону :)
    • 0
      Ну хоть кто-то, а то такое чувство, что здесь все работают под руководством этого «Сергея Петровича» и не представляют, что все работники могут быть хорошими, если работать над командой, а не только над проектом.
  • +6
    Для разных задач может потребоваться различный «хороший программист».
    Где-то нужен Сергей, если проект можно вести в одиночку.
    Где-то нужен Коля, который будет идеально писать программу, которая будет работать там, где от программы зависят жизни людей.
    Где-то без Маши не обойтись, поскольку нужен технически подкованный менеджер, который сможет убедить клиента, что САП это круто, 1С говно (или наоборот).
    А где-то в крупной компании пригодится и Петя, который будет генерировать нечто интересное

    и т.д.
    • 0
      А где-то в совсем крупной компании со временем большинство начинают составляют Васи. Платят хорошо и вежливость это единственное, что может оценить начальство когда продукт продается просто потому, что монополия.
  • +1
    Правильно делают, что ничего не делают, если зарплату и так начальство платит.
    Выходит, начальство — не начальство.
  • 0
    Черт. А я — Петя. Реально. Петя.
    • +2
      Все мы немножко Пети :)
      • +3
        Так я мало того, что под описание подхожу, так меня ещё и зовут так же… ;)
        • 0
          Забавно. А меня Антоном кличут. И я действительно люблю все усложнять :D
  • +2
    Можно было короче: «в любом деле самое важное — мотивация».
    И добавить к этому «мотивация деньгами — одна из самых неэффективных, но очень часто у сотрудника нет ничего, кроме неё».
    И вздохнуть печально.

    Посмотришь на то как нынче т.н. «стартапы» как доткомы до краха растут аки грибы после дождя — так тут же и вспоминаешь, что слишком многое делается не чтобы пользоваться, а чтобы продавать(ся). А раз так, то о какой истинной мотивации речь может идти «в общем случае»? Остаётся лишь удивиться и порадоваться редким исключениям.
    • +3
      мотивация деньгами — одна из самых неэффективных

      А подтверждение исследованиями есть? Насколько я могу видеть — такая мотивация одна из самых эффективных, только затратная :)
      • 0
        Есть завод. было 3 логиста (перевозки) они брали откаты ставя те машины которые больше заплатят, а не более подходящие и была у них зарплата 15 тыс… подняли до 30 затем 50 потом 80…
        Мне кажется подними им зарплату даже до 500 тыс они бы делали то же самое. Закончилось это тем что их уволили взяли новых и стали платить 15.
        • +1
          Э-э, а откаты не мотивация деньгами? Или откаты пренебрежимо малы с зарплатой в 80, не говоря о 500?
        • +1
          15 тыс… подняли до 30 затем 50 потом 80…

          Вы не указали прибыль от откатов, по этому сказать сложно… У меня брат подобным грешил. Спросил его на сколько откаты превышают зарплату — примерно в 20 раз. А вы повышали в 2-5 раз. Вот они и не держались за такую зарплату.
  • +2
    Речь идет о простом профессионализме.

    Встречал все типы людей из этой статьи.
  • +2
    Здравствуйте, я — Коля, но хочу быть Петей.
    • 0
      Уже хорошо что не Машей.
  • +5
    «Хороший программист» — это зайка, милашка, думает только о хорошем, добром…, и ни когда не думает о плохом, ведь о плохом думают только «Плохие программисты».
  • +1
    Если человеку действительно важно и нужно, то, что он делает — всё остальное по-большому счету можно игнорировать.


    Концепция красивая, но лично видел больше одного опровержения. Когда человеку действительно важно то, чем он занимается, он много работает, старается изучать что-то новое — но у него плохо получается. Это примерно как если человеку очень важно рисовать, он регулярно рисует — но он не умеет рисовать O_O. Безусловно, при большом желании он вытянет с любого уровня до среднего, но со сложными задачами всегда будут проблемы.

    Хороший программист специалист — это такой волшебный человек, который делает то что надо, как надо и в срок. Но таких очень мало :(.
  • +1
    Евгений наоборот порывается выбросить 90% существующего решения и за каких-то смешных пару лет переписать всё на Haskell/Lisp/Prolog


    а Славик с Евгением — вернуться в реальность и начать, наконец, делать что-то нужное правильными инструментами.

    А кто решает-то, что такое правильные инструменты? Если вы, конкретно, не умеете, не понимаете как с ними работать, то это проблемы не Жени и Славы.

    А вот дали бы Славе с Женей написать на Haskell, это ваше спагетти 20 летней давности…
    • 0
      В коммерческой разработке — рынок решает. Масса факторов, связанных с бюджетом проекта, сроками, стоимостью поддержки, стоимостью специалистов, их доступностью и т.д.

      Переписать все на Haskell — оправдано только тогда, когда это экономически целесообразно с учетом всего выше перечисленного хотя бы в среднесрочном периоде. А не тогда, когда это «правильно».
      • 0
        Вы правильно отметили, что рынок решает. Если это даже экономически целесообразно переписать силами 3х умных прогов ПО, наймут 30 просторабочих потому что они доступнее и проще заменимы, при этом поддержка проекта будет расти экспоненциально. И вот это как раз неправильно как экономически так и с технической точки зрения, в долгосрочной перспективе.

        Однако, есть менеджмент, который весь конструктив от Жени слушать не будет, для них это эзотерика. Я сталкиваюсь с таким постоянно, но после того как дав переписать хотя б 10% проекта и увидев результат начинают задумываться.

        С аргументом, что через 2 года, переписанный проект будет похож на старый, не соглашусь. Суть последних достижений ПО, как раз в поддержке наукой, теория категорий в основе Haskell дает опр. степень прогнозируемости и анализа. А языки написанные школьниками рассчитаны на решение сиюминутных задач.

        «Мы наймем еще 2х программистов и проект пойдет в 2 раза быстрее» из классиков, Брукс.
  • 0
    Всё верно, хороший программист, работат над любым проектом — как над своим.
  • 0
    Почитал — даже вас как-то жалко стало. Может вам хороших подсунуть посоветовать?
    Правда едят много ;-)
  • 0
    Это называется «мотивация». Нормальным HR/PM и прочим хорошо известно, что мотивация заменяет собой многое (хотя бы в том смысле, что при наличии мотивации опыт, знания и навыки можно приобрести), а ещё поддержание — одна из самых важных обязанностей любого начальника.
  • 0
    Начинал свой путь разработчика я как Коля, а теперь я Вася.
    • 0
      Не хочу снова бы быть Петей, фу. Симуляция работы это тоже работа, и она как по мне, не всегда дается легче.
    • +7
      Ну, если это никому не мешает, почему бы и нет.
      image
  • +3
    Повысьте Васе и Коле зарплаты до рыночного уровня и выше, чтобы им стало интересно работать на вашу компанию — и они стали больше времени тратить на ваши проекты.
    Прекрасно знаю обоих, Вася — замечательный код в кучей open source проектов, признанный лидер, участник и докладчик многих конференций. Коля — по ночам работает удаленно на американскую компанию, в офисе просто отсыпается и отдыхает.

    Такой вот альтернативный взгляд на то, как на самом деле все происходит.
    • 0
      надо же, меня и зовут Колей
  • +1
    К сожалению, даже свой проект может стать неинтересным через какое-то время.
  • +7
    Господа, позвольте мне поимпровизировать! Давайте поэкспериментируем, взглянем на наших персонажей, скажем так, немного шире, попробуем узнать некоторые их черты получше:

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

    Петр работает усердно, но чаще не над тем, что требуется по проекту. Он усидчив, но его мысли нестабильны, он переключает контекст слишком часто, он реализует то, что ему искренне хочется воплотить в реальность, и что он считает наиболее интересным. Петр полностью поглощен необходимостью самореализации через воплощения собственных идей. Его богатый и сложный, в отличие от большинства коллег, внутренний мир полностью захватывает его воображение. Петр пробует различные идеи, он пробует все новые и новые подходы и в конечном счете это позволяет ему накопить такой пласт опыта из его собственных экспериментов, что в определенный момент времени он понимает свою абсолютную самодостаточность в успешной реализации собственных идей. Он счастлив осознавать этот факт, ему нет равных в импровизации, в творческом подходе. В конечном счете Петр понимает, что существует целый мир нереализованных возможностей, и когда ему становится скучно выполнять рутину, он уходит из компании и начинает свой успешный стартап.

    Николай выполняет все очень четко, он тщательно размышляет над необходимым и достаточным, он крайне щепетильно относится к любому решению. Николай очень много думает, прогнозируя исход, прежде чем совершить действие. В уме Николай выстраивает настолько сложные модели, что практическая реализация является при таком подходе лишь побочным эффектом этого сложнейшего процесса моделирования. Иногда Николай впадает в своего рода мысленную рекурсию и проворачивает одни и те же мысли десятки раз, снова и снова взвешивая возможные погрешности. Николай предельно внимателен в исполнении, в отличие от своих коллег, его ум обладает ювелирной точностью. Он не умеет импровизировать так как это делает Петр, но он способен смоделировать ситуацию настолько глубоко, что это позволяет ему видеть на десять шагов вперед не допуская лишних ошибок и соблюдая абсолютную точность. Николай не начинает действовать, пока не убедится, что это единственно правильное и наиболее оптимальное решение.

    Сергей не коммуникативный, в меру замкнут. Он истинный интроверт, его сознание инкапсулируется от внешнего мира, полностью погружая Сергея в разработку алгоритмов. Сергей в одиночку способен спроектировать сложнейшие вещи, он не нуждается в делегировании частей и синхронизации. Он мастер, он один из умнейших разработчиков среди коллег. Сергей вполне способен разработать механизм, реализация которого займет времени больше, чем какие-либо разумные пределы. С ним сложно найти общий язык, но если он говорит, то каждое его слово и фраза несут глубокий смысл, передавая такой объем информации, что остальным потребуется время, чтобы осмыслить о чем вообще идет речь.

    Мария не умеет программировать, она с трудом вникает в хитросплетения логики алгоритмов, но она настолько коммуникативна и открыта для окружающих ее людей, что стала для всех источником неисчерпаемой энергии, лучшим собеседником, человеком, который никогда не скажет, что ему не интересно выслушивать чьи-то переживания, люди готовы делиться с ней своими эмоциями. Мария весьма счастлива быть настолько общительной, у нее огромное множество друзей, у нее практически не бывает моментов, когда она чувствует себя одинокой и забытой всеми, как это бывает у Николая и порой у Сергея.

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

    Славик пишет настолько лаконично, что уровень вхождения в построенные им логические модели очень низок. Новички сходу понимают что делает его код, в отличие от оверинжиниринга кода Антона. Славик иногда действует не эффективно, он расписывает все черезчур простыми конструкциями, не использует высокоуровневые абстракции, поэтому работает в целом не очень продуктивно, но его простые решения помогают быстрее въехать в суть дела. Со Славиком общаются все junior разработчики, для них он верный друг и помощник.

    Евгений знает множество средств, он прекрасно понимает задачи и перспективы проекта и может трезво оценить еще на самом раннем этапе необходимость и возможность корректировки курса развития, пока затраты еще позволяют исправить ситуацию. Евгений весьма дальновидный разработчик, его познания обширны, коллеги часто советуются с ним как со стратегом, он знает свое дело, хотя и не лишен определенной доли оптимизма, а, возможно, в некоторой степени максимализма. Евгений любит иногда пообщаться с Сергеем, они находят общий язык, рассуждая о чем-то запредельном для Славика и ненужном для Антона.



    Несмотря на то, что все персонажи вымышлены, они весьма напоминают многих героев из реальной жизни своими чертами характера. Существующая проблема в невозможности эффективного выполнения проекта иллюзорна, она сформирована абсолютным непониманием людей друг друга, это критично по одной простой причине — все структуры имеют определенную вертикаль власти, которая не позволяет людям занять оптимальное положение в социальной структуре в рамках организации. Люди неэффективны лишь потому, что их заставляют делать то, к чему они не предрасположены. Сложно закручивать ложкой шурупы. Собирая команду, необходимо обладать определенными качествами дальновидности Евгения, интеллектом Сергея, аккуратностью Николая, коммуникативностью Марии и учтивости Василия. При всем при этом, необходимо уметь доносить до своих коллег информацию также доступно, как Славик, при этом не изобретая велосипедов, а используя для организации процесса работы своей команды уже обкатанные временем паттерны, подобно подходу, используемому Антоном. И самое главное — необходимо обладать творческим подходом Петра, уметь быстро менять контекст, чтобы эффективно реагировать на малейшие изменения в хрупком балансе социальной системы и мгновенно реагировать на это.

    Мы все люди, мы все разные, и потому у всех нас огромное разнообразие интересов. Собрать команду людей, которые были бы одновременно сильно заинтересованы в реализации проекта — на мой взгляд, утопия. Куда важнее, проанализировать и выделить в задаче моменты, интересные тем людям, которые будут иметь к ней непосредственное отношение. В этом и заключается своего рода искусство, искусство адаптировать задачу под совокупность людей ее исполняющих.

    Мы все умеем отдавать приказы, но крайне малое количество из нас умеет проектировать социальные структуры и взаимодействия в них.
  • 0
    Прям палата №6 вспомнилась… «Равнодушие — паралич души...» — а в этом случае это паралич работы/проекта.
    На самом деле очень важен подход к людям, PM или руководитель должен уметь сделать так чтобы все были достаточно мотивированы, т.е. всем было важно и не повигу, а также нужно правильно распределять и ставить задачи, так чтобы каждый мог максимально задействовать свой потенциал и особенности.
    Создать хорошую команду — дело не простое.
  • +1
    У вас нет в команде Архип?!?!
    Знакомьтесь — это Архип. Он очень хороший программист. Он быстро пишет код, он хорошо коммуницирует с другими разработчиками, тестерами, начальником. Он компилирует релизные версии продукта три раза в час. Есть только один недостаток — в любой его программе тестеры находят баги. Когда тестеры устают бодаться, программу отдают пользователям и тогда шквал недовольства идет от пользователей. Архипу очень сложно — ведь он одновременно правит баги и пишет новую версию программы. К тому времени как поправлены все баги в старом коде у Архипа уже готова новая версия с новыми багами.
    • 0
      С другой стороны Архип еще молод, по настоящему он не оценил эту сторону комерческой разработки. Более старшие коллеги уже не делают таких ошибок. Вот например… ваш старый знакомый Вася! :-)
  • 0
    Могу добавить еще:

    «Сотрудник с высокой мотивацией работает эффективно, сотрудник без мотивации просто опасен.» — Хабрахабр ©
  • +1
    Я тоже раньше задумывался над вопросами, поставленными в статье, но после просмотра www.ted.com/talks/simon_sinek_how_great_leaders_inspire_action.html мне стало все ясно. Главная мысль, которую я вынес для себя «You need to work with people who BELIEVE in what YOU believe»
  • 0
    А я… увы… (с)

    :-) Хорошая песенка вспомнилась.
  • 0
    Узнаю себя почти во всех. Кроме, разве что, Васи и Маши…
  • 0
    Хороший программист, это тот, кто программирует заказчиков (начальников), а не компьютеры ;)
    (кстати, хороший с точки зрения его самого или удобный начальству? ;)

    А точнее он в первую очередь повлияет на формулировку задачи, если она будет не оптимальна, а только потом возьмется за задачу (уже новую). А чаще, так и вообще предложит решение не требующее программирования.

    И при поступлении новых данных вовремя повлияет на заказчика (узнал реальную ситуацию с задачей и понял что заказчик не понимает что ему нужно — строит систему управления заводом от начальства, а на самом деле важные решения принимает слесарь :) ).

    Хотя опять же, смотря кто заказчик (клиент или начальник). Не всегда главная цель — это выполнение задачи :))

    ps. а у вас чашка сверху запаяна :)

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разное