Поддержка программного обеспечения

Опубликовано 2015-11-02 08:25:02

В данном посте я бы хотел описать пункты, которые сделают поддержку и доработку программного обеспечения проще.

1. Описание бизнес-процессов: обработка заявок, работа с журналами, работа с договорами, работа с оборудованием

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

2. Поставка новых версий программного обеспечения

Пользуйтесь GIT или другой системой контроля версий. Это кратно ускорит обновление ПО, уменьшит число ошибок. К тому же это не сложно. Я обычно делаю это в первую очередь.

3. Автоматическое тестирование

Огромное количество времени уходит на тестирование, если оно выполняется в ручном режиме. В некотором смысле оно полезно, так как понимает понять процесс, но после того, как процесс понят и описан, превращается в рутину. Введение автоматических тестов позволит сократить время на тестирование. Сложность представляет процесс создания тестов, так как существующий код, обычно, написан не принимая во внимание необходимость автоматических тестов.

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

4. Прозрачная деятельность отдела и управление задачами

Помимо задач по поддержке программного обеспечения на регулярной основе ведутся дополнительные разработки. При выполнении основной задачи очень часто поступают звонки и возникают задачи, которые требуют реакции, иногда немедленной. Существуют системы заявок (тикетов), которые позволяют определить работы, описать их, задать им срок, приоритет. После того, как список сформирован, разработчики выполняют задачи вначале с наивысшим приоритетом и, далее, с более низким приоритетом. Это позволит руководству оценивать текущую загруженность отдела, принимать решения об изменении приоритета и сроках.

Данный пункт предполагает работу над управлением задачами, их четкую постановку, управление рисками и сложен во внедрении, особенно он встречает сопротивление со стороны непосредственных руководителей разработчиков программного обеспечения, так как им приходится работать, а обычно работать не хотят. По ссылке http://blog.shumoos.com/archives/298 немного информации об этом.

5. Решение проблемы разных сервисов и проектов

Необходимо документировать и хранить по СКВ не только код, но и данные о сервисах, конфигурациях, расположении сервисов, деталях и особенностях архитектуры. Я бы сказал, что в СКВ нужно хранить все, а все что не может быть под СКВ проанализировать и положить.