Статьи

Pro Developer — выбрасывать деньги в окно

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

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

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

Корпоративные отходы

На самом деле, сочетание проектных катастроф и нестабильного или кризисного управления часто гарантирует, что мы не поставляем программное обеспечение. Разговаривая со старым другом и коллегой-программистом несколько недель назад, мы попытались указать на это число. Мы придумали, что из всех проектов, над которыми мы работали, только 10% кода, который мы написали, увидели свет, когда были выпущены в качестве продукта для использования клиентами, будь то термоусадочные продукты. или внутренние ИТ-системы. Это означает, что 90% — да, вы правильно меня поняли, 90% — всех проектов, над которыми мы работали, умерли преждевременно и никогда не видели реализации на местах. Иногда это старая добрая катастрофа проекта (я не думаю, что мне нужно определять этот термин с этой толпой). В других случаях это просто капризное принятие решений, постоянно меняющее направление, чтобы пойти с тем, что модно или политически целесообразно. И, конечно, всегда есть антикризисное управление, когда проект никогда не завершается, потому что он приостановлен, и мы можем быть направлены на то, чтобы потушить другой огонь, только чтобы снять это усилие для другого.

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

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

Помните о человеческом факторе

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

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

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

У всех нас был опыт спорить с нашим начальством, пока мы не посеяли, пытаясь объяснить, почему техническое руководство, которое они хотят выбрать, является либо абсолютно бессмысленным, либо катастрофой, ожидающей случиться. Если у вас не было разговора вслух, у вас наверняка было в голове. В любом случае, конечный результат слишком часто одинаков. Мы либо покровительствовали, потому что «мы не понимаем общую картину», либо нам просто приказали сесть и заткнуться. И так, учитывая, что мы работаем для других, в конце концов, наша работа — делать то, что нам говорят. Катастрофа наступает, проект умирает или уносится под ковер, и вот мы снова в конференц-зале, и у нас точно такой же аргумент в отношении еще одного обреченного проекта. Я часто получаю видения Летучего Голландца.

Что, если программисты были ответственны?

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

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

Что вы говорите, как мы можем не иметь никакого доверия, когда мы можем перечислить бедствие за бедствием в нашей собственной защите? Просто. Эти катастрофы, все эти провальные проекты, которые вы можете перечислить в любой момент? Все они были по нашей вине. Да, вы поняли меня правильно. С точки зрения руководства, причина, по которой они потерпели неудачу, заключалась не в том, что задача была нелогичной или невозможной. Это не удалось, потому что программисты просто не сделали этого. Где еще может быть вина? Вы, конечно, не ожидаете, что руководство будет принимать тепло, не так ли? Как вы думаете, они должны быть менеджерами в первую очередь?

правдоподобие

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

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

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

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

Новый набор приоритетов

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

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

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

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

Не предлагайте свои услуги в свободное время. Вы получите преимущество. Вместо этого просто зайдите на один день и скажите: «Кстати, я слышал, как вы говорили о том, что ваш начальник действительно хотел от вас более подробных отчетов, поэтому я выбил один из них в свободное время, который действительно должен произвести на него впечатление. Вот пример распечатки Должен бежать, есть, чем заняться, увидимся позже … «Если вы будете воспринимать, предвидеть и тихо удовлетворять потребности, не спрашивая вас, в обычном и деловом порядке, вы будете замечены. Он может ничего не говорить, но поверьте мне, это произойдет.

Инкрементные успехи

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

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

Подход один:

  1. Сделал глубокий вдох и поднял вес

Подход второй:

  1. Поставить будильник
  2. Ложился спать в разумный час
  3. Встал вовремя
  4. Принял душ
  5. Одет в соответствующую одежду
  6. Ходил в тренажерный зал
  7. Набор машины для жима 300 фунтов
  8. Откинувшись на скамейке
  9. Схватил вес бар
  10. Сделал глубокий вдох
  11. ориентированные
  12. Задействованы мышцы верхней части тела
  13. Поднял вес до полного выдвижения руки
  14. Сделал глубокий вдох
  15. Снижение веса в положение покоя
  16. Поднялся со скамейки, чтобы завершить упражнение

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

реклама

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

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

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

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

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

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

Наслаждаясь преимуществами

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

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

Некоторое время спустя, после окончания собрания, вы собираете свои мысли относительно всех полезных предложений, сделанных командой. Составьте очень, очень, маленькую и простую электронную таблицу или документ, не более одной страницы, в котором подчеркиваются предложения и преимущества. Резюмируйте, резюмируйте, резюмируйте! Позже в тот же день или на следующий день случайно приходите к менеджеру и отправляйте еще одну распечатку «кстати». Уже подумав о том, как преимущества, которые вы суммировали, могут сыграть на личную выгоду вашего менеджера, кратко упомяните вещи в этом свете. «Я собирался пойти и заняться чем-то другим, но мне пришло в голову, что высказанные Джо и Фредом моменты имели интересный побочный эффект (обратите внимание, что вы не принимаете во внимание чужую идею, и вы также тонко укрепление доверия к вашим товарищам по команде.) Если бы мы дали им шанс, это действительно помогло бы вам достичь цели, которой вы пытались достичь. В любом случае, вот пара замечаний о том, как это поможет вам, я думал, что это было что-то, что ты оценил бы. Должен бежать … «

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

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

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