В современных условиях вопрос качества поставляемого на рынок программного обеспечения становится все более актуальным — с ростом количества компаний-разработчиков, а также независимых коллективов программистов, готовых предоставить потребителям готовый продукт, заинтересованность в скорейшем выводе в продажу коммерческого решения возрастает. Часто в погоне за прибылью ключевые проблемы разработки ПО уходят на второй план — сроки одерживают верх в борьбе за высокое качество программных решений. Отметим основные факторы, оказывающие негативное влияние на качественные показатели выпускаемых на рынок программ.
Раз проблема, два проблема
Достаточно крупные коллективы разработчиков, планируя создание нового программного обеспечения, как правило, совершают первую ошибку уже на этапе формирования технического задания. Вопреки отработанной технологии разработки качественного ПО, заказчики не редко ограничивают сроки реализации проекта, вынуждая команду разработчиков исключать из перечня задач процесс отладки написанного программистами кода. Вместо оптимизации каждого компонента программного продукта, задача по “вылавливанию багов” возлагается на тестировщиков, берущихся за работу на самом последнем этапе разработки ПО, когда все модули программы уже собраны воедино.
Чуть менее значимой ошибкой, ведущей к появлению проблем при разработке программного обеспечения, является игнорирование весьма нужной процедуры анализа формируемых заказчиком и исполнителем требований к будущей программе. Нечеткое понимание целей, преследуемых заказчиком, а также несогласованность бизнес-деталей, подлежащих реализации в продукте, ведет к сдаче низкокачественной программы, имеющей существенное количество недоработок. Особенно остро эта проблема стоит в сфере разработки мобильных приложений, где ключевым фактором для заказчиков становится как можно более ранний вывод решения на рынок, чтобы успеть заработать деньги от продажи программы потребителям.
Пути решения
Чтобы избежать упомянутых проблем при разработке программного обеспечения, и заказчики, и исполнители, будь то крупная компания или небольшой коллектив программистов, должны придерживаться методики обеспечения качества ПО, состоящей всего из нескольких пунктов.
1. Анализ требований
Еще на этапе формирования технического задания по разработке ПО требуется согласовать ключевые вопросы, связанные с механикой работы и составом ключевых компонентов программы. Также стороны должны прийти ко взаимному пониманию в вопросе функциональности создаваемого программного продукта, что позволит добиться принятия работы сразу после демонстрации рабочего образца программы.
2. Анализ и сквозной контроль кода
Контроль работоспособности программного кода, наличие ошибок и корректность их обработки, должны осуществляться постоянно, в течение всего процесса разработки ПО. Перекладывать необходимость поиска проблемных участков кода на плечи тестировщиков, занимающихся проверкой выполнения основных функций ПО уже после выполнения основных этапов разработки, категорически нельзя.
3. Сессионное тестирование
Методика сессионного тестирования, предложенная одним из ведущих специалистов в области программирования Джеймсом Бахом, позволяет осуществлять качественную проверку работоспособности созданного решения. В отличие от технологии поиска “точечных” недоработок кода, при сессионном тестировании тестировщик получает свободу действий, пытаясь выявить необычные дефекты, фактически моделируя поведение предполагаемого пользователя.
IT-аутсорсинг поможет
Наиболее эффективным путем решения проблем при разработке ПО является обращение к профессиональным “аутсорсерам”, предоставляющим услуги IT-аутсорсинга в сегменте создания программного обеспечения. Ключевыми моментами становятся правильно составленное техническое задание, отражающее требования и потребности обеих сторон соглашения, а также установка наиболее оптимальных сроков исполнения заказа. При этом разработчики обязаны доказать обоснованность продления сроков реализации проекта в случае необходимости, чтобы достичь высокого качества конечного продукта. Только в этом случае качество одержит победу над сроками.