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

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

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

Интересности за декабрь 2022

Изображение с unsplash.com, автор Andrea De Santis

Какая школа из вселенной Ведьмака вам подходит?

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

* * *

Язык диаграмм

Чтобы не скатываться к квадратикам со стрелочками, учите формальные нотации и внедряйте их в команде.

* * *

Технологии, которые когда-то казались перспективными, но остались в прошлом

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

* * *

Как работается айтишникам атомных станций

Манящий мир госов.

* * *

О матрице компетенций

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

* * *

Бесплатно пройти тест для экзамена на PMI

261 вопрос по пиэмству для подготовки к экзамену на PMI. Обычно это стоит 80 $, но введя промокод STVIPRAC, вы получите его бесплатно.

* * *

30 фильмов последних лет, которые стоит посмотреть каждому.

Подборка кинокритика Егора Москвитина

* * *

Диджитал номад в Малайзии, как прожить там до двух лет.

Эмигрантский рагамаффин.

* * *

Владимир Меркушев разбирает продукт Lensa

Художники не нужны.

* * *

ЗОЖ это ложь

Кардиолог Алексей Утин о мифах о ЗОЖ.

* * *

Действующая стиральная машина из лего

Лего Техник — отличная штука. Изобретение стирает, сушит и гладит вещи.

* * *

Виновными в детском недосыпании в 1931 году считали граммофоны

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

* * *

Нейросеть рисует, как выглядели бы «Звёздные войны», если бы их снимал Тарковский

Такие звёздные войны я бы посмотрел.

* * *

Моя доска на пинтересте с красивыми фото EDC-комплектов с тетрадками Field Notes

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

* * *

Путешествие в Магадан через всю Россию

Очень много фотографий и впечатлений о путешествии разработчика Андрея Енькина через всю Россию.

* * *

Как уложить алкаша, без рук и слов

Кайтинг моба ин реал лайф.

* * *

Чеклист: Как мотивировать команду разработчиков

Мотивация инженеров несколько отличается от мотивации других специалистов.

* * *

Пятнадцать самых нелепых рекомендаций по первой помощи

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

* * *

Японские лисы орут друг на дружку

Лисички делают ^__^

* * *

Обзор зарубежной недвижимости для собирающихся в эмиграцию

Что, где, почём.

* * *

Опыт тимлида Альфа Банка по собеседованиям

QA Team Lead в «Альфа-Банке» Артём Бадышев делится с нами ценным опытом собесов — что делать до первого контакта, как подготовиться, как проходит знакомство, основная часть и вопросы от кандидата.

* * *

Гайд по анализу конкурентов

150 крутых идей.

* * *

Твиттерский интегрировал пишмашинку с нейросетью

Статья про это же на Коде Дурова

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

* * *

Как Егор Данилов касдевил мошенников

Пообщавшись несколько дней с мошенниками, продакт понял, как одним махом минимизировать объём скама на площадках объявлений.

* * *

36 частых вопросов про Postman

Разбираемся с самым популярным инструментом для тестирования апи.

* * *

Про гостинг от работодателей

Для тех, кто занимается поиском работы перед НГ.

* * *

Интервью Стива Джобса PBS

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

* * *

Фешн-тред тётки с Мамина-Сибиряка

Магазин кыштымского трикотажа выставляет на крыльцо женский манекен, каждый день в новом луке, а твиттерские комментируют. Смешно.

* * *

Ростелеком разрабатывает аналог трелло и джиры под названием Яга

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

Итоги 2022 года

Итоги 2022 года

Что же должно случиться в 2023, чтобы мы вспоминали 2022 как «старые добрые времена»? Но как это ни странно, мой 2022 был достаточно размерен. 

Работа

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

С ИНВИТРО расстались хорошо, мне дали два месяца на спокойный поиск работы и по завершении выплатили хорошую компенсацию. 

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

Поиск работы пиэмом сейчас сильно затруднён, даже с сениорским опытом. На мои отклики на хедхантере в 99 % следовал просмотр резюме и отказ (скорее всего, из-за требований к зарплате), в специализированных каналах число вакансий сократилось до минимума. Вакансию в КОМУСе мне предложила рекрутерша, нашедшая моё резюме активным поиском.

Отдых

Два раза побывал в отпуске. Пожил по недельке в Зеленоградске в отеле «Кристалл» (апрель) и Светлогорске в гостинице «Чайка» (июль). В Зеленоградске сделал несколько снимков. После второго отпуска отхватил люлей от директора департамента за то, что мой тимлид плохо лидил ключевую доработку и ему (диру) пришлось потратить время на координацию. Надо научиться грамотно делегировать функцию курирования на время отпуска. 

Съездил в Мамоново (это такой маленький город в Калининградской области, я там родился) на День Города, встретил там множество старых знакомых. 

Грустное

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

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

Здоровье

Воспользовавшись скидкой сотрудника (все сотрудники ИНВИТРО могут сдавать анализы в собственных и франчайзинговых медофисах со скидкой в 30 %), сдал анализы, сходил к эндокринологу и узнал, что мне нужно отказаться от сахара вообще, а также мучного и жареного. Бросать курить было сложнее. Нашёл доставку здоровой пищи, научился есть пять раз в день, понемногу и по часам. 

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

Компьютер

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

Смартфон

Смартфон не менял, продолжаю ходить с Xiaomi Mi Max 3, купленным 31 октября 2018 года. Стал хуже ловить вайфай, несколько износилась батарея, но в целом, не сбоит. 

Софт

Купил несколько лицензий:

  • Карамба Свитчер. Пытался продолжить использовать Пунто на последней макоси, но оказалось, что при попытке автоматического переключения на русскую раскладку Бирмана, эта самая макось отображает сообщение об ошибке и это никак не лечится. Карамба этого свойства лишена. А ещё, она исправляет типовые опечатки и у неё отзывчивый создатель. 449 рублей в год.
  • Adguard, Отличный резидентный блокировщик рекламы во всех приложениях сразу. Так сильно облегчает жизнь, что я решил купить его сразу на два года (он, как и Карамба, подписочный). 
  • KeyBell. Эта штуковина озвучивает нажатия на клавиши и щелчки трекпадом всякими прикольными звуками винтажных клавиатур, пишущих машинок и проч. После единоразовой оплаты 279 рублей, разрешает создавать индивидуальные профили для разных программ, что очень удобно, так как кроме как в текстовых редакторах мне это озвучивание не нужно. 
  • Optima. Миленький редактор с возможностью автоматической проверки орфографии Яндекс.Орфографией, а также удобочитаемости Главредом. Ещё из него корректно копируются стили при вставке в почтовую программу, это тоже важно. Лучшее вложение 600 рублей.

Заплатил за лицензии при помощи счёта билайновской симки, апстор пока этот способ не заблочил. 

Ещё, кажется, нашёл идеальную пипетку для макоси. Называется ColorUI.

Оживил аккаунт в Пинтересте, сделал несколько досок. 

Финансы

Обзавёлся карточкой банка «Открытие», но толком оценить удобство не успел, ничего не могу о ней сказать. В отделение ехать не пришлось, карточку привезла и активировала специально обученная девушка. А под конец года Открытие купил ВТБ, замечательные, блин, новости. 

Блог

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

Статистика Jetpack

Вот стата посещаемости по месяцам в сравнении с прошлым годом:

Прокачал на линкадине SSI до 72 (колеблется от 68 до 72). Вырастил сеть контактов до 7386. Наконец-то завёл почту на собственном домене, vladimir@bychko.ru

Придумал постить каждый месяц вязанку гиперссылок на интересные чужие статьи. Прикрутил виджет комментариев Телеграм, вместо старого вконтактовского (смысла в них немного, основное комментирование сейчас происходит в Линкадине). Прикрутил эмодзи-реакции (плагин Remoji — Post/Comment Reaction and Enhancement).

Прикрутил мобильную тему. Она плохая, в ней некорректно отображается вёрстка, сделанная через Visual Composer и многие гутенберговские блоки. Но лучше пока ничего не нашёл. Плагин WordPress Mobile Pack. Надо искать что-то более современное. Без мобильной темы блог плохо ранжируется в гугле.

Книги

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

Но это только в приложении «ЛитРес Слушай!» Ещё какие-то книги качал торрентом, заливал в смартфон и слушал локально. Совершенно точно, переслушал все канонические книги вселенной «Дозоров».

Игры

Играл в: 

  • «Gear Club Stradale» — спинномозговые гоночки на лицензированных тачках по роскошным ландшафтам.
  • «Cozy Grove» — приключения призрачного скаута на острове, населённом призраками мёртвых медведей.
  • «This is the Police» — симулятор руководителя полицейского департамента.
  • «Metro Last Light» — больше для того, чтобы понять, норм ли играть в шутеры на макбуке. Вполне норм. 
  • Играли с друзьями через Стим в старенькую L4D-2, довольно фаново и не слишком сложно. 
  • «South of the circle» – отличная и очень стильная визуальная новелла про учёных времён холодной войны. 
  • «Eliza» – визуальная новелла о девушке, устраивающуюся «прокси» для робота-психотерапевта. 

Фильмы

Фильмы производства этого года практически не смотрел, посмотрел «Толкин» 2019 года. Ещё «Аферист из Tinder» — обычно девушки разводят мужчин, а тут обратная ситуация, что вызвало массу реакций в сети. 

Сериалы

По сериальчикам: 

  • «Разделение» — Очень смотрибельно и чернозеркально. Сериал про компанию, которая для своих сотрудников разделяет сознание. То есть, на работе они не помнят свою личную жизнь, а в личной жизни не помнят работу. Жду второй сезон. 
  • «Выбывшая» — про Элизабет Холмс. 
  • «Кабинет редкостей Гильермо дель Торо» — очень лавкрафтовский. Совершенно не страшно, но некоторые серии вполне стильные и смотрибельные
  • «Чайки» — там Пореченков забавно на всех орёт фальцетом и виды Калининграда. 
  • «Хулиганьё» — не самый свежий, но всё равно, очень милый и смотрибельный сериал про ирландских гопников. 
  • «After Life» — хороший британский сериал про принятие. Можете смотреть только первый сезон, он содержит вполне завершённое высказывание. 
  • «Скорая помощь» — отечественный сериал с Гошей Куценко. Вышел пятый сезон же. Где-то до 14 смотреть можно, потом отношенческие сопли и странное поведение персонажей начинает надоедать. И да, как и все российские сериалы, он не про Скорую помощь, а про странные отношения на фоне Скорой помощи. 
  • «Конь Бо Джек» — сначала было интересно, но к седьмой серии первого сезона стало скучновато, забил. У меня был просто контрагент с этим конём на аватарке, стало любопытно, о чём сериал. 

Музыка

Составил для вас плейлист из 30 песен, которые наиболее часто слушал в течение прошедшего года:

EDC

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

К основному рюкзаку добавилось несколько предметов, а именно:

Если не читали мой пост про основной EDC-набор, посмотрите.

Планы на 2023

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

Что менеджеру проектов нужно знать о 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

Как грамотно передать проект другому менеджеру

Передача проекта
Изображение с сайта insplash.com, автор Jael Rodriguez

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

Я решил собрать в одной ментальной карте все аспекты и вопросы, которые нужно учесть при такой передаче. Вот вам pdf:

А вот исходный файл (Minjet Mindmanager).

Вот ещё хороший пост про передачу дел:

1

Почему современное IT — не пузырь

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

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

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

Есть отличная книга 2004 года за авторством Сидни Финкельштейна: «Ошибки топ-менеджеров ведущих корпораций», она мастрид для любого айти-руководителя. В ней рассматриваются причины краха таких компаний как General Magic, Motorola, Webvan, Enron. У них не было недостатка капитала, были прекрасные руководители, закончившие заведения Лиги Плюща, были самые лучшие и звёздные сотрудники и тем не менее, они накрылись по разным причинам, которые тоже раскрываются в этой книге.

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

А потом все умерли.

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

Да и в России компьютеры стали становиться дешевле и доступнее, сотовые компании перестали брать за минутный разговор бюджет небольшой африканской страны, стремительно развивались носители информации. Я помню, как в 2004 году наша преподавательница информатики говорила на лекции, что дискета должна быть в кармане каждого современного человека, это так же нормально, как иметь ручку. В 2005 мы уже вовсю пользовались CD-R и CD-RW, а в 2006 у многих студентов были флешки. В этом году я уже устроился в первую в своей жизни айти-компанию и где-то через полгода купил первый ноутбук.

Выдержка из моей трудовой

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

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

Давайте критически посмотрим на микрособытия, которые случились со мной вчера и разберём, каково влияние IT на них.

  1. Проснулся от мелодии будильника на смартфоне. Смартфоны, созданные айтишниками, заменили множество устройств, в частности, будильники.
  2. Проверил каналы и чаты в телеграме. Телега, созданная айтишниками, заменила другие новостные каналы, региональные, общероссийские и общемировые.
  3. Через сайт клиники нашёл у своего врача окно на 11 утра в воскресенье и записался на приём. Сайт создали айтишники, CRM создали айтишники, интеграцию настроили айтишники. Ещё совсем недавно, нужно было звонить.
  4. Для самоуспокоения нашёл на prodoctorov.ru отзывы об этом враче и посмотрел его фото, чтобы вспомнить, как он выглядит. prodoctorov.ru, конечно, создали айтишники, теперь любой человек может оставить отзыв о любом враче или клинике.
  5. Через сайт агентства забучил на среду, 28 декабря, на 13:30 клинершу. Сайт, CRM, всё создано айтишниками.
  6. На сайте службы доставки здоровой пищи заказал ежедневные рационы на пять дней, потому что эндокринолог сказал питаться нормально. Получил ответ на почту, что курьер привезёт первый рацион сегодня с 19 до 22 часов.
  7. Просмотрел гуглокалендарь, созданный айтишниками, и обнаружил, что забыл вчера оплатить коммуналку. Ну ничего, вечером к этому вопросу вернусь. Завтра собеседование в 14 часов, надо подготовиться. Собеседование, конечно, онлайн, в компанию, у которой даже нет офиса в Калининграде.
  8. Запустил на смартфоне музыку в Яндекс Музыке, созданной айтишниками, оделся, взял рюкзак и отправился на почту, чтобы забрать посылки, заказанные на Алиэкспрессе, созданном айтишниками.
  9. Сел в маршрутку, добрался до остановки на Горького, заплатил карточкой через мобильный терминал. Чисто айтишная история. Потом заплатил в автобусе со стационарного валидатора, который тоже создан айтишниками.
  10. На почте при помощи терминала электронной очереди (созданном айтишниками, конечно) встал в очередь. Каких-то восемь лет назад приходилось мучиться с живой очередью, гадать, в какое окно встать, помнить, кто передо мной, кто после меня, кто отошёл и всё такое. Пока сидел в очереди, читал на смартфоне соцсеть Твиттер, созданную айтишниками. Оператору показал штрихкод отправления на экране смартфона, он считал его сканером штрихкодов (создан айтишниками), нашёл отправление, отправил мне в приложение код авторизации, который отобразился в пуше. Я продиктовал ему код, он пошёл на склад и принёс посылку.
  11. При помощи приложения Uber, созданного айтишниками, я заказал такси. Уже давно не надо звонить и диктовать адрес, достаточно ткнуть две точки на интерактивной карте. Не надо отсчитывать деньги и беспокоиться, будет ли у таксиста сдача. Таксист, находящийся поблизости, взял мой заказ, мне отобразился номер и марка его машины. Да, машина не создана айтишниками, в ней тот же самый арахичный двигатель внутреннего сгорания, но да, появилась электроника, созданная айтишниками.
  12. По дороге водитель рассказал мне, что прочёл в телеграмме, созданном айтишниками, новость про то, что глава городской администрации заявила, что нанимать 10 000 дворников, чтобы убирать улицы во время двух недель снегопада нерентабельно. Да, государственным управлением пока занимаются не айтишники, поэтому нормального способа экстренно убирать внезапно выпавший зимой снег, пока нет.
  13. Дошёл до ПВЗ маркетплейса Озон, созданного айтишниками, показал на смартфоне штрихкод оператору, оператор считал его сканером штрихкодов, принёс мне две посылки.
  14. Я сел в автобус, снова заплатил карточкой и добрался до дома. Сидел рядом с девушкой, увлечённо записывающей видеосообщения с собой и накладывающей на них инстаграмные маски. Инстаграм, ессно, создан айтишниками.
  15. Дома я посетил социальную сеть Линкадин, созданную айтишниками, написал в ней пост про микрофон, ответил на комментарии, пролайкал интересные посты.
  16. Оплатил через Сбербанк Онлайн коммуналку. Отчётливо помню, как бабушка отправляла меня с квитанциями и деньгами на почту и в банк, я там стоял в очереди и платил в окошечко. Но сейчас у нас есть созданные айтишниками сервисы, в которых всё это делается в пару кликов. В процессе произошло затруднение — протух шаблон оплаты капремонта. Но не беда, я запустил приложение Сбера на смартфоне, сфоткал куаркод на квитанции и всё получилось.
  17. Вечером мне позвонила мама через скайп, созданный айтишниками и мы поговорили про наши дела. Рассказала, что зашла на сайт какой-то социальной службы, созданный айтишниками и обнаружила, что её очередь на льготный санаторий продвигается, она уже шестьсот какая-то.
  18. Заказал на Аптеке.ру, созданной айтишниками, рецептурные лекарства, которые трудно купить при обычном заходе в аптеку. Их должны доставить в удобную мне аптеку как раз к понедельнику, в который у меня уже будет рецепт от доктора.
  19. Мне в скайп написал друг, попросил денег до четверга. Я запараноил и набрал его со смартфона (это уже не айтишники, это уже телеком, но это близко). Он ответил, что скайпом сто лет не пользуется и это мошенники. Даже мошенничество давно переехало в интернет.
  20. При помощи приложения Яндекс еда, созданного айтишниками, заказал ужин, оплатив карточкой. Это уже вообще, если вдуматься, чудо техники. Интеграция заказчика, ресторана, курьера, онлайн-оплаты, всё бесшовно.
  21. Через банковское приложение, созданное айтишниками, перевёл с накопительного счёта на карту сумму для оплаты еды. Каких-то пятнадцать лет назад для такой операции пришлось бы искать банкомат, а двадцать лет назад ехать в банк. Всё это сделано айтишниками.
  22. Уже совсем поздно приехал курьер из доставки из пункта 6. Привёз еду на завтра. Показал на экране смартфона куаркод системы быстрых платежей, созданной банковскими айтишниками, я открыл на своём смартфоне банковское приложение, сосканировал куаркод, оно получило информацию о назначении и сумме платежа, подтвердил эсэмэской, оплата ушла.
  23. Сходил в магаз за минералкой и кефиром. На обратном пути обнаружил, что у меня во дворе открылся ПВЗ маркетплейса Вайлдбериз, созданного айтишниками.
  24. Чистил зубы обычной электрической зубной щёткой. Да, её создали не айтишники, но уже есть умные щётки, для которых айтишники сделали приложения, которые показывают, в каких зонах вы недочищаете зубы. У меня такой пока нет.
  25. Перед сном послушал через приложение «Литрес аудиокниги», созданное айтишниками, интервью Черниговской Познеру. В этом интервью специалист по мозгу, Татьяна Черниговская, ругалась на созданные айтишниками сатанинские холодильники, умеющие заказывать еду через интернет и отнимающие у людей положительные эмоции.

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

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

Мемас из чата про джиру, автор неизвестен.

Теперь несколько слов о высоких зарплатах. Почему продавец в пятёрочке трудится в поте лица и зарабатывает 25 тыс. руб., а разработчик кодит 4-5 часов в день и зарабатывает 250 тыс. руб. Главная разница в том, что продавец в пятёрочке ограничен физической средой. Есть предельное количество посетителей, которое он может обслужить за рабочий день. Я не смог нагуглить, сколько примерно, но это число конечно. Да, в смене группа из нескольких продавцов и её возможности тоже конечны. И автослесарь может починить за рабочий день ограниченное количество автомобилей. И курьер может доставить ограниченное количество посылок.

А группа из нескольких разработчиков (4-5 человек) или даже одарённый программист-одиночка, способны создать сервис, которым будут пользоваться миллионы людей каждый день. Если сервер, на котором крутится этот сервис, не справляется с нагрузкой, при помощи одного девопса и добавления железа в стойку, можно легко расширить возможности сервиса, практически неограниченно. Да, там дальше возникают разные проблемы масштабирования высоконагруженных систем, но разработчики вместе с девопсом могут их решить. Вот в этом и вся разница. Разработчикам много платят не из-за огромного объёма знаний (у неайтишных инженеров этих знаний не меньше), а из-за вот этой масштабируемости создаваемых ими решений.

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

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

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

Какие хард скиллы нужны менеджеру проектов

Изображение с сайта unsplash.com, автор — Mier Chen

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

Сначала нужно выучить терминологию, например, по этой статье.

Софт для календарно-сетевого планирования

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

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

Если этот вариант невозможен, придётся использовать Microsoft Project для винды или аналоги для макоси, вроде Merlin Project или Omni Project. Все они устроены примерно одинаково.

Принципы ООП и основы программирования

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

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

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

Умение собирать требования и писать ТЗ

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

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

Базы данных вообще и SQL в частности

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

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

Иногда бывает полезно уметь составить простенький запрос к какой-нибудь таблице с каким-нибудь условием.

Вот, например, код, выгребающий из одной базы подробную статистику трудозатрат по идентификатору доработки:

declare @id nvarchar(1000)
SET @id = 'CAS-191131-B8B3'


SELECT ROUND((SUM([Затраты])* 24), 2) as 'Итоговые затраты'
FROM [STAdministrationResource].[dbo].[vw_DO_TFS]

WHERE Затраты IS NOT NULL 
AND [Запрос.Номер CRM] LIKE @id


SELECT Роль, ФИО, Тикет, ROUND((SUM([Затраты])* 24), 2) as 'Затраты'
FROM [STAdministrationResource].[dbo].[vw_DO_TFS]

WHERE Затраты IS NOT NULL 
AND [Запрос.Номер CRM] LIKE @id

GROUP BY Роль, ФИО, Тикет
ORDER BY Роль, ФИО, Тикет

GO

Более сложные запросы нужны реже, можно попросить программиста помочь.

REST и SOAP API

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

Научитесь читать и редактировать XML и JSON файлы. Если сильно не повезёт, вам могут поручить и проектирование API, у меня такое было раза три за карьеру.

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

HTML и CSS

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

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

Во всяких бутстрапах разбираться необязательно.

Устройство админки популярных CMS.

Скорее всего, в работе вы столкнётесь либо с Битрикс, либо с WordPress. Очень полезный навык — умение разобраться, где в админке поправить данный кусок контента и сделать это, когда это нужно срочно, а контентер уже спит.

Таблицы

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

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

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

Вот хороший телеграм-канал про секреты гуглотаблиц.

Основы девопс

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

Изображение с nonsensefiltr.tumblr.com

Десять типовых ошибок менеджера проектов

Очень хороший ролик Дмитрия Ильенкова из PM Club о самых частых ошибках прожектов.

Проектная команда, из кого состоит

Изображение с сайта igromania.ru

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

Менеджмент

Менеджер продукта

Менеджер продукта

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

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

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

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

Аккаунт-менеджер

Аккаунт-менеджер

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

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

Эйчар

Эйчар менеджер

Эйчары бывают как в продуктовой, так и в заказной разработке.

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

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

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

Технический директор

Технический директор

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

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

Разработчики

Тимлид

Тимлид

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

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

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

Фронтенд-разработчик

Фронтендер

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

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

Делает он всё это, как правило, на JavaScript. В чистом виде JS используется редко, чаще применяется один из JS-фреймворков, например React, Vue или Angular.

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

Неизвестный автор

Бэкенд-разработчик

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

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

Хорошие бэкендеры владеют несколькими языками программирования: C++ или C#, PHP, Python и фреймворками, которые сильно облегчают им бэкенд-разработку. В случае, например с PHP, это Laravel или Symphony, для Python популярен Django.

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

Мобильный разработчик

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

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

Айосники обычно пишут либо на Swift (чаще), либо на Objective С (реже). Андроидщики — на Java или более новом Kotlin.Технически подкованные ведроводы, пищущие особо сложные приложения или игры, используют C/C++

У специалистов по кроссплатформе всё сложно.

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

Должно хоть как-то работать на любом устройстве? Выбирайте HTML как основу

У вас есть «встроенный» веб-разработчик или вы просто хотите быстро и просто попробовать мобильное приложение в деле? Тут можно рекомендовать Cordova/HTML или PWA;

У вас есть собственная CRM-система и поддерживающий ее C#-разработчик? Берите Xamarin;

Вы «хотите попробовать», но надо сделать всё красиво и модно? Смотрите в сторону React Native или Flutter.

livetyping.com/ru/blog/na-chem-pisat-krossplatformennye-prilozhenija

Quality assurance

Мануальный тестировщик

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

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

Неизвестный автор.

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

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

Когда-то путь тестировщика считался самым простым способом входа в айти. В 2022 требования к ним сильно выросли, современный тестировщик должен уметь развернуть на своём компе ветку разработчика, постучаться в API при помощи Postman или Swagger, отлично уметь пользоваться консолью разработчика в браузере и не только в Хроме, а вообще во всех, уметь составить запрос к БД и многое, многое другое.

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

Тестировщик-автоматизатор

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

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

Всё переплетено в единый моток
Нитяной комок и не ситцевый платок
Перекати-поле гонит с неба ветерок
Всё переплетено, но не предопределено

Oxxxymiron о монолитной архитектуре

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

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

Пишут автотесты они на скриптовых языках, прежде всего на Python и JS. Используют массу инструментов, например, Selenium и Protractor.

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

Дизайнеры

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

Функция UX (User Experience) ближе к аналитикам. В рамках этих задач дизайнер определяет, как будет работать интерфейс, его логика. Как сделать, чтобы интерфейс был максимально простым, не вызывал у пользователя желание обратиться в саппорт.

Функция UI (User Interface) уже чуть более «творческая». В рамках этих задач дизайнер определяет, как будет выглядеть интерфейс, его внешний вид. Эти функции неотделимы.

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

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

Долгое время основными инструментами дизайнера интерфейсов считались фотошоп и иллюстратор, но потом их заменил Sketch, а в последние годы Figma, позволяющая контролировать процесс подготовки дизайна в реальном времени и легко оставлять комментарии прямо поверх макета.

Аналитики

Бизнес-аналитик

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

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

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

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

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

Системный аналитик

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

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

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

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

Сисадминская братия

Системный администратор

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

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

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

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

Девопс

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

Эти ребята могут разворачивать процесс непрерывной интеграции и развёртывания при помощи разных инструментов — Git, Docker, Kubernetes, уменьшая тем самым головную боль программистов. Автоматизируют процессы в Jira, уменьшая головную боль всех остальных участников процесса и повышая связность системы. Также настраивает мониторинг всех развёрнутых контуров, контролирует работоспособность.

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

Администратор баз данных

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

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

Чаще всего же на dba экономят и всё это делает девопс или сисадмин.

Прочие специалисты

Контент-менеджер

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

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

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

Маркетолог

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

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

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

Технический писатель

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

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

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

Чаще на техписе экономят и инструкции пишет либо кто-то из аналитиков, либо вы.

Специалист по информационной безопасности

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

ИБ — это уже чисто айтишники.

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

В общем, с этими ребятами надо дружить.

Как совершенно точно не получить повышение

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

Сохранять молчание

«Никогда ни о чём не просите, особенно людей, которые сильнее вас. Сами предложат и сами всё дадут» — совет Воланда работает только с п**лями.

Неизвестный автор

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

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

Работать в нерастущей организации

Мы не корпорация. Мы семья.

Один из моих бывших работодателей

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

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

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

Терять энтузиазм в случае отказа

Успех — это умение двигаться от одной неудачи к другой, не теряя энтузиазма.

Черчилль.

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

Шантажировать

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

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

Изображение с culturacolectiva.com

Как сделать, чтобы активный пункт меню wordpress не содержал ссылку на себя

По правилам юзабилити, ничего не должно содержать ссылку на себя. Если пользователь переходит на страницу, например, «Контакты», пункт меню «Контакты» должен потерять интерактивность, это правильное и хорошее поведение. Как это сделать в wordpress? При помощи правки functions.php

Для начала, поместите в functions.php следующий код:

/**
 * Extension for wp_nav_menu()
 * Remove element "a" from current menu item
 *
 * Optional $args contents additional arguments
 * string replace_a_by - Whether to wrap the link text node, and what to wrap it with. Default 'span'.
 * string xpath        - xPath expression.
 *
 * @param $args
 * @see wp_nav_menu()
 * @return mixed Menu output if $echo is false, false if there are no items or no menu was found.
 */
function wp_nav_menu_extended($args = array()) {
    $_echo = array_key_exists('echo', $args) ? $args['echo'] : true;
    $args['echo'] = false;

    $menu = wp_nav_menu($args);

    // Load menu as xml
    $menu = simplexml_load_string($menu);

    // Find current menu item with xpath selector
    if (array_key_exists('xpath', $args)) {
        $xpath = $args['xpath'];
    } else {
        $xpath = '//li[contains(@class, "current-menu-item") or contains(@class, "current_page_item")]';
    }

    $current = $menu->xpath($xpath);

    // If current item exists
    if (!empty($current)) {
        $text_node = (string) $current[0]->children();

        // Remove link
        unset($current[0]->a);

        // Create required element with text from link
        $element_name = $args['replace_a_by'] ? $args['replace_a_by'] : 'span';

        $dom = dom_import_simplexml($current[0]);
        $n = $dom->insertBefore(
            $dom->ownerDocument->createElement($element_name, $text_node),
            $dom->firstChild
        );

        $current[0] = simplexml_import_dom($n);
    }

    $xml_doc = new DOMDocument('1.0', 'utf-8');
    $menu_x = $xml_doc->importNode(dom_import_simplexml($menu), true);
    $xml_doc->appendChild($menu_x);

    $menu = $xml_doc->saveXML($xml_doc->documentElement);

    if ($_echo) {
        echo $menu;
    } else {
        return $menu;
    }
}

А затем разместите в header.php вот такой вызов:

<?php wp_nav_menu_extended( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu') ); ?>

Остаётся понять, как проделать эту же операцию с заголовком блога. Лечится заменой вызова заголовка в header.php вот таким образом:

<h1 class="vcard author">
<?php if ( is_front_page() && !is_paged())
echo bloginfo('name');
else echo "";
?>
</h1>

<h1 class="vcard author">
<a href="<?php echo get_option('home'); ?>/" title="На главную страницу">

<?php if ( is_front_page() && !is_paged())
echo "";
 else 
 echo bloginfo('name');
?>

</a>
</h1>