[Перевод] Выдуманные проблемы, источник некачественного софта

Программа перевода самородков Facebook прямая трансляция подкаст

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

Я думаю, что главная из них — первопричина почти всего некачественного программного обеспечения:вымышленная проблема.

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

Приложение для подкастов

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

Ваше маленькое веб-приложение может иметь следующие требования:

  • Северная Америка может быстро загружать контент, транслировать и скачивать подкасты.
  • 99,99% пользователей не столкнутся с вылетом приложения в первые 15 минут, а лучше, конечно, никогда.
  • Хорошая интеграция с Google AdWords и другими рекламодателями, если у вас есть время.
  • Динамически связывайтесь с последними продуктами на My Zazzle и, если возможно, предоставляйте пользователям рекомендации на основе просмотренных ими эпизодов.
  • Поскольку я делаю прямые трансляции на Facebook, мне нужно интегрировать модуль прямых трансляций Facebook. Было бы еще лучше, если бы вы могли создать собственную систему потокового вещания, не полагаясь на Facebook.

Вы передаете эти требования подрядчику и беседуете. Два месяца спустя вам показывают MVP, и вы злитесь, чувствуете, что потратили 15 000 долларов на кусок хлама, и вы просто хотите вернуть свои деньги.

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

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

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

  • Современные рекомендательные системы.
  • Алгоритм ретрансляции вашего видео или прямой трансляции (для вышеупомянутой рекомендательной системы).
  • Ваша домашняя страница может быть загружена за 200 мс в любой точке мира.
  • Создайте протокол потоковой передачи и клиент практически с нуля, и вы сможете в любой момент переключиться с Facebook Live.
  • Сервисы, которые позволяют легко интегрироваться с 20+ рекламными площадками.

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

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

Это механизм преодоления

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

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

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

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

Мы должны понимать, что эта проблема не уникальна для разработчиков. Менеджмент, продажи, HR, консультанты, судебная экспертиза и даже бухгалтерия имеют свои уникальные способы создания выдуманных проблем. Они активнее участвуют в принятии решений, когда посещают встречи, которые редко касаются их самих, чрезмерно подчеркивая вопросы, связанные с их ролями (например, юридические: наше приложение для дневного ухода за собаками должно быть доступно с 11 01 % в соответствии с GDPR, мы не можем создавать юридический прецедент) . Хотя в этом не было необходимости, они наняли целую команду для решения проблемы, и это показало, что они важны для проекта и что они практичны.

Люди живы, проблемы мертвы, поэтому умные люди всегда могут найтиспособ справиться.

Дизайн, ориентированный на обмен сообщениями

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

Я иногда беру аутсорсинг. Раньше аутсорсинговые клиенты не могли выбирать сами, а это означало, что я мог даже столкнуться со случаями ДРИ (раздвоение личности) и СДВГ (синдром гиперактивности) на работе. Я отправил и получил более 100 электронных писем, просто обсуждающих тривиальные детали MVP, у меня была ситуация, когда кто-то изменил каждое требование в проекте за неделю, виртуальная валюта?» или «Можем ли мы добавить сюда искусственный интеллект?»

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

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

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

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

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

Сверхсложность и естественный отбор

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

У людей, которых воспитывают, отбирают и компенсируют за поиск сложных решений, нет стимула внедрять упрощенные.   —   Талеб

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

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

Технические требования к цифровому хранению и передаче невысоки. Индексация всего Интернета и предоставление сомнительных результатов поиска в течение 2 секунд — непростая задача.Лишь немногие умные люди догадываются, как решить эту проблему..

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

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

Таким образом, этос банковской индустрии не из-за его эффективности, а из-за инерции. Эта инерция проявляется в том, что мы пытаемся решить выдуманные проблемы, чтобы избежать решения реальных проблем. Если указанная реальная проблема - это угроза рабочим местам других людей, которая может привести к вашему увольнению, даже из особенно неприятного "учреждения", такого как Goldman Sachs,Отправил письмо какому-то офицеру ФБР и испортил тебе жизнь.

It is difficult to get a man to understand something, when his salary depends upon his not understanding it! — Аптон Синклер

Руководителей высшего звена не волнует, что их высшее руководство тратит 90% своего времени на «встречи с клиентами», которые стоят миллионы долларов на «встречах» на тропических островах и «прочее вознаграждение». Потому что топ-менеджеры закрывают глаза на собственную коррупцию.

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

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

Линейных руководителей не волнует, что руководители технических групп и архитекторы говорят об «интерфейсе между системами следующего поколения, использующими JRPC, и микросервисами, использующими Hibernate и Spring», а не об оптимизации множества запросов Mysql, которые занимают много времени. Руководители групп по-прежнему приходят в офис каждые несколько недель, потому что делают вид, что не знают, что их босс даже не умеет пользоваться Excel.

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

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

Но всем нужно продолжать решать вымышленные проблемы, потому что, как только они остановятся и сосредоточатся на реальной проблеме, они могут понять, что вся система рушится. Они могут найти Дебру, сидящую в этом углу и смотрящую на графики мониторинга во внутреннем компьютерном зале в течение 10 лет, несмотря на то, что компания перешла на AWS 5 лет назад. Они могут понять, что 99% их работы состоит в том, чтобы продолжать чужую работу... Этот факт трудно принять большинству людей, поэтому я говорю, что они, должно быть, нашли способРешение.

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


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