Допустим, вы работаете в компании и разрабатываете программное обеспечение для них. Вы не представляете себе общую картину или, может быть, небольшую. У вас есть задачи, назначенные вам через систему отслеживания проблем. Вам дают задания, вы заставляете их работать так, как их описывает задача, вы отправляете их обратно. Как добавление 2 целых чисел:
function add(a,b){return a + b;}
Но позже, когда проект продвигается вперед, вы заметите, что по мере того, как он add
становится более сложным, вы понимаете, что ему должна была быть нужна какая-то форма архитектуры, а не просто функция, которая добавляет параметры и возвращает значение. Однако вы этого не знали. Во-первых, все, что им было нужно, было так просто add
. Вы не ожидали, что дополнение станет таким сложным.
Проект продвигается с большим количеством функций, которые вы не ожидали во-первых. И, наконец, вы продолжаете накапливать хаки и слой за слоем функций, чтобы избежать взлома или перезаписи существующего кода.
Как вы справляетесь с этими ситуациями? Как вы боретесь с техническим долгом как «самый низкий разработчик»?
Разъяснение:
Ты - "исполнитель", самый низкий в иерархии.
Вы видите проблему, но не имеете права говорить с этим вопросом.
Я не определяю технические долги и не ищу инструменты.
По поводу третьего «дубликата»
- Рефакторинг и перезапись - вы заблокированы для ваших задач. Вам не платят, чтобы сделать дополнительно.
- Обзор архитектуры - Вы знаете общую систему, но понятия не имеете об архитектуре.
- Замораживание кода - не ваш звонок. Ты не менеджер.
- Модуляризация - без понятия архитектуры. Модули меняются при изменении требований.
- Автоматизированные тесты - ни один не существует.
Ответы:
Каждый раз, когда вы замечаете что-то подобное, введите новый билет в вашу систему отслеживания проблем.
Возьмите за привычку использовать систему отслеживания проблем в качестве основного инструмента для передачи подобных вещей, потому что оттуда будет легко выбирать, оценивать и расставлять приоритеты для ваших старших коллег / руководителя / менеджера / того, кто отвечает за отслеживание проблем в вашем проекте ,
Используйте правильный инструмент для работы. Я делаю это всегда и настоятельно рекомендую вам сделать то же самое.
В качестве примера, вот билет, который я создал около месяца назад. По завершении конкретной функции я обнаружил, что код стал значительно сложнее, чем раньше, но я не могу это исправить в сроки, указанные для реализации функции.
(Названия функций, тикетов и код, используемые в реальном трекере, скрыты, но текст копируется как есть).
FWIW мой совет применяется независимо от того, какой вы "уровень".
Я использовал его на вашем текущем («низшем») уровне, и я использую его сейчас, когда мой уровень довольно далек от «самого низкого», и у меня есть удовлетворительное «сказать», как вы это называете, и я собираюсь использовать его всегда несмотря ни на что.
Подумайте об этом, без уровня, независимо от того, сколько у вас авторитета, просто не может быть лучшего пути.
Если вы «говорите», эй, у нас проблема , это только грохот воздуха. И даже если ваш начальник / руководитель соглашается и говорит, что вы правы, у нас есть проблема , это ничего не меняет - это снова только гремит воздух, и больше ничего не может быть.
Используйте правильный инструмент для работы. Для работы, которую вы описываете, средство отслеживания проблем - это как раз то, что вам нужно .
Вы замечаете проблему, вводите ее в систему, предназначенную для их отслеживания, и она позаботится обо всем остальном наилучшим образом - просто потому, что она предназначена для этого :
Какими бы другими средствами вы не хотели бы общаться, наличие билета в трекере только облегчит вам задачу.
Даже если вы предпочитаете греметь в эфире , высказывание «Я бы хотел обсудить TICKET-54321 ...» делает более прочную отправную точку, чем «Послушайте, я бы хотел поговорить о некотором фрагменте кода, с которым я имел дело некоторое время назад». ... »И вы можете безопасно передавать ссылки на тикет по почте: даже если почта будет потеряна, проблема все равно останется в трекере со всеми подробностями, о которых вы хотели рассказать.
источник
Что меня расстраивает из-за вашего сценария, так это то, что вы написали в заголовке и несколько раз в тексте вопроса:
Вы самый низкий разработчик в цепочке
Почему этот момент так важен? Ну, во-первых, и с чисто технической точки зрения вы, безусловно, правы. Вас нанимают как того, кого вы называете «разработчиком» вещей, рабочей пчелой, которая действует по заданным командам.
Но даже если вы самый низкий разработчик по рангу, это все же не совсем верно. Ключевым моментом здесь является осознание того, что вы воспринимаете себя как самого низкого разработчика. Вы когда-нибудь пытались преодолеть это самовосприятие и фактически взять на себя ответственность за что-то ?
Возьми! Не ждите, пока кто-то не сделает вас ответственным.
Как правило, все наоборот: вам платят больше, а ваше мнение уважают больше, когда вы показываете, что стоите денег . Это «делай раньше, чем есть», а не наоборот.
Что я ожидаю от людей в моей команде, так это: чувство ответственности за проект или продукт, который мы пытаемся создать, и за все процессы, связанные с этими усилиями. Всякий раз, когда кто-то в моей команде производит на меня впечатление, принимая на себя ответственность, например, предлагая улучшения или даже лучше начинать улучшать вещи самостоятельно, это люди, которые получат повышение по службе.
Иными словами: никто не продвигает рабочих пчел, людей, пассивно ожидающих выполнения порученных им задач, и им не хватает даже малейшего мигания инициативы « потому что им за это не платят », и, наконец, жалуясь, что у них никогда не было шанса.
Конечно, все это опять-таки зависит от культуры вашей компании, от того, к чему относится Джоэл в «Двух историях», связанных Артуром. Если менеджеры компании действительно настолько глупы, чтобы блокировать прогресс своих людей, то коэффициент флуктуации, вероятно, уже очень высок, и, возможно, пришло время сделать выводы из этого. Но если это не так, настоящая проблема может быть внутри вас.
источник
Вы профессионал. Ваш работодатель нанял вас, чтобы быть профессионалом. Поэтому относитесь к своим проблемам так же, как вы бы хотели, чтобы нанятые вами специалисты относились к их профессиональному мнению . В частности, вы ожидаете, что другие специалисты будут вносить необходимые оптимизации и исправления на этом пути, при условии, что эти оптимизации не увеличат стоимость неожиданно.
Например, предположим, вы отвезли свою машину к механику, чтобы заменить лампу. Механик замечает четыре вещи:
Каждый из этих сценариев, и я уверен, что другие, имеют параллели в разработке программного обеспечения - особенно если вы считаете себя профессионалом любого уровня . Как профессионал, за очень немногими исключениями, ваша работа заключается в достижении конечной цели улучшения продукта особым образом в соответствии с вашим профессиональным пониманием .
источник
Вы делаете это так же, как клерк в адвокатской конторе борется с неэтичным поведением, работник фаст-фуда борется с антисанитарным поведением, или сотрудник правоохранительных органов борется с коррупцией в полиции.
В приведенном вами примере с
add
функцией, которая потерпела полный спад, потратьте несколько минут и наметьте план того, как это можно улучшить. Пошлите это кому бы вы ни нуждались в одобрении, чтобы осуществить это, и двигаться дальше.Предполагая, что ваше предприятие управляется чрезвычайно компетентными людьми и правильно структурировано, либо ваша задача будет перенаправлена к правильному разработчику системы для принятия решения, либо вам будет предоставлена свободная возможность для реализации вашего предложения. Будучи младшим разработчиком, я бы больше беспокоился о том, чтобы узнать, как работает ваше предприятие, чем о технических долгах, и если вы знаете первое, то как справиться со вторым должно быть очевидно.
источник
Я никогда не слышал об организации, которая не хотела бы, чтобы ее сотрудники участвовали. Вы говорите, что вам платят только за выполнение заданий. Я искренне сомневаюсь, что вы имеете в виду правильные задачи. Потому что вам платят за написание хорошего программного обеспечения.
Возьми на себя ответственность. Скажи нет, чтобы добавить функции, если вы не можете поддержать базу. Консультируйте клиента с вашим опытом. Нажмите на тормоза сейчас, пока не стало слишком поздно, и вам придется выбросить весь проект, потому что он больше не будет обслуживаться.
источник