Развитие программного обеспечения проходило годами, и теперь можно только удивляться, насколько изменился метод работы. Конечно, технологии идут в ногу со временем, но развивается ли наш подход к проектам по разработке ПО.
Пользователи озадачены техническим языком, разработчики предпочитают изобретать что-либо, а не повторно использовать. Им известно, что лучше для вас, еще до того как вы скажете, чего хотите, хотя проекты часто не кладываются в сроки и превышают бюджет.
Возьмем, к примеру, Министерство обороны США, которое потратило тридцать миллионов фунтов всего на два проекта информационных технологий. Первый проект – система коммуникаций для военно-воздушных сил, был заброшен из-за проблем интеграции с другими системами, и двадцать один миллион фунтов списали.
Второй проект – система оплаты для военно-морского флота, был закрыт, когда стало известно, что проект обойдется в три раза дороже предполагаемых 18.9 миллионов фунтов. 8.7 миллионов были уже потрачены, и их тоже списали.
Обход основных проблем при разработке программного обеспечения – это не наука о ракетостроении, а всего лишь необходимые меры. Здесь указаны пять серьезных ошибок при разработке ПО.
1. Получение требований
Ошибка.
Если взяться за проект на пике энтузиазма, не обдумав желание клиента, можно допустить одну из огромных ошибок развития ПО. Такие ошибки встречаются часто, таким образом, проваливается большинство проектов, и происходит много ненужных исправлений.
Решение.
Сначала разберитесь с требованиями клиента, потом найдите способ выполнения. Избегайте синдрома «мы знаем, что вы хотите», который все еще существует среди некоторых разработчиков.
Хорошо бы воспользоваться услугами бизнес-аналитика, чтобы сформулировать нетехнический, объективный взгляд на требования клиента.
Легко приняться за написание кода, до того как требования полностью понятны, но время, заранее потраченное на клиента, предотвратит проблемы и исправления в будущем.
2. Понимание языка
Ошибка.
Приходилось ли вам стоять когда-нибудь рядом с группой разработчиков ПО и не понимать, на каком языке они говорят? Для людей, несвязанных с информационными технологиями, это непонятный язык. Сложности начинаются, когда клиент и ИТ-работники думают, что понимают друг друга, хотя на самом деле это не так. Проблемы выявляются, когда результат работы отличается от того, что хотел клиент.
Решение.
Проблемы общения наиболее тяжело решаемые, часто мы определяем проблему, лишь оглядываясь назад. Постоянное общение и тесные рабочие взаимоотношения с клиентом помогут решить проблему. Вам нужен человек, разбирающийся в обеих областях. Кто-то, кто понимает ПО и деловую среду одинаково. Если вы найдете такого человека, убедитесь, что сможете его удержать, такие люди на вес золота. Если невозможно отыскать такого работника, хорошей альтернативой будет найти двух человек: одного - из среды бизнеса, другого - из среды информационных технологий. Тесно сотрудничая и делясь информацией, они могут свести к минимуму любые проблемы общения.
3. Управление ожиданиями
Ошибка.
Существует предположение, что ИТ подобно волшебству - вы взмахнете рукой, и неожиданно чудо произойдет. На протяжении проекта ПО, ожидания могут быть весьма необоснованными. Роль руководителя проекта состоит в том, чтоб удерживать их на разумном уровне.
Решение.
Единственный способ избежать завышенных ожиданий - это разобрать проект на мелкие части или этапы. Проекты программного обеспечения следует разделить на части, состоящие из требований, и выполнять их по отдельности, достигая нескольких результатов на протяжении работы. Таким образом, вы добьетесь ожидаемого, часто демонстрируя результаты, которые могут достичь технологии. Преждевременное предоставление наглядных результатов гарантирует клиенту ожидаемый итог проекта.
4. Прототипирование
Ошибка.
Часто клиенту сложно четко сформулировать свои требования, большинство людей могут сказать, чего они хотят только, когда видят это. Строить систему работы, если не вполне ясна задача - серьезная ошибка. Если разработчик не понял требований, это откроется только на поздних сроках работы.
Решение.
Когда требования неясны, эффективным методом является прототипирование. Не функциональный прототип можно сделать быстро и дешево, чтобы помочь выявить детально требования клиента. Таким образом, разработчик проверяет свое понимание задачи и избегает напрасной траты времени и переделывания работы в будущем.
5. Тестирование
Ошибка.
Если клиент проверит ПО и найдет какие-то дефекты, вы потеряете его доверие. Очень сложно заработать доверие вновь, если у клиента уже сложилось плохое впечатление. Гораздо легче и более рентабельно тщательно протестировать ПО, перед тем как предоставить работу клиенту.
Решение.
Используйте профессиональных тестировщиков, чтоб проверить ПО. Они будут рассматривать проект с точки зрения будущих пользователей. Никогда не просите разработчиков проводить тестирование - они необъективны, более того, они уже знают, как действует ПО. Вам нужен человек, незнакомый с проектом, чтоб выяснить, является ли проект логичным, последовательным, работает ли он и отвечает ли требованиям клиента. Вы можете показать клиенту работу до тестирования, но ограничьте его доступ к проекту без вашего контроля.
В заключение
Сто процентов руководителей информационных технологий, имевших неудачный опыт в выполнении проектов, сталкивались с этими трудностями. Вот три причины этих неудач:
- отсутствие связи между информационными технологиями и деловой средой;
- необоснованные ожидания;
- неправильный масштаб проекта.
Концентрация на этих пяти аспектах даст вам хорошую возможность преуспеть.
Не становитесь жертвой неудавшегося проекта ПО, принимайте меры, гарантирующие успех. В конце концов, это не так-то сложно.