?

Log in

No account? Create an account

Saturday, November 21st, 2009

Общая инженерия против системной

Например, вот что меня вчера зацепило на лекции по системной инженерии. Хотел написать ещё вчера, был без инета, написал в блокнот, сегодня пощу.

Сегодня на лекции Левенчук снова говорил о том, что есть:
- инженеры системные, задача которых — держать целостность, целокупность, холистичность системы, не упускать ни единого её аспекта из внимания, чтобы не вышло офигительных ультразвуковых самолетов без дверей (потому что интересы пассажиров забыли учесть).
- инженеры предметные, специальные, которые сидят и держат свою предметную область, чтобы в ней не вышло лажи, вплоть до мельчайших деталей реализации.

И говорил, что у инженеров предметных, таких как например:

- инженеров-строителей
- инженеров-железнодорожников
- программных инженеров
- инженеров-мостостроителей
- инженеров-электротехников
- инженеров-судостроителей

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

Такие, как например:
- выяви своих заинтересованных сторон
- преобразуй их хотелки в формализованные требования и далее в спецификации
- определи назначение системы
- определи границы системы
- определи обеспечивающие системы для своей целевой системы
- и так далее

И вот эти-то практики, утверждает Левенчук, и являются ядром, тем, что называется «системная инженерия».
И дальше приводит аналогию с врачами. Что есть доктор-офтальмолог, есть доктор-стоматолог, есть доктор-гинеколог и есть доктор-хирург.

И что они совершенно разными вещами занимаются и что никогда не возьмётся стоматолог лечить сердце, не полезет в кардиологию.

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

У меня по прошествии некоторого времени возникло внутреннее возражение.

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

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

Однако что их всех объединяет? Они все точно учили на первом курсе общую психологию. У них у всех точно на втором курсе был ОПП - общепсихологический практикум. Они все точно учили эксперименталку и они все точно учили историю психологии от платона и аристотеля через вундта и фрейда с юнгом и адлером и райхом до выготского, бернштейна, леонтьева и современности в виде какого-нибудь чиксентмихайи и славы грофа лол.

Но! Никто это не называет системной психологией!
Не работают эти психологи с системами.

Но есть у них общие практики, и называется это общей психологией.

Поэтому возник у меня вопрос. А ведь всё таки бывают практики у инженеров — общие для всех. Но не про системы.

Может быть имеет смысл разделять общую инженерию и системную инженерию?

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

Можно предложить другой вывод — возможно просто психология ещё не дошла в развитии своем как наука до применения системного подхода во всем и вся.

Третий вывод — я просто чего-то не знаю про психологию.
Четвертый вывод — я сравниваю науку - психологию и совершенно прикладную штуку - инженерию, какого черта, это несопоставимо.

Вот ещё пример, вспомнились мне дизайнеры.
Дизайнеры бывают графические (со специализацией на полиграфии/компьютерной графике/печатных изданиях/фирменном стиле и логотипах/интерактивных средах/чем ещё?), шрифтовые, интерьерные, ландшафтные, технические, трёхмерные, а также 3d-аниматоры, промышленные, бывают гейм-дизайнеры и левел-дизайнеры, ещё бывают верстальщики (которые правда иногда в меньшей степени дизайнеры и в большей программисты), и даже бывают юзабилисты, лол.

У них у всех разные предметы работы, зачастую различаются и методы.
Но у них у всех есть общие инструменты, такие как форма, цвет, композиция, что там ещё — в дизайне я разбираюсь ещё меньше, чем в психологии.
С другой стороны у всех дизайнеров есть практики контрактации с заказчиком, есть практики получения хотелок от него и преобразования их в свой внутренний формат требований.

Эти общие практики точно не называются системным дизайном, впрочем и общим дизайном не называются, как мне кажется.


Возможно имеет смысл поискать критику системного подхода, чего ему не хватает, какие аспекты он не схватывает. Хотя что-то я в системной терминологии говорю — «аспекты», лол. Так не получится критиковать.
Но просто есть же какие-то ситуации, когда системные инженеры начинают говорить - ненене, всё не так, вот вы просто смотрите неправильно, надо вот так смотреть, тогда всё понятно, нет у Солнечной системы назначения, вот если её объекты начинают использоваться...

А если всё-таки попробовать смотреть с каких-нибудь неправильных позиций?

---

теперь оффтопик

http://ru.wikipedia.org/wiki/Системотехника надо инициировать на википедии переименование этой статьи в Системную инженерию, вот что. И раскрыть.

также, вот что писали про системных инженеров в БСЭ:


« Проектировщики сложных систем — специалисты широкого профиля, инженеры-системотехники, обладающие достаточными знаниями в конкретной области техники (например, в машиностроении, электронике, пищевой промышленности, авиации), имеющие повышенную математическую подготовку, а также знающие основы вычислительной техники, автоматизации управления, исследования операций и особенности их практического применения. Помимо них в группу внешнего проектирования сложных систем обычно включают специалистов по системному анализу и математическому моделированию, а также инженеров, способных организовать взаимодействие между элементами системы.»

http://slovari.yandex.ru/dict/bse/article/00071/46000.htm?text=системотехника

(8 comments | Leave a comment)

Friday, October 23rd, 2009

Аутентичность людей и целостный порождающий дизайн систем

А вот например, что меня волнует.

Меня волнует как должен выглядеть софт (для машин - программы, для людей - игры-правила (они же — практики и процессы)), который способствовал бы аутентичному, искренному, честному поведению.

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

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

В ХР 1.0 (которое я нежно люблю) 12 практик, но внедрять можно не все сразу, а понемногу.
На первых порах можно внедрять не все, а например штуки по три:
— TDD+refactoring+continuous integration например. Или
— pair programming+coding standards+collective code ownership. Или
— planning game+on-site customer+small releases.
— и так далее. На самом деле сочетать можно как угодно, возможных сочетаний из 12 по 3 — 220 штук и все в принципе хорошие.

Если взять вот так всего три практики из референтного описания в книжке Кента Бека, то всё равно у тебя будет работоспособная целостная человеческая система разработки софта. Если добавить четвертую — будет тоже работоспособная и целостная. Если внедрить только две — тоже будет ок.

Про это явление на последней встрече AgileRussia сказали, что «ХР-то ведь обладает фрактальной структурой, что вы хотели?»

Вот меня и волнуют такие фрактальные архитектурные описания. Как сделать такую же крутую систему как ХР, но только не для бизнеса по разработке софта, а например для бизнеса в сфере хлебопечения? Сразу отбрасываем возражение «нельзя выехать на одной практике "замеси тесто"». Это практика более низкого уровня, точно так же как бизнеса нельзя построить из практики "запиши алгоритм в виде функции на Си".

Мне кажется, что такие архитектурные описания становится возможным записывать, только тогда, когда достигнешь определенного уровня честности с самим собой. Например Кент Бек признался себе — я не пишу идеальный код без багов с первого раза, нужно чтобы был критерий, по которому можно проверять. И появляется требование «как бы нам проверять код на баги?», потом происходит какой-то дискурс (magic! креативное брожение и блуждание в потемках в поисках способа через получение разного опыта и его осмысление) и потом придумывают практику TDD.

А потом Кент Бек снова признался себе — программисты, да и я сам такой, часто отвлекаются или наоборот зависают и тупят в процессе написания кода. Человеко-час — мифический, он всегда умножен на велосити, которая всегда меньше единицы, а часто и меньше одной второй. Надо как-то не терять фокус, поставить надсмотрщика что ли. Но как сделать, чтобы надсмотрщик был приятен, а не фрустрировал?
А может быть даже — помогал??? А ведь помощник будет тоже следить и не давать терять фокус, правда? Но будет мешать вопросами тупыми, если он более слаб по квалификации? Значит партнер что ли? Не подмастерье, а коллега? Ну и дальше парное программирование как решение, которое потом начинают защищать от критики, показывая что плюсы от не потерянного фокуса и сохраненной простоты решений (повышения индивидуальной велосити) превышают минусы (якобы уменьшение ресурса человеко-часов вдвое) Было два чувака с велосити по 0.3, в сумме 0.6, а стала одна пара с велосити 0.8, синергия ололо.

Ну и так далее.

Оказывается, что порядком связаны все эти штуки, аутентичность, софт, правила, архитектурные описания процессов.

--
Ах, да. Собственно об аутентичности.
(2 comments | Leave a comment)

Monday, October 12th, 2009

градостроительство и системная инженерия

Читаю тут статью в Архнадзоре вместо того чтобы готовить слайды к завтрашнему занятию в школе ивент-менеджеров — http://www.archnadzor.ru/?p=3057

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

Мечтательно воображаю генплан как симултрековую модель, а не как документ, и гадаю есть ли уже такое где-нибудь в мире.

Если поступлю в аспирантуру, то самым гармоничным было бы сразу же моментально попробовать сменить научника, кафедру и тему к чертям собачьим. Ну нет вообще мотивации заниматься экспертными оценками, не идет вообще, ну скучно мне это сейчас. Не вижу поля для исследований, есть поле для написания разъясняющих статей поверх старой математики, которую ещё в 78 году описал Шмерлинг с соавторами в обзоре. Но это же тоска смертная и я не секу в математике.

И наоборот — читаю с удовольствием Детмера (http://www.books.ru/shop/books/585546), сплошная польза вагонами, начиная с первых же страниц, интересно, понятно и увлекательно.

А вот ещё например крайне красивая и простая презентация о том, что такое системная инженерия, которую сегодня увидел у sninkers:

What Is Systems Engineering
View more presentations from Colin White.


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

Кстати о слайдах. Пойду кейноут мучать про ивентшколу, да.
(3 comments | Leave a comment)