Pull to refresh
29
8
Рикки Мангуст @RikkiMongoose

Программист

Send message

Мозговой шторм: что нужно знать о методе мозгового штурма

Level of difficultyEasy
Reading time27 min
Views2.5K

Почти 80 лет назад человечество узнало о методе мозгового штурма.

С тех пор про него писали даже в журнале "Трамвай" и назвали в его честь него один из стандартных шаблонов презентаций в Microsoft Powerpoint. Многие из читателей этой статьи, возможно, успели в нём поучаствовать. А организаторы напридумывали огромное количество причудливых вариантов, которые постоянно пытаются продать под видом бизнес-консультации.

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

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

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

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

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

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

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

Штурмовать
Total votes 11: ↑6 and ↓5+4
Comments14

Генерируем в maven Java-модуль для OpenAPI из Swagger YAML

Level of difficultyEasy
Reading time4 min
Views948

Допустим отдел аналитики подготовил нам Swagger YAML с описанием API доступа к какому-то сервису: xyz-swagger-v1.0.0.yaml.

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

Читать далее
Total votes 4: ↑3 and ↓1+4
Comments1

Здесь могли быть деньги ваших клиентов

Level of difficultyEasy
Reading time5 min
Views1.6K

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

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

Разумеется, наш стандартный заварочный чайник делался под индийские чаи, которые завариваются одним проливом и по многу. Чтобы пить чай китайский, его надо завариватаь прямо в чашке, но ещё лучше запастись стандартным набором:

1. Гайван или заварочный чайник. По сути, пиала-переросток, куда кладут чай и заливают водой.  В принципе, можно пить прямо из чахай.

2. Чахай или проливной чайник. Китайские чаи горчат, если их передержать. Поэтому как только в гавани заварилось — его либо разливают по пиалам (тогда в последней будет самый крепкий), либо переливают в чахай, чтобы остывал и смешался. Так и проходит чайная церемония — допили из проливного, заварили в заварочном, вылили в проливной.

3. Чашки или пиалки.

Чайный поднос и чайные инструменты пока оставим.

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

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

Давайте посмотрим, кто же готов получить мои деньги?

Кто же получил мои деньги?
Total votes 16: ↑6 and ↓10+1
Comments5

Психологический тупик

Level of difficultyEasy
Reading time26 min
Views10K

— …Вот, например, ты пишешь: «коллективное бессознательное». А ты знаешь, что это такое?

Татарский пошевелил в воздухе пальцами, подбирая слова.

— На уровне коллективного бессознательного, — ответил он.

— А ты не боишься, что найдется кто-то, кто знает отчетливо?

Татарский шмыгнул носом.

— Господин Азадовский, — сказал он, — я этого не боюсь. Потому не боюсь, что все, кто отчетливо знает, что такое «коллективное бессознательное», давно торгуют сигаретами у метро.

Виктор Пелевин, «Generation П»

У меня нет психологического образования. Я просто экспериментировал с индустрией и смотрит на неё глазами клиента.

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

И дело тут не в корпоративной солидарности. Психолог смотрит с другой стороны и видит саму ситуацию под другим углом.

И вообще, как пошутил много лет назад, кажется, Жванецкий, почему вам так обязательно надо знать, какие врачи хорошие, а какие плохие? Плохим врачам тоже нужны пациенты!

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

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

Читать далее
Total votes 22: ↑20 and ↓2+23
Comments22

Пишем Ruby gem для Yandex Direct API

Reading time12 min
Views12K

Очень хотелось изучить Ruby получше, а рабочего проекта не было. И я попробовал написать gem для работы с Yandex Direct API.


Причин было несколько. Среди них: Yandex Direct API очень типичен для Яндекса и современных REST-сервисов вообще. Если разобраться и преодолеть типичные ошибки, то можно легко и быстро написать аналоги для прочих API Яндекса (и не только). И ещё: у всех аналогов, которые мне удалось найти, были проблемы с поддержкой версий Директа: одни были заточены под 4, другие под новую 5, и поддержке units я нигде не нашёл.


Метапрограммирование — великая вещь


Основная идея gem-а — раз в языке вроде Ruby или Python можно создавать новые методы и JSON-подобные объекты на лету, то методы интерфейс для доступа к REST-сервису могут повторять функции самого Rest-сервиса. Чтобы можно было писать так:


request = {
    "SelectionCriteria" => {
      "Types" => ["TEXT_CAMPAIGN"]
    },
    "FieldNames" => ["Id", "Name"],
    "TextCampaignFieldNames" => ["BiddingStrategy"]
}

options = { token: Token }
@direct = Ya::API::Direct::Client.new(options)
json = direct.campaigns.get(request)

А вместо того, чтобы писать справку, отсылать пользователей к мануалам по указанному API.

Читать дальше →
Total votes 23: ↑20 and ↓3+17
Comments0

Как сделать всплывающие подсказки в JavaFX

Reading time8 min
Views11K

Забытое искусство подсказки


Давным-давно, когда люди ещё делали домашние странички, интернет был по шипучему модему, а Napster казался опасной провокацией коммунистов, простенькие оконные приложения под Windows очень часто писали на библиотеке VCL. Одни пользовались Delphi (но признавались только домашним), другие смело запускали её из C++ Builder (и удивлялись ещё одному String, а также спискам, которые начинаются с 1). А кто-то ухитрялся писать на нём под unix-ы (вы помните Kylix? А он был!)

В VCL почти у всех визуальных компонент были свойства ShowHint и Hint. Если быть точным, они были у всех компонент оконного типа (кнопок, выпадающих списков и прочих панелек).

В строковой Hint писался текст подсказки, а булевый ShowHint мог её отключить. А более прокачанные даже знали, что можно сделать расширенный вариант подсказки. Если написать в Hint Нажми меня|Кнопка просит, чтобы вы её нажали, то левая часть всплывёт, а правая будет передана в событие. Это событие перехватывали и показывали полученный текст в строке состояния.

Настолько простые и удобные подсказки были предметом величайшей зависти тех, кто сидел на MFC (никаких WinForms в тогдашней Visual Studio ещё не было, не говоря о WPF), поддерживал OWL или штурмовал чистый WinAPI с Петцольдом наперевес. Кто знает, может быть кто-то из них и приложил свою мозолистую от кодинга руку к тому, что уникальная по своей удобности технология подсказок оказалась полностью утрачена в JavaFX.

Что у нас есть?


В JavaFX за подсказки отвечает компонент Tooltip. По всей видимости, это тайный компонент, потому что, к примеру, SceneBuilder его знать не знает.
Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments12

JSonCmp — сравниваем в JavaScript правильно

Reading time2 min
Views11K
Вот JavaScript-овый объект, сериализованный в JSon:

var source1 = '[{"vConfig":{"vType":"objectview","serverItemType":"TrackerObject"}}]';


А вот ещё один JavaScript-овый объект, тоже сериализованный в JSon:

var source2 = '[{"vConfig":{"serverItemType":"TrackerObject","vType":"objectview"}}]';


У них одинаковая структура, одинаковые параметры, одинаковые значения в этих параметрах. По всем признакам, и в source1, и в source2 у нас одно и то же.

Но интерпретатор JavaScript с нами, разумеется, не согласен. И он вполне резонно считает, что source1 и source2 — разные строки. А если мы десериализуем их обратно, то получим два object-а, которые расположены по различным адресам памяти и… тоже не равны друг другу.

А если вы, впридачу, работает с Ext.js, щедро генерируете свои классы и не забываете про jSon, то может дойти до полного затмения. Как сравнить эти огромные простыни сведений о контролах, которые собираются в JSon-ы? Или разобраться древовидными объектами, где в каждое поле уже успели насоздаваться ещё какие-то подполя?
Читать дальше →
Total votes 26: ↑12 and ↓14-2
Comments28

Wordpress Plugin длиной в одну страницу

Reading time12 min
Views28K
Почему люди любят Wordpress? Потому что с ним просто работать. В нём нет гибкости большущих CMS вроде Joomla и Drupal, — а значит, не запутаешься. И ещё он очень популярен — а значит, можно найти плагины на все случаи жизни.

Неспроста несмотря на осуждение со стороны Lurkmore.ru, Wordpress-ом пользуются и Герб Саттер, и Марк Шаттлворт, и много кто ещё. Например, я.

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

Так и родился плагин для Wordpress Rikki's WP Social Icons. Позволяет за один клик мышкой добавить ссылку на эккаунт в каком-нибудь сервисе, от социальной сети до GitHub.
Читать дальше →
Total votes 35: ↑25 and ↓10+15
Comments50

Три возраста паттерна Singleton

Reading time5 min
Views93K
Паттерн Singleton появился, пожалуй, как только появились статичные объекты. В Smalltalk-80 так был сделан ChangeSet, а чуть в самых разных библиотеках стали появляться сессии, статусы и тому подобные объекты, которых объединяло одно — они должны были быть одни-единственные на всю программу.

В 1994 году вышла известная книга «Паттерны проектирования», представив публике, среди 22-х прочих, и нашего героя, которого теперь назвали Singleton. Была там и его реализация на C++, вот такая:
Читать дальше →
Total votes 110: ↑101 and ↓9+92
Comments61

Information

Rating
779-th
Location
Долгопрудный, Москва и Московская обл., Россия
Date of birth
Registered
Activity