Я считаю, что мне довольно повезло в моей ИТ-карьере, поскольку я в основном работал над проектами по программному обеспечению с нуля. Для тех, кто, возможно, не слышал этого термина раньше, скажем, что проект «с нуля» — это проект, в котором вы создаете новое программное обеспечение, которое ранее не существовало в такой форме. Вы можете создавать что-то совершенно новое или создавать что-то, что заменит существующую систему, но будет выполнять те же бизнес-функции. С другой стороны, проекты программного обеспечения для уже существующих месторождений включают в себя внесение изменений в уже существующие программные системы. Это программное обеспечение может быть создано вами, а может и не создано вами. Однако теперь ваша задача — добавить к нему больше бизнес-функций или исправить в нем проблемы.

Что вы делаете тогда, чтобы улучшить ситуацию в проектах, которые находятся в плохом состоянии? Есть несколько вещей, которые вы можете сделать, чтобы улучшить ситуацию. Как разработчик, вы должны полагаться на инструменты, облегчающие вашу жизнь. Убедитесь, что управление исходным кодом используется эффективно. Внедрите инструменты непрерывной интеграции для автоматизированных сборок, если они еще не используются, используйте инструменты анализа качества статического кода и т. д. Благодаря инструментам, избавляющим вас от части ручного труда, вы и ваша команда можете сосредоточиться на более важных вещах, таких как написание большего объема и повышение степени автоматизации. тесты, рефакторинг кода и исправление ошибок. Вы также всегда должны концентрироваться на конечном участнике — конечном пользователе. Выявите проблемы, которые беспокоят ваших пользователей больше всего, и определите их приоритетность. Болевые точки с наивысшим приоритетом также могут быть теми, которые можно легко исправить. С другой стороны, ошибки, которые вы считаете технически сложными и на исправление которых может уйти несколько недель, могут быть даже не так важны для вашего пользователя. Поэтому всегда важно чувствовать пульс пользователей, прежде чем приступать к решению проблем. Если ошибка имеет очень большое значение для пользователя, но на ее исправление потребуется некоторое время, то у вас своего рода патовая ситуация. Если тактическое временное решение может облегчить жизнь пользователя в краткосрочной перспективе, сделайте его высшим приоритетом и выпустите его как можно скорее. Однако вернитесь к чертежной доске и поработайте над хорошо продуманным долгосрочным решением проблемы, которое будет выпущено в будущем. Никогда не оставляйте временное исправление в рабочей среде слишком долго, так как позже это может привести к большим проблемам. Однако при отсутствии быстрого решения всегда тратьте необходимое количество времени на развертывание хорошо протестированного и надежного решения проблемы, даже если пользователи продолжают бороться с проблемой еще какое-то время. Они поблагодарят вас позже, когда фактическое решение сделает их жизнь намного лучше. Заручитесь поддержкой всех заинтересованных сторон, чтобы все делать правильно. Вам потребуется время и ресурсы, чтобы делать все правильно, но это стоящее вложение, поскольку оно приведет к гораздо лучше функционирующей системе, более довольным пользователям и гораздо меньшему количеству ошибок в будущем, что напрямую связано с меньшими будущими затратами на обслуживание.

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

Пробираясь через плохое браунфилд