October 18th, 2013

vit_r

Про ёжика в тумане, зазнайство, языки программирования и вериги

Про mission critical и теорию вероятности



Арчибашев / Artzybasheff cybernetics Секрет mission critical софтопроизводства в том, что разницу между софтом с надёжностью 0.9999 и 0.999 невооружённым взглядом заметить сложно.

На фирмы в этом сегменте работает теория вероятности. Платят им как за четыре девятки, а выдают они от силы три. Но вероятность 0.001 - это на самом деле очень мало. А, если что и случится, в девяти случаях из десяти удаётся отмазаться. Это не железяка, которая или целая, или сломалась. Люди на пострадавшей стороне тоже мало что видят.

Проблема в том, что критичный софт - это очень-очень скучно. Старые технологии, куча писанины, достаточно примитивные алгоритмы и нескончаемые митинги.

Люди талантливые и заинтересованные в своём развитии стараются найти что-то поинтереснее.

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

И крутые архитекторы с сеньёр-программистами считающие, что система с ярлычком "реалтайм" сама всё сделает, и не имеющие ни малейшего представления о происходящем внутри. Да что там, просто не способные понять тест с multithreading. Помнится, на первом же полевом испытании их система впала в нирвану...

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

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

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

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

Естественно, при всём бардаке и бреющем полёте мысли большинства разработчиков они потом берут свои три девятки бесконечным тестированием или сотнями румын (или и тем и другим сразу). Но на то, что у этого софта внутри, лучше не смотреть.

В этом свете очень крут небезызвестный питерский профессор из ИТМО, выдающий древние методики конечных автоматов за откровения свыше и этим убеждающий талантливых и перспективных студентов в том, что они находятся на передовом крае науки. По крайней мере, в любой области, вне зависимости от модности методологии производства, крутости названия, бюджета и сертификатов, качество определяется тем, есть ли мозги у пишущих код людей, и умеют ли они ими пользоваться.
vit_r

Про искусство переговоров

Продолжим пятницу.

Недавно спрашивали про книжки. В принципе, начал перебирать в уме, что читал из полезного, потом бросил. Прошу простить за небольшое занудство, но пустое это.

Важна не книга, а что из неё извлечёшь. Два разных человека могут понять одно и то же совершенно по-разному. Примеров я видел массу. Основы достаточно элементарны, а вот в подробностях непременно будут разночтения. Так что определяет всё-таки личный опыт.

Если смотреть по полезности, то это в первую очередь, конечно, опыт. Тренировки, тренировки и ещё раз тренировки. Попытки, удачи, неудачи, разбор причин, просчёт вариантов, выработка стратегий. От холодного контакта с владельцем фирмы до попытки сбить цену на арбуз на восточном рынке. (Последнее на порядок интереснее, да и полезнее.)

Естественно, мне помогают все те книги по психологии, которые я когда-то прочитал, привычка контролировать ситуацию, замечать мелочи, выводить из них систему.

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

Как это не странно, но написание рассказов.

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

И не стоит забывать про риск.

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

Это всё теория. А так, достало меня унылое немецкое айти и все эти игры, напоминающие бег по болоту.

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