Программист обязательно должен этому научиться -16


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

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

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

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

До состояния такого внутреннего диалога я очень долго рос.

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

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

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

Впрочем, дорогу осилит идущий. Может именно вы создадите тот самый стартап на миллиард!




Комментарии (55):

  1. cepera_ang
    /#24466750 / +19

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

    • GothicJS
      /#24466846 / -20

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

      Какие чужие задачи, что за скукотень? В айтишку надо брать только тех, для кого это хобби и суперинтересно с горящими глазами и т.д. и т.п. То есть двадцатилетних. А решать не свои хобби-хотелки, а хотелки клиента/работодателя? Нет, это оставьте тем, кто в айтишку из-за денях. То есть всем, кто за 30.

      • cepera_ang
        /#24467010 / +4

        Сбавьте тон.

        • GothicJS
          /#24467028 / -10

          Это с чего это вдруг? Тон мой не был повышен, а вот правда, как видно, глаза то людям изрядно подрезала.

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

          • SergeiMinaev
            /#24467264 / +16

            В айтишку надо брать только тех

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

            Эм...

        • NixGuy
          /#24467432 / +5

          Ну, вы, блин, даете! Тут сарказмом несёт за версту. Не стоит так серьёзно реагировать.

          • Rumantic
            /#24467434 / +3

            На хабре сарказм deprecated.

            • c_kotik
              /#24467776 / +1

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

              • GothicJS
                /#24468102 / -2

                Только сегодня, только для вас! Раскрытие всех тайн бытия - конечно, это был чистейшей воды сарказм)

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

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

                • c_kotik
                  /#24468340 / +1

                  Недавно была статья, где ии на рентген видит негров. Учёные обеспокоены, что их ии расист и мыслит стереотипами.

                  К чему я это - всегда есть тонкая грань стереотипов и фактов. И границы её не очевидны порой и самым искушённым)

  2. GothicJS
    /#24466824 / +13

    простая большая зарплата будет слабым утешением

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

    • IvanSTV
      /#24467822 / +1

      плюсую. ИМХО, в IT надо брать с некоторым опытом работы в других сферах. Тогда у людей будет понимание, что задача IT - решать задачи и проблемы производства/операционки/пользователя, а не просто решать технические задачки.

      Решить техническую задачу и прикрутить уродски неудобный интерфейс - это все равно что ничего не сделать.

    • Sazonov
      /#24468466

      В 17 лет довелось поработать разнорабочим, когда учился в техникуме. Хотелось летом больше денег на карманные расходы. Недели хватило чтобы понять, что в своей жизни деньги я буду зарабатывать головой. И да, я тот самый инженер, которому нравится то что он делает, независимо от того, откуда пришла задача: от клиента-заказчика или это собственный проект.

  3. Aquahawk
    /#24466956 / +15

    Всегда справлялся с размещением и картин и полок при помощи уровня. Это просто и недорого.

    • Medeyko
      /#24466990

      Особенно с учётом того, что датчики направления действия силы тяжести (датчики ускорения) есть почти в каждом смартфоне, и найти и поставить соответствующую программу не сложно!

      • IvanPetrof
        /#24467484 / +2

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

        И вообще, смартфон ведь это не измерительный инструмент. Его же не калибруют после сборки?
        Или калибруют?

        • konst90
          /#24467538 / +1

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

        • IvanSTV
          /#24467828 / +1

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

    • sshikov
      /#24467038 / +1

      Ага. Причем на сегодня лазерный уровень стоит сильно меньше 1000 рублей. Для подвешивания картины — сойдет вполне.

    • 0xd34df00d
      /#24467176 / +5

      Довольно любопытно, что вы при этом подменили задачу: автор упомянул о параллельности картины полу (иначе я интерпретировать «горизонтальна к полу» не могу), тогда как вы решили задачу о параллельности картины линиям эквипотенциальности гравитационного поля в локальной окрестности картины (которые не совсем прямые линии, но на масштабах картины это неважно). В общем случае пол не обязан быть параллелен этим линиям, поэтому это не эквивалентные задачи.


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

      • sshikov
        /#24467192

        Зря вы пытаетесь интерпретировать фразы типа «точно горизонтальна к полу». Нет в них никакого смысла.

        Горизонталь
        из Википедии:

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

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

        • 0xd34df00d
          /#24467222 / +2

          У нас тут возникает неоднозначность в интерпретации: либо имелось в виду «параллельна полу», либо имелось в виду «горизонтальна» (без всяких полов).


          В пространстве понятий «параллельна полу» достаточно близко к «горизонтальна», чтобы стоимость замены одного на другое была меньше, чем стоимость удаления слова «к полу». Поэтому лично я выбираю разрешить неоднозначность в пользу первой интерпретации.

          • sshikov
            /#24467568 / +2

            У автора написано «точно горизонтальна к полу». А параллельна — это у вас. Как бы додумывать мы можем что угодно, но по мне так изначальная фраза бессмысленна.

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

          • Aquahawk
            /#24467630

            У нас возникает не неоднозначность в и интерпретации, у нас возникает некомпетентность автора некорректно использующего термины.

        • lair
          /#24467326 / +2

          Я, кстати, склонен согласиться с 0xd34df00d: картины стоит вешать не горизонтально (т.е. относительно истинного низа), а согласованно с окружением. Я знаю много мест, где пол-потолок не горизонтальны, а стены не вертикальны, а глазу важнее, чтобы картина сочеталась с ними (и с предметами рядом), а не с силой тяжести.


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

          • funca
            /#24467486 / +1

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

            • lair
              /#24468526 / +1

              Дело не в формализме. Дело всего лишь в том, что вешать картины вдвоем сподручнее.


              (и это, кстати, бросает занятный свет на весь авторский пост)

          • sshikov
            /#24467564

            Ну, в обычном здании не горизонтальный пол — это косяк. То есть, бывает наверное, но редко.

            • OlegIva
              /#24467842

              Ох, в обычном деревенском доме может быть всё, что угодно. Делали ремонт вот в одном таком - так в комнате ни одной строго вертикальной стены, ни одного ровного угла, пол не по уровню и потолок дугой.

              • sshikov
                /#24467918 / +1

                У меня у самого такой дом :) это не отменяет того факта, что это косяк :)

                • OlegIva
                  /#24467964

                  Всё верно - косяк плюс старость дома :)

                  • Hett
                    /#24472534

                    А как с потолком будет сочетаться? А с дверными проемами, извиняюсь за занудтство?

                    • OlegIva
                      /#24472590

                      О, вы мне попали на любимую мозоль. Если коротко - плохо.

                      Мне очень грустно, когда смотрю на прикрученный к стене в таком фигурном доме детский спорткомплекс. Потому что то, что стойки по стене идут вертикально, совершенно никак не сочетается ни с полом, ни с потолком. И если на полу я еще как-то подкладкой под один бок справился, то вот потолок с верхней перекладиной формирует отчетливо расходящийся угол.

          • Aquahawk
            /#24467632 / +1

            Картины висящие на стенах возле лестниц таки вешаются горизонтально.

      • Medeyko
        /#24467956

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

        • vadimr
          /#24468050 / +1

          Если пол плоский.

          • Medeyko
            /#24470082

            Ну, я понимаю, что я уже совсем занудствую, но всё же:

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

            Если такого отрезка нет даже в грубом приближении, или если картина - не прямоугольник, то, подозреваю, нет особой нужды что-то там выравнивать: в таком окружении или такая картина в любом случае будет смотреться необычно, как её ни повесь! :)

            • vadimr
              /#24470112

              Во, уже дифференциальные приближения пошли :)

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

    • vadimr
      /#24468038

      Если пол и потолок горизонтальны, а стены вертикальны.

    • Hett
      /#24472342

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

  4. lair
    /#24467064 / +3

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

    Я вот не требую от себя как самый злой и капризный клиент, но я не биоробот на зарплате.


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

    Так это противостояние никуда не денется, только оно еще и будет внутри вашей головы, так что будете фрустрироваться за обе стороны сразу.


    А зачем?..

  5. DrPass
    /#24467104 / +5

    Я с дрожью сейчас смотрю на людей, которые рвутся в ИТ, когда им слегка за тридцать. Им придется проделать этот путь от технической вовлеченности, до клиент-ориентированности

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

    противостояния клиентских хотелок и вашей профессиональной гордости

    А это мне даже спустя четверть века в ИТ непонятно. С чего это вдруг мои заказы вообще должны противостоять моей профессиональной гордости? Меня же не серверную подметать нанимают.

  6. gleb_l
    /#24467150 / +3

    В принципе верно. Клиенту нужно не прямо, а нужно красиво. У него в конце концов дом может быть в стиле Ле Корбюзье.

    Поэтому:

    1-й уровень - сделать строго по спеке (к пуговицам претензии есть?) - ещё и с пеной у рта тыкая в чертёж;

    2-й - спросить клиента (соли Вам сколько? А перца? Говяжьи или свиные? Заправить?…) - пока на занудные КО-style вопросы не начнёте получать ответы «на отвали»;

    3-й - схватить вектор того, что нужно/чего хочет клиент, придумать, продумать и сделать самому. Если попрактиковаться в роли шеф-повара, то процент попаданий будет довольно высок. Но это уже скорее придворное искусство.

    • funca
      /#24467494

      4-ой уровень - переубедить клиента и продать ему неведомую хрень в стотыщ раз дороже. "Дорогой клиент, зачем тебе эта старая пыльная картина? Прошлый век! Лучше умный телевизор сюда повесим, на зелёном электричестве и блокчейне" (получает аванс на строительство фабрики телевизоров, заказывает демо-образец на алиэкспрессе).

  7. 1Tiger1
    /#24467256 / +2

    Солидно вам времени понадобилось чтобы освоить бизнес-ориентированность. Тут же все просто, код, как и приложение (сервис, программа) это лишь инструмент. Инструмент для решения конкретной задачи, будь то управление финансами, марсоходом, или показ коротких забавных видосиков людям, в соответствии с их неосознанными персональными предпочтениями. Очень важный инструмент. Нужный, сложный, часто дающий возможность хорошо подумать и покреативить в рамках задачи. Но инструмент. Без задачи он не имеет смысла. Да даже если эта задача в том чтобы помочь в разработке других задач, это все равно задача. У неё есть определённые требования. Вот насколько код соответствует этим прописанным и неявным требованиям, настолько он и хорош. Будущее покажет, когда потребуется его модифицировать под изменения задачи или проверять реальностью. Код ради кода бесполезен. Если требования клиента вступили в конфликт с вашей профессиональной гордостью, значит вы чего-то не учли. Это нормально, даже неизбежно. Но страдать из-за этого, ну не знаю. Я ещё ни разу не встречал лесоруба, который переделав свою бензопилу в шлифмашинку (да какую, красивую, эффективную, с разными режимами и сменными лентами для абразива, а так же отличной аэрографикой на корпусе), огорчался бы что ему оказывается ей надо валить лес. Я собственно даже не встречал лесорубов которые бы занимались таким извратом с бензопилами. А вот программистов встречал (в переносном смысле конечно, бензопилы лишь кривая аналогия, программисты обычно изобретают "красивые" архитектуры, а потом негодуют что они оказались бесполезны и их красивости больше мешают и вообще задумано было по другому).

  8. mSnus
    /#24467378 / +4

    Повесил картину, отошёл, посмотрел, поправил. Модель waterfall.

    Повесил картину, порадовался, ушёл пить чай. Вернулся, перевернул кверх ногами. Модель agile.

    И всё без лишних помощников! Сам себе покер, сам себе скрам мастер..

  9. funca
    /#24467506 / +1

    Но что делать, если программист достаточно смел и упрям, для создания своего сервиса

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

    (интересно, за что статье натыкали минусов? нормальная же тема)

    • Rumantic
      /#24467514 / +1

      Боюсь словить минусов, но напишу все-таки:

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

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

      Профессионал привык получать деньги за свои часы. Но когда делаешь стартап, то ты сам свои часы оплачиваешь. Если в таск-трекере у тебя +50% от недельной нормы по времени, то не жди бонусов. Все на что можешь рассчитывать, это возможная выгода в будущем от того, что ты правильно угадал направление разработки.

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

      Вообще, прям бесит, что статью минусуют. Хотя комментариев больше, чем у других постов с плюсам, просмотров больше.

      Господа минусующие, если вы не увидели супер-инсайта строго по документации, но у вас вспыхнуло куча мыслей на интересующую вас тему, почему вы вместо плюса, ставите минус?

      • Medeyko
        /#24467996 / +1

        Подозреваю, заметное число минусов статья словила из-за странноватой сентенции про людей за 30.

        • Rumantic
          /#24468020 / -1

          Ага, не учел, что в эпоху тренда "войти в айти" надо наоборот хвалить "понаехавших".

          • GothicJS
            /#24468564 / +2

            Очень интересно наблюдать, как некоторые считают себя "прирожденными". Такие в айти не входят, они там изначально.

          • Medeyko
            /#24470090

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

      • lair
        /#24468534

        почему вы вместо плюса, ставите минус?

        Мне казалось, нынче при постановке минусов (к статьям) указывают причину. Вам, как автору, их не видно?

  10. c_kotik
    /#24467760 / +1

    Вполне очевидная вещь, что личное видение / понимание происходящего может не совпадать с общественным (клиента, заказчика...).

    И когда делаешь сервис на заказ / для масс, к примеру, соблюдая вся и все, что самому кажется истиной в последней инстанции, потом будет больно осознать, что в таком виде оно кроме тебя самого не нужно и даром. Ибо пользователь скажет - "Проще до отделения дойти"(с).

    Мне удалось суть целой статьи до оного коммента?) Если да, то минуса как раз показывают, что урок не был усвоен до конца. В этом случае вместо ПО - публикация. Автор видит, верит и знает, что она вот нужна всем! А все об этом, оказывается, и не знают...