TGTGInsightаналитика telegramLIVE / telegram public index
← Системный сдвиг
Системный сдвиг avatar

TGINSIGHT POST

Post #758

@systemswing

Системный сдвиг

Просмотры4,160Количество просмотров
Опубликован1 июл.01.07.2025, 11:50
Содержимое поста

Содержимое

Вокруг все говорят про софт-скиллы, имея в виду в основном самоорганизацию, самодисциплину, управление временем, умения корректно и бережно общаться, работать в команде, выдерживать давление, правильно вести себя в конфликтах и всякое такое. Мне это не очень интересно, по крайне мере на том уровне, который обычно доходит до инженерных и аналитических конференций и статей (хотя бывают приятные исключения, когда приходят настоящие психологи, например как на прошлогодний Flow). Но вот очень сильно меня интересует направление, о котором редко говорят: когнитивные процессы аналитиков, программистов, архитекторов. В англоязычной литературе это называется cognition, а переводят иногда просто "мышление". Меня это интересует в практической плоскости, с точки зрения обучения. Потому что многие вещи в работе аналитиков не специализированы, а именно что выражают общее владение логикой, абстрактным мышлением, умением отделять концепты, предметы рассмотрения, структурировать информацию и т.д. И вот хорошая статья с заманчивым названием 'Cognition in Software Engineering: A Taxonomy and Survey of a Half-Century of Research' — "Мышление в программной инженерии: таксономия и обзор за полвека исследований", 2022 год. Они предлагают следующие концепты в области мышления: — Восприятие — Внимание — Разделение внимания (мультитаскинг) — Селективное внимание (фокусировка на конкретной задаче) — Устойчивость внимания (насколько долго вы можете сосредоточиться на задаче) — Память — Рабочая — Кратковременная — Долговременная — Когнитивная нагрузка — Внутренняя (соответствующая собственной сложности задачи) — Внешняя (относящая не к сути задачи, а к форме, в которой она поставлена, и в сложности поиска информации и материалов для решения задачи) — Рассуждения, умение делать выводы — Принятие решений (умение выявлять альтернативы, сравнивать их, оценивать и выбирать) — Решение задач (умение следовать от постановки задачи до её выполнения через последовательность мыслительных операций) — Когнитивные искажения — Знания — Явные — Неявные технические — Неявные мыслительные (ценности, ментальные модели, схемы) — Социальное мышление (вот тут в основном сидят софт-скиллы) Ко всем этим процессам должен быть приложен когнитивный контроль — насколько человек может контролировать и успешно выполнять все эти процессы — и когнитивные ошибки: какие типовые ошибки возникают при выполнении перечисленных процессов. Все эти процессы в приложении к программной инженерии исследуются с 1973, но массово только с 2010. Примерно тогда же кроме памяти, знаний и рассуждений стали исследовать внимание, когнитивные искажения и когнитивную нагрузку. Любопытно, что, в разбивке по областям SWEBoK, в области Requirements и Design исследуют в основном знания (очевидный предмет), но в индустриальных публикациях исследуют больше рассуждения (что логичнее). К сожалению, именно в этих исследованиях нет никакой физиологической рамки или теории, объясняющей, что вообще в голове происходит. При этом в целом по требованиям и проектированию больше всего исследований, после Software Construction (никогда не мог понять эту разницу, это типа низкоуровневое проектирование?..) Любопытная находка исследователей: Восприятие — менее всего изученная область. А ведь у нас постоянно возникает вопрос — как представить требования или постановки, чтобы не возникло искажение понимания! Что давать: диаграмму, макет интерфейса, формальный текст, историю, что-то близкое к коду, типа OpenAPI? Наука не дает ответа. Вот такая рамка. А вы бы про какой концепт хотели лучше узнать? Что важнее всего для аналитиков? И что нужно учитывать при передаче своих результатов дальше по процессу?