![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Вчера
juan_gandhi навёл на необходимость сформулировать словами ещё одну концепцию из тех, что я знаю интуитивно, но остальной народ воспринимает почему-то совсем иначе.
Инженерная проблема - это поиск наилучшего приближения для клубка задач, принципиально не имеющих решения, удовлетворяющего всем заданным условиям.
Попробую перевести на английский.
(Определение в этой формулировке мне не очень нравится, но с этим уже можно работать. Я сейчас быстро намечу основные контуры. Для понятного описания надо копать слишком глубоко.)
В вульгарной интерпретации отсюда следует известная формула «Быстро, хорошо, дёшево: выберите два из трёх». Реальность гораздо сложнее.
Если принять предложенное определение, первым печальным фактом придётся признать, что мы работаем в зоне высокого риска. Search is not finding. То есть, можно затратить все ресурсы и ничего не найти.
Вторая проблема - проблема планирования.
Знающие люди видят, что предсказание бюджета и сроков по сложности сопоставимо с решением самой проблемы. (Люди не знающие, могут мне верить или не верить, но обсуждать это я сейчас не буду.)
Решается это или банальной магией по подобию «Мы делали подобный проект и затратили X ресурсов за Y времени. Новая проблема более-менее похожа. Накинем десять процентов и запишем в план», или путём последовательных приближений плана на будущее по результатам завершённых этапов (Moneyfall modell).
Третья основная проблема - невозможность человеку со стороны отличить специалиста от балабола.
Практически, это означает принципиальную неуправляемость. Если инженеры приходят к менеджеру и говорят, что им нужно ещё три месяца времени и миллион долларов денег, только человек, хорошо разбирающийся в предмете, поймёт, столкнулись ли люди с принципиальными трудностями, которые они смогут одолеть при выделении дополнительных ресурсов, или же у исполнителей не хватает квалификации сделать элементарные вещи, а своими требованиями они просто откладывают позор на будущее.
Понятно, что с этим надо что-то делать. Напрашивается вариант - набрать квалифицированные кадры и поставить над ними высококвалифицированных менеджеров. Но для этого набирающие должны сами иметь высокую квалификацию. Причём, не какую-нибудь, а в целевой предметной области.
Так работают немецкие частные фирмы выросшие вокруг инженеров старой закалки (пока молодая вдова не вступает в управление и не приглашает выпускников MBA, которые всё эффективно разваливают).
Если у управляющих нет необходимых для управления инженерами знаний и опыта, есть несколько подходов. Они заключаются в работе над словами «by consideration of all given constraints»
Самый распространённый - менеджерский.
Вышеприведённые слова, грубо говоря, определяют качество. Секрет ловкого менеджмента в том, чтобы обрезать его так, чтобы никто не заметил.
В ИТ это происходит сплошь и рядом. Потому что решение виртуальное и большинство ограничений или скрыты от глаз посторонних, или выражаются абстрактными словами, вроде «security, performance, maintainability...»
Эффективному управлению мешает только один факт: инженер - это тот, кто отказывается снижать качество, если это снижение принципиально. Причём, отказывается вплоть до увольнения.
По счастью, инженеры - в нынешних корпоративных экосистемах вид вымирающий. Сейчас это можно видеть не только по истории с Фукусимой, где инженерные принципы встали а противоречие с самурайскими (хотя, на соседней станции настоящие инженеры были, и они построили стенку, выдержавшую цунами без проблем). Из последних скандалов хорошо подходят попытка совместить мощность дизеля с экологической чистотой у Фольксвагена или уменьшение размеров батареи с повышением её мощности у Самсунга.
В тех немецких фирмах, с которыми я работал, инженеры в программировании практически вымерли. Механика, электрика и прочие специальности ещё держатся, но на них всё сильнее давит оутсоурсинг в Китай и местные отделы качества.
Вторым подходом превращения инженерных задач в управляемые в основном страдают консультанты.
Они проповедуют, что ограничения бывают мелкие и крупные. Если мелкие отбросить, решаемые задачи становятся не связанными и их можно разложить в иерархические структуры, вполне решаемые с использованием Правильных Подходов и Правильных Тулов. (Обычно консультанты продают тулы, а подходы просто к ним привязывают. Особо наглы просто обучают Правильно Думать.)
На банальных примерах это работает великолепно. Что и объясняет повсеместное распространение этой заразы.
Проблема в том, что в реальных условиях мы не можем определить силу связей и важность ограничений до того момента, пока мы не исследовали проблему полностью до мельчайших деталей. А потом оказывается, что в великолепно организованном процессе с высочайшей интенсивностью контроля качества копеечное ограничение приводит к самоподрыву дорогущей ракеты на тридцать четвёртой секунде полёта.
Консультанты не видят тут принципиальной проблемы. Вместо этого они берут случай на вооружение и используют для рекламы Ещё Более Правильных Подходов и Ещё Более Правильных Тулов.
Я не буду тут пересказывать многочисленные посты в этом блоге и указывать пальцем на кое-кого, но те, кто здесь не впервые, могут добавить этот аспект к уже известной им информации.
Третьим типом упрощения болеют теоретики. В принципе, это технические специалисты, не имеющие достаточного опыта общения с реальной жизнью. Большинство программистов относится к этой категории.
Тут игнорируются не технические ограничения, а банальные характеристики мира.
Профессора компьютерных наук разрабатывают методы, работающие только в условиях бездонных бюджетов и неопределённых сроков. Ответственные за техзадание исходят из предположения, что все пользователи найдут время, чтобы выучить внутреннее строение их программ. Кодировщики считают, что это они должны указывать менеджерам, как тем следует ими управлять. Создатели языков исходят из того, что все проникнутся теорией категорий. Архитекторы (компьютерные) создают систему, действующую в области математических абстракций, а не на определённом железе с определённой разрядностью и ограниченным быстродействием. Отдел качества считает, что вся приходящая информация корректна и полна. Организаторы внутрифирменных процессов пишут правила для розовых пони, чьё единственное предназначение - заполнение формуляров о работе, сделанной непонятно кем...
Нельзя сказать, что все перечисленные категории - дураки. Наоборот, это высококлассные специалисты. Просто они не могут заглянуть за край тарелки. А, если могут выглянуть из своей, не видят, что у соседних за краями тоже есть что-то важное.
По сути дела, проблема не в отсутствии правильных решений. Само определение говорит, что их попросту нет.
Каким образом объяснить, как с этим жить, я ещё сам не вполне определился. Не столько по смыслу (это я более-менее понимаю уже лет двадцать), сколько по форме и методике объяснения.
Плюс, есть достаточно мощные экономические предпосылки для вымирания культуры инженеров.
Углубляться в них не буду, лучше добавлю про мотивацию, с которой всё началось.
Практически, работа инженера - это достаточно занудный монотонный труд, полный разочарований. Принципиальная недостижимость идеального результата вызывает общую неудовлетворённость. Сложность задач всегда превышает возможности, вызывая комплекс неполноценности. Результаты обычно отложены в будущее. Редко когда на месяцы, чаще на года, иногда на десятилетия как у людей, запустивших зонд к комете и увидевших её фотографии через много лет.
Тут работают или гордость за результат, или гордость за профессию, или материальное поощрение и хороший коллектив. (У инженеров общение с коллегами обычно на порядок лучше того, что типично в среде программистов.) Бывает радость от внезапных озарений и экстаз от найденных решений, но они достаточно редки среди серых будней.
При этом, любая из альтернатив инженерного подхода предоставляет гораздо больше счастливых моментов, снижает планку до уровня возможностей, позволяя легко переходить в экзальтированное состояние flow, даёт лучшие показатели по всем поверхностным параметрам, позволяет легко рисовать отчёты и даёт больше возможности для самовосхваления. (Последнее, кстати, привело к снижению процента баб в айти. В отличии от мужиков, не любят они писунами мерятся.)
Короче, любой отход от инженерных методов повышает мотивацию. Правда, при условии, что человек или игнорирует, или не знает реальное качество производимого им продукта.
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
Инженерная проблема - это поиск наилучшего приближения для клубка задач, принципиально не имеющих решения, удовлетворяющего всем заданным условиям.
Попробую перевести на английский.
Engineering is the process of search for an optimal compromise of a tangle of interconnected problems that cannot be solved together by consideration of all given constraints.
(Определение в этой формулировке мне не очень нравится, но с этим уже можно работать. Я сейчас быстро намечу основные контуры. Для понятного описания надо копать слишком глубоко.)
В вульгарной интерпретации отсюда следует известная формула «Быстро, хорошо, дёшево: выберите два из трёх». Реальность гораздо сложнее.
Если принять предложенное определение, первым печальным фактом придётся признать, что мы работаем в зоне высокого риска. Search is not finding. То есть, можно затратить все ресурсы и ничего не найти.
Вторая проблема - проблема планирования.
Знающие люди видят, что предсказание бюджета и сроков по сложности сопоставимо с решением самой проблемы. (Люди не знающие, могут мне верить или не верить, но обсуждать это я сейчас не буду.)
Решается это или банальной магией по подобию «Мы делали подобный проект и затратили X ресурсов за Y времени. Новая проблема более-менее похожа. Накинем десять процентов и запишем в план», или путём последовательных приближений плана на будущее по результатам завершённых этапов (Moneyfall modell).
Третья основная проблема - невозможность человеку со стороны отличить специалиста от балабола.
Практически, это означает принципиальную неуправляемость. Если инженеры приходят к менеджеру и говорят, что им нужно ещё три месяца времени и миллион долларов денег, только человек, хорошо разбирающийся в предмете, поймёт, столкнулись ли люди с принципиальными трудностями, которые они смогут одолеть при выделении дополнительных ресурсов, или же у исполнителей не хватает квалификации сделать элементарные вещи, а своими требованиями они просто откладывают позор на будущее.
Понятно, что с этим надо что-то делать. Напрашивается вариант - набрать квалифицированные кадры и поставить над ними высококвалифицированных менеджеров. Но для этого набирающие должны сами иметь высокую квалификацию. Причём, не какую-нибудь, а в целевой предметной области.
Так работают немецкие частные фирмы выросшие вокруг инженеров старой закалки (пока молодая вдова не вступает в управление и не приглашает выпускников MBA, которые всё эффективно разваливают).
Если у управляющих нет необходимых для управления инженерами знаний и опыта, есть несколько подходов. Они заключаются в работе над словами «by consideration of all given constraints»
Самый распространённый - менеджерский.
Вышеприведённые слова, грубо говоря, определяют качество. Секрет ловкого менеджмента в том, чтобы обрезать его так, чтобы никто не заметил.
В ИТ это происходит сплошь и рядом. Потому что решение виртуальное и большинство ограничений или скрыты от глаз посторонних, или выражаются абстрактными словами, вроде «security, performance, maintainability...»
Эффективному управлению мешает только один факт: инженер - это тот, кто отказывается снижать качество, если это снижение принципиально. Причём, отказывается вплоть до увольнения.
По счастью, инженеры - в нынешних корпоративных экосистемах вид вымирающий. Сейчас это можно видеть не только по истории с Фукусимой, где инженерные принципы встали а противоречие с самурайскими (хотя, на соседней станции настоящие инженеры были, и они построили стенку, выдержавшую цунами без проблем). Из последних скандалов хорошо подходят попытка совместить мощность дизеля с экологической чистотой у Фольксвагена или уменьшение размеров батареи с повышением её мощности у Самсунга.
В тех немецких фирмах, с которыми я работал, инженеры в программировании практически вымерли. Механика, электрика и прочие специальности ещё держатся, но на них всё сильнее давит оутсоурсинг в Китай и местные отделы качества.
Вторым подходом превращения инженерных задач в управляемые в основном страдают консультанты.
Они проповедуют, что ограничения бывают мелкие и крупные. Если мелкие отбросить, решаемые задачи становятся не связанными и их можно разложить в иерархические структуры, вполне решаемые с использованием Правильных Подходов и Правильных Тулов. (Обычно консультанты продают тулы, а подходы просто к ним привязывают. Особо наглы просто обучают Правильно Думать.)
На банальных примерах это работает великолепно. Что и объясняет повсеместное распространение этой заразы.
Проблема в том, что в реальных условиях мы не можем определить силу связей и важность ограничений до того момента, пока мы не исследовали проблему полностью до мельчайших деталей. А потом оказывается, что в великолепно организованном процессе с высочайшей интенсивностью контроля качества копеечное ограничение приводит к самоподрыву дорогущей ракеты на тридцать четвёртой секунде полёта.
Консультанты не видят тут принципиальной проблемы. Вместо этого они берут случай на вооружение и используют для рекламы Ещё Более Правильных Подходов и Ещё Более Правильных Тулов.
Я не буду тут пересказывать многочисленные посты в этом блоге и указывать пальцем на кое-кого, но те, кто здесь не впервые, могут добавить этот аспект к уже известной им информации.
Третьим типом упрощения болеют теоретики. В принципе, это технические специалисты, не имеющие достаточного опыта общения с реальной жизнью. Большинство программистов относится к этой категории.
Тут игнорируются не технические ограничения, а банальные характеристики мира.
Профессора компьютерных наук разрабатывают методы, работающие только в условиях бездонных бюджетов и неопределённых сроков. Ответственные за техзадание исходят из предположения, что все пользователи найдут время, чтобы выучить внутреннее строение их программ. Кодировщики считают, что это они должны указывать менеджерам, как тем следует ими управлять. Создатели языков исходят из того, что все проникнутся теорией категорий. Архитекторы (компьютерные) создают систему, действующую в области математических абстракций, а не на определённом железе с определённой разрядностью и ограниченным быстродействием. Отдел качества считает, что вся приходящая информация корректна и полна. Организаторы внутрифирменных процессов пишут правила для розовых пони, чьё единственное предназначение - заполнение формуляров о работе, сделанной непонятно кем...
Нельзя сказать, что все перечисленные категории - дураки. Наоборот, это высококлассные специалисты. Просто они не могут заглянуть за край тарелки. А, если могут выглянуть из своей, не видят, что у соседних за краями тоже есть что-то важное.
По сути дела, проблема не в отсутствии правильных решений. Само определение говорит, что их попросту нет.
Каким образом объяснить, как с этим жить, я ещё сам не вполне определился. Не столько по смыслу (это я более-менее понимаю уже лет двадцать), сколько по форме и методике объяснения.
Плюс, есть достаточно мощные экономические предпосылки для вымирания культуры инженеров.
Углубляться в них не буду, лучше добавлю про мотивацию, с которой всё началось.
Практически, работа инженера - это достаточно занудный монотонный труд, полный разочарований. Принципиальная недостижимость идеального результата вызывает общую неудовлетворённость. Сложность задач всегда превышает возможности, вызывая комплекс неполноценности. Результаты обычно отложены в будущее. Редко когда на месяцы, чаще на года, иногда на десятилетия как у людей, запустивших зонд к комете и увидевших её фотографии через много лет.
Тут работают или гордость за результат, или гордость за профессию, или материальное поощрение и хороший коллектив. (У инженеров общение с коллегами обычно на порядок лучше того, что типично в среде программистов.) Бывает радость от внезапных озарений и экстаз от найденных решений, но они достаточно редки среди серых будней.
При этом, любая из альтернатив инженерного подхода предоставляет гораздо больше счастливых моментов, снижает планку до уровня возможностей, позволяя легко переходить в экзальтированное состояние flow, даёт лучшие показатели по всем поверхностным параметрам, позволяет легко рисовать отчёты и даёт больше возможности для самовосхваления. (Последнее, кстати, привело к снижению процента баб в айти. В отличии от мужиков, не любят они писунами мерятся.)
Короче, любой отход от инженерных методов повышает мотивацию. Правда, при условии, что человек или игнорирует, или не знает реальное качество производимого им продукта.
no subject
Date: 2016-10-17 01:13 pm (UTC)no subject
Date: 2016-10-17 01:47 pm (UTC)no subject
Date: 2016-10-17 01:54 pm (UTC)no subject
Date: 2016-10-17 03:35 pm (UTC)Если "знал, но не сказал, потому что это очевидно" ещё как-то ловится, то "здесь надо развернуть на 60 градусов, потому что это красиво" требуют баснословных затрат на поиск рационального обоснования интуитивных предпочтений. И то, не факт, что удастся найти истинные причины, а не формальные отговорки, не работающие в другом подобном случае.
Ладно, тут на самом деле копать и копать. Просто скажу, что математическая аналогия заведёт в тупик.
no subject
Date: 2016-10-17 04:42 pm (UTC)no subject
Date: 2016-10-17 05:40 pm (UTC)no subject
Date: 2016-10-19 03:59 pm (UTC)ну да
аналоговая машина модели Homo sapiens sapiens
no subject
Date: 2016-10-18 06:37 pm (UTC)А не вы ли негодовали и требовали от продуктов на базе deep learning того, чтобы они не просто решали задачу, а еще и объясняли вам решение? Причем их работа как раз относится к инженерии в этом стиле "сделали не пойми что, но оно работает".
no subject
Date: 2016-10-18 06:53 pm (UTC)no subject
Date: 2016-10-23 03:40 pm (UTC)Утащил к себе с восторгом
no subject
Date: 2016-10-23 05:41 pm (UTC)И все это...
Date: 2016-10-17 04:39 pm (UTC)Moneyfall taming and other lost secrets of ancient ages
Date: 2016-10-18 03:16 am (UTC)Цитата про инженерный подход:
Date: 2016-10-18 12:37 pm (UTC)Re: Цитата про инженерный подход:
Date: 2016-10-18 12:53 pm (UTC)no subject
Date: 2016-10-18 01:00 pm (UTC)Наука ищет истины, инженерия - компромиссные решения.
Може, переименоваться в ниженерию? ;)
no subject
Date: 2016-10-18 01:11 pm (UTC)no subject
Date: 2016-10-18 06:35 pm (UTC)>montain
Очевидное влияние Швейцарских Альп.
>снижению процента баб в айти. В отличии от мужиков, не любят они писунами мерятся
Эмм? Женщины которые женщины как раз любят мериться, "моя кофта лучше". Вот мужеподобные "инженерки" - как раз нет.
no subject
Date: 2016-10-18 07:27 pm (UTC)Да, бывает. Кто бы ещё с формулировкой основного определения помог...
Женщины которые женщины как раз любят мериться, "моя кофта лучше". Вот мужеподобные "инженерки" - как раз нет.
Я бы не сказал. Вполне нормальные тётки. Некоторые за секретаршу сойдут, если бы не умное выражение лица. При этом квалификация не хуже чем у мужиков. Да и в институте девицы вполне ничего были.
Не знаю, гормоны или воспитание, но в коллективы женщины обычно не идут на открытые конфликты, сильно переживают при спорах и стараются не выражать негативные суждения. Если обижаются, то надолго. То есть, совсем не как набить друг другу морду, а потом обняться и пойти допивать вторую бутылку водки.
no subject
Date: 2016-10-18 07:29 pm (UTC)no subject
Date: 2016-10-18 07:42 pm (UTC)В коллективе с нормальных тёткок никаких гадюшников. Я бы сказал, что европейские мужики больше склонны к истерикам и интригам.
Причём, мой тезис был не отсутствие конфликта, а нежелание вести конфликт открытый и громкий. Грубо говоря, если женщине это нужно, она предпочтёт яд, а не картинное размахивание дубиной.
no subject
Date: 2016-10-25 05:47 pm (UTC)Мрачно, но сам знаю такие примеры.
Пра психалогию %)
Date: 2016-10-31 01:57 pm (UTC)ту где вы мне в психологию предложили. ;)
http://ivanov-petrov.livejournal.com/2013459.html?thread=111894291#t111894291
no subject
Date: 2016-10-31 06:09 pm (UTC)Гм...
Date: 2016-11-01 01:18 pm (UTC)чтобы они мнесделали психоанализ? %)
как-то не нуждаюсь, знаете ли
а как найти тех кто способен ответить на интересующие меня теоретические вопросы -- дык, в этом-то и вопрос?
как найти то, для чего ты даже не знаешь названия
на языке того кого будеш спрашивать?
вот мы с вами общались... я пробовал сформулировать проблему,
на максимально обобщенном, метафорическом языке (потому что специального нет и\или я/вы его не знаю)
и что получил в результате? ваш ответ "это мне не интересно".
думаете с психологами будет не так? %)))
Re: Гм...
Date: 2016-11-01 02:14 pm (UTC)Псигология, как и любая другая наука - это язык и система. Также как тригонометрию что-то можно объяснить на пальцах (если, конечно, хорошо представлять, что объясняешь). В остальном, жизненный опыт не делает нас специалистами. Также как наличие вокруг атомов не делает нас атомными физиками, а смотрение на картины - искусствоведами. Всему надо учиться.
Ну да, из некоторых толстых книг удаётся извлечь одну-две полезные мысли. В каких-то - один бред. Но все учебники более-менее дают представление
о современном состоянии отрасли.
Серьёзный разговор предполагает некий багаж. В принципе, можно упрощать и объяснять на этом уровне, но это очень сложно и требует слишком много усилий.
Re: Гм...
Date: 2016-11-02 11:14 am (UTC)Кроме очевидного, что для того чтобы разобратся в любой(ом) Х,
требуется потратить много времени (в пределе всю жизнь),
При том, что жизней у нас в наличии -- одна штука.
А подобных Х... вагон и маленькая тележка. ;)
Re: Гм...
Date: 2016-11-02 01:07 pm (UTC)Вот я и спрашиваю ;)
Date: 2016-11-03 08:15 am (UTC)Классический психоанализ? Гештальт?
А может бихевиоризм? Или новомодное НЛП? %) (и этот список явно неполон... это только что до меня, краем уха долетало)
Re: Вот я и спрашиваю ;)
Date: 2016-11-03 08:24 am (UTC)А как лечить глубокие травмы мрачного одинокого внутриутробного существования, меня не интересует.
Re: Вот я и спрашиваю ;)
Date: 2016-11-03 02:41 pm (UTC)Re: Вот я и спрашиваю ;)
Date: 2016-11-03 04:09 pm (UTC)