В настоящее время я нахожусь на оплачиваемой стажировке, и мне было поручено поддерживать устаревшую систему, которая была разработана несколькими разработчиками (в разное время) в течение последних 5 лет. Руководство соглашается с тем, что «система находится на жизнеобеспечении», и я получаю довольно регулярные отчеты об ошибках от конечных пользователей, которые в настоящее время используют систему.
Система не устареет, если ее все еще используют люди, и она поддерживает деловые операции. Поскольку он все еще используется, бизнес не может просто выбросить его - его необходимо поддерживать до тех пор, пока не исчезнет необходимость в системе. Это может быть изменение бизнес-целей или новая система была разработана, протестирована и успешно развернута для конечных пользователей.
Действительно, 5 лет не так уж и долго. Я работал с кодом, который был 10 лет назад. Если он все еще служит потребностям пользователя, зачем выбрасывать его? Это выбрасывает много денег, потраченных на его разработку. До тех пор, пока обслуживание становится невозможным из-за растущих затрат или радикальных изменений требований, нет никаких бизнес-причин, чтобы выбрасывать их.
Теперь руководство хочет продлить проект еще на один год, и в этом процессе пользовательская база почти утроится.
Если руководство говорит, что эта система «находится на жизнеобеспечении», почему они пытаются развернуть ее дальше? Обычно операции по обслуживанию продолжаются в устаревшей системе до тех пор, пока она не будет заменена, но если система находится в состоянии истечения срока службы, она обычно не развертывается для большего количества людей. Продление обслуживания - это одно, но добавление пользователей, полагающихся на систему, - это совсем другая ситуация.
Для меня это звучит так, будто на самом деле это не конец жизни, а скорее этап обслуживания, и он будет существовать до тех пор, пока система больше не будет обслуживать потребности пользователей.
Как стажер (или любая позиция начального уровня), как мне «оттолкнуть»? Я уже написал отчет о своих проблемах, хотя и в открытом документе. Есть ли протокол или тип документа для предложения изменений? Могу ли я вносить предложения или просто продолжать поддерживать старую систему?
Вам необходимо продолжать поддерживать старую систему. Позже вы упоминаете, что программное обеспечение не является основной деятельностью вашей компании. В такой среде работа команд разработчиков программного обеспечения заключается в поддержке основного бизнеса компании. Однако командам разработчиков программного обеспечения также необходимо помнить о бизнес-целях.
В то же время, запишите ваши предложения таким образом, чтобы не быть властным. Укажите другие технологии или методы, которые могут быть интегрированы с системой или использованы, если / когда создается новая система, и их плюсы / минусы. Как вы это сделаете, зависит от компании, но, учитывая некоторые более поздние моменты, возможно, было бы полезно создать вики или другой совместный сайт.
В бизнесе, не связанном с программным обеспечением, программное обеспечение - это стоимость, и команды разработчиков программного обеспечения (особенно руководители программных проектов / программ) должны работать над тем, чтобы свести к минимуму затраты на создание и обслуживание программных систем в максимально возможной степени, одновременно поддерживая потребности конечных пользователей. , Утилизация программного обеспечения, которое (насколько я могу судить, из вашего поста, в любом случае) отвечает потребностям пользователей, идет вразрез с интересами команды разработчиков программного обеспечения.
* Чтобы уточнить, разработка программного обеспечения не является основной деятельностью моей компании. Как таковых внутренних протоколов не существует. Кроме того, проект не имеет никакой формальной документации, не требует документов. Разработка очень специальная.
Для меня это проблема. Отсутствие документации, не разработка спецификации и отсутствие согласованности ведет к увеличению стоимости разработки программного обеспечения. Работать над исправлением этого было бы моим наивысшим приоритетом, и я бы сделал это, работая над такими вещами, как стандарт кодирования, контроль версий, создание самодокументированного кода и проектных документов, отслеживание дефектов и спецификации требований.