Часть I
Введение в гибкую разработку
Глава 1
Сущность гибкой разработки
Что нужно, чтобы каждую неделю создавать еще одну полезную программу?
На этот вопрос я попытаюсь ответить в данной главе. Вы узнаете, как выглядит процесс написания программы с точки зрения клиента. Также будет показано, как много ненужных вещей мы зачастую преподносим заказчику и как часто нам не удается сделать то, что действительно важно, – регулярно предоставлять клиенту хорошие функциональные программы.
К концу главы вы в общих чертах поймете, как планируется гибкая разработка, как судить об успехе проекта и как всего три простые истины помогают с честью выдерживать самые сжатые сроки и реализовывать сверхсложные проекты.
1.1. Как создавать что-то полезное каждую неделю
Давайте на секунду отвлечемся от гибкой разработки и поставим себя на место клиента. Это ваши деньги и ваш проект, для реализации которого вы наняли команду профессионалов высшего класса.
Что поможет вам убедиться в том, что приглашенная команда действительно не сидела сложа руки? Кипа документов, планов и отчетов? Или регулярное еженедельное предоставление полнофункциональных, протестированных программ, включающих только самое нужное?
Итак, если вы уже начали смотреть на программу с точки зрения клиента, значит, наши дела пойдут хорошо.
1. Нужно разбить крупную проблему на мелкие задачи.
Неделя – это ведь совсем немного. Казалось бы, нельзя успеть выполнить за неделю какую-либо работу. Чтобы дело пошло, нужно разбить большую и неподъемную с виду задачу на маленькие, более простые и управляемые.
2. Нужно сосредоточиться только на том, что действительно важно, и забыть обо всем остальном.
Большая часть того, чем мы занимаемся при разработке программ, не представляет никакой или почти никакой пользы для нашего клиента.
Разумеется, нам понадобится документация. Конечно, не обойтись и без планов. Но они нужны только как вспомогательные средства на пути к созданию готовой программы.
Создавая что-то стоящее каждую неделю, вы просто вынуждены собраться и отбросить все, что не приносит пользы. В результате вы как будто отправляетесь в дорогу налегке, захватив с собой только самое необходимое.
3. Нужно убедиться, что создаваемый вами продукт работает.
Создание чего-то полезного каждую неделю подразумевает, что плоды вашего труда должны быть качественными. Для этого необходимо тестирование – как можно больше и как можно раньше. Прошли те времена, когда все лишнее из проекта убирали только в его финале. Теперь ежедневное тестирование уже становится образом жизни. Вся ответственность лежит на вас.
4. Работа требует участия клиента.
Чтобы достичь цели, нужно регулярно останавливаться и сверять курс с клиентом. Его участие можно сравнить со светом фар, который рассекает густой туман, когда вы несетесь по трассе со скоростью 100 км/ч. Без таких консультаций клиент не может отслеживать вашу работу – в результате вы оба можете попасть в кювет.
5. При необходимости нужно изменять курс.
При работе случается всякое. Положение изменяется. То, что неделю назад казалось важным, сегодня может быть отбраковано. Если выстроить план и слепо ему следовать, вы не сможете справиться с непредвиденными обстоятельствами в случае их возникновения. Поэтому, если реальность нарушает ваши планы, меняйте планы, а не реальность.
6. Вы берете на себя ответственность.
Когда вы ставите перед собой цель каждую неделю создавать что-то стоящее и отчитываться перед клиентом, на что тратите его деньги, вы берете на себя определенную ответственность.
♦ Вы отвечаете за качество.
♦ Вы придерживаетесь расписания.
♦ Вы устанавливаете определенную планку.
♦ Вы тратите средства так, как если бы они были вашими.
Считаю ли я, что настанет день, когда все будут работать именно так? Ни в коем случае – ведь я же не удивляюсь тому, что большинство людей питается неправильно и не утруждает себя физкультурой.
Читать дальше