Подтвердить что ты не робот

Как вы оправдываете работу по Рефакторингу своему боссу с ущемлением пенни?

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

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

"Очистите что?"

"Мой код - это свинарник!"

"Вы имеете в виду, что исправление ошибок исправлено?"

"Не совсем, его больше похоже..."

"Вы собираетесь запустить его быстрее?"

"Возможно, но это не так".

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

Я читал книгу Матина Фаулера, но я не уверен, что согласен с его советом по этому вопросу:

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

Оба этих метода извиваются из-за необходимости общаться с вашим менеджером.

Что вы говорите своему боссу?

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

Говорите на языке, который он может понять.

Рефакторинг оплачивает задолженность по дизайну.

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

Ответ 3

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

Ответ 4

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

lol @people down modding/marking offensive.

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

Ответ 5

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

Это предполагает, что вы рефакторинг по какой-то причине, а не для теневого программиста.

Ответ 6

Рефакторинг должен делать все время... так что вам не нужно его оправдывать.

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

Рефакторинг должен быть моментом... или если у вас нет поддержки инструмента, минут.

Ответ 7

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

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

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

Ответ 8

Мне нравится ответ, данный в "Рефакторинге" Мартина Фаулера. Скажите своему боссу, что вы собираетесь разрабатывать программное обеспечение как можно быстрее. Бывает, что в большинстве случаев самым быстрым способом разработки программного обеспечения является рефакторинг, когда вы идете.

Другая вещь, чтобы рассказать об этом вашему боссу, - это сокращение затрат, чтобы улучшить будущее.

Ответ 9

Меньше денег теперь для меня для рефакторинга...

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

Ответ 10

Иногда, просто пора получить новую работу. Есть certian poeple, которые просто хотят, чтобы вы "сделали это". Если вы когда-либо были в одной из этих ситуаций, и я был там, тогда просто уходите.

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

Итак, удачи с вашим боссом. Надеюсь, он или она разумно.

Ответ 11

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

Он в течение нескольких лет сохранял мою задницу.

Ответ 12

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

Ответ 13

Редко найти босса, который даст вам время для рефакторинга... просто сделайте это, когда идете.

Ответ 14

На мой взгляд, самым простым случаем для рефакторинга является устранение чрезмерно сложного кода. Измерьте циклическую сложность McCabe рассматриваемого исходного кода (Source Monitor - отличный инструмент для такой проблемы). Исходный код с высокой циклической сложностью имеет сильные корреляционные дефекты и плохие исправления. Это просто означает, что сложный код сложнее исправить и, скорее всего, будет иметь плохие исправления. То, что это означает для менеджера, заключается в том, что качество продукта, вероятно, будет хуже, а ошибки сложнее исправить, а график для проекта в конечном итоге хуже. Тем не менее, при реорганизации сложности вы улучшаете прозрачность кода, уменьшаете вероятность возникновения неясных/сложных ошибок и упрощаете его поддержку (например, из-за этого программа-программист может иметь большую область обслуживания).

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

Ответ 15

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

Установите это доверие или замените босса или замените dev.

Ответ 16

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

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

Ответ 17

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

Когда деловые ребята получают это, если они умны, они будут поощрять вас выполнять постоянный процесс factory.

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

Ответ 18

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