Как мы обеспечиваем качество разработки
Серьезная компания-заказчик приложений смотрит не только и не столько на стоимость разработки, сколько на гарантию работоспособности, надежности, и применимости программного продукта для бизнеса, а также на точность компании в соблюдении сроков разработки. Задержки поставки, длительные и трудновыводимые ошибки в програме, сложность доработки и развития программного продукта - это те проблемы, которые могут принести ощутимые убытки предприятию и их при хорошо поставленном процессе разработки приложения быть не должно.
Итак, какие объективные инструменты для обеспечения качества мы можем предложить?
Использование системы управления проектами
Мы используем систему управления проектами и трекинга ошибок "Redmine", которая позволяет руководителю проекта ставить задачи и контролировать их выполнение, а также позволяет заказчику следить за ходом проекта.
Для подготовки кода приложения и контроля версий используется система "Subversion".
Подготовка реалистичного плана-графика проекта
План-график проекта с обозначенными границами этапов работ позволяет вовремя отследить отставание от графика, выделить критические участки работ, а также наглядно показывает заказчику, в какой стадии находится проект.
Использование надежных шаблонов проектирования
Мы выделяем на проектирование отдельный значительный ресурс. Ошибки проектирования могут принести самые большие убытки в будущем, поэтому проектированием занимаются наиболее квалифицированные разработчики компании. Результатом проектирования является проектная документация в виде описания интерфейсов, диаграмм баз данных, моделей компонентов UML, а также ссылок на повторно используемые библиотеки и модули.
Для типовых задач мы используем надежные и проверенные шаблоны проектирование, такие, как Model-View-Controller. Эти шаблоны, кроме упрощения работ, позволяют более точно оценить объем работ (например, по количеству моделей).
Решение нетиповых задач может выделяться в отдельные этапы, на которых производится разработка тестовых приложений, показывающих принципиальную возможность решения задачи. Данный этап проводится как можно раньше в связи с высоким риском отрицательного результата.
Тщательное проектирование баз данных и интерфейсов
Чем более полно и тщательно спроектированы базы данных и интерфейсы, тем меньше проблем с взаимодействием разработчиков, реализующих отдельные модули, возникает в будущем. Мы стараемся заложить в проект возможность дальнейшего расширения.
Разработка по методологиям Agile и RUP
Разработка проекта разбивается на небольшие (до 1 часа) подзадачи, решение которых повышает мотивацию разработчиков и наглядно показывает прогресс разработки. Еженедельное подведение итогов работы может на ранних стадиях отследить и вовремя устранить возникающие сложности.
Нацеленность на работоспособное приложение
Работоспособное приложение уже на ранних этапах разработки является зримым результатов трудов проектировщиков и разработчиков. Это приложение может быть использовано для демонстрации хода проекта заинтересованным лицам. Поэтому мы строим план-график с учетом создания работоспособного приложения на самых ранних стадиях проекта.
Возможность наблюдения за ходом работ
Работоспособное приложение может использоваться для наблюдением за прогрессом проекта. При разработке веб-приложения может использоваться онлайн-разработка на тестовом сервере, при этом заказчик может просмотреть приложение в любой момент.
Планирование контрольных точек (milestone)
Мы размещаем в план-графике проекта четкие и понятные контрольные точки (например, "подготовлены все интерфейсы"). По контрольным точкам заказчик и руководитель проекта могут проконтролировать отклонение от графика.
Контроль смежных работ
В случае, если проект зависит от работ, проводимых третьими лицами - мы стараемся планировать проект так, чтобы эти работы не становились критическим участком и их задержка не приводила бы к простоям и задержкам всего проекта. Мы стараемся контролировать статус работ и своевременно предупреждать заказчика об угрозах задержек смежных работ.
Тщательное тестирование приложения и его компонентов
Тестирование, в соответствии с методологией RUP, проводится с самого начала этапа разработки приложения и сопровождает ее, в виде автоматизированных Unit-тестов нетривиальных функций и алгоритмов, а также тестовых приложений для проверки работы интерфейсов.
На заключительных стадиях разработки проводится ручное тестирование, все результаты которого протоколируются. Результаты тестирования заносятся в систему контроля ошибок и исправление ошибок может быть проверено тестером.
Подготовка проектной документации
Проектная документация может содержать руководство пользователя, руководство администратора, руководство по развертыванию и установке проекта, а также обучающие материалы, облегчающие сопровождение продукта силами заказчика.
Для предотвращения конфликта версий документации, каждый документ имеет свою версию. Все документы проходят рецензирование заинтересованными лицами.
Гарантия и техническая поддержка
После ввода проекта в промышленную эксплуатацию, компания "Хедвинд Солюшнз" предоставляет гарантийный срок (как правило, 1 год), в течение которого выявленные ошибки исправляются бесплатно. Также может быть предоставлена техническая поддержка в виде анализа проблем работы приложения и предоставления рекомендаций по устранению проблем.