?

Log in

No account? Create an account
не катет

Mission statement

Я давно собирался написать некий "mission statement" - документ, описывающий задачи и планы на ближайшее будущее - для организации собственной деятельности. Однако, писать тексты у меня получается гораздо лучше, если я представляю, что их будет читать кто-то кроме меня. К тому же, содержание может показаться кому-то любопытным. Поэтому я решил написать его в ЖЖ. Не исключено, что его придется потом менять, но я использую Markdown + Mercurial, так что это должно быть легко.

Цель этого текста - описать тему, интересующую меня сильнее всех остальных на данный момент, и рассказать, почему всем остальным она тоже может оказаться интересной. Конечно, "интересность" - это субъективное понятие: есть разные области человеческой деятельности, которые представляются мне одинаково сложными для понимания и одинаково благодатными для работы, но некоторые меня будоражат, а некоторые - нет. Проблема тут в том, что выбирать приходится именно по этому признаку.

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

Поиск взаимопонимания

Мы живем в стране, где очень остро стоят вопросы межкультурного взаимодействия. И дело не только во взаимодействиях коренные-приезжие. С падением СССР советская культура стала неактуальной, и людям пришлось переосмысливать многие вопросы организации своей жизни. Ныне активные молодые люди (к которым я отношусь) росли во время, когда люди старательно отказывались от старых моральных оринетиров, а новых еще не придумали. Это, с одной стороны, приводит к тому, что люди больше сами думают, а не пользуются общественными стереотипами, а с другой - приводит к изоляции человека - в том смысле, что людям становится сложнее найти общий язык. Это два противоположных социальных параметра - самостоятельное мышление и взаимопонимание.

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

Говори или делай

В моем (около-IT-)окружении сейчас распространено мнение о том, что люди делятся на две категории: те, кто говорят, и те, кто делают. Про это подробнее написано здесь - в том числе в комментариях. Стереотип этот, конечно, не в мою пользу, потому что я говорю и пишу довольно много, но я его поддерживаю - он довольно точен. Почти любой толковый разработчик просто сидит и разрабатывает - он не пишет об этом блог и не рассказывает на пьянках. Ему слишком много усилий нужно потратить на то, чтобы задокументировать свой продукт или рассказать о нем так, чтобы было понятно непрофессионалу. С другой стороны, почти любой инициативный деятель в сфере IT, получающий гранты от Сколково и выступающий на конференциях от имени ВУЗа или компании - ничего не смыслит в программировании и описываемых технологиях. Чем больше одобрения получает проект от официальных лиц, тем более вероятна его бессмысленность.

Описание противостояния групп догматически мыслящих менеджеров (которые говорят) и креативных исполнителей (которые делают) довольно часто в массовой культуре. Кто-то восхищается доктором Хаусом или Шерлоком (из сериала BBC One) за способность нарушать правила для достижения результата. Кто-то читает "Атланта" Айн Рэнд по рекомендации из блога Чичваркина. Суть одна - исполнитель-индивидуалист отказывается от социализации для достижения реальных результатов в своей работе. Менеджеры его не понимают, но вынуждены терпеть - потому, что им нужны его результаты.

Техническое мышление

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

Всё это накладывает свой отпечаток и на мышление человека. Данный способ мышления еще принято называть «техническим складом ума», когда человек старается найти всему рациональное объяснение и понять причинно-следственную связь.

Судя по википедии, однако, только такую вещь мышлением в психологии и называют. Появление устоявшегося термина "техническое мышление" тут говорит о том, что людям, занимающимся техническими задачами, чаще приходится думать строго. В дальнейшем я буду использовать термин "формальное мышление", чтобы не привязываться к области техники.

Менеджерам в этом смысле повезло меньше - результат их работы зависит от людей, а не от техники, и все гораздо менее формально. Невозможно понять точно, подпишет Иван Иваныч договор, или нет. А если подписал, невозможно точно понять, почему. Если у менеджера и было "формальное мышление" на выходе из ВУЗа, за годы работы оно теряется за ненадобностью. Нужно подчеркнуть - это происходит только с теми менеджерами, которые работают с другими менеджерами (например, с Иваном Иванычем). Менеджеры проектов, например, работают большую часть времени с непосредственными исполнителями и способность мыслить формально не теряют.

Менеджмент без менеджеров

Именно отсутствие у менеджеров навыков формального мышления приводит к непониманию между ними и исполнителями. Интернет полон историй о том, какие дураки эти заказчики/начальники, что не понимают простой логики, какое дурацкое они прислали ТЗ/задание и как сложно с ними об этом говорить. Я вижу тут задачу поиска взаимопонимания, но отнюдь не между менеджерами и исполнителями. Вот главный вопрос: зачем мы вообще используем менеджеров для организации собственной деятельности? Если речь идет о выполнении строго технической работы, нельзя ли найти способ техническим специалистам разных отделов и компаний договариваться друг с другом, не используя прослойку из административного персонала, не умеющего мыслить формально?

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

Опыт программистов

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

Программирование - формальное выражение человеческих мыслей. Самая типичная задачка в IT всегда содержит два вкусных места: то, где нужно понять какую-то часть предметной области со слов эксперта/собтвенных мыслей и выдать формальную структуру данных, с которой потом нужно работать, и то, где нужно придуманный способ решения задачки закодить так, чтобы другие люди могли понять его исключительно по коду.

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

Другая вещь, которая всегда будоражила меня в программировании - это идея о том, что для него нужен только компьютер. Можно подумать о разных крутых программах - о тех, что помогают анализировать огромные массивы медицинских данных, или о тех, которые реализуют видеосвязь между людьми в разных точках мира - все эти программы при должном уровне компетенции могут быть написаны на самом дряном нетбуке за $100.

Эти два факта начали будоражить меня впервые, когда я узнал о движении Open Source. Если только подумать, насколько сложным программным продуктом является, например, ядро Linux, мысль о том, что программисты со всего мира (говорящие на разных языках, имеющие разное образование и жизненный опыт) пишут его вместе, сообща, и без помощи менеджеров, завораживает. И программистами этими могут быть кто угодно, от Нью-Йоркских богатеньких студентов до африканских старшеклассников.

Потом уже я познакомился с проектами GitHub и Bitbucket, позволяющими людям эффективно работать над программными продуктами. Пользователям предлагается использовать систему контроля версий, issue tracker, wiki и другие средства, помогающие менеджить работу над проектом. Задачи:

  • назначения задач и контроля их выполнения
  • отслеживания изменений в проекте и их аннотации
  • документирования проекта

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

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

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

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

Не только программисты

Конечно, впервые подобные системы должны были появиться у программистов, которые по долгу службы уже умели работать и поддерживать разного рода формализмы - обладали "тхеническим мышлением". Однако, вскоре оказалось, что использовать такие системы полезно вообще всем. Примеры:

  • Книги выкладывают на GitHub для работы над черновиками и отслеживания ошибок. Например, CouchDB Guide.
  • Помимо StackOverflow и SuperUser, проектов исключительно технической тематики, платформа StackExchange содержит около 80 сайтов по самым разным тематикам, в том числе по вопросам культуры и искусства.
  • Open-sourced blueprints - инициатива по применению идей open-source на средства производства.

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

Моя цель

Нужно, чтобы прецеденты, описанные выше, возникали как можно чаще - по причинам, описанным выше. Программисты сейчас могут чувствовать абсолютную творческую свободу - все знания доступны, все средства разработки доступны, можно просто садиться и делать все, что захочется сделать! Не нужно, чтобы тебя взяли куда-то на работу, не нужно знать правильных людей. Очень важно сделать так, чтобы это было верно и во всех остальных областях человеческой деятельности. Чтобы можно было сдать квартиру без риелтора, организовать удобку дома без ЖЕКа, выпустить книгу без издателя. Нужно, чтобы люди могли сами организовывать любую свою деятельность.

А для этого нужна комбинация двух факторов - открытости информации и удобных средств работы с этой информацией.

С открытостью информации сейчас все налаживается. Поверьте человеку, который не ходил на лекции с второго курса (тогда закончилась физика) и слушал подкасты MIT before it was mainstream :) Кто бы мог подумать, что когда-нибудь будет такая вещь, как Courcera или Udacity. Теперь легко не только получать, но и публиковать информацию - к давно известным блогам прибавились социальные сети с их крутым фунционалом опросов, репостов, лайков.

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

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

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

Tags:

Comments

Хорошо бы было жить в мире, где вся деятельность людей происходит внутри и между компьютерами. Чтобы все были если не программистами, так пользователями фейсбука.

К сожалению, на границе материального мира законы меняются. И компьютеры нужны для работы с материальным миром тоже. И вот на этом переходе и менеджеры приобретают несколько иные роли, и собственники возникают, и инженеры и учёные ещё, те, которые по работе с материей, а не с информацией.
А в чем, собственно, разница? Я всегда представлял, что и инженеры, и ученые работают с информацией. Инженеры используют CAD/CAE/... средства, ученые - MatLab/NumPy/... Они точно так же вместе работают с помощью этих программ над проектами, как это делают программисты, результаты их деятельности так же написаны на формальном языке. А непосредственно с материей работают станки с ЧПУ, рабочие, строители и т.п.
Это всё же в идеальном мире. Учёные физически режут, жгут, гнут и облучают материю. Инженеры и конструкторы в конечном итоге долго работают с материальными образцами нарисованного на компьютере.

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

Я это всё к тому говорю, что Ваше описание роли "менеджера" не демонстрирует понимания и 10% его обязанностей и компетенций. То есть этот идеальный мир работы с информацией - тонкая прослойка. В нём от менеджеров может и избавятся. Но это будет заметно очень немногим.
Я не понял, почему нельзя рассадить пару сотен проектировщиков по квартирам с нетбуками? Я могу представить себе сложности в переносе различных разработок из реального мира в виртуальный, но пост как раз о том, что это целесообразно стараться делать, и в последнее время много где получается.

Мое описание роли менеджера построено на моих наблюдениях за менеджментом в IT, по большей части в веб-разработке. Так что Ваш довод про то, что я не понимаю и 10% компетенций "настоящего" менеджера, работающего в мире, где люди жгут и облучают материю, выглядит правдоподобно. Я только не могу понять, чем эти менеджеры занимаются? В реальном мире? Как они помогают материю то жечь?
Невозможно пока что никаким айти скординировать 200 проектировщиков и ещё несколько тысяч человек, зависящих от их работы. Тупое присутствие их в одном здании и прямое общение пока что очень важны. Тут айти может помочь, и стараться целесообразно, но методы этой помощи имеют шанс создать те, кто управляет этими тысячами в реальности сейчас, а не те, кто сделал платформу для миллионов, но типа фейсбука.

В этом всё и дело -- у менеджеров в нынешнем материальном мире куча проблем, недостатков и куча компетенций, но понять и увидеть и то и другое нельзя путём наблюдения за менеджерами в веб-разработке :-)

Дико неэффективно они помогают. Среди тех менеджеров, которые в реальном мире, вообще непропорционально велика доля китайских прорабов, мне кажется. Я тоже не могу похвастаться, что я хоть примерно представляю, как оно всё устроено, от шахт до компа на моём столе. Но я понимаю достаточно чтобы смеяться (пока что), читая про sustainable open-source responsible green local community manufacturing.
Откуда понимаете? Дайте мне тоже понять! Что смешного в sustainable open-source community manufacturing? Собрали же ребята трактор! Дешевле собрали, чем купили бы, по открытым чертежам. И много чего еще собрали.

Виктор, вы вот говорите про реальный мир - у меня о нем представления начали сформироваться только после встреч в офисе ТИЛ. Всякий раз, когда речь шла про системную инженерию, я представлял задачи формализации менеджерского процесса для его улучшения. Речь шла про управление требованиями, когда вместо естественно-языкового ТЗ делается формальное описание структуры проекта. Речь шла о contract-based design, когда supply chain так сложна, что нужно формально описывать зависимости. Каждый раз я что-то такое читал, я думал, что это как раз про введение неких формализмов в работе людей, принимающих решения в реальном мире, так?

Неужели есть какие-то принципиальные трудности в том, чтобы с потребительского конца сделать эти формализмы настолько удобными, чтобы их мог понять и непосредственных потребитель? Сейчас потребитель управляет поставляемыми ему продуктами с помощью спроса - методом проб и ошибок, так сказать. Но ведь есть уже случаи, когда потребители интерактивно задействованы в самом процессе: голосуют в блоге за лучший дизайн часов TokioFlash, например. Разве нельзя сделать так, чтобы пользователи интерактивно выбирали компанию или уборщика для своего двора? Или сами обсуждали и выбирали логистику доставки к ним товаров? Или формировали бы маршруты общественного транспорта? Это считается за реальным мир?

Я не претендую на понимание дисциплины contract-based design, но там, например, идея была в существовании "контрактов" между участниками разработки, со своими требованиями и условиями. Я думал, что при таком подходе уже не так важно, являются ли участники представителями одной организации или разных. То есть, если детализация контрактов достаточно точна, разве нельзя в какой-то момент вместо инженера моторолы поручить спроектировать контроллер асприранту МФТИ Васе Пупкину? Разве не все равно, в каком здании он при этом находится?
Ребята много чего собирают, я очень люблю про это читать. Замечательные левые блоггеры из DIY. Но смешно потому, что кусок пластика для этой сборки начинается, условно говоря, с нефтяной платформы в Северном море. А интернет для скачивания чертежей того трактора идёт по кабелю по дну того моря, или через спутник. Когда распределённая сеть sustainable green колхозов примет на себя поддержку и развитие тех платформ и того кабеля?

Вы всё правильно понимаете про то, для чего и что делается в СИ.

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

Вася Пупкин может спроектировать контроллер, но его подруга Маша в свободное время между семинарами на филфаке не сможет ничем помочь выводу новой модели моторолы одновременно на все рынки мира от Шанхая до Лондона.
Чем более формально будет поставлена задача вывода новой модели моторолы на рынки от Шанхая до Лондона, и чем более открытой будет информация о желаниях потребителей и соответсвующих дисциплинах менеджмента, тем больше шанс Маши на успех. А прогресс движется в сторону формально поставленных задач.

Вы правы насчет всех этих нефтяных платформ, кабелей, складов и грузовиков, в которые еще не пускают Васю и Машу. Но надо же с чего-то начинать! Вот в постройку тракторов уже пускают. Я думаю, можно сделать так, чтобы и в логистику, и в городской транспорт пустили. В конечном итоге, сейчас в компаниях "реального мира" ведь тоже работают такие же люди, разница только в принадлежности к огранизации и вытекающего из этого доступа к информации и принятию решений. Сначала Васю пустят, потом даже Машу, а потом вообще каждый человек станет сам себе компанией, с собственными ответственностями и профитами по своим компетенциям.
Будет, обязательно будет.

Вопрос в том, с какого конца прикладывать усилия к достижению этой светлой цели (концов там много, как и середин, и прикладывать можно со всяких). Вы вот как-то определились, но я стараюсь показать Вам масштаб картинки, и где Вы на ней, и где эти ужасные менеджеры.
А что это за история с трактором?
Да, я даже писал про него http://martinthenext.livejournal.com/57871.html Не знаю насчет того, купил ли гугл его, чтобы убить - проблемы с качественными ответами появились у сервиса практически сразу после запуска, насколько я помню

А при чем тут aardvark, собственно?

No title

Пользователь sober_space сослался на вашу запись в «No title» в контексте: [...] м формализации, примерно в том смысле, в котором об этом говорится вот в этом Mission statement [...]
Программисты сейчас могут чувствовать абсолютную творческую свободу - все знания доступны, все средства разработки доступны, можно просто садиться и делать все, что захочется сделать! Не нужно, чтобы тебя взяли куда-то на работу, не нужно знать правильных людей.
Вы забыли одну критичную вещь. Откуда брать деньги?
Делать то, что интересно -> набрать портфолио проектов на github -> стать крутым высокооплачиваемым фрилансером, например.
Индивидуальная трудовая деятельность, конечно, практика известная, но не господствующая. Видимо, не все могут так жить или не всем это выгодно.