Я присоединился к компании по разработке программного обеспечения около года назад. Есть несколько команд, работающих над разными продуктами, однако есть ряд общих библиотек, которые должны использовать все команды. Моя команда фактически поддерживает определенную библиотеку, которую одна из других команд интегрирует в свой продукт.
Общая проблема в том, что внутри компании нет чётко прописанных процессов сопровождения ПО. Большинство распространенных библиотек плохо документированы, люди удаляют код, а не объявляют его устаревшим (что ломает код, зависящий от библиотек), а журналы изменений отсутствуют. Политика заключается в том, что проекты должны обновляться до новейших версий библиотек как можно скорее, однако может быть несколько обновлений в течение одного дня, или одно обновление может легко занять полдня.
Я не являюсь членом высшего руководства компании, однако у меня есть некоторый опыт в обслуживании программного обеспечения и OSS, и я подумываю поднять эту тему со своим менеджером в надежде, что он сможет развить ее дальше. Я твердо верю, что хорошие процессы улучшат качество программного обеспечения, которое мы создаем, и помогут уменьшить ненужный стресс между командами. Должен ли я это сделать? Есть ли что-то, что я должен учитывать при подготовке к разговору с моим менеджером? Есть ли способы, которыми моя инициатива может иметь неприятные последствия?
Все может иметь неприятные последствия. Но ваш подход правильный. Я имею в виду документирование того, что делается в компании, и обеспечение/поддержание обратной совместимости — все это хорошо. Единственное, что я могу вам посоветовать, это начинать медленно и очень тактично. Ваш босс или его близкий друг могли поддерживать эту кодовую базу или могли написать ее когда-то в прошлом, не обращая внимания на поддержку, и она все время хромала. Теперь новичок, «горячий яппи» в их глазах, пытается научить их, как делать свою работу. Если это так, это не будет восприниматься легкомысленно. Даже если они будут знать, что это правильный способ сделать это, они будут сопротивляться и ставить одно препятствие за другим, пытаясь объяснить, что то, что вы сказали, делать не следует.
Но в большинстве хорошо структурированных софтверных компаний ваше предложение прозвучит для руководства как музыка. Но в этом случае будьте готовы взять на себя роль ведущего сопровождающего, что будет большой потерей времени, прокладывая путь к более высоким уровням в корпоративной лестнице, если вы хорошо справляетесь.
Многие из проблем, которые вы обсуждаете, являются существенными недостатками в управлении изменениями и/или процессе SDLC.
Нет четко определенных процессов обслуживания программного обеспечения внутри компании.
Как вы отслеживаете, какие изменения были внесены в программное обеспечение,
особенно в производственной среде, если она существует в вашей
компании?
Если журналы изменений не используются, как вы будете отслеживать внесенное изменение и определять, является ли оно авторизованным и не злонамеренным?
Как вы отслеживаете изменения пользователей, которые их внесли, потому что, если вы не можете этого сделать, никто не может быть привлечен к ответственности, если изменения нарушают критически важные функции.
Люди удаляют код, а не осуждают старый код . Это очень плохая практика, как вы предлагаете. Что произойдет, если выпуск выйдет из строя и его придется откатить? Без возврата к старому рабочему коду существует риск нарушения работы бизнеса из-за невозможности восстановления после сбоя/катастрофы.
Что процесс SDLC, будь то WaterFall или версия Agile, говорит о том, как обрабатываются изменения кода? Существует ли функция контроля качества, обеспечивающая соблюдение правильных методов разработки?
Обратите внимание на то, как работают сопутствующие процессы в вашей компании. . Учитывая небрежность управления изменениями в вашей компании, я готов поспорить, что связанные процессы не лучше. Некоторые вопросы, над которыми стоит задуматься, если ваша компания является зрелой:
Вы также должны признать, что если ваша компания является публичной компанией на фондовом рынке США, она подпадает под действие Раздела 404 Закона Сарбейнса-Оксли (SOX) , если рассматриваемый процесс каким-либо образом влияет на финансовую отчетность. Сарбейнс Оксли - Раздел 404 обязывает руководство нести личную ответственность за адекватность внутреннего контроля в своей компании. Высшее руководство может попасть в тюрьму, если его признают виновным в мошенничестве и искажении информации о внутреннем контроле.
Я работаю в сфере ИТ-аудита, и моя работа как раз и состоит в том, чтобы доводить до сведения руководства проблемы, которые вы упомянули в своем посте, для их решения. Я предлагаю вам обсудить со своим руководителем, что текущие процессы представляют значительный риск для компании с точки зрения сбоев в работе, целостности системы и удовлетворенности клиентов. Если это не поможет, поднимите вопрос перед Службой внутреннего аудита в вашей компании, если такая служба существует в вашей компании, и вы уполномочены говорить между отделами.
Таким образом, если после вашей презентации руководству, а улучшений по-прежнему не произошло, вам, вероятно, следует подумать о поиске другой работы, поскольку эта среда разработки вредна для вашего роста.
Я твердо верю, что хорошие процессы улучшат качество программного обеспечения, которое мы создаем, и помогут уменьшить ненужный стресс между командами. Должен ли я это сделать? Есть ли что-то, что я должен учитывать при подготовке к разговору с моим менеджером? Есть ли способы, которыми моя инициатива может иметь неприятные последствия?
Посмотрите, что вы сами написали о своем работодателе:
Нет четко определенных процессов обслуживания программного обеспечения ...
Люди удаляют код, а не объявляют его устаревшим ...
Нет журналов изменений ...
Проекты должны обновляться до новейших версий библиотек как можно скорее ...
Обновлений может быть несколько в течении одного дня...
Это не просто ковбойское программирование; даже ковбои следуют правилам. Это открытое бандитское программирование, в котором нет никаких вонючих правил, никаких вонючих процессов, никакого вонючего управления конфигурацией, никакого вонючего контроля версий. Ничего, кроме кода. В этой организации полно людей, которым не нужны вонючие значки.
Организации по разработке программного обеспечения, которая в 2016 году не удосужилась использовать даже самые простые системы контроля версий, не нужны процессы. Период. Люди, которые в конечном итоге работают в таких организациях, делают это не просто так. Они не хотят, чтобы их беспокоили какие-либо из этих «вещей процесса», даже если это им поможет.
Так что да, есть много способов, которыми ваша инициатива может иметь неприятные последствия.
БобРодес
Замочить