Рекомендации по применению практических навыков достаточно очевидны, однако вкупе они дают очень сильный эффект. В самом общем виде CBP предлагают:
- Сфокусироваться на количественных параметрах завершения проекта (дате, бюджете, объеме);
- Придумать быстро реализуемую стратегию выполнения проекта;
- Измерять продвижение к цели;
- Измерять активность разработки.
Как избежать хаоса
Результаты работы SPMN показали, что сложность крупных проектов обычно находится на грани хаоса, и существует ряд факторов, от которых зависит, перейдет ли система в неуправляемое состояние. Чтобы правильно управлять проектом, надо:
- Выявлять ошибки и логические неувязки как можно раньше, а устранять их — сразу после обнаружения. Между моментом внесения ошибки разработчиком и моментом ее выявления должно пройти минимальное время (в военных проектах МО США среднее время между внесением ошибки и ее устранением составляло 9 месяцев). Образно говоря, когда создано бетонное основание дома, перестраивать его заново значительно сложнее. Совершенно недопустима практика почасовой оплаты программистов (обычная практика при выполнении госзаказов в США). Надо также совершенствовать механизмы выявления типичных причин ошибок и способы их устранения.
Показательны следующие статистические данные — если ошибка фиксируется и устраняется на этапе формирования требований к проекту, организации это обходится в 139 долл. В процессе кодирования средняя стоимость ошибки достигает 1000 долл. На этапе тестирования, столь любимом многими компаниями, устранение ошибки обходится уже в 7 тыс. долл., а на этапе внедрения — в 14 тыс. долл.
Конечно, без тестирования продукта обойтись нельзя — ошибки в программе есть всегда. Важно определить, когда закончить тестирование. Даже если на протяжении недели активного тестирования не выявлено ни одной ошибки, это не означает, что их нет. Эксперты рекомендуют придерживаться такого подхода — тестировать систему как можно раньше и как можно чаще (чем больше продукт тестируется, тем больше в нем находится дефектов), а обнаруживаемые ошибки надо устранять немедленно.
- Планировать работу на основе правильных показателей.
Невозможно реализовать крупный проект, если не подготовить максимально детальный план всех видов деятельности в его рамках с учетом производительности сотрудников, объема проекта, бюджета и других ресурсов.
- Минимизировать неконтролируемые изменения проекта с учетом того, что неконтролируемые изменения вносятся разработчиками на всех этапах, начиная с требований к системе и заканчивая ее пользовательскими интерфейсами.
- Эффективно использовать сотрудников.
Знания, опыт и мотивация сотрудников — важнейшие факторы успеха. Акцент в управлении проектами должен быть смещен на производительность труда, качество работы, выполнение планов и удовлетворение пользователя. Для этого требуются большие усилия по подготовке профессиональных руководителей проектов и изменения текущих способов их подготовки. Как заметил Эд Йордон в своей работе 'Decline and Fall of the American Programmer', компании, качество производимого ПО и эффективность работы в которых низки, вымрут как динозавры.