Я работаю в небольшой команде, в компании среднего размера, большая часть которой не занимается разработкой программного обеспечения. Я - самый новый и наименее опытный разработчик, у меня не было профессионального или академического опыта в области программного обеспечения до начала работы, но я весьма доволен тем, насколько уважаем мой вклад, и благодарен за то, что меня восприняли всерьез на таком раннем этапе моей карьеры.
Тем не менее, я чувствую, что должен делать больше с таким большим количеством эфирного времени. Как команда, у нас, кажется, есть проблемы с выполнением задач. Я хотел бы предложить что-то, чтобы улучшить ситуацию, и я думаю, что меня выслушают, если это будет хорошая идея, но я не знаю, что предложить.
Вещи, которые я могу определить как проблемы, включают:
- Уточнение поставленных задач редко. Это отчасти потому, что управление является узким местом, и у нас нет денег или людей, чтобы посвятить себя разработке подробных требований так, как нам бы хотелось. Это также отчасти потому, что разрабатываемое нами программное обеспечение является следственным, и точный метод неясен, пока не будет продемонстрирован и использован для определения его эффективности.
- Ведущий разработчик очень любит то, что он называет «прототипированием», до такой степени, что он в последнее время начал настаивать на том, что все «прототипировано», что для всех нас похоже на написание плохого кода и передачу его разработчикам моделей для игры. Не ясно, что он ожидает от этого упражнения во многих случаях. «Реальная» реализация страдает из-за того, что он настаивает на том, что хорошая практика отнимает слишком много времени у прототипирования. Я даже не смог распутать эту извращенную логику, и я не уверен, что хочу попробовать.
- Предполагается, что разработчики моделей расскажут нам все о желаемой методологии в точных деталях, и она абсолютно уверена, что то, что они предлагают, теоретически безупречно. Это вряд ли когда-либо правда, но никаких действий не предпринимается, чтобы исправить эту ситуацию. Никто на стороне моделирования не вызывает каких-либо проблем в структурированном виде, на которые, вероятно, будут реагировать, и при этом они не ищут руководства в применении лучших практик. С их пассивностью тоже ничего не делается.
- Я пытался подтолкнуть TDD в команде раньше, но мне было трудно, так как это ново для меня, и хотя те, кто наблюдал за моей работой, были готовы терпеть это, никакого энтузиазма не последовало ни от кого другого. Я не могу оправдать количество времени, которое я провожу, валяя и не заканчивая функции, поэтому идея - на данный момент - была заброшена. Я обеспокоен тем, что его больше не заберут, потому что никто не любит, когда ему говорят, как выполнять свою работу.
- Теперь у нас есть сервер непрерывной интеграции, но он в основном используется только для запуска многочасовых регрессионных тестов. Было оставлено открытым, что он также должен запускать модульные и интеграционные тесты с полным покрытием, но на данный момент их никто не пишет.
- Каждый раз, когда я поднимаю вопрос о качестве с ведущим разработчиком, я получаю ответ: «Функция тестирования A проста, функция B гораздо важнее для пользователя, но слишком трудна для тестирования, поэтому мы не должны тестировать функцию А». Еще раз я не продвинулся в попытке распутать эту логику.
.... уф. Когда я это так формулирую, это выглядит намного хуже, чем я думал. Полагаю, как выясняется, это крик о помощи.
источник
Ответы:
Позвольте мне сыграть адвоката дьявола на мгновение:
Ведущий разработчик увлекается прототипами, потому что спецификации очень скудны. Это, вероятно, хорошая вещь; так работают итеративные магазины.
Это не будет работать в итеративном магазине. Сама природа итеративной разработки заключается в том, что требования часто являются неполными. Итерации - это то, что необходимо для уточнения требований.
Это тоже не сработает; вам нужно понять технологию, прежде чем вы сможете ее проповедовать. Кроме того, в итеративном магазине со скудными требованиями TDD может быть слишком много накладных расходов. Лучше поощрять адекватное покрытие модульного тестирования.
Это может быть уместно в небольшом итеративном магазине.
Похоже, ваш магазин имеет довольно жесткие временные ограничения; нравится вам или нет, вы связаны этими ограничениями.
Это также звучит так, как будто вы пришли из той части индустрии программного обеспечения, которая ценит правильные действия, а не поступает на рынок первыми. В этом нет ничего плохого (это на самом деле достойно восхищения), за исключением того, что первым на рынке с ошибочным программным обеспечением часто оказывается победитель. Это не честно, но так оно и есть.
источник
Я собираюсь сосредоточиться на прототипе здесь
главная проблема с прототипами заключается в том, что они предназначены для доказательства концепции
однако, если вы не можете продолжить работу над прототипом и вам нужно перестроить конечный продукт с нуля, вы, возможно, с таким же успехом могли бы не создавать прототип, и вы потратили впустую свое время на его создание.
Я советую вашей команде получить качество и гибкость в этих прототипах. Я знаю, что невозможно создать идеальный материал с первого раза, но стараюсь быть расширяемым для будущих требований
источник
Это хорошие ответы. Я могу только добавить, что «пытаться общаться» - в лучшем случае сомнительное предложение. Изменения в том, как работает организация, происходят не быстро. Когда это происходит, это часто похоже на прилив, когда импульс нарастает снизу и сверху. Таким образом, вы будете счастливее, если будете сдерживать свои ожидания и либо дождетесь возможности рассказать, как все будет сделано, либо с нетерпением ждете сотрудничества с другой организацией.
источник
Определили ли вы кого-нибудь в компании, кто «получит это», если это так, присоединяйтесь к этому парню и учитесь у него как можно большему. Если нет, то не торопитесь, начните учиться и развиваться самостоятельно (присоединитесь к проекту с открытым исходным кодом или запустите собственный проект) и найдите место, которое может способствовать вашему росту.
Худшее, что может случиться, - это оставаться там и учиться тому, как поступать неправильно. Да, должен быть принят некоторый прагматизм, но по-настоящему квалифицированная команда может сделать все правильно и все же быть вовремя с качественным продуктом. Похоже, ваша текущая команда не имеет того, что нужно, и вы должны начать искать новую.
источник