Шаблон проектирования

Это Быть Джоном Малковичем (1999) разработки программного обеспечения без программного обеспечения.

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

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

Звучит как много? Позвольте мне привести Вам пример:

Какое-то время мне приходилось регулярно ездить за консультацией.

Каждое воскресенье вечером я готовился. В понедельник я просыпался в 5:30 утра, брал такси в аэропорт и летал на удаленную работу. В четверг вечером я готовился к обратному рейсу, уходил с работы пораньше, брал такси в аэропорт и летал домой.

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

В первый раз, когда я собирался путешествовать по этому маршруту, я составил контрольный список поездки из Бостона в Шарлотту. Он включал в себя все, что, по моему мнению, мне нужно было помнить или отслеживать во время моего путешествия туда и обратно, включая приблизительные оценки того, когда я буду делать определенные вещи.

После того, как моя первая поездка прошла хорошо, я уточнил контрольный список.

Я сделал это снова после третьей поездки.

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

Теперь, когда я не еду на это задание, контрольный список из Бостона в Шарлотту не нужен, но я смог изменить его на более общий контрольный список недельная поездка на задание или даже подготовка к отпускному контрольному списку, который я заполню позже, когда узнаю о своем следующем путешествии или возьму отпуск.

Контрольный список как образец — краеугольный камень успеха в разработке программного обеспечения.

Если вы не ведете контрольные списки для своих ключевых действий, вы не занимаетесь проектированием.

Вот что позволяет контрольный список:

  1. Кто-то другой может сделать контрольный список в будущем, если вы находитесь в отпуске или если вы выиграли в лотерею.
  2. Каждый может просмотреть артефакт контрольного списка для обсуждения плана, а не держать его в голове у одного конкретного человека.
  3. Контрольный список можно со временем уточнять для этого действия на обзорных и ретроспективных сессиях, чтобы он изучался и адаптировался вместе с командой, чтобы представлять лучший способ выполнения задачи.
  4. Контрольный список можно превратить в план действий с отдельными задачами, назначенными разным людям. Таким образом, можно легко создать шаблон назначений действий до фактического выполнения контрольного списка.
  5. Части контрольного списка могут быть автоматизированы на основе самого контрольного списка.
  6. Он включает в себя научный метод: начните с гипотезы [создайте контрольный список], установите способ измерения и проверки гипотезы [выполните контрольный список] и, наконец, уточните гипотезу [измените контрольный список на основе того, как он работает на практике].
  7. Вы можете скопировать контрольный список и абстрагировать его для других подобных контрольных списков. Таким образом, мой контрольный список «Еженедельная поездка из Бостона в Шарлотту и обратно» может легко стать контрольным списком «Еженедельная поездка из Бостона в Сан-Франциско и обратно», изменив его для времени и конкретных изменений маршрута, но изучая все лучшие практики, которые я изучил во время своих поездок туда и обратно. между Бостоном и Шарлоттой.

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

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