Предисловие Тома Демарко
Предисловие к первому изданию
Предисловие ко второму изданию
Почему "Креативное программирование"?
Часть I.
Два типа мышления: исследование творчества в области программирования
Введение
Глава 1. Дисциплина и гибкость
Введение
1.1. Генри Форд от программирования, пожалуйста, встаньте!
1.2. Автоматизация программирования - факт или фикция?
1.3. Правда ли, что программистами "невозможно управлять"?
1.4. Дисциплина - неприличное слово: рассказ о жизненном цикле разработки программного продукта
1.5. Имитация программной разработки
1.6. Гибкое программирование (Agile): гибкость достигла зрелости
1.7. Странный случай с карандашом корректора
1.8. Индекс сложности
1.9. "Странная парочка" - дисциплина и творчество
Глава 2. Формальные методы и эвристики
Введение
2.1. По поводу одной дискуссии
2.2. Программирование без комплекса вины
2.3. Формальные методы: драма (успех, провал)
2.4. За границами формальных методов
2.5. Письма читателей: размышления о формальных методах
Глава 3. Оптимизация и разумная достаточность
Введение
3.1. Принцип "лучшее - враг хорошего" и решение задач
3.2. Достаточно хорошее программное обеспечение
3.3. В защиту методов ad hoc
3.4. Михаил Горбачев и продуктивность программирования (!?)
Глава 4. Количественный и качественный подходы
Введение
4.1. "Нельзя управлять тем, что нельзя измерить" - так ли это?
4.2. Математика и компьютерные науки
4.3. Роль интуиции в принятии решений
4.4. Тьма ловушек: числа бывают разные
Глава 5. Процесс или продукт?
Введение
5.1. Приводит ли хороший процесс к лучшему продукту?
5.2. Приводит ли хороший процесс к лучшему продукту? Другая точка зрения
5.3. В шаге от славы
5.4. Разные мысли по поводу процесса программирования
5.5. Процессы и люди: путь к хорошему продукту
5.6. Оценка результатов применения модели зрелости процесса (CMM)
5.7. Когда лучше ориентироваться на продукт, а когда - на процесс?
Глава 6. Интеллектуальные и канцелярские задачи
Введение
6.1. Программы: трудно или легко их делать?
6.2. Задачи программирования: интеллектуальные, канцелярские или… творческие?
6.3. Почему люди "покупаются" на революционные идеи
Глава 7. Теория и практика
Введение
7.1. Временное соотношение теории и практики
7.2. Теория против практики - новый взгляд
7.3. Теория и практика: тревожный пример
7.4. Полет шмеля
7.5. Теория и практика: разные жалобы
7.6. Области программирования, где практика опережает теорию
Глава 8. Наука и производство
Введение
8.1. Дихотомия интересного/полезного
8.2. Дихотомия индивидуального/группового
8.3. Две фразы из поп-культуры
8.4. О понимании, согласии… и формальных методах
8.5. Структурированное исследование? (Немного лукавое предложение)
8.6. Плавающее соотношение передача/прием
8.7. Заседание комиссии, не ориентированной на цель
8.8. Точность и актуальность
Глава 9. Забавность и серьезность
Введение
9.1. Разрываясь между забавностью и скукой
9.2. Open Source: возвращение забавности
9.3. Путешествие по странному проекту
9.4. Помогите найти!
Часть II
Как стимулировать творчество
Введение
Глава 10. Творчество в программирующей организации
Введение
10.1. Греция и Рим: две очень разные культуры программирования
10.2. Контроль и корпоративная культура
10.3. Управление и новаторство
10.4. Творчество и стратегические информационные системы
10.5. Творчество против закона
Глава 11. Творчество в программных технологиях
Введение
11.1. Примеры творческого подхода к реализации информационных систем
11.2. Творчество и разработка ПО: недостающее звено
11.3. Творчество и реальность: конкретный случай
Глава 12. Исторические даты творчества в программировании
Введение
12.1. Первая историческая дата
12.2. Следующие "серебряные пули"
12.3. Творчество и стремление к упрощенности
Часть III
Краткий обзор творчества в других областях
Введение
Глава 13. Организационное творчество
Глава 14. Творческая личность
Глава 15. Помощь компьютера в творчестве
Глава 16. Парадоксы творчества
Глава 17. Так было всегда
Часть IV
Итоги и выводы
Введение
Глава 18. Синергическое заключение
Глава 19. Еще несколько выводов
Алфавитный указатель