Чистый Agile. Основы гибкости — страница notes из 36

Примечания

1

Мартин Р. Чистый код: создание, анализ и рефакторинг. — СПб.: Питер, 2018. — 464 с.: ил.

2

Мартин Р. Идеальный программист. Как стать профессионалом разработки ПО. — СПб.: Питер, 2019. — 224 с.: ил.

3

Мартин Р. Чистая архитектура. Искусство разработки программного обеспечения. — СПб.: Питер, 2020. — 352 с.: ил.

4

Turing A. M. 1936. On computable numbers, with an application to the Entscheidungsproblem [доказательство]. Proceedings of the London Mathematical Society (Труды Лондонского математического общества), 2 (изд. 1937), 42(1):230–65. — Лучший способ ознакомиться с этой работой — прочитать произведение Чарльза Петцольда: Petzold C. The Annotated Turing: A Guided Tour through Alan Turing’s Historic Paper on Computability and the Turing Machine. Indianapolis, Indiana: Wiley, 2008.

5

«Вики» Уорда, c2.com — сайт оригинальной «Википедии», первый день появления в сети Интернет. Пусть поддержка длится как можно дольше.

6

Larman C. Agile & Iterative Development: A Manager’s Guide. Boston, Massachusetts: Addison-Wesley, 2004.

7

Royce W. W. 1970. Managing the development of large software systems. Proceedings, IEEE WESCON, August: 1–9. URL: http://www-scf.usc.edu/~csci201/lectures/Lecture11/royce1970.pdf.

8

Стоит отметить, что мое толкование этой временной шкалы подвергли сомнениям. См.: Bossavit L. The Leprechauns of Software Engineering: How Folklore Turns into Fact and What to Do About It, Ch. 7. Leanpub, 2012.

9

DeMarco T. Structured Analysis and System Specification. Upper Saddle River, New Jersey: Yourdon Press, 1979.

10

Page-Jones M. The Practical Guide to Structured Systems Design. Englewood Cliffs, New Jersey: Yourdon Press, 1980.

11

Coad P., Yourdon E. Object-Oriented Analysis. Englewood Cliffs, New Jersey: Yourdon Press, 1990.

12

Booch G. Object Oriented Design with Applications. Redwood City, California: Benjamin-Cummings Publishing Co., 1991.

13

Coplien J. O. A generative development-process pattern language. Pattern Languages of Program Design. Reading, Massachusetts: Addison-Wesley, 1995. P. 183.

14

Майк Бидл был убит 23 марта 2018 года в Чикаго психически нездоровым человеком, до этого арестованным и отпущенным 99 раз, который должен был находиться в психбольнице. Майк Бидл был моим другом.

15

Beedle M., Devos M., Sharon Y., Schwaber K., Sutherland J. SCRUM: An extension pattern language for hyperproductive software development. Ссылка: http://jeffsutherland.org/scrum/scrum_plop.pdf.

16

Pattern Languages of programming — конференция, которую проводили в 1990-х неподалеку от университета штата Иллинойс.

17

Это одно из тех странных совпадений, которые происходят время от времени. Нет ничего такого особенного в объектно-ориентированном программировании, что не дает применять в нем каскадную модель, тем не менее эта идея набирала в те дни популярность.

18

Этот день очень значим, поэтому его стоило упомянуть.

19

Не так давно увидела свет история события, изложенная в литературном журнале The Atlantic за авторством Кэролайн Мимбс Найс: Caroline Mimbs Nyce. The winter getaway that turned the software world upside down // The Atlantic. 08.12.2017. URL: https://www.theatlantic.com/technology/archive/2017/12/agile-manifesto-a-history/547715/. Когда я это все писал, то еще не ознакомился с той статьей, поскольку мне не хотелось путать свои воспоминания, которые я изложил здесь.

20

Слева направо, полукругом около Мартина Фаулера, на фотографии представлены: Дейв Томас, Энди Хант (или, возможно, Джон Керн), я (меня можно узнать по синим джинсам и мультитулу на ремне), Джим Хайсмит, кто-то, Рон Джеффрис и Джеймс Греннинг. Кто-то, уже не помню кто, сидел позади Рона. Возле его ботинка на полу, похоже, находится одна из карточек, которые мы использовали при группировке по сходству.

21

С англ. «живой», «проворный», «гибкий». — Примеч. пер.

22

Этот принцип тесно связан с циклом НОРД — петлей Джона Бойда, кратко изложенным здесь: https://ru.wikipedia.org/wiki/Цикл_НОРД. Boyd J. R. A Discourse on Winning and Losing. Air Force Base Maxwell, Alabama: Aeronautics University Library, 1987. Document No. M-U 43947.

23

Однако разработчики сайта healthcare.gov определенно пытались.

24

Понятие «спринт» используется в Scrum. Мне оно не нравится, потому что намекает на то, что нужно нестись изо всех сил. Проект по разработке — это марафон. А кому нужен спринт во время марафона?

25

Брукс Ф. Мифический человеко-месяц, или Как создаются программные системы. СПб.: Питер, 2020. https://ru.wikipedia.org/wiki/Мифический_человеко-месяц.

26

Beck K. Extreme Programming Explained: Embrace Change. Boston, Massachusetts: Addison-Wesley, 2000. Также существует второе издание 2005 года, но мое любимое издание — первое, я считаю именно эту версию окончательной работой. Возможно, Кент не согласится со мной. (На русском языке: Бек К. Экстремальное программирование. — СПб.: Питер, 2002. — 224 с.: ил. — Примеч. ред.)

27

Или, по крайней мере, так изначально задумывалось. Сейчас Scrum вобрал в себя множество методов экстремального программирования.

28

Safety Research & Strategies Inc., Toyota unintended acceleration and the big bowl of «spaghetti» code [blog post]. 7 ноября 2013 г. URL: https://www.safetyresearch.net/blog/articles/toyota-unintended-acceleration-and-big-bowl-%E2%80%9Cspaghetti%E2%80%9D-code.

29

O’Cane S. Volkswagen America’s CEO blames software engineers for emissions cheating scandal // The Verge. 8 октября 2015 г. URL: https://www.theverge.com/2015/10/8/9481651/volkswagen-congressional-hearing-diesel-scandal-fault.

30

Adzic G. Humans vs Computers. London: Neuri Consulting LLP, 2017. URL: http://humansvscomputers.com.

31

Parker M. Humble Pi: A Comedy of Maths Errors. London: Penguin Random House UK, 2019. URL: https://mathsgear.co.uk/products/humble-pi-a-comedy-of-maths-errors.

32

Agile Alliance. Exploratory testing. Ссылка: https://www.agilealliance.org/glossary/exploratory-testing

33

Вспомните разработчиков из «Фольксваген», которые «согласились» выполнить задание обойти испытания на количество выбросов вредных веществ в атмосферу. https://ru.wikipedia.org/wiki/Дело_Volkswagen.

34

https://ru.wikipedia.org/wiki/PERT.

35

Это одно из определений истории, данное Роном Джеффрисом.

36

Ну, в какой-то степени, все равно.

37

https://ru.wikipedia.org/wiki/Закон_больших_чисел.

38

https://en.wikipedia.org/wiki/Wideband_delphi.

39

Grenning J. W. 2002. Planning Poker, or How to avoid analysis paralysis while release planning. URL: https://wingman-sw.com/articles/planning-poker.

40

Потому что автоматизация — это работа программистов!

41

Это мои личные впечатления, основанные на разговорах с ребятами, которые напрямую сталкивались с подобными проблемами. Сейчас у меня нет актуальных данных. Действуйте на свой страх и риск.

42

https://en.wikipedia.org/wiki/Chrysler_Comprehensive_Compensation_System.

43

Evans E. Domain-Driven Design: Tackling Complexity in the Heart of Software. Boston, Massachusetts: Addison-Wesley, 2003.

44

Marco T. Structured Analysis and System Specification. Upper Saddle River, New Jersey: Yourdon Press, 1979.

45

«Это энергия, создаваемая всеми живыми существами. Она снаружи и внутри нас. Она связывает всю Галактику». Лукас Дж. Звездные войны. Эпизод IV: Новая надежда. 1979. Кинокомпания «Лукасфилм».

46

Это произошло за десятилетие до того, как я узнал о разработке через тестирование. Знай мы с Джимом этот метод в то время, мы могли бы легко откатить это изменение.

47

Beck K. Extreme Programming Explained: Embrace Change. Boston, Massachusetts: Addison-Wesley, 2000. P. 97.

48

https://ru.wikipedia.org/wiki/CruiseControl.

49

http://wiki.c2.com/?MikeTwo.

50

Потому они и называются стендап-митинги, то есть «стоя».

51

https://ru.wikipedia.org/wiki/Двойная_запись.

52

Если вы изучали бухгалтерское дело, то, скорее всего, кипите от возмущения. Да, это было грубым упрощением. С другой стороны, я описал разработку через тестирование упрощенно, одним абзацем. Программисты, наверное, тоже возмутились.

53

Fowler M. Refactoring: Improving the Design of Existing Code. 2nd ed. Boston, Massachusetts: Addison-Wesley, 2019.

54

Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Паттерны объектно-ориентированного проектирования. — СПб.: Питер, 2020. — 448 с.: ил.

55

https://en.wikipedia.org/wiki/Mob_programming, https://mobprogramming.org/mob-programming-basics/.

56

https://martinfowler.com/bliki/FlaccidScrum.html.

57

Booch G. Object-Oriented Analysis and Design with Applications. 2nd ed. Reading, Massachusetts: Addison-Wesley, 1994. Pp. 233–234.

58

58 The birth of the IBM PC. URL: https://www.ibm.com/ibm/history/exhibits/pc25/pc25_birth.html.

59

https://ru.wikipedia.org/wiki/Scaled_Agile_Framework.

60

https://less.works/ru/.

61

Приводится с разрешения.

62

Ellnestam O., Brolund D. The Mikado Method. Shelter Island, New York: Manning Publications, 2014.

63

Beck K. test && commit || revert. 2018. URL: https://medium.com/@kentbeck_7670/test-commitrevert-870bbd756864.

64

Классический пример экзаптации: оперение птиц первоначально использовалось для регуляции температуры, в дальнейшем оно было адаптировано для полета. — Примеч. ред.

65

Опять же на 2019 год. Времена меняются.

66

Используется с разрешения.

67

Adkins L. Coaching Agile Teams: A Companion for ScrumMasters, Agile Coaches, and Project Managers in Transition. Boston, Massachusetts: Addison-Wesley, 2010.

68

https://manifesto.softwarecraftsmanship.org/#/ru-ru.

69

https://agilemanifesto.org/iso/ru/principles.html.

70

Highsmith J. Agile Project Management: Creating Innovative Products, 2nd ed. Boston, Massachusetts: Addison-Wesley, 2009. P. 85.

71

Beck K. Extreme Programming Explained: Embrace Change. Boston, Massachusetts: Addison-Wesley, 2000.

72

Fowler M. Refactoring: Improving the Design of Existing Code. 2nd ed. Boston, Massachusetts: Addison-Wesley, 2019.