Software development project

Бюджетирование проектов по разработке ПО – сложное дело, как вы уже могли заметить в предыдущих частях нашего «путеводителя». Найти баланс между бюджетами, персоналом, сроками и отдачей от инвестиций бывает очень непросто. Если один компонент «перевесит» (или, наоборот, затеряется среди прочих), баланс нарушится, а это может стоить вам проекта.

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

Не надейтесь быстро получить готовый продукт

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

Нередко прототип помогает нам в разработке готового решения, но на запуск продукта в производство уходит гораздо больше времени, ведь так много нюансов требуют неотложного внимания! Планируете опубликовать свое приложение в Google Market? Не забудьте о тестировании безопасности. Разрабатываете ПО для медицинских устройств? Убедитесь, что оно совместимо с другими устройствами и системами больницы и соответствует стандартам отрасли.

Итак, вы должны понимать, что если создание прототипа занимает месяц, то разработка готового продукта может занять год или даже больше.

Не полагайтесь на студентов в индустриальной разработке ПО

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

Стажеру сложно понять все тонкости вывода продукта на рынок, когда сторонние пользователи начинают пробовать ПО в действии. Надежность, масштабируемость, удобство использования, безопасность и соответствие стандартам – вот лишь несколько требований к производственной версии любого программного решения. Инженерная команда может реализовать их в разумные сроки, но одному человеку (будь то даже самый талантливый студент MIT) это вряд ли под силу.

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

Не игнорируйте промежуточные релизы

Не устаю повторять, что в проектах по разработке ПО вовлеченность клиентов очень важна, а в Agile – просто необходима. В наше время технологии развиваются быстро, требования к продуктам постоянно меняются, и регулярные промежуточные релизы помогают нам идти в ногу со временем.

Цель наших демо – получить обратную связь от клиента, убедиться, что мы движемся в правильном направлении, или же своевременно скорректировать планы. Это экономит время и позволяет быстрее получить результат. Игнорируя промежуточные релизы, заказчик рискует получить неподходящее решение.

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

Не забывайте о тестировании ПО

А зачем нам тестировать ПО? Разве мы не можем сразу писать код правильно, без ошибок? К сожалению, нет. Код пишут люди, а потому ошибки – это естественное явление. Все, что мы можем, – это быстро выявлять их и устранять.

К тому же, ошибки бывают разные: например, функциональные (Помогите, я вижу синий экран смерти в Windows!), верификационные (Упс, кажется, мы забыли реализовать важное требование…) и другие не менее критические несоответствия, которые подвластны только профессиональному тестировщику.

Тестируйте рано, тестируйте часто, не забывайте об этом. Опытный тестировщик поможет вам найти и исправить всевозможные баги и обеспечить высокую эффективность вашего решения.

Независимо от сроков и размера проекта, бюджетирование – нелегкий этап. Включите в свой бюджет здоровую дозу реализма, выберите эффективный подход и подготовьтесь к возможным рискам, а главное, учитесь на чужих ошибках, чтобы не делать свои.