пятница, 11 ноября 2016 г.

[software.business.thoughts] Очередное откровение от Св.Маркетинга...

...или N-ое подтверждение мудрости "век живи, век учись, а дураком помрешь".

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

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

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

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

Нет, ориентируясь на чайников нужно вести рассказ по-другому, начиная с самых основ. Нельзя просто сказать, что многопоточное программирование сложно. Нужно показать это на простейших примерах. И на этих же примерах затем показать, как асинхронные сообщения облегчают жизнь. А потом уже рассказать, что при работе с асинхронными сообщениями есть свои модели, например, Actor Model и Comminicating Sequential Processes. И что есть готовые инструменты (готовый инструмент, вообще-то), которые отнюдь не противопоставляют эти модели друг другу, а позволяют использовать и то, и другое. И все это уже собрано в одном флаконе, распространяется бездвоздмедаром и может использоваться где угодно, влючая закрытое программное обеспечение... :)

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

Комментариев нет: