Как кодировать в очень сжатые сроки?

40

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

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

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

У меня есть несколько вопросов:

  1. В течение трех лет весь код, который я написал, является просто идеальным кодом сценария использования (поэтому он легко ломается). Он плохо спроектирован и не имеет никаких юнит-тестов. У меня много проблем из-за этого факта. Поэтому я хочу знать, возможно ли написать код, который работает, когда у проекта очень плотный график?
  2. Как я могу написать лучший код за то же время?
  3. Как я могу очистить свой разум и не беспокоиться о работе, когда ложусь спать?
анонимное
источник
9
Предложение? Самый очевидный и ты это знаешь !!!
Адитья Р
25
Выключи свой телефон ночью. Установите ограничения и придерживайтесь их. Здесь у вас есть две разные проблемы, первая из них - ваша компания не уважает, что у сотрудников тоже есть жизнь.
Тим Пост
34
бросить работу, получить новую. Кроме того, узнайте, как выполнить юнит-тестирование
mauris,
18
Сроки - это проблема менеджмента. Если сроки всегда такие сжатые, то им нужно работать над предоставлением более точных оценок, а не работать, как собака, чтобы выполнить то, что, по их мнению , потребуется.
Стивен Эверс
4
Я уверен, что если бы EA Games наняла SnOrfus, он бы это сделал.
Берин Лорич

Ответы:

30

Запрет телефонных звонков

Если ваши пользователи находятся по всему миру, они наверняка не могут ожидать, что вы возьмете трубку, когда в 4 часа утра вы будете в постели. Я бы запретил телефонные звонки и переключился бы на другие средства связи, которые могут лучше служить этому сценарию (электронная почта или некоторая БД отслеживания проблем). Но даже в офисе делают график доступности телефона по расписанию. В противном случае вы ничего не сможете сделать, пока находитесь в офисе.

Это даст вам ценный сон и отдых.

Сжатые сроки

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

Порядок из хаоса

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

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

Что, если

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

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

  1. не поднимай
  2. Получите ответ от вашего друга, сообщив им о неправильном номере или о том, что первоначальный пользователь этого номера больше не использует его.

Самая важная вещь

Не разрабатывайте новые функции, пока не решите существующие проблемы. По крайней мере, высокий и средний приоритет.

Роберт Коритник
источник
6
Не становитесь пассивно агрессивными с пользователями. Если компания не ожидает, что вы ответите на звонок в нерабочее время, не делайте этого. Для дежурного должен быть другой номер.
JeffO
@ Джефф О: Я полностью согласен. Но так как это продолжается в течение 3 лет, кажется, ожидается ответить на звонки в эти нечеловеческие часы.
Роберт Коритник
1
Я хотел бы предложить, чтобы вы сказали им заранее, а не подстрекать. Не так уж и много, чтобы люди лучше понимали свой собственный язык, потому что они не хотят говорить с вами, потому что считают вас неприятными.
Рей Миясака
3
"перезвоните им, когда они спят" "Люди обычно лучше понимают свой собственный язык" хорошо;)
Achu
2
Честно говоря, если он доходит до сценария «Что, если», лучший вариант - просто найти место для работы. Нездорово (для большинства) работать непрерывно по 12 часов в сутки, а еще хуже, когда вы по вызову. Конечно, он должен сделать все возможное, чтобы решить проблему, но если ничего не помогает, уходите. Эта ситуация не является устойчивой.
Дэн Лайонс
14

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

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

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

Продажа очков за разговор с вашим боссом:

  • Автоматизированные тесты могут остановить или значительно уменьшить регрессии
  • Ориентация на стабильность означает, что у пользователей будет меньше задержек / перерывов в работе
  • Больше никаких звонков в полночь означает, что они не платят сверхурочно
  • Отсутствие звонков в полночь означает, что разработчики не будут перегорать так быстро

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

Стивен Эверс
источник
А еще лучше, дайте пейджер менеджеру (менеджерам), который втянул вас в этот беспорядок ... или случайно уроните его в ведро с соленой водой.
Стивен К
2
Если этот проект хаотично продолжается в течение трех лет, я полагаю, что фаза технического отдела продлится несколько месяцев. Сначала они должны прекратить разработку новых функций, чтобы решить 20% наиболее проблемных вопросов (поскольку, как мы надеемся, 80% из них редко сталкиваются), а затем начать с рефакторинга. Когда это будет сделано, вы можете начать касаться других 80%. Но не начинайте разрабатывать новые функции, пока не решите все текущие проблемы. Зачем? Чем раньше вы исправите ошибку, тем дешевле она будет решена. Хотя в вашем случае ничто не кажется дешевым больше.
Роберт Коритник
@ Роберт Коритник: Абсолютно. +1
Стивен Эверс
13

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

Узнайте, как сказать нет

Скажите «нет» всем необоснованным ожиданиям, о которых вы уже знаете, что вам следует отказаться. Вы знаете, что они есть. Это очевидно. Если вы сейчас не можете сказать «нет», найдите работу, где сможете. Умные работодатели найдут этот навык желательным.

Рейн Хенрикс
источник
1
Больше всего, это умение требуется. Отличный ответ!
Джо Z
8

Начните с понимания того, что ваш проект потерпит неудачу, если ничего не изменится. Это самый важный шаг к тому, что вам нужно сделать. Разработчик не может выдержать 12 часов в день усилий и быть в состоянии производить полезный код. Вы попадете в точку, где вы создаете глупые ошибки и фактически теряете прогресс, потому что вы должны начинать каждый день с исправления того, что вы делали накануне. Похоже, вы уже там.

Есть две основные проблемы, которые необходимо решить, прежде чем вы снова обретете здравомыслие:

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

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

Предполагая, что руководство услышит вашу просьбу, вы хотите предпринять следующие действия:

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

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

Берин Лорич
источник
6

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

Некоторые ключевые показатели:

  • То, что кажется нереальным графиком.
    • Я предполагаю плохое понимание правильных методов развития со стороны руководства.
    • Я предполагаю отсутствие понимания или поддержки со стороны руководства.
  • Работаем 12 часов в день.
  • Высокий уровень стресса.
  • Недостаток сна.
  • Беспокойство.
  • Плохое внимание к дизайну и качеству кода.
  • Отсутствие модульной системы безопасности.

Я хочу знать, возможно ли написать код, который работает, когда у проекта очень плотный график?

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

Как я могу написать лучший код за то же время?

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

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

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

Я также приветствую любые предложения.

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

  • Идите к врачу и обсудите ваши симптомы. Сообщите врачу, если вы устали, чувствуете ли вы депрессию или беспокойство большую часть времени, часто ли вы болеете простудой и гриппом, и как вы себя чувствуете физически. Если ваш врач разрешен, вам, скорее всего, предложат анти-тревожные или даже депрессивные лекарства. Даже если вы не хотите, оставьте гордость за дверью и примите их, как это предписано. Они действительно помогают, и позволяют вам найти силы, чтобы справиться со всем, что грядет.
  • Ищите хорошего психолога, чтобы обсудить вашу проблему в том виде, в каком вы ее знаете, и которая может помочь вам выяснить, что вы думаете обо всем этом, и помочь вам разработать стратегии для решения этой проблемы. Кое-что из того, что вас просят сделать, может показаться бессмысленным или немного бесполезным. Сделайте это в любом случае, потому что, опять же, это действительно помогает, особенно в том, чтобы научить вас, как очищать свой разум.
  • Избегайте снотворных, если они действительно вам не нужны, так как вы можете стать зависимыми от них и усугубить проблемы со сном. Лично я беру их только тогда, когда я не могу выспаться, в котором я нуждаюсь после выходных, и это обычно, когда у меня были ленивые и невыполненные выходные.
  • Посмотрите на изменение вашей диеты. Серьезно откажитесь от кофеина, так как он только усиливает уровень тревоги. Уменьшите количество углеводов и соблюдайте баланс в рационе. Я имею в виду употребление большего количества натуральных фруктов и овощей, уменьшение количества потребляемого вами красного мяса и уменьшение количества жиров и масел. Откажитесь от безалкогольных напитков и ограничьте себя одной чашкой кофе в день, если вы не можете сдаться. Диета имеет решающее значение, помогая вам бороться с усталостью. Кроме того, ешьте свой последний прием пищи раньше, чтобы не ложиться спать на полный желудок.
  • Упражнения каждый день. Получите напряженную тренировку, по крайней мере, один раз в неделю минимум, и ходите или катайтесь на велосипеде, по крайней мере, 30 минут каждый день, до такой степени, чтобы набрать хотя бы легкий пот. Это поможет вам утомить вас физически, что поможет вам уснуть и утомиться.
  • Измените свои привычки во сне. Старайтесь рано вставать на работу, поэтому вам нужно ложиться спать раньше, чем вы, возможно, захотите. Если вы не можете спать, отдыхайте в плохо освещенной комнате и читайте что-нибудь скучное, и не беспокойтесь, если вы не сможете сразу заснуть.

Теперь, когда я прошел через все связанные с медициной вещи, давайте посмотрим, что вы можете сделать с вашей работой:

  • Кто-то предложил использовать технику Помадоро. Это также известно как время-бокс, и я думаю, что это хорошая идея. Вы в основном концентрируетесь в течение 20-25 минут, затем делаете небольшой перерыв. Я предлагаю вам встать и передвигаться в течение 3-5 минут и смотреть вдаль, чтобы отдохнуть. Постарайтесь не думать о своих задачах в течение этого времени. Выпей, сходи в ванную или просто переместись в свой офис на короткое время.
  • В зависимости от ваших отношений с начальником найдите способ встретиться и обсудить ваши опасения относительно того, как график работы влияет на ваше здоровье. Сообщите ему, что вы не хотите рисковать разочарованием клиента компании, и что вы хотели бы попытаться разработать стратегию, которая может гарантировать, что вы можете продолжать выполнять свою работу, но это означает, что вам нужно уделять время и решению ваших проблем со здоровьем. Однако используйте это как последнее средство, так как было бы лучше объяснить ложную экономику, которая здесь работает, такую ​​как:
    • Утомленные работники в конечном итоге получают значительно более низкую эффективность, в то время как утомленные работники имеют возможность делать больше за более короткий промежуток времени, и я постараюсь получить некоторые цифры и исследования, которые вы можете использовать, чтобы поддержать вас. С хорошим боссом тебе это даже не нужно. Следующие статьи могут быть вам полезны : статья 1 , статья 2 , статья 3
    • Пропуск тестирования и внимания к некоторым мелочам обойдется вам позже. Посмотрите на концепцию технического долга в качестве отправной точки.
  • Попробуйте сократить рабочее время до 8-9 часов в день.
  • Забронируй отпуск и уйди на некоторое время в тихое место. Даже если все, что вы делаете, это садитесь на машину в лес и отдыхаете в течение недели. Серьезно, ничего не делайте, чтобы перезарядить батареи.

С точки зрения фактического программирования связанных вещей:

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

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

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

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

S.Robins
источник
4

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

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

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

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

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

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

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

BillThor
источник
4

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

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


источник
2

Отслеживайте все, что вы делаете

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

Попробуй изменить вещи

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

Приготовьтесь к тому, что пора уходить

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

Эми Паттерсон
источник
Я должен не согласиться с частью «отслеживать все», потому что, если эти данные будут переданы руководству, они вполне могут быть крайне критичны по отношению к малейшему несовершенству в том, как сотрудник управляет временем. Это усугубит стресс сотрудника.
Acumenus
2

Ради бога, где твой руководитель проекта?

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

Вы делаете творческую работу для жизни. Если между вами и вашими клиентами / пользователями нет барьера, как вы можете эффективно сосредоточиться на своем развитии?

Хороший PM может быть хорошим для многих вещей ...

1. Чтобы разыграть карту «Высшая сила»:

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

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

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

«Переговоры об изменениях вне спецификации выше моей зарплаты ...»

Это вежливый способ сказать, я не даю как ***.

Следуйте за этим, надавив на них «Scope Creep Dog».

«Если вы хотите внести изменения в спецификацию, вам нужно связаться с моим личным менеджером»

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

2. Управление ожиданиями 101

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

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

"Эта услуга записана в контракте?"

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

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

"Является ли работа, которую меня просят сделать, равной моей зарплате?"

То есть, они платят вам 60 тысяч в год, чтобы тратить 50% вашего времени на техническую поддержку по телефону, что значительно ниже для оплачиваемой должности. Это опасная тема для обсуждения, поэтому вам нужен PM, которому вы можете доверять, чтобы обосновать ваши интересы. Аргумент, который вы должны сделать ему ...

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

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

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

3. Каждый мог иногда использовать чирлидера

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

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


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

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

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

Эван Плейс
источник
1

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

Вернуться в школу сейчас

  1. Rapid-Development-Taming-Software-Расписания *
  2. Мифический человеко-месяц *

*Должны прочитать

Имран Омар Бухш
источник
2
Следующий вопрос - как
писать
1
@ Бонда - чувак, мы должны были уже прочитать эту книгу до начала проекта. Если нет, мы должны понять, что непрерывное обучение является частью нашей разработки программного обеспечения. Мы не должны думать о том, что чтение не является частью нашей повседневной работы. Мы уже должны были читать в течение некоторого времени ежедневно. Я думаю, что право разработчика программного обеспечения тратить часть своего времени на чтение даже в рабочее время. Я лично видел, что даже чтение всего 5 страниц в день оказывает огромное огромное влияние. Начните читать сейчас, это поможет вам сэкономить время в вашем следующем проекте.
Имран Омар Бухш
Абсолютно с тобой согласен человек, читаю каждый день. Но я не работаю (что, я полагаю, означает код в вопросе выше) 12 часов в день. Если бы я это сделал, я бы точно не читал никаких книг. В жизни есть нечто большее, чем работа.
Венцислав Райков
@ Связи - правда, но не останется много жизни, если мы не будем работать должным образом. В моей компании я работаю 5 часов в день. Мы сделали ползущий двигатель примерно через 1,5 года. У нас более 1 миллиона посетителей в месяц.
Имран Омар Бухш
1

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

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

Рей Миясака
источник
1

Прямо сейчас, что вы можете сделать, это

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

Это будет означать, что по крайней мере то, что вы делаете с сегодняшнего дня, было одобрено ДВУМЯ людьми, надеющимися улучшить эти кусочки кода.

Что еще можно сделать, зависит от руководства. Вы можете показать им этот вопрос с ответами!


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

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

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

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

Дэн Рэй
источник
0

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

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

Замочить
источник