Дж.Ханк Рейнвотер - Как пасти котов. Наставление для программистов, руководящих другими программистами
Сборник дискуссий о руководстве проектами, проходивших на разных веб-сайтах. Весьма занимательные свидетельства о том, как выявить трудности в выполнении проекта с точки зрения персонала и процесса. Помогает избежать подобных ситуаций в собственных проектах.
• DeMarco, Tom. The Deadline. New York: Dorset House Publishing, 1997.
Димарко – один из лучших специалистов, исследующих проблемы кадрового обеспечения программных проектов. Конкретно эта книга написана в жанре романа. Об управлении проектами говорится таким языком, что оторваться трудно.
Русский перевод книги доступен на http://lib.rus.ec/b/72963 (прим. сост. FB2)
• Freedman, Daniel P., and Gerald M. Weinberg. Handbook of Walkthroughs, Inspections, and Technical Reviews. New York: Dorset House Publishing, 1990.
Книга в значительной степени устарела, но, с другой стороны, проблема, которой она посвящена, очень мало исследована. В частности, здесь изложен подробный план проведения технических обзоров.
• Humphrey, Watts S. Managing the Software Process. New York: Addison-Wesley, 1989.
Классический труд. Прочитать его стоит всем – даже тем, чьи взгляды не совпадают с позицией Хэмфри, который исходит из принципов школы программной инженерии. Несмотря на то что с момента выхода книги прошло 15 лет, многие изложенные в ней универсальные принципы до сих пор актуальны; кроме того, любопытно сравнить предлагаемые в ней принципы с принципами других методологий разработки.
• Jones, Capers. Applied Software Measurement. New York: McGraw-Hill, 1991.
Книга из серии Института программной инженерии (Software Engineering Institute, SEI). (Кстати, в той же серии вышла предыдущая книга Уотса Хэмфри.) Ее предмет – контроль качества программных средств – не так очевиден, как кажется на самом деле. Вместо того чтобы мыслить по стереотипу «если оно работает, значит, можно выпускать», советую ознакомиться с изложенными в этой книге принципами и впредь перед компиляцией уделять больше внимания вопросам тестирования.
• Kerth, Norman L. Project Retrospectives. New York: Dorset House Publishing, 2001.
Если вам нужен современный справочник по критическому обзору проектов, считайте, что вы его уже нашли. Автор – ведущий специалист в рассматриваемой области, хотя публикуется довольно редко. На мой взгляд, в книге много дельных и обдуманных предложений.
• Whitehead, Richard. Leading a Software Development Team: A Developer's Guide to Successfully Leading People & Projects. New York: Addison-Wesley, 2001.
Уайтхеду удалось написать доступную по стилю изложения книгу, ориентированную на начинающих руководителей программных проектов. Составленная по модели «вопрос-ответ», она очень удачно раскрывает многие из тех проблем, с которыми все мы сталкиваемся в деле выпаса котов.
Общие работы по менеджменту
• Carlson, Richard. Don't Sweat the Small Stuff at Work. New York: Hyperion, 1998.
• Champy, James, and Nitin Nohria. The Arc of Ambition. New York: Perseus Books, 2000.
• Covey, Stephen R. Principle-Centered Leadership. New York: Simon & Schuster, 1992.
• Covey, Stephen R. The 7 Habits of Highly Effective People. New York: Simon & Schuster, 1989.
Перевод на русский язык: http://www.ozon.ru/context/detail/id/2446031/ (прим. сост. FB2)
• Grove, Andrew S. Only the Paranoid Survive. New York: Random House, 1996.
Русский перевод книги доступен на http://lib.rus.ec/b/92541 (прим. сост. FB2)
• Katzenbach, Jon R., and Douglas K. Smith. The Wisdom of Teams. New York: HarperCollins, 1999.
• Pasternack, Bruce A., and Albert J. Viscio. The Centerless Corporation. New York: Simon & Shuster, 1998.
• Welch, Jack. Straight from the Gut. New York: Warner Business Books, 2001.
Русский перевод книги доступен на http://lib.rus.ec/b/99731 (прим. сост. FB2)
Работы по языкам программирования
• Appleman, Dan. Moving to VB.NET: Strategies, Concepts, and Code. Berkeley, С A: Apress, 2001.
• Foxall, James D. Practical Standards for Microsoft Visual Basic. Redmond, WA: Microsoft Press, 2000.
• Hollis, Billy S. Visual Basic 6 Design, Specification, and Objects. Upper Saddle River, NJ: Prentice Hall, 1999.
Разные работы
• Blake, William. The Complete Poetry and Prose of William Blake. Edited by David V. Erdman. Berkeley, CA: University of California Press, 1982.
• Elliot, T. S. Collected Poems 1909–1962. New York: Harcourt Brace Jovanovich, 1971.
• Kauffman, Stuart. At Home in the Universe. New York: Oxford University Press, 1995.
• Kranz, Gene. Failure Is Not an Option. New York: Simon & Schuster, 2000.
• Levinson, Daniel J. The Seasons of a Man's Life. New York: Ballantine Books, 1978.
• Merton, Thomas. No Man Is an Island. New York: Harcourt Brace Jovanovich, 1955.
• Raymond, Eric S., ed. The New Hacker's Dictionary, Third Edition. Cambridge, MA: The MIT Press, 1998.
• Rich, Adrienne. The Dream of a Common Language. New York: W. W. Norton & Company, 1978.
• Shenk, David. The End of Patience: Cautionary Notes on the Information Revolution. Bloomington, IN: Indiana University Press, 1999.
• Strathern, Paul. Turing and the Computer. New York: Doubleday, 1997.
• Tzu, Sun. The Art of War. New York: Dell Publishing, 1983. Русский перевод книги доступен на http://lib.rus.ec/b/80462 (прим. сост. FB2)
• Wallace, James, and Jim Erickson. Hard Drive: Bill Gates and the Making of the Microsoft Empire. New York: John Wiley & Sons, 1992.
• Ullman, Ellen. Close to the Machine. San Francisco: City Lights Books, 1997.
• Yeats, William Butler. Selected Poems and Three Plays of William Butler Yeats. Edited by M. L. Rosenthal. New York: Collier Books, 1986.
Примечания
1
Мои шутки, по большей части размещаются в сносках, так что они не будут вас отрывать от основной мысли. Ну вот, например: что значит «обратная совместимость»? Это значит, что новая операционная система с тем же успехом, что и старая, может грохнуть все ваши программы.
2
Вы ведь знаете, что такое «ниндзя», правда? Это слово обозначает исключительность. Получается своего рода «черный пояс в программировании».
3
Большинство этих терминов разъясняются в издании The New Hacker's Dictionary, Third Edition, by Eric S. Raymond (The MIT Press, 1998).
4
Ellen Ullman, Close to the Machine (San Francisco: City Lights Books, 1997), p. 20.
5
Термином «архитектор» я в данном случае обозначаю один из личностных типов программистов и совершенно не имею в виду полноценного программного архитектора. О том, какую роль играет архитектура в общей схеме разработки, говорится в главе 6.
6
А ведь это очень важно – согласно авторитетным оценкам, по меньшей мере 70 % стоимости программного обеспечения приходится на сопровождение. См. William Н. Brownctal, AntiPatterns: Refactotoring Software, Architectures, and Projects in Crisis (New York: John Wiley & Sons, 1998), p. 121.
7
Некоторые предпочитают называть программиста этого типа «гуру» или «спецом». А мне больше нравится «волшебник».
8
Вы тоже ненавидите пользователей?! Представляете, как было бы здорово писать программы только для программистов?
9
Лично я предпочитаю термину «жучок» (bug) словосочетания «программная аномалия» (program anomaly) и «открытие недокументированной характеристики» (Undocumented Feature Offering, UFO).
10
Frederick P. Brooks, The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (New York: Addison-Wesley, 1995), p. 230. Это действительно непреходящая классика. В нашей области очень мало книг, которые переиздаются через 25 лет после появления, и это – одна из самых стоящих.
Русский перевод книги доступен на http://lib.rus.ec/b/110948 (прим. сост. FB2)
11
Я имею в виду тех, кому пора готовиться к основательной порке.
12
Ну вообще-то в Библии это высказывание приписывается глупцу. Контекст смотрите в Экклезиасте 9:14–19. Только постарайтесь не слишком падать духом, когда будете читать.
13
См. Новый Завет, 1-е послание к Тимофею 6:10 – любовь, деньги и зло он виртуозно сводит в один силлогизм.
14
Игра слов «шлюзовой уровень» – thunking layer, «уровень мышления» – thinking layer. Примеч. перев.
15
Jim McCarthy, Dynamics of Software Development (Redmond, WA: Microsoft Press, 1995), p. 5.
16
Существует мнение, согласно которому полное и всеобщее согласие приводит лишь к тому, что в случае неудачи не остается никого, кого можно было бы в ней обвинить. Может, это и так, но, будучи руководителями, мы не должны увлекаться поиском виновных – значительно полезнее посвятить свое время решению проблем.
17
Событие инициализации в VB не принимает и не возвращает никаких параметров.
18
Это то же самое, что предпочесть синюю пилюлю красной в «Матрице», культовом фильме многих программистов.
19
Южанин бы сказал: «Я пойду за этим в пасть дьявола». Это значит, что вы ни перед чем не остановитесь ради того, чтобы достичь своих целей. Природа этой аллегории происходит от изображения ада в виде ужасной разинутой пасти, готовой поглотить вас, – очень напоминает срок сдачи проекта, к которому невозможно успеть. Вы проявляете твердость и с мечом в руках рубитесь у врат ада, преодолевая силу, стремящуюся вас уничтожить.
20
Помните «Звездные войны»? Что Оби-Ван, говоря об отце Люка, сказал о природе правды и точки зрения? (Когда умер Йода.)
21
Эту и многие другие прелестные вещи, в равной степени поучительные и гнетущие, можно найти в поэмах Блейка «Marriage of Heaven and Hell». Упомянутая выше цитата взята из «Proverbs of Hell» – William Blake, The Complete Poetry and Prose of William Blake, cd. David Erdman (Derkelcy, CA: University of California Press, 1982).