Причина недопонимания между нами и неверного использования технологий. По мотивам статьи «Пять миров» (ПО)



    Почти никогда во всей литературе, посвящённой программированию и разработке программного обеспечения, не упоминается нечто важное, из-за чего мы иногда недопонимаем друг друга... Joel Spolsky

    Статья Джоэла о Пяти мирах (программного обеспечения) вышла в 2002 году. За прошедшие 14 лет успели образоваться новые миры: Мобильные приложения и Облака, — но соль статьи осталась неизменной.

    Одна и та же технология в разных условиях будет давать разную эффективность.

    Когда мы обсуждаем опыт применения какой-то технологии, мы часто не обращаем внимания на контекст её применения из-за этого возникает недопонимание, неверное толкование и применение технологий.
     
    Представьте, мы на Земле, наш друг Марк на Марсе. У нас стоит одна и та же цель, вырастить в своём Мире урожай картошки. Технологию будем использовать одинаковую «посадка в грунт», а результаты получим разные так как влияние факторов/переменных разное для каждого из Миров. Это кажется очевидным, но факты из жизни говорят об обратном.

    Это Марк


    Факты игнорирования контекста


    Факт №1 про Консультантов


    Каждый год мы проходили аудит зрелости процессов разработки по модели CMMI и от ребят консультантов не раз приходилось слушать, что у нас «лишнее» и что нам «нужно» сделать, чтобы было лучше. При этом ребята опираются не на контекст, а на список практик, который может быть вообще использован для повышения «мощности» процессов разработки.
    Ребята, у вас длинный цикл выпуска релиза, одна из причин — вы пишите ТЗ до начала разработки. Оформляйте документацию на систему либо в процессе, либо после окончания работ, этим вы сократите срок выпуска релиза на две недели.

    Выглядит как дельное предложение. Теперь наложим контекст.
     
    Корпоративная ИС переваривает операции на 60 млрд.рублей в год, в день через неё проходит 170 млн.рублей. В системе трудится более 2000 человек. Похожий на наш бизнес — Московская Биржа и поддерживаемые ею торговые операции.

    Особенность нашей КИС в том, что она монолитна. Если обновляется один из функциональных блоков внутри, ошибки в нем способны вывести из строя всю систему или рабочий процесс. Для компании это означает финансовые потери и последующие перегрузки в работе компании, так как пропущенную работу на 170 млн.рублей нужно сделать и нагнать «простой».
    На фондовом, валютном и срочном рынках Московской биржи нештатная ситуация … Последний раз биржа приостанавливала торги 1 сентября, но это коснулось только секции «Основной рынок». Этот сбой стал четвертым за последние четыре месяца.Lenta.ru

    Теперь контекст даёт возможность сопоставить что лучше:
    • выиграть 2 недели из 3-х месячного цикла выпуска релиза, но значительно увеличить риски простоя,
    либо
    • пока оставить ТЗ в том месте где оно есть, минимизировав риски, и искать другие варианты сокращения длительности релизного цикла.

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

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

    Это Марс


    Факт №2 про Руководство


    Иногда доводится слышать от новых высоких руководителей такой посыл:
    Ребята, у меня на прежнем месте процессы были устроены вот так, проблем не было, поэтому мы будем переходить на них.

    Там это не Здесь … Не торопитесь выступать капитаном очевидностью и пытаться открыть ему глаза на это. Моя личная статистика показывает, что вас расценят как отказывающегося сотрудничать и запишут в «чужие», в системе координат «свой | чужой».

    Дождитесь от руководителя конкретных действий и уже их сталкивайте с реальностью.
    За 6 лет работы в компании Руководитель Проектного Офиса менялся трижды, один раз вместе со всей командой Офиса.
     
    Меня печалят попытки без разбора натянуть все проекты по созданию, внедрению и развитию ПО на соответствие требованиям PMBoK или ставшими модными Scrum или Kanban. Есть заточенные под ИТ-проекты методологии, которые делятся на методологии создания, внедрения и развития.

    • SureStep и ASAP для проектов внедрения корпоративного ПО.
    • RUP и MSF  как методологии создания больших ИТ-решений.
    • Agile:Scrum как методология создания «малых» форм и развития существующих.

    И каждый из Миров ПО вносит в них свои корректировки. 

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

    Марк сажает картошку


    Факт №3 про Хабравчан


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

    Человек статью не дочитал и в контексте применения «термина» не разбирался, но определил, что Автору недостаёт понимания людей и мира.

    Следом идёт содержательный комментарий от другого Читателя:
    Автор, похоже, неудачно выбрал термин. Я тоже не сразу понял этого термина, слишком специфические значения в него вкладывают, в том числе оскорбительные.
    С другой стороны подобрать более точное слово имеющее значение «люди, выполняющие тяжёлую работу и занимающие низкое социальное положение, духовно неразвитые, бессловесно покорные люди, подчиняющиеся чужой воле и позволяющие себя эксплуатировать» может быть затруднительно.

    Это Марс Детка = фак ап


    Способ определить, что контекст не учтен и восстановить его


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

    • что в описанном решении много лишнего;
    • что знаешь способ как сделать лучше.

    Оно может и так, но точно не стоит торопится с тем, чтобы заявить его правильным, что он лучше.
    Можно нарваться, на то, что сообщество в жесткой форме укажет что мы тут обсуждаем «мягкое», а вы про «горячее».
     
    Начинать стоит с отрезвления себя и задавания себе 4-х вопросов:
    Отрезвления от увлечения мыслями, возникших из вникания в технические детали и нюансы.

    1. Из какого Мира ПО знания и опыт, изложенные в статье?
    2. Зачем и почему Автор сделал именно так?
    3. Какие альтернативы рассматривал Автор, между чем выбирал?
    4. Какие входные параметры у решенной автором задачи?

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



    » Статья Джоэла на русском
    » Статья Джоэла на английском

    Кто такой Джоэл Спольски? — статья Wiki на русском и английском.
    Иллюстрации из фильма Марсианин.

    Ещё примеры


    1. Вы — не Google
    • +12
    • 11,1k
    • 9
    Поделиться публикацией
    Комментарии 9
      +2
      Один мой коллега точно отметил, что основное в профессии консультанта это слушать и слышать. Сам стараюсь следовать принципу «не навреди».

      Вообще, я бы отнес описанное в статье к вопросу профессионализма, часто не хватает именно такого отношения, что в жизни, что на работе, что на Хабре.
        +2
        К принципам:
        • слушать и слышать
        • не навреди
        я добавлю «проявлять любопытство и ковырять».

        Если упростить, компания приглашая консультантов ожидает получить знания которых у неё нет. Это:
        1. глубокое знание предмета (экспертиза)
        2. как устроены процессы у конкурентов и показатели их эффективности (делают ли они свой продукт лучше чем мы, тратя меньше ресурсов и более качественно)
        3. обобщенный мировой опыт лучших практик (то что предлагает ребята из большой 4-ки)
        4. комплексное виденье (где во всей цепочке узкие места, так как в них нужно бить чтобы повысить мощность всей цепочки)

        Я думал над тем как извлечь из консультантов пользу так как то, что мы ждали и то, что мы получали порой не совпадали. Вот некоторые из выводов:

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

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

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

        «комплексное виденье»
        Плохо получается у ребят, либо слишком абстрактно либо слишком узко-«в лоб».
        А даже когда у ребят выходит хороший продукт, его Потребители (Руководство), порой не в состоянии его потребить.
        За «комплексным виденьем» лучше не к консультантам, а руководителей отправлять в бизнес-школу.

        Но Консультанты нужны и очень в следующих ситуациях:
        • при попытке разобраться с передовой технологией, у которой ещё нет массового применения (думаю отсюда и вырос весь консалтинговый бизнес, когда на деревне есть только один Мастер).
        • когда нужно освоить какие-то специфические инструменты и сделать это быстро.
        +4
        Раздражает уравниловка всех программистов, заставляющая этих людей тратить невероятные совместные усилия на создание какого-то эталона, подходящего всем, что заведомо бесполезно.

        В копилку печальных примеров можно добавить непреходящую массу «форумов программистов» (где сидят исключительно веб-программисты), «чатиков программистов» (где сидят исключительно веб-программисты), «подкастов про программирование» (где говорят только о… да, угадали, веб-программировании; или только о серверах и хайлоаде). У этих людей и в коде кнопка называется Control, мотоцикл называется Vehicle, яблоко называется Fruit, а человек называется «LivingBeing»?

        Эта статья — луч света в темном царстве. Нужно чаще поднимать эту тему. Если о ней не говорить, то она сама не рассосется.
          0
          Ребята, хабровчане, обращаюсь к тем из вас, кому статья не понравилась и вы даже хотите или уже заминусовали мне карму.

          Оставьте комментарий, что вам так сильно не понравилось, что вы решили не ограничиваться только минусом к статье.
            0

            Для меня поводом для минуса явились следующие факторы:


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

            Естественно, всё это субъективно.

              0
              Благодарю вас и Rampages за аргументированную обратную связь.

              Статья получилась полярной, по состоянию на 11:00 20.11.16, 31% голосующих читателей оценили её отрицательно, а некоторые снабдили и «подзатыльником», но не сопроводили комментарием.
              Это указывает на то, что есть что обсудить и это точно не стоит игнорировать, чтобы не получить в будущем.

              Вариант

              — За что???
              — Было бы за что вообще убил бы!

              Рассматриваю в последнюю очередь, поэтому и попросил высказаться.

              Про картинки

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

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

              Про ничего полезного и отняла ощутимое время

              Если я верно понимаю, то Вы прочитав введение и отправившись под кат за что-то зацепились, за какую-то свою потребность.

              Что у вас за ситуация-проблема, которая побудила вас отправиться под кат?

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

              0
              С картинками согласен. Martian явно не вписывается. Если бы было одно изображение из Martian'a, то возможно не придал бы этому значения, но когда количество изображений превысило количество в две штуки – по какой-то причине начало вызывать раздражение, а то что они еще и под спойлерами…

              Еще раздражает оформление цитат и нумерованные/ненумерованные списки… как-то между ними свободного места нету, у меня все это смешивается на экране, отступы бы между ними или цитаты оформить как-то по другому.

              Идею понял, но преподнесли вы её не совсем «красиво», возможно для кого-то идея была вполне очевидна и ваша статья для них была просто ни о чем.
              +3
              В бытность пользователями, мы с друзьями смеялись над тупыми инструкциями к ПО.
              В бытность работы в IT-сфере, столкнулись, с тем что пользователь получил от нас ПО на дисках, и в момент когда на экране было написано «вставьте 2-ой диск», пользователь открыл лоток привода и положил второй диск поверх первого! т.к. нигде не было написано о том. что нужно вынуть первый диск, перед тем как вставлять второй, хотя может и было где-то в инструкции к приводу (что-то типо «не вставлять больше одного диска»)… но суть не в этом, а в том что со своей колокольни многое выглядит несуразно и не к месту, а когда приходится сталкиваться с этим в жизни, то уже не до шуток…

              Понимание штука такая, что если бы люди понимали друг друга, то никаких войн и конфликтов интересов в нашей истории не было бы. Практически все конфликты людей происходят от недостатка взаимопонимания. Наверное в будущем с помощью интернета можно будет синхронизировать мозги и понимать друг друга лучше, а возможно это поставить крест на нашей индивидуальности и цивилизации.
                0
                Похоже надо писать 3 инструкции для пользователей:
                • Краткая инструкция:
                  1. Установите ПО
                • Обычная инструкция:
                  1. Вставьте диск с ПО в привод
                  2. В проводнике выберите диск с ПО
                  3. Дважды кликните на файл setup.exe
                • Подробная инструкция:
                  1. Убедитесь, что компьютер включен
                  2. ...

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

              Самое читаемое