софт | Владимир Бычко об управлении проектами

Владимир Бычко об управлении проектами

пиэм разъясняет, предостерегает, рекомендует

Тег: софт

Мысли из Линкадина — 15

Изображение с unsplash.com, автор bruce mars

Об эскалациях

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

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

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

* * *

О тренере и пивоте

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

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

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

* * *

О неочевидных фичах

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

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

Устройство молнии с блокировкой.

* * *

О роскоши оффлайна

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

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

— Чувак, то есть тебя от того, чтобы вылететь на встречку и впилиться в фуру, останавливала только нарисованная двойная сплошная?
— Да.

* * *

О файловых менеджерах

Одним из первых приложений, с которым я столкнулся, впервые встретив IBM PC, был нортон коммандер. Особо привыкнуть к нему не получилось, потому что достаточно быстро на этот компьютер была установлена Windows 95.

Когда файловых операций немного, хватает возможностей проводника, но когда более опытные друзья наделили меня дистрибутивами Windows Commander и FAR, я прям возрадовался, особенно первому. Если его как следует настроить, файловые операции начинают делаться сильно быстрее, чем в Проводнике. С тех пор Windows, а позднее Total Commander сопровождают все мои виндовые компы. FAR не прижился. Да, у него возможностей ещё больше (особенно с плагинами), но отпугивает консольный интерфейс. Наверное, людям, сильно прикипевшим к Нортону, с Фаром подружиться проще.

А на маке файловый менеджер оказался не нужен. Finder удобен. Когда нужно что-то экстраординарное, задействую Commander One Pro.

Ну и мем на злобу дня. Раз везде добавляют сториз, почему бы не добавить их в файловый менеджер?

Norton Commander со сториз.

* * *

О рандоме

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

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

Так вот, если смотреть в основном Хроме какое-нибудь видео и, поставив его на паузу, нажать на аппаратную кнопку «плей», НИКАКИМ образом невозможно предсказать, чьё воспроизведение возобновится, этого видео или фоновой Яндекс.Музыки, это подлинный рандом каждый раз.

Можно сделать этот рандом ещё сложнее, запустив в фоне видео с VLC.

vlc

* * *

Об экспертности

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

* * *

О системе в именах файлов

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

* * *

Об ознакомлении

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

* * *

О времени и приоритетах

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

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

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

* * *

О трекинге

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

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

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

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

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

Короче, не заставляйте пиэмов трекаться.

* * *

О помощи коллегам

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

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

* * *

О сборнике ссылок

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

Делаю это в Эверноте, но этот выбор никому не навязываю (не так давно писал 13 причин, почему он мне не нравится), можно в любом другом заметочнике или вообще, гуглодоках. Особенно важно, когда у вас несколько проектов, между которыми нужно переключаться. Ну и да, передавать другому пиэму будет легко, минутное дело.

* * *

О лукизме

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

Руководители с вычурной внешностью.

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

* * *

Об обкатке изменений

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

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

Короче, обкатывайте изменения на «старичках», у «новичков» и так жопа в мыле.

* * *

О равновесиях

Представьте, что вы ректор университета и вам правительство предлагает два варианта. Либо оно даёт грант на миллиард вам, либо два миллиарда, но соседнему университету. И сообщает, что ректору соседей будут предложены такие же условия.

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

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

За подобные рассуждения Джон Нэш получил в итоге Нобеля и про него сняли фильм с Расселом Кроу.

В том числе для этого нужны умеющие договариваться менеджеры.

* * *

О книгах

Позабавил факт. Калифорнийский книжный клуб Джерри Фиалка начал читать роман Джойса «Поминки по Финнегану» в 1995 году и закончил спустя 28 лет — в ноябре 2023.

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

Джойс писал этот роман 16 лет, а они читали 28.

В итоге пришли к выводу, что книга им не понравилась.

Калифорнийский книжный клуб Джерри Фиалка.

* * *

О лавстори

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

* * *

Особое мнение о пресейлах

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

На мой взгляд, это подмена этапа планирования. Она совершенно бессмысленна по двум причинам:

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

Большей глупостью является только попытка поставить в план конкретных людей.

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

Скажите «нет» простыням на восемь вкладок на этапе пресейла. Максимально верхнеуровневой оценки достаточно, клиенту нужен порядок цифр, проект будет стоить 5 млн., 10 или 100, этой цифры и пары-тройки ключевых рисков достаточно для принятия решения. Разбиение по крупным модулям тоже нужно. Всё остальное, в любом случае, придётся пересчитать на этапе планирования проекта. Это называется процессами первичной и точной оценки.

* * *

О мыслительном процессе

Объём, в котором сотрудники должны думать — вопрос дискуссионный. На первой серьёзной работе в разработке я столкнулся с командой, в которой аналитики расписывали все аспекты доработок досконально, из-за чего разработчики натурально превратились в кодеров, делающих ровно то, что написано в ТЗ, даже если на самом деле, решение ошибочно.

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

Один чудак написал мне в обратной связи в качестве недостатка: «Приходит с вопросами и проблемами, не приносит своих решений». Это правильное поведение с командой, только так её можно сделать самостоятельной и не погрязнуть в микроменеджменте. И да, переспросить: «А сам-то как думаешь?» на вопрос подчинённого — тоже норма. Если он предлагает чушь, аккуратно скорректировать. Но поощрять самостоятельное мышление, позволяя принимать большое количество решений на низовых уровнях управленческой пирамиды.

* * *

Об интерфейсах

Играю же в «Битву замков» на мобилке, давно уже, лет девять. И разрабы в очередной раз сделали козу — мой клиент вдруг стал на английском без возможности переключения языка. Играть на английском невесело, я в эту игру захожу деградировать, а не подтягивать навыки. Удалил, нашёл в гугл плей русскую версию, скачал. Раза с четвёртого аккаунт подтянулся, выдохнул.

И через некоторое время обнаружил, что фигурки героев в режиме боя не отображаются. Точнее, вместо них схематичные чёрные рыцари:

Битва замков.

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

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

К чему это я. Разрабы бы не переломились при запуске игры отобразить попап: «Без скачивания дополнительных ресурсов игра не работает должным образом. Но у вас выключен вайфай. Можно мы скачаем 500 мегабайт ресурсов через мобильный интернет?», вместо того, чтобы отобразить незаметную иконку (там этих иконок как грязи, большинство бесполезные) и терпеливо ждать.

* * *

Об оценке

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

* * *

О стереотипных высказываниях

Мои школьные учителя очень любили в отношении двоечников, неспособных ответить на вопрос или решить задачу, употреблять две фразы: «Картина Репина „Приплыли“» и «дошёл до ручки». На самом деле, смысл у этих культурных объектов совершенно другой и к деградации отношения не имеет.

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

Картина Репина «Приплыли»


UPD. Оказывается, картины Репина «Приплыли» не существует. Это картина Соловьева Льва Григорьевича (1839-1919). Картина называется «Монахи» («Не туда заехали»), просто она висела рядом с выставкой Репина. За комментарий спасибо Максиму Королю.

Насчёт ручки. Дело в том, что на Руси был такой стритфуд как калач с ручкой из теста. За ручку его держали во время поедания, а потом эту ручку выбрасывали, считая грязной. Дойти до ручки — обеднеть настолько, что начать есть ручки от калачей. Это не о деградации, а о бедности.

Ну и бонусом «растекаться мыслью по древу». В оригинальном произведении была не мысль, а мысь — белка. Целиком это звучало как:



«Вещий Боян,
Если песнь кому сотворить хотел,
Растекался мысью по древу.
Серым волком по земле,
Сизым орлом под облаками»

Это не о демагогии, это о том, чтобы рассмотреть явление с разных точек зрения.

* * *

О важности адаптации практик к современным реалиям

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

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

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

* * *

О продуктах

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

* * *

О помойках

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

Когда я впервые этот самый интернет попробовал, был очень удивлён. Я ввёл ya.ru на компе на кафедре где-то в 2003 году и открылся яндекс. Попробовал вбивать туда поисковые запросы и переходить по ссылкам. И оказалось, что интернет не такой уж помойный, там можно найти «Звёздный десант» Хайнлайна (правда, на пузатом мониторе читать это было невозможно), разные форумы и сайты с приколами, на которых можно поржать.

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

В общем, тут не помойка, тут нормально.

Вы оффлайн.

Как отключить автосохранение в wordpress

Изображение с unsplash.com, автор Onur Buz

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

Как с этим бороться? Я вычитал такой рецепт. Открываем:

ваш домен → wp-content → themes → название вашей темы → functions.php

И вписываем туда код:

// Отключаем автосохранение
add_action( 'admin_init', 'disable_autosave' );
function disable_autosave() {
wp_deregister_script( 'autosave' );
}

Об этом способе пишут на многих сайтах, но он почему-то не работает.

Единственный способ реально избавиться от автосохранения в БД — выставить очень длинный период автосохранения. И для этого нужно лезть в другой файл. Открываем:

ваш домен → wp-config.php

И вписываем туда инструкцию:

/** Интервал автосохранения в секундах **/
define('AUTOSAVE_INTERVAL', 10000 ); 

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

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

Но если у блога несколько авторов и они пишут каждый день по несколько постов, у вас засрётся БД. Давайте ограничим количество редакций. В тот же самый wp-config.php вписываем:

/** Количество редакций в штуках **/
define('WP_POST_REVISIONS', 20);

Всё, теперь количество редакций каждой записи ограничено двадцатью.

13 вещей, за которые я не люблю Evernote и его разработчиков

Evernote, почему это плохой софт.

Впервые я познакомился с Evernote в начале десятых и не понял, зачем он нужен. Просто не было потребности. Но уже через несколько лет устроился аналитиком в Ultimate Guitar и мне потребовалось собирать статьи про интерфейсы и юзабилити, чтобы делиться ими с коллегами. Хотелось, чтобы статьи хранились локально и не пропадали с гибелью родительских сайтов. Эвернот подходил идеально. Сначала пользовался веб-версией, потом поставил десктопную, чтобы работать быстрее. Стал хранить в нём чек-листы своих оперативных заданий, потом завёл блокнот для результатов работы, делился блокнотами с руководителем. В общем, всё было чудесно.

Вот, например, благодаря Эверноту, у меня сохранились скриншоты функциональных подсказок, которые мы пилили больше месяца:

Через некоторое время я решил использовать Эвернот и для личной базы знаний. Завёл блокноты для всякой личной информации, вроде гарантийников и чеков за разные покупки, фотографий интересных рекламок, статей, которые мне показались интересными. Места в 60 мегабайт в месяц, конечно, не хватало и я впервые в жизни купил подписку на ПО:

Счёт за первую в моей жизни подписку на ПО.

Годовая подписка с тех пор подорожала до 4 292 ₽, более чем в 4 раза.

Ещё немного старых документов. Вот, например, счёт на десктопный ПК, купленный в 2013 году:

Накладная на персональный компьютер из 2013 года.
Вот такие цены были в 2013

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

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

Постепенно в Эвернот переехало и всё остальное. Появился блокнот «Ссылки» для хранения закладок на интересные веб-сервисы, «Алиэкспресс» про заказы с Алика, «Здоровье» со всякими медицинскими данными, «Банки» с банковскими договорами и инфой о счетах и многое, многое другое.

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

Так почему же мне не нравится Эвернот и я хочу плакать после каждого нового апдейта? Потому что с тех пор у них что-то случилось и они стали планомерно клиент ухудшать.

Давайте разбираться.

Групповые операции с тегами

Одной из базовых возможностей клиента всегда были теги. И всегда было можно организовать иерархию тегов с неограниченными уровнями вложенности (в блокнотах только два уровня вложенности). Например, у меня есть тег «Авторы», под который засовываю теги с фамилиями авторов книжек из блокнота библиотеки. Так вот, в старых версиях клиента была возможность выделить несколько тегов и переместить под родительский одним движением. Хотите посмотреть, как это происходит сейчас?

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

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

Дальше будет много виджетов с видео, убираю под кат.

(далее…)

Интересные плагины Chrome

Изображение со старого диска «Реклама и коллаж», автор zfoxillustrative12

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

Сначала расскажу про активные плагины, а потом про отключенные, которые держу про запас.

Активные

Clearly Reader — Your reader mode solution 3.0.3

После того, как Evernote убил Clearly, его место занял вот этот плагин. Очищает страницу от мусора, отображает слева структуру заголовков статьи, а в центре — саму статью с аккуратным форматированием. Справа богатая палитра опций.

Плагин не конфликтует с Evernote Clipper. Вы можете сначала активировать Clearly Reader и заэвернотить страницу в упрощённом режиме, она заэвернотится корректно. Хорошо работает на страницах, из которых клиппер зачем-то копирует километр ненужного контента.

Copy Unicode URLs 0.0.20

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

Evernote Web Clipper 7.33.1

Плагин позволяет отправить в Evernote любую страницу. Я обычно отправляю упрощённую статью, иногда закладку. Сложную страницу можно отправить в заметочник целиком. Раньше он глючил и иногда отказывался отображаться, но его починили и сейчас он вполне исправен. Кроме основной функции, позволяет из контекстного меню страницы отправить в заметочник понравившуюся фотографию. Также умеет отправлять туда же отдельные pdf-документы.

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

LastPass: Free Password Manager 4.116.0

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

minerBlock 1.2.18

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

NoClickjack 2022.7.6.1

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

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

Чтобы предотвратить кликджекинг, установите расширения для браузера. Например, No ClickJack для Google Chrome и NoScript для Firefox. Это надёжные и бесплатные плагины: они автоматически показывают скрытые веб-слои, которые захватывают ваш клик и перенаправляют на опасные сайты. Используйте их — и спокойно кликайте по любым сайтам.

Return YouTube Dislike 3.0.0.9

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

Save Image As PNG 1.0.2

Я понимаю плюсы формата вебпак, но современный софт пока с ним очень плохо работает. Плагин нужен для сохранения вебпаковских картинок в нормальные png в два клика.

Speed Dial 2 Новая вкладка 3.6.2

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

SponsorBlock для YouTube — Пропускайте спонсорские вставки 5.4.7

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

Todoist для Chrome 11.1

Плагин даёт возможность добавить текущий сайт в качестве задачи в Todoist.

Video DownloadHelper 7.6.3.3

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

VK Comment Blocker 1.2.2

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

Скачать музыку 2.0.2

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

Отключённые

GoFullPage — Full Page Screen Capture 7.9

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

Google Mail Checker 4.4.0

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

RANDUS.ORG – генератор случайных личностей 1.5.1

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

Screencastify — Screen Video Recorder 2.75.0-b78123fb8

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

Мысли за последнее время — 7

Изображение с сайта unsplash.com, автор Tom Hermans

О необъятности книг

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

Сегодня видел фотографии книжных полок какой-то стокгольмской библиотеки (пик). То есть, ведь в каждой стране есть огромное количество книг на национальном языке. Это тяжело даже в принципе, осмыслить.

Стокгольмская общественная библиотека
Стокгольмская общественная библиотека

Яндекс говорит, что в мире в данный момент 129 864 880 книг. Я предпочитаю слушать, а не читать, и комфортно слушаю 2 книги в месяц. Значит, чтобы их прослушать, мне нужно 5 411 036,6 лет. По сравнению с возрастом Земли (4,54 миллиарда лет) не очень долго, но дело в том, что пока я буду слушать 24 книги в год, в мире за этот год будет выходить ещё 1 млн. новых книг.

К счастью, большая часть этих книг — чудовищная графомания, вроде творений Инстасамки, Симоньян, Бузовой или, извините, Алекса Лесли. Значит, нужно либо научиться определять 1 % значимых книг, либо изобрести революционно новую технологию по загрузке их в мозг.

Такие дела.

* * *

Кто о чём, а я про ё.

Афера. Слово из фр. affaire – дело. Произносится через букву Е. Никаких Ё тут нет.

Платёжеспособный. А вот здесь Ё нужна. Вся суть в том, что в слове есть основное ударение и побочное, которое как раз падает на букву Ё.

Истекший – истёкший. А в этом случае нужно смотреть на смысл. Если мы говорим о жидкости (истёкший кровью), то нужна буква Ё. Если же про время (истекший год), то нужна буква Е.

А ещё, букву ё обязательно нужно писать в новых словах. Например, вы знаете, что тверк на самом деле твёрк, а ЧВК Редан на самом деле Рёдан? История сама примет решение о значимости этих явлений, но пока эти слова новые, ё лучше не игнорить.

* * *

О финансовой дисциплине

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

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

А он говорит, как же так, единовременно отдать за сигареты 6-8 тысяч, да, после этого не будет проблем с сигаретами, зато появятся проблемы с деньгами.

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

* * *

О старинном кеке

Слово «кекнуть» тогда означало «икнуть». Ничто не ново.

«Лѣшій (разсказъ исправника)», А. Ѳ. Писемскаго. Изданіе Ѳ. Стеллавскаго, С.-Пб., 1861.

* * *

Об ушедшем счастье

Нашёл картинку и загрустил. В 2009 году я уже закончил универ и год как страдал фигнёй в роли фотографа агентства развлечений, взаимодействие с которым закончилось с кризисом конца 2008, когда гражданам стало не то, что не до развлечений, но на фотографе стали экономить.

Благодаря успешно сделанному тестовому, получил работу в геймдев-компании «Айгринд», снял квартиру в конце проспекта Мира, купил небольшой нетбук и радовался жизни. Нашёл подработку юзабилити-аудитором, где зарабатывал на излишества. А почему бы не заработать? Доллар чуть дороже 30 рублей, ни с кем не воюем, слово «санкции» ещё даже не звучало в публичном поле. Хороший ужин в ресторане, алкоголь без ограничений и счёт редко превышает 1000 рублей.

Калининградский продавец стиральных машин Алексей Беба бросает продажи и создаёт театральную студию «Эволюция», я начинаю туда ходить и учусь у отличных актёров Елены Мочаловой и Антона Арнтгольца. Занятия проходят в банкетном зале ресторана «Ольштын» поздно вечером, часто не удаётся попасть на автобус или маршрутку до съёмной квартиры, Яндекс Такси ещё не придумали. Через раз совершаю длинную прогулку через весь Калининград. Зима, но не грязно.

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

Выходит «Сталкер. Зов Припяти». До биткоин-истерии ещё долго, видеокарты стоят вполне вменяемых денег. Выходит отличный кооп «Left for dead 2», в который мы с друзьями играем до сих пор.

Потом будут сокращения в «Айгринде», отказ от предложения «Системных технологий» стать их продаваном, возвращение в родной город, неожиданное знакомство с Дуровым, подкидывание ему идей для ещё не загнившего «Вконтакте», долгий поиск нормальной работы, но всё это позже.

Мы никогда больше не будем так счастливы, как в 2009. Спасибо за воспоминания, рандомная картинка из интернета.

* * *

О трёх числах

В самом начале карьеры (примерно весна 2009 года) меня пригласили на собеседование на сисадмина в одну строительную компанию. И на собеседовании гендир сказал: «Назови, пожалуйста, три числа. Минимальную зарплату, за которую ты готов согласиться работать. Комфортную зарплату. И зарплату, с которой ты сможешь позволить себе излишества».
Я, совершенно не понимая подвоха, назвал 15 тыс., 25 тыс. и 40 тыс.

Через несколько дней мне позвонили и сказали, что приглашают на испытательный. Я стал ездить к ним в офис, познакомился с предыдущим сисадмином (он продолжал оказывать этой компании услуги как ИП), стал настраивать всякое, помогать пользователям. Ну и дня через три решил спросить у гендира (договора мы не заключали), а какая у меня зарплата? А он и ответил: «15 тыс., ты же сам назвал эту сумму».

С тех пор я перестал отвечать на вопрос про три числа честно.

* * *

О любимых приложениях

У каждой профессии своё «любимое» приложение. В кавычках потому, что любимое оно не по причине нежных чувств, а от частого использования. Если вы большую часть времени видите на экранах людей эксель, значит это финансисты или бухгалтера. Если ворд — техписы или юристы. Редакторы презентаций жалует начальство. На экранах программистов разнообразнейшие IDE. UX/UI сидят в Figma.

А вот на экране пиэма чаще всего вы можете наблюдать мессенджер или почтовый клиент.

* * *

О подрыве и совершенствовании командного духа

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

* * *

О договорённостях в скраме

При классическом скраме команда обменивает гарантию выполнения целей спринта в обмен на невмешательство в скоуп спринта в процессе. Короткие итерации (2-3 недели) делают этот обмен вполне реальным.

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

Если ваше руководство не может сохранять фокус 2-3 недели и это происходит регулярно, у компании проблема.

* * *

О декриминализации ошибок и эскалаций

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

А ещё, надо декриминализировать эскалации. Нет ничего хуже, чем ситуация, когда подчинённый боится сообщить вам о проблеме и тянет до последнего, пока это проблема не станет реально серьёзной и приведёт к финансовым потерям. Да, вы должны сопротивляться попыткам переложить на вас принятие решений по каждой мелочи, обязательно задавать вопрос: «А сам-то как считаешь?», но создавать систему, в которой сотрудники боятся эскалировать — менеджерское преступление.

* * *

Об эйджизме

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

Я помню, как в детстве говорил отцу: «Папа, я набрал в Флинстоунах стопицот очков! Папа, я обыграл компьютер на чемпионате мира по футболу! Папа, я построил самый прибыльный парк развлечений!» И он всегда мне на это отвечал: «Ну и где в реальности твои стопицот очков, кубок мира и парк развлечений? Нет у тебя ничего.»

А виртуальные вещи так же ценны как и реальные. Броня T1 из Варкрафта так же полезна как кожаная куртка с меховой оторочкой в реальности. Аккаунт в Линкадине с SSI 75 или инстаграм с миллионом подписчиков так же ценен как крутые записи в трудовой книжке.

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

* * *

Об источнике для нейросетевой копии

Потихоньку материализуется эпизод Чёрного Зеркала «Сейчас вернусь» (2 сезон, эпизод 1), в котором девушка при помощи нейросетей возвращает погибшего мужа, сначала в виде переписки, потом в виде голоса, а потом и в виде болванчика.

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

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

* * *

Об увольнениях

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

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

И ещё важный момент. Надо обязательно, хоть и без лишних подробностей, пояснить команде, почему Васю попросили написать заявление. Предъявлять им список васиных косяков не надо, достаточно передать суть. Например: «Васины задачи возвращались на доработку тестировщиками запредельно много (десятки) раз». Это предупредит ненужные разговоры и слухи.

* * *

О скорости онбординга и музыке

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

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

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

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

Людей вообще, нельзя сравнивать друг с другом, это некорректно.

* * *

О простых доработках в клиентском сервисе

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

Дело в том, что я заказываю рационы здоровой еды. Каждый вечер курьер привозит пакет с пятью блюдами в коробочках. Сменил три службы доставки и только в третьей догадались… класть коробочки в пакет в том порядке, в котором их нужно есть!

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

* * *

О ватных палочках

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

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

* * *

Шаблон для встреч один на один

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

* * *

О непечатных символах в гуглодоках

В гуглодоках добавили возможность показать непечатные символы. Контрол или комманд шифт P, либо Вид → Показать непечатные символы. Может, надо кому.

* * *

Об умении сдаться

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

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

Умение сдаться — тоже важный навык.

* * *

О промдизайне

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

Долго думал. Могут ли в нашей стране появиться такие люди как Джобс и Айв и создать настолько крутые и революционные продукты? Предположим, родился бы в РФ условный Евгений Айвазов в семье специалиста по изделиям из серебра, который привил бы ему с детства любовь к дизайну. И был у него такой же талант к промдизайну и такая же страсть к этому делу.

Нашёлся бы в РФ университет, подобный Нортумбрии, в котором бы дизайн преподавался настолько же серьёзно? И главный вопрос, могла бы в РФ случиться история, в которой Евгений пришёл бы в компанию, занимающуюся промышленным дизайном, поставил там станок с ЧПУ и стал делать по сто пятьдесят прототипов внешнего вида устройства, пока не достигнет совершенства? Думаю, ему сказали бы, идите, Евгений, лесом. Мы импортируем ублюдочные, но дешёвые девайсы из Китая и продаём втридорога, таков путь.

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

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

Да может и получилось бы у Евгения Айвазова. Взял бы его к себе Лебедев и дал заниматься любимым делом, пусть и в тысячу раз меньших масштабах.

Семь айти-практик, которые стоит завести в команде

Изображение с unsplash.com, автор Hal Gatewood

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

Гит

На проекте я тимлид,
В мастер пушу свой коммит, 
У меня на это есть
Полный доступ в гит.

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

Код ревью

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

CI/CD

Эту загадочную аббревиатуру нужно внедрять в третью очередь, когда гит и код ревью уже заработали. Даёт великое множество профитов — возможность гибко управлять правами доступа, автоматизировать ручные действия и самое главное, возможность нормально масштабироваться. Без CI/CD в случае резкого всплеска нагрузки вам останется только развести руками.

Прозрачный процесс постановки задач

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

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

Руководитель изрыгнул в чат баг или очередную светлую идею — ответственный сотрудник заводит тикет в таск-трекере и скидывает в чат номер. Исключений нет.

Одна задача = одна ветка в гите.

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

Автотесты

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

Мониторинг ошибок

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

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

Вот, в целом, и все полезные практики, которые вам нужно завести в свежем стартапе чем раньше, тем лучше.

Автор изображения Kendall Hale

Мысли за последнее время — 6

Free cute chihuahua dog biting a shoe image, public domain animal CC0 photo.

Об интерфейсе планирования встреч

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

* * *

Про кино и нейросети

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

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

Айти на службе кино.

* * *

О поисковиках

Я считаю главным достижением поисковика гугла умение находить нужный графический мем по описанию. А главным провалом — что он дал заднюю и разучился находить людей в соцсетях по фото.

* * *

Об онбординге

В книге «Звёздный десант» Роберта Энсона Хайнлайна есть эпизод, в котором курсант ударил инструктора. Из ряда вон выходящая ситуация, все на ушах. И капитан ругает… инструктора. Ты же профессионал, ты должен был вырубить его уже в тот момент, когда он только подумал совершить такое преступление, тем самым спасти мальчика от административного наказания (публичной порки).

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

А нужно не дать ему совершить ошибку. Один раз сесть с ним и сделать этот отчёт вместе, объяснив, что и как писать в каждом разделе отчёта, помочь с формулировками. На второй и следующие разы — конечно, уже пусть делает сам и если будет косячить, указываем ему на это.

* * *

О цвете пояса

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

Думаю, было бы интересно присваивать айтишникам какой-нибудь предмет гардероба, который бы менял цвет по мере выгорания владельца.

* * *

О сериалах для людей под сорок

На заре российского телевидения, там крутили сериалы, ЦА которых были пенсионеры, которым было интересно смотреть за всякими Просто Мариями. Почти одновременно с ними стали показывать контент до шестнадцати и старше, вроде «Друзей». И вот в последние годы я всё чаще замечаю сериалы, которые лучше всего отзовутся людям под сорок.

«After Life» (первый сезон), «Мистер Корман», «В Бореньке чего-то нет» (из отечественного) и вот теперь «Терапия». Там Джейсон Сигель, вылезший из образа Марша Сладенького, а также пожилой Харрисон Форд. Вышло пока три эпизода и да, это сериал для людей под сорок.

* * *

Об уверенных в себе людях

Все знают про эффект Даннинга-Крюгера. Дураки полны уверенности, умные люди полны сомнений. Но на уверенность в себе оказывает не только имеющийся набор знаний и опыта.

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

Бойтесь уверенных в себе людей.

* * *

О монетизации личного бренда

Став знаменитым, Сальвадор Дали перестал платить в ресторанах. Он приходил, пил, ел, а когда приносили счёт, выписывал чек на нужную сумму, а на обороте рисовал что-нибудь сюрреалистическое.

Рестораторы эти чеки никогда не обналичивали, а продавали на аукционах живописи за намного большие деньги. И все были довольны.

* * *

О детских бизнес-заблуждениях

Есть типовые детские заблуждения, они у всех более-менее стандартные, это не очень интересно. У меня же было несколько бизнес-заблуждений.

1. Был уверен, что заместитель директора — это такая мегасинекура. Человек вообще ничего не делает и начинает выполнять функции директора, только когда последний куда-нибудь отлучается.

2. Кадровик — невероятно могущественный человек, потому что решает, кого нанимать и кого на какую должность ставить. По сути, третий человек в компании, после пункта 3.

3. Офис-менеджер — это тоже мегамогущественный человек, потому что управляет неким конкретным офисом целиком, со всеми чадами и домочадцами.

* * *

О необычном использовании личного помощника

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

И такое можно делегировать.

* * *

О странном UI

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

* * *

О важности своевременности

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

Представьте себе попытку сделать какую-нибудь Яндекс.Музыку в 2002 году на российском рынке с кнопочными телефонами и людьми, которые видели банковские карты только в рекламе по телику. И вот, спустя всего десять лет она отлично запускается и работает.

Представьте сервис, просящий доллар за скачивание рингтона для телефона в 2023. Глупость? А не так давно контент-провайдеры отлично на этом зарабатывали.

И ещё совершенно не факт, что в этом безумном мире и в этой безумной стране колесо истории сделает оборот и эти способы заработка снова заработают. Опыт переоценён.

* * *

О вырезании фона

В Вентуре можно встроенными средствами удалять фон с изображения. Жмякаем правой кнопкой → Быстрые действия → Удалить фон.

Попробовал на картинке со сливающимся фоном, получилось сносно.

* * *

О вкатывании в айти

Лучший способ вкатиться в айти в 2023 — чтобы вас покусал другой айтишник.

* * *

Конфуций об онбординге

Расскажи мне и я забуду. Покажи и я запомню. Дай мне сделать и я пойму. (приписывается Конфуцию) Это не баянистая присказка, а истина.

* * *

О выражениях в официальной документации

Как-то спала мода на опросы. Давайте исправляться. Имеем большую компанию с кучей начальников, некоторые из которых любят заглядывать в проектную документацию с разными целями. Как вы считаете, формулировка «Второй вариант архитектуры выглядит любопытным» в протоколе созвона (внутреннего) — это приемлемо или так писать нельзя?

* * *

Об айтишном джокере

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

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

* * *

О народных псевдоприметах

Некоторые «народные приметы», которым нас в детстве учили бабушки и дедушки, имели под собой вполне материальную основу.

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

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

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

А вас учили каким-то приметам, под которыми была здравая основа?

* * *

О ворклогах

Один из самых страшных вопросов, который может задать руководитель начинающему специалисту: «А что конкретно ты делал всю неделю?» Я столкнулся с ним, когда в молодости предпринимал первые попытки сисадминить. Проблема в том, что делаешь массу мелких вещей и совершенно их не помнишь, а ответ: «Делал множество мелких вещей» руководство не устраивает.

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

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

И так далее. И когда руководитель радостно спрашивал: «А что конкретно ты делал на этой неделе?», уже предвкушая как лишит меня премии, я спокойно печатал эту простынь и подносил ему в папочке. Обычно он на это хмурился, отвечал, что такие подробности его не интересуют и отставал надолго.

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

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

* * *

О личных качествах обучающего

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

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

Скорость обучения у всех новичков разная. Кроме того, некоторые из них могут плохо воспринимать на слух и лучше понимать текст, другие наоборот. Опытный и знающий начнёт по привычке требовать и давить, а может и оскорблять и угрожать карами, что приведёт только к тому, что вы потеряете часть «учеников».

Доброжелательность и терпеливость — вот ключи к успешному обучению. Ну и обязательно нужно сочетать методы. Рассказать в общих чертах, показать, как это делается, дать «ученикам» задание на дом, чтобы закрепить навыки и снабдить текстовыми описаниями, чтобы использовать их в качестве справочника.

* * *

О мегатрендах

Если бы я мог выделить один глобальный тренд в бизнесе в 2022 году, это было бы желание потребителей прозрачности. Желание понимать, из чего складывается стоимость услуги, что входит в состав товара и всё такое. Игнорировать этот тренд можно, но те, кто ему следуют, зарабатывают больше.

* * *

О видах прогресса

В продолжение поста о наставничестве. Бывают разные типы прогресса и к ним всем нужно относиться спокойно.

* * *

О странных запросах в техподдержку

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

* * *

О разнице между спамом и флудом

Спам — это рекламное сообщение, которое пользователь не запрашивал. А флуд — поток навязчивых сообщений, необязательно рекламных. Почему-то 99 % пользователей путают спам и флуд.

* * *

Об эмблемах

Вы когда-нибудь думали о том, что на иконке Android Studio – циркуль, изящный и точный инструмент инженеров и архитекторов, а на иконке Xcode — молоток?

1

Фреймворки и всё, что менеджеру проектов нужно знать о них

Изображение с unsplash.com, автор Dayne Topkin

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

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

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

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

Классификация фреймворков

Бэкенд-фреймворки

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

Например, при помощи Django вы можете сделать админку с гридами, о которой я писал выше. Это фреймворк на питоне.

Ещё можно выделить:

  • Symfony, Laravel — PHP;
  • Express.js — JavaScript;
  • Ruby on Rails — Ruby.

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

Фронтенд-фреймворки

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

  • Angular;
  • Vue.js;
  • Svelte;
  • React — формально это не фреймворк, а библиотека, но значение этого инструмента так велико, что его постоянно сравнивают с другими веб-фреймворками.

Фуллстек-фреймворки

Сюда относятся фреймворки, реализующие как клиентскую, так и серверную часть. Например, JS Meteor.

Возможности фреймворков

Веб-кеширование

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

Скаффолдинг

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

Шаблонизация

Отвечает за веб-публикацию. Основная задача шаблонизатора — отделить код от представления (например, HTML-разметки). Веб-шаблоны применяются для создания сайтов и страниц любого типа, так как шаблон выполняет роль незаполненного бланка документа, одинакового для любых представлений до заполнения данными.

Безопасность

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

Сопоставление URL

Вообще, это механизм интерпретации URL-адресов. Нужно для упрощения индексации с сохранением красивого названия для сайта. Например, URL-адрес, который заканчивается на «/page.cgi?cat=science&topic=physics», можно изменить на просто «/page/science/physics», удобно и красиво же.

Приложения

Возможность разрабатывать стандартизованные приложения — форумы, блоги, CMS.

Важное для менеджера

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

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

В целом, это всё, что пиэму нужно знать о фреймворках.

1
1
1

Что менеджеру проектов нужно знать об API

Изображение с unsplash.com, автор Rubaitul Azad

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

api куа мем

Кроме того, в вашем продукте может потребоваться реализовать дорогостоящую функцию, которая уже сделана в стороннем сервисе на отличненько. Например, если вам нужны карты, целесообразно использовать API Open Street Map или Яндекс.Карт, это сильно дешевле, чем пилить собственные карты.

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

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

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

Самая прозрачная аналогия с реальным миром — ресторан. Кухня — бэк, зал ресторана — фронт, официанты — API. Посетитель через зал посетителей стучится в API-официанта, даёт ему заказ. Официант доставляет заказ кухне-бэкенду, там его готовят и отдают официанту, который доставляет результат клиенту в зал ресторана. Если всё сильно упростить, реальное API работает именно так.

Различия REST и SOAP

Чаще всего в современной разработке встречаются REST и SOAP API. Давайте разберём, в чём разница.

REST

REST (от англ. Representational State Transfer — «передача репрезентативного состояния» или «передача „самоописываемого“ состояния») — архитектурный стиль взаимодействия компонентов распределённого приложения в сети.

Предполагает использование протокола HTTP для передачи данных.

Применяется преимущественно в вебе и в мобильных приложениях.

Ещё используется в облачных вычислениях.

Через REST API могут передаваться разные форматы данных, но обычно используется JSON.

Предполагает кэширование передаваемых данных.

Хорошо масштабируется.

SOAP

SOAP (от англ. Simple Object Access Protocol — простой протокол доступа к объектам) — протокол обмена структурированными сообщениями в распределённой вычислительной среде. Первоначально SOAP предназначался в основном для реализации удалённого вызова процедур (RPC).

При помощи SOAP данные могут передаваться не только через HTTP, но и, например, MQ.

Применяется, преимущественно, в Enterprise, для интеграции нескольких отдельно стоящих систем.

Данные передаются только в формате XML.

Данные не кэшируются.

Типы запросов

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

  1. GET
  2. POST
  3. PUT
  4. PATCH
  5. DELETE

GET – используется для получения со стороны севера определенного ресурса. Если вы производите этот запрос, сервер ищет информацию и отправляет ее вам назад. По сути, он производит операцию чтения на сервере. Дефолтный тип запросов.

POST – нужен для создания определенного ресурса на сервере. Сервер создает в базе данных новую сущность и оповещает вас, был ли процесс создания успешным. По сути, это операция создания.

PUT и PATCH – используются для обновления определенной информации на сервере. В таком случае сервер просто изменяет информацию существующих сущностей в базе данных и оповещает об успехе выполнения операции.

DELETE – как и следует из названия, удаляет указанную сущность из базы или сигнализирует об ошибке, если такой сущности в базе не было.

Postman

Для тестирования API применяется инструмент Postman. Раньше он был плагином для Хрома, но сейчас это автономное приложение для любых платформ. Штуковина достаточно понятная интуитивно, разработчики чаще всего передают данные об API тестировщикам именно в виде коллекций Постман.

Есть публичное API для смешных переводов, например, эндопоинт для перевода на язык Мастера Йоды находится по адресу: https://api.funtranslations.com/translate/yoda.json

Эндпоинт принимает только один строковый параметр text. Отправим Постманом GET запрос на этот эндпоинт:

Интерфейс Postman с простым GET-запросом к API
Интерфейс Postman с простым GET-запросом к API

Как видите, API возвращает такой ответ:

{
    "success": {
        "total": 1
    },
    "contents": {
        "translated": "Force be with you yoda,Polovec helloy you",
        "text": "Hello Yoda, Polovec helloy you",
        "translation": "yoda"
    }
}

Как нетрудно понять, эндоинт возвратил код успеха, а в поле контента передал три значения:

  • translated — переведённый текст.
  • text — исходный текст.
  • translation — тип переводчика.

По такому же принципу работают любые REST API, только в реальных запросах параметров больше и они сложнее.

Применение в реальной разработке

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

Может сложиться так, что проект будет совсем маленьким и проектирование API поручат вам. Для такого случая предлагаю вам пример API спроектированного мной для мобильного приложения для операций с топливом.

Разное

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

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

Вот ещё хороший документ про API от пользователя Koray OKE:

В целом, это всё, что пиэму нужно знать об API.

Что менеджеру проектов нужно знать о Docker и Kubernetes

Изображение с unsplash.com, автор Growtika Developer Marketing Agency

На собеседовании на менеджера проектов вас могут спросить, что такое Kubernetes или просто Кубер. Если вы претендуете на место технического менеджера проектов, придётся рассказать ещё, зачем он нужен и как используется в современной разработке. Давайте разбираться.

Для того, чтобы понять, зачем нужен Кубер, сначала нужно понять, зачем нужен Докер.

Docker

Позволяет «упаковать» приложение со всем его окружением[en] и зависимостями в контейнер, который может быть развёрнут на любой Linux-системе с поддержкой контрольных групп в ядре, а также предоставляет набор команд для управления этими контейнерами.

https://ru.wikipedia.org/wiki/Docker

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

У вас может возникнуть вопрос, в чём разница докера и самой обычной виртуальной машины?

Контейнеры и виртуальные машины — это разные способы виртуализации. Только виртуалка реализует её на уровне железа, а Docker — на уровне операционной системы.

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

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

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

Если кратко перечислить преимущества контейнеризации, то это:

  • быстрое создание и развертывание приложений;
  • непрерывные разработка, интеграция и развертывание;
  • разграничение ответственности разработчиков и администраторов; ‰‰
  • однородность сред разработки, тестирования и промышленного использования; ‰‰
  • переносимость между разными облачными провайдерами и ОС;
  • сосредоточение управления непосредственно на приложении;
  • слабо связанные, распределенные, эластичные, независимые микросервисы; ‰‰
  • изоляция ресурсов;
  • утилизация ресурсов.

Все основные облачные провайдеры, такие как Amazon AWS, Google’s GCE, Microsoft’s Azure и даже Alibaba Cloud, предоставляют услуги по размещению контейнеров.

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

  • Docker host — это операционная система, на которую устанавливают Docker и на которой он работает.
  • Docker daemon — служба, которая управляет Docker-объектами: сетями, хранилищами, образами и контейнерами.
  • Docker client — консольный клиент, при помощи которого пользователи взаимодействуют с Docker daemon и отправляют ему команды, создают контейнеры и управляют ими.
  • Docker image — это неизменяемый образ, из которого разворачивается контейнер.
  • Docker container — развёрнутое и запущенное приложение.
  • Docker Registry — репозиторий, в котором хранятся образы.
  • Dockerfile — файл-инструкция для сборки образа.
  • Docker Compose — инструмент для управления несколькими контейнерами. Он позволяет создавать контейнеры и задавать их конфигурацию.
  • Docker Desktop — GUI-клиент, который распространяется по GPL. Бесплатная версия работает на Windows, macOS, а с недавних пор и на Linux. Это очень удобный клиент, который отображает все сущности Docker и позволяет запустить однонодовый Kubernetes для компьютера.

Основных сущностей для работы с докером три:

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

Ещё есть специальный репозиторий для хранения докер-образов.

Вы вполне можете использовать Докер без Кубера, но Кубер даст дополнительные возможности.

Kubernetes

Если кратко, то Kubernetes – это ПО, позволяющее гибко управлять контейнеризированными приложениями. Штука целиком гугловая, опережает все аналоги очень сильно. В общем, если вам надо строить инфраструктуру под сколько-нибудь сложное и высоконагруженное приложение, Кубер ваш выбор. А если вы используете микросервисную архитектуру, сама наука велела изучить и использовать этот софт.

Архитектура Kubernetes
Архитектура Kubernetes. Из книги «Осваиваем Kubernetes» Джиджи Сайфана.

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

Кластер

Кластер — это набор компьютеров, хранилищ данных и сетевых ресурсов, с помощью которых Kubernetes выполняет различные задачи в вашей системе. Система может состоять из нескольких кластеров.

Узел

Узел — это отдельный компьютер (физический или виртуальный). Его задача состоит в запуске подов. Каждый узел в Kubernetes содержит несколько компонентов, таких как kubelet и прокси kube. Все они находятся под управлением ведущего узла. Узлы — это нечто наподобие рабочих пчел, которые занимаются выполнением всех основных задач. Устаревшее название узла — миньон.

Под

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


Что же можно сделать при помощи Кубера?

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

Несколько слов о возможностях Кубера:

Мониторинг

Мониторинг. Кубер позволяет в реальном времени мониторить множество параметров вашего кластера или отдельного приложения. Есть веб-интерфейс, инфа представляется в наглядном и удобном виде.

Балансировка сетевой нагрузки

Балансировка сетевой нагрузки. Дело в том, что трафик для разных контейнеров может сильно разниться, где густо, где пусто. Кубер умеет автоматически его балансировать, но также имеет инструменты, при помощи которых разрабы или девопсы могут написать правила балансировки.

Оркестрация хранилища

Оркестрация хранилища. С помощью Kubernetes разработчик может выбрать систему хранения: локальное хранилище, облако и т.д. Платформа автоматически создаст ее и настроит под потребности проекта.

Автоматическое развёртывание

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

Самоконтроль

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

Безопасность и конфиденциальность

Безопасность и конфиденциальность. Kubernetes может сохранять и контролировать конфиденциальные данные (пароли, ключи SSH, OAuth-токены), распределять права доступа к системе. Обновление и развертывание приложений не затрагивает образы контейнеров и не раскрывает секретные сведения в конфигурации стека.

В Кубере много автоматики, но эта система не является полностью автоматической и требует определённого уровня знаний для её конфигурирования.

В целом, это всё, что пиэму нужно знать про Докер и Кубер.

2
1
1
1