Современные системы не сложны, а очень сложны. Именно поэтому они реализуются обычно как наборы связанных через (желательно стандартные) API программных или аппаратных (или программно-аппаратных, что всё чаще) модулей из относительно независимых платформ, каждая из которых реализует свой кусочек предметной сложности. Но есть ещё системный уровень, где все эти предметные сложности встречаются в жизни и наоборот -- разделяются в проекте.
Я написал вчера пост про образовательный проект, который для большинства людей просто непонятен, запредельно сложен:
http://ailev.livejournal.com/1277589.html Это потому что для его понимания нужно:
-- что-то понимать про образование в STEM в общем, на уровне людей, которые пробовали учить, а не получили это образование сами. Более того, ещё и примерно понимать, что происходит в образовании по алгоритмике, устройство всех этих online judge, что делает гомельская школа обучения алгоритмике и московская группа Аттик, и организации типа
http://informatics.mccme.ru/ (а их много!). Опять же, попробовать не только поучиться самому, но и поучить кого-то.
-- поразбираться в адаптивном обучении, образовательной теории и технологии. Примерно представлять, что и почему делает Knewton, чем это круто, и кто у них из конкурентов на хвосте. Вот, для примера, блог Knewton:
https://www.knewton.com/resources/blog/-- представлять, что происходит в deep learning в частности, в машинном обучении в целом, и далее в AI: границы достижимого сегодня. Скажем, мониторить
https://vk.com/deeplearning-- что происходит в системной информатике (все эти systems frameworks и как из них делать большие онлайн системы). Например, регулярно читать ленту
https://www.infoq.com/ -- а ещё там есть "нейро" (желающие могут думать о "когнитивистике", это такое же расплывчатое слово).
-- и технологическое предпринимательство (когда пытаются делать "бизнесы", а не "стартапы").
То есть минимальная команда на верхнем уровне -- это:
-- системный инженер
-- учитель/тьютор/дидакт информатики (про математику-геометрию-физику молчу, это потом, "на следующей итерации")
-- системный программист (в старинном понимании этого слова, бытовавшем в 90-х), он же будет и system architect (мы ж про минимальную команду!)
-- инженер по машинному обучению
-- нейротехнолог-когнитивист (что бы это ни значило: тот, кто может рассуждать и что-то делать руками в направлении замеров cognitive load)
-- предприниматель
Все они должны договориться о том, как разбить систему на части, чтобы каждый мог максимально независимо от других реализовать свой кусок работы для получения успешной системы. В моих постах последнего времени задокументировано самое начало такого разговора, когда системный инженер рассказывает всем членам команды про их роли в проекте и чем бы им нужно было заняться. Неудивительно, что эти посты оказываются так малопонятны.
Я их писать могу лишь потому, что
-- как-то познакомился с системным подходом (и поэтому хоть как-то раскладываю весь этот зоопарк по полочкам), ну и ещё я
-- всеми этими областями деятельности позанимался по нескольку лет каждой, так что не вздрагиваю от каждого незнакомого слова, большинство слов на этом уровне общности и на одну ступеньку вниз по каждому из этих направлений мне знакомы.
Вот и оказывается, что про такие проекты, как бы заманчиво они не формулировались, поговорить почти и не с кем. Ну, или нужно переключаться из архитектурного режима в организационный режим и собирать собеседников специально, оффлайн, соцсети тут отдыхают, содержательных комментариев от всех этих жжж и мордокниг не дождёшься. Дальше-то разговаривать самому с собой бессмысленно, нужна командная работа специалистов.
UPDATE: ещё комменты в фейсбуке --
https://www.facebook.com/ailevenchuk/posts/10207566145245783