Мышление в системах
«Системное мышление» много лет назад познакомило меня с системным мышлением , которое изменило мое мировоззрение и сформировало некоторые из моих взглядов на решение проблем. Этот менталитет выходит за рамки обычного использования слова «системы» в качестве существительного, знакомого разработчикам программного обеспечения в контексте программирования или распределенных систем.

В начале моей карьеры инженера это подтолкнуло меня к моделированию взаимосвязи входов и выходов моей инженерной команды как части более крупной системы, состоящей из инженерной организации, инженерной службы, кросс-функционального отдела разработки, компании. , и экономика. Это заставило меня задуматься о возможных реакциях на ограничения, налагаемые дефицитом, о том, где могут возникнуть кросс-функциональные сбои, или о том, как стимулы и результаты усиливают поведение всех функций в организации, занимающейся разработкой.
Из систем :
Как узнать, смотрите ли вы на систему или просто на кучу вещей:
А) Можете ли вы идентифицировать части?
Б) Влияют ли части друг на друга?
C) Производят ли части вместе эффект, отличный от эффекта каждой части по отдельности?
D) Сохраняется ли эффект, поведение с течением времени в различных обстоятельствах?
Такое мышление способствует своего рода любопытству ко всем событиям и обстоятельствам, с которыми я сталкиваюсь в своей работе. Это подталкивает меня к размышлениям о последствиях первого, второго, третьего порядка и не только о решениях или изменениях.
Например, часто бывает так, что инженеры сталкиваются с «плохим кодом» и поспешно заключают, что плохой код был создан «плохим инженером». Однако системный мыслитель может пойти дальше:
Почему был зафиксирован плохой код? (Команда продюсеров была вынуждена отправить товар быстро)
Почему команда решила срезать углы, а не отодвигать сроки и придерживаться стандартов? (Команда потеряла всех своих старших инженеров)
Почему команда потеряла всех своих старших или опытных талантов? (Они чувствовали недостаток доверия, потому что их попытки дать отпор в прошлом были отвергнуты)
Почему организация не слушала и не доверяла своим старшим инженерам? (Директор, отвечающий за организацию, не выполнял взятые на себя обязательства в течение нескольких кварталов)
Почему организация не справилась? (Слишком большой технический долг и «плохой код» затрудняют итерацию кодовой базы для команд)
И так далее. Эти вопросы могут привести к неожиданным ответам, например, « масштаб организации непривлекателен для опытных технических директоров ».
Некоторые читатели уподобят этот мыслительный процесс методу расследования «5 почему» , часто используемому для анализа первопричин инцидента . RCA - это практическое применение системного мышления, которое пытается раскрыть единственную причину нарушения в системе. Опять же из книги:
Взаимодействие между тем, что, как я думаю, я знаю о динамических системах, и моим опытом реального мира никогда не перестает быть унизительным. Они постоянно напоминают мне о трех истинах:
1) Все, что, как мы думаем, мы знаем о мире, является моделью.
2) Наши модели обычно имеют сильную конгруэнтность с миром
3) Наши модели не полностью отображают мир.
Эта цитата помогает объяснить, почему даже старшие и опытные инженеры могут быть застигнуты врасплох крупными сбоями программных систем, возникающими из-за первопричин, которые вначале кажутся тривиальными.
Изучение и принятие этого образа мышления помогает понять более широкий набор обстоятельств, влияющих на вашу работу, и помогает вам понять связь вашей работы с миром.