جزییات کتاب
От издателя:Написать хорошую программу трудно - кругом подводные камни. Вы как будто слышите голос самого дьявола, который постоянно нашептывает вам заманчивые пути решения той или иной проблемы, легко и быстро приводящие не только к цели, но и к катастрофе. Не поддавайтесь этим дьявольским соблазнам. Ваш личный ангел-хранитель будет оберегать, вести и поддерживать вас, защищать вашу работу и карьеру. Вам помогут выстоять методы, изложенные в этой книге. Здесь авторы собрали накопленный индивидуальный опыт, идеи и методы работы передовых разработчиков и представили их в виде серии коротких и удобоваримых советов. Сначала вы услышите дьявольский шепот, искушающий пойти по ложному пути, но затем, подобно ангелу-хранителю, следует практика, применение которой защитит вас и вашу карьеру. Конечно, всего этого можно достичь методом проб и ошибок, исходя из собственного трудного опыта, но эта книга сбережет ваше время и нервы. Изучите ее - и ваш профессиональный уровень как разработчика возрастет. Содержание: --> Содержание: Глава 1. ГИБКАЯ РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ9Глава 2. НАЧАЛА ГИБКОСТИ191 Работайте на результат212 Быстрая правка не решает проблем243 Критикуйте идеи, а не людей274 К черту торпеды, идите вперед33Глава 3. ВЗРАЩИВАНИЕ ГИБКОСТИ365 Всегда будьте в курсе386 Повышайте уровень своей команды427 Умейте вовремя разучиться458 Спрашивайте до тех пор, пока не поймете489 Почувствуйте ритм51Глава 4. ДЕЛАТЬ, КАК ХОТЯТ ПОЛЬЗОВАТЕЛИ5510 Позвольте заказчику принимать решения5711 Дизайн должен направлять работу, а не диктовать6012 Обоснованно применяйте технологию6513 Держите все наготове6814 Интегрируйте сразу, интегрируйте часто7215 Автоматизируйте процесс развертывания сразу7516 Наладьте регулярную обратную связь при помощи демонстрационных версий7817 Используйте короткие итерации, постепенно добавляйте функциональность8418 Фиксированные цены мешают выполнению обещаний 89Глава 5. ГИБКАЯ ОБРАТНАЯ СВЯЗЬ9319 Посадите ангелов себе на плечи9520 Используйте код до сборки10021 Различия имеют значение10522 Автоматизируйте приемочные испытания10823 Измеряйте фактическое продвижение11124 Прислушайтесь к пользователям114Глава 6. ГИБКОЕ ПРОГРАММИРОВАНИЕ11625 Программируйте осмысленно и выразительно11826 Говорите самим кодом12427 Активно анализируйте все плюсы и минусы13028 Пишите код инкрементами13429 Следите за простотой кода13630 Пишите связный код13931 Говорите, не спрашивайте14332 Замените, сохраняя контракт146Глава 7. ГИБКАЯ ОТЛАДКА15133 Ведите журнал решений15334 Предупреждения фактически являются ошибками15635 Атакуйте проблемы в изоляции16036 Сообщайте о всех исключительных ситуациях16337 Обеспечьте содержательные сообщения об ошибках166Глава 8. ГИБКОЕ СОТРУДНИЧЕСТВО17138 Наладьте регулярное очное общение17339 Архитекторы должны писать код17740 Практикуйте коллективную собственность18041 Будьте наставником18242 Позвольте другим найти ответ18543 Регистрируйте лишь готовый код18744 Проводите ревизию кода19045 Информируйте других193Глава 9. ЭПИЛОГ: ДВИЖЕНИЕ К ГИБКОСТИ195Приложение А. Ресурсы202А.1 Интернет-ресурсы202А.2 Библиография205 Отрывок (Глава 1, стр. 12-14) --> Отрывок (Глава 1, стр. 12-14)Практика гибкостиМожно определитьгибкость (agility) следующим образом: Agile-разработка программного обеспечения предполагает использование обратной связи с заказчиком в целях постоянной корректировки кода в условиях наиболее тесного сотрудничества между членами коллектива.Коротко поясним, что это значит на практике, и как примерно выглядит в жизни гибкая команда разработчиков.Это сплоченная команда. Гибкая команда обычно немногочисленна или же состоит из нескольких небольших групп (порядка десяти человек). Если есть возможность, они сидят вместе в одном подвале (камере для арестантов), пишут общий код и решают общие задачи, связанные с его разработкой. Они тесно сотрудничают с клиентом или заказчиком, который платит за данный программный продукт, и регулярно поставляют им обновленные версии системы по мере их готовности.Вы поддерживаете постоянную обратную связь с пользователями продукта и применяете автоматизированную непрерывную сборку и тестирование для своей системы. Работая над кодом, вы замечаете, что код требует постоянного совершенствования: его функциональность остается прежней, но вам приходится непрерывно перепроектировать различные его куски. Это называетсярефакторинг (refactoring) и является частью текущей работы программиста — код невозможно по-настоящему "доделать".Процесс работы над проектом во времени представляет собой итерации (iterations): небольшие временные интервалы (порядка одной недели), в течение каждого из которых определяются и затем реализуются в коде новые свойства системы. Демо-версия продукта после каждой итерации показывается заказчику для получения обратной связи (и для проверки правильности избранного вами пути), после чего в полном масштабе поставляется всем пользователям системы; чем короче итерации, тем лучше.С учетом вышесказанного остановимся более подробно на применении гибких практик к отдельным составляющим процесса разработки ПО: Глава 2: Начала гибкости. Разработка программного обеспечения происходит в голове разработчика. В этой главе объясняется, что мы имеем в виду и как развить в себе способность к гибкому мышлению и поведению; тем самым закладывается прочный фундамент для восприятия следующих глав. Глава 3: Взращивание гибкости. Гибкий проект не самоочевиден. Для него нужны определенные фоновые условия, которые сами не являются частью процесса разработки, но жизненно необходимы для здорового климата в коллективе разработчиков. Мы покажем, как обеспечить вашей команде и вам постоянный рост и движение вперед. Глава 4: Делать, как хотят пользователи. Даже хорошо написанный код будет бесполезен, если он не учитывает нужды пользователей. Мы рассмотрим практики и технологии, которые позволяют вовлекать пользователей в процесс разработки, активно использовать их опыт работы с системой и учитывать их реальные нужды в процессе создания кода. Глава 5: Гибкая обратная связь. Использование обратной связи для коррекции кода и самого процесса разработки — это то, что позволяет гибкой команде плыть по течению там, где другие ломаются и тонут. Наиболее эффективна обратная связь от самого кода; в данной главе показано, как наладить эту обратную связь и как стимулировать высокую производительность команды и постоянное движение вперед. Глава 6: Гибкое программирование. Обеспечение гибкости и высокой приспособляемости исходного кода к любым изменениям в будущем — важнейший фактор успеха гибкой модели. В данной главе приводятся некоторые испытанные на практике приемы, которые позволяют коду оставаться "чистым", не иметь ничего лишнего и притом быть "мягким", податливым; в конечном счете, у такого кода будет мало шансов превратиться в монстра. Глава 7: Гибкая отладка. Поиск ошибок и отладка кода могуг растянуться на долгий срок и отнять непозволительно много времени. В данной главе приводятся советы, как сделать процесс отладки более эффективным и сэкономить время. Глава 8: Гибкое сотрудничество. В конце концов, один гибкий разработчик может работать достаточно эффективно, но лишь до определенного предела. Если вы выходите за эти рамки, вам нужна команда гибких программистов. Мы продемонстрируем вам исключительно результативную практику, которая, как мы убедились на собственном опыте, помогает создать монолитную команду, а также другие практики, помогающие наладить каждодневное взаимодействие членов команды друг с другом и нацелить ее на дальнейшее развитие.