на каком стеке разрабатывался проект
Выбираем правильный стек технологий для проекта
Тщательный анализ проекта поможет определить, какие технологии лучше использовать. Не стремитесь использовать те, в которых вы наиболее сильны. Этот простой принцип помогает развитию долгосрочных деловых отношений.
Результаты вашей работы будут влиять на все отделы и подразделения: от управления персоналом до маркетинга. У вас должно быть четкое представление, как что работает в компании клиента, какие отделы тесно взаимодействуют, а какие нет.
Перед написанием статьи, мы опросили разработчиков о чем они думают перед тем, как приступить к работе.
Результаты разделили на 3 блока:
Понимание проекта
Разработчик должен понимать концепцию продукта, изучить бизнес клиента и узнать временные рамки проекта.
Какой масштаб, бюджет и сроки проекта?
Клиент хочет добавить новую фичу за две недели или ему нужна ERP и это будет долгосрочный проект?
Эти вопросы позволяют узнать, реалистичны ли ожидания клиента, прежде чем вы начнете работать.
Это краткосрочный или долгосрочный проект?
Неважно, проект будет длиться месяц или пять лет, в любом случае, он должен быть сделан хорошо.
Важна ли техническая составляющая?
Здесь понадобится навык убеждения. Ваша ответственность в том, чтобы заставить их понять последствия игнорирования технической составляющей проекта в долгосрочной перспективе. Это покажет вашу заинтересованность в успехе проекта и повысит уровень доверия с заказчиком.
Насколько это должно быть безопасно?
Теперь на секунду задумайтесь о сфере деятельности клиента. Скорее всего, уровень секретности у всех будет разный. Технологии, которые вы выберете, должны это учитывать.
Есть категория клиентов, которые одержимы безопасностью. С ними действуйте осторожно. Некоторые из них слышат ужасные истории вне контекста, которые не дают им спать по ночам:
«Я уверен, что российские хакеры, которых я видел по телевизору, украдут список контактов нашего ресторана.”
Нет, дорогой клиент. Им это не интересно.
Я справлюсь с проектом?
Если захотите работать на проекте, уровень которого выше ваших умений, приготовьтесь к хаосу.
Такой необдуманный выбор усложняет рабочий процесс и сроки будут сорваны. Не будьте безразличны к деньгам вашего клиента.
Выбираем правильный стек
Давайте поговорим о том, что действительно важно: стек технологий. Если у вас есть хоть немного опыта и понимание потребностей клиентов, трудностей с выбором технологий не возникнет.
Как упростить задачу?
Сотни фреймворков и тысячи плагинов поддерживаются сообществами разработчиков. Не изобретайте колесо и не тратьте впустую драгоценное время. Возможно, вам даже не понадобится сервер! Пользуйтесь готовыми решениями и экономьте время и силы для действительно важных вещей.
Время разработки должно всегда фокусироваться на том, что делает проект уникальным: пользовательская бизнес-логика. Прежде чем писать хоть одну строку кода, убедитесь, что она добавляет ценность проекту.
Не выходите за рамки разумного
Клиент планирует продавать футболки через небольшой онлайн магазин?
С другой стороны, попытка сбить быка рогаткой не очень эффективна. Вам не понадобится высокодоступнный, load balanced, кэшированный no-SQL механизм, готовый поддержать миллион пользователей одновременно.
Клиент, который планирует продавать тысячи товаров ежедневно, будет возмущен тем, что вы выберете бесплатное CMS-решение, развернутое на дешевом хостинге.
Выбирайте правильные инструменты для работы.
Являются ли технологии современными?
Убедитесь, что выбранные технологии современные. Если последнее обновление репозитория было 4 года назад, задумайтесь.
Представьте ситуацию, у вас возникла проблема и вы не знаете, как её решить. Начинаете гуглить и находите 3 ссылки с бесполезными советами. Чувство беспомощности и недовольный клиент вам обеспечены.
Не хочу вас расстраивать, но нет никаких гарантий, что ваша команда будет работать с одним клиентом всю жизнь. Если что-то будет не устраивать клиента, он найдет новых разработчиков.
Сможет ли заказчик найти разработчиков для работы с вашим стеком?
Это может быть связано с тем, что вы не можете или не хотите работать на этом проекте, или бизнес клиента так хорошо развивается, что команду надо расширять. Но в конце концов, понадобится другой разработчик, который сможет работать с действующими технологиями.
Если клиенты не смогут найти узкоспециализированного программиста, угадайте, кого обвинят в первую очередь?
Будут ли у них деньги на оплату таких разработчиков?
Не забывайте о “человеческих отношениях” и думайте о будущем клиента.
Заключение
Надеемся, что эта статья поможет вам избежать страшилок, стрессовых ночей и неловких ситуаций. Не принимайте поспешных решений на старте проекта. Ведь как назовешь лодку, так она и поплывет. То же самое и с разработкой. Какие технологии выберешь, так проект и будет развиваться.
Выбираем правильный стек технологий для проекта
Тщательный анализ проекта поможет определить, какие технологии лучше использовать. Не стремитесь использовать те, в которых вы наиболее сильны. Этот простой принцип помогает развитию долгосрочных деловых отношений.
Результаты вашей работы будут влиять на все отделы и подразделения: от управления персоналом до маркетинга. У вас должно быть четкое представление, как что работает в компании клиента, какие отделы тесно взаимодействуют, а какие нет.
Перед написанием статьи, мы опросили разработчиков о чем они думают перед тем, как приступить к работе.
Результаты разделили на 3 блока:
Разработчик должен понимать концепцию продукта, изучить бизнес клиента и узнать временные рамки проекта.
Какой масштаб, бюджет и сроки проекта?
Клиент хочет добавить новую фичу за две недели или ему нужна ERP и это будет долгосрочный проект?
Эти вопросы позволяют узнать, реалистичны ли ожидания клиента, прежде чем вы начнете работать.
Это краткосрочный или долгосрочный проект?
Неважно, проект будет длиться месяц или пять лет, в любом случае, он должен быть сделан хорошо.
Важна ли техническая составляющая?
Здесь понадобится навык убеждения. Ваша ответственность в том, чтобы заставить их понять последствия игнорирования технической составляющей проекта в долгосрочной перспективе. Это покажет вашу заинтересованность в успехе проекта и повысит уровень доверия с заказчиком.
Насколько это должно быть безопасно?
Теперь на секунду задумайтесь о сфере деятельности клиента. Скорее всего, уровень секретности у всех будет разный. Технологии, которые вы выберете, должны это учитывать.
Есть категория клиентов, которые одержимы безопасностью. С ними действуйте осторожно. Некоторые из них слышат ужасные истории вне контекста, которые не дают им спать по ночам:
«Я уверен, что российские хакеры, которых я видел по телевизору, украдут список контактов нашего ресторана.”
Нет, дорогой клиент. Им это не интересно.
Я справлюсь с проектом?
Если захотите работать на проекте, уровень которого выше ваших умений, приготовьтесь к хаосу.
Такой необдуманный выбор усложняет рабочий процесс и сроки будут сорваны. Не будьте безразличны к деньгам вашего клиента.
Выбираем правильный стек
Давайте поговорим о том, что действительно важно: стек технологий. Если у вас есть хоть немного опыта и понимание потребностей клиентов, трудностей с выбором технологий не возникнет.
Как упростить задачу?
Сотни фреймворков и тысячи плагинов поддерживаются сообществами разработчиков. Не изобретайте колесо и не тратьте впустую драгоценное время. Возможно, вам даже не понадобится сервер! Пользуйтесь готовыми решениями и экономьте время и силы для действительно важных вещей.
Время разработки должно всегда фокусироваться на том, что делает проект уникальным: пользовательская бизнес-логика. Прежде чем писать хоть одну строку кода, убедитесь, что она добавляет ценность проекту.
Не выходите за рамки разумного
Клиент планирует продавать футболки через небольшой онлайн магазин?
С другой стороны, попытка сбить быка рогаткой не очень эффективна. Вам не понадобится высокодоступнный, load balanced, кэшированный no-SQL механизм, готовый поддержать миллион пользователей одновременно.
Клиент, который планирует продавать тысячи товаров ежедневно, будет возмущен тем, что вы выберете бесплатное CMS-решение, развернутое на дешевом хостинге.
Выбирайте правильные инструменты для работы.
Являются ли технологии современными?
Убедитесь, что выбранные технологии современные. Если последнее обновление репозитория было 4 года назад, задумайтесь.
Представьте ситуацию, у вас возникла проблема и вы не знаете, как её решить. Начинаете гуглить и находите 3 ссылки с бесполезными советами. Чувство беспомощности и недовольный клиент вам обеспечены.
Не хочу вас расстраивать, но нет никаких гарантий, что ваша команда будет работать с одним клиентом всю жизнь. Если что-то будет не устраивать клиента, он найдет новых разработчиков.
Сможет ли заказчик найти разработчиков для работы с вашим стеком?
Это может быть связано с тем, что вы не можете или не хотите работать на этом проекте, или бизнес клиента так хорошо развивается, что команду надо расширять. Но в конце концов, понадобится другой разработчик, который сможет работать с действующими технологиями.
Если клиенты не смогут найти узкоспециализированного программиста, угадайте, кого обвинят в первую очередь?
Будут ли у них деньги на оплату таких разработчиков?
Не забывайте о “человеческих отношениях” и думайте о будущем клиента.
Надеемся, что эта статья поможет вам избежать страшилок, стрессовых ночей и неловких ситуаций. Не принимайте поспешных решений на старте проекта. Ведь как назовешь лодку, так она и поплывет. То же самое и с разработкой. Какие технологии выберешь, так проект и будет развиваться.
Мой новый стек веб-технологий для 2020 года
Помните те времена, когда стеки веб-технологий были простыми? Когда уровни этих стеков можно было обозначить в виде четырёхбуквенного сокращения вроде LAMP, LEMP или LEPP? Когда всё, что было нужно для создания и поддержки сайтов, сводилось к вполне обычному железу, к какому-нибудь опенсорсному софту, да к упорству в достижении цели?
Мой первый успешный сайт, теперь уже старинный проект 1999 года, был создан с использованием технологий, которые можно пересчитать по пальцам одной руки: HTML4, CSS2, JavaScript3 и Apache 1.1. Всё это крутилось на сервере с Linux 2.0. Сайт включал в себя 38000 страниц. И сегодня, через 20 лет, он всё ещё их выдаёт.
С тех пор всё изменилось. Это касается и стеков веб-технологий. Теперь они совсем не те, что прежде.
Автор статьи, перевод которой мы сегодня публикуем, хочет рассказать о том, как он перешёл от «фуллстека» к «стеку 2020 года». Некоторые технологии в ходе этого путешествия неожиданно стали фаворитами, а некоторые потеряли былую привлекательность.
Стек веб-технологий 2020 года
2020 год — это начало нового десятилетия. Это — время, когда стоит поговорить о новом стеке веб-технологий.
На что похож «стек 2020 года»? Надо сказать, что на это очень сильно влияет то, чего пытается достичь разработчик сайтов. Выбор подходящих уровней сильно зависит от того, какая степень масштабируемости требуется для проекта.
Меня особенно интересуют маленькие веб-сайты. Те, которые хорошо чувствуют себя на виртуальном сервере. Таким сайтам не нужны балансировщики нагрузки или постоянные хранилища данных. Это — ниша CMS, которую уже давно занимает WordPress. Но в основе всего этого лежит не некий минималистичный сервер. Вместо этого речь идёт о системе, которая может выдержать постоянный поток трафика без необходимости автоматического повышения её мощности в часы пик.
Сейчас для разработки и поддержки проектов в интересующей меня области я использую стек технологий, состоящий из 12 уровней.
▍1. Облачный провайдер
▍2. Дистрибутив Fedora Linux с SELinux
Безопасность — это то, что очень сильно всех нас беспокоит. SELinux можно сравнить с мощной охранной системой, работающей в Linux. Если к этому добавить ещё и хорошо настроенный iptables-файрвол, получится то, что позволит владельцу сайта спокойно спать по ночам. Если вы не уверены в том, что вам всё это нужно — проведите следующий эксперимент. Разверните новый сервер у вашего любимого облачного провайдера и понаблюдайте за тем, как скоро его начнут атаковать. Я видел, как брутфорс-атаки на новые сервера с попытками входа по SSH начинались менее чем через 10 минут после их создания.
▍3. Веб-сервер Read Write Serve
Я пользуюсь веб-сервером Read Write Serve с TLS-сертификатами от LetsEncrypt. Раньше я был фанатом Apache, на настройку и запуск новых веб-сайтов у меня уходило буквально несколько минут. Но с тех пор, как я перешёл с PHP на JavaScript, об Apache пришлось забыть. Сервер Express казался мне чрезвычайно простым инструментом, но лишь до тех пор, пока я не попытался воспроизвести в нём весь тот функционал, который давал мне Apache. Речь идёт о механизме согласования содержимого, об условном кэшировании, о сжатии данных, о перезаписи URL для SEO, о CORS, о политиках защиты контента. В результате я и перешёл на сервер Read Write Serve, в котором все эти возможности присутствуют по умолчанию.
▍4. Среда выполнения приложений Node.js
За логику приложения, выполняющуюся на сервере, отвечает среда Node.js. Возникает такое ощущение, что в экосистеме NPM имеются пакеты на все случаи жизни. Поэтому простыми и понятными оказались задачи по сборке из имеющихся пакетов того, что нужно именно мне, и по запуску всего этого на Read Write Serve. Для организации работы всего того, что нужно современному веб-проекту, не требуется прилагать чрезмерных усилий. Это — отправка электронной почты, работа с платёжными сервисами, обращение к базам данных, и всё остальное, подразумевающее работу с серверными API.
▍5. База данных MariaDB
Я пользуюсь сервером баз данных MariaDB. Это — форк MySQL, подвергнутый ребрендингу и освоенный опенсорс-сообществом. Когда мне нужно хранить неструктурированные JSON-данные, я пользуюсь PostgreSQL. Дело в том, что это позволяет мне выполнять запросы непосредственно по конкретным JSON-свойствам. Это немного похоже на MongoDB, но основано на привычном SQL-синтаксисе.
▍6. HTTP/2
Для организации связи между частями приложений я полагаюсь на возможности HTTP/2 с поддержкой постоянных соединений и с мультиплексированием потоков. Эти два дополнения к достойному уважения протоколу HTTP/1.1. изменили мой подход к формированию документов. Во-первых, исчезла проблема блокировки начала очереди. В результате пропала необходимость в спрайт-листах даже в том случае, если у меня имеются десятки маленьких изображений. Во-вторых, теперь не нужно оптимизировать JavaScript- и CSS-файлы, объединяя их в бандлы. После того, как соединение клиента и сервера установлено, все эти маленькие файлы без перебоев передаются по этому соединению.
▍7. HTML-шаблонизация с помощью Blue Phrase
Blue Phrase — это система шаблонизации, позволяющая в компактном виде точно описывать HTML-структуры. Для меня закончились времена нечитаемой мешанины из HTML-кода и несоответствий между открывающими и закрывающими тегами. В шаблонах я обычно использую лишь незначительное количество переменных (заголовок, описание, ключевые слова, SEO-данные, экран загрузки, дата и так далее) и размещаю их в шаблоне в декларативном стиле.
▍8. Написание кода страниц с помощью Read Write Doc
Когда я создаю новые страницы, я сосредоточен на том, что пытаюсь выразить, а не на их оформлении. Для решения этой задачи я пользуюсь Read Write Doc. Этот инструмент помогает мне заниматься делом, ни на что не отвлекаясь. Я пользуюсь им даже тогда, когда то, над чем работаю, планируется опубликовать на Medium (а там есть отличный онлайновый WYSIWYG-редактор). Я отношу себя к ветеранам веб-разработки, поэтому привык к моноширинным шрифтам, и к тому, чтобы мои руки были бы на клавиатуре, а не метались бы между клавиатурой и мышкой. В любом случае, если мне нужно увидеть то, над чем я работаю, с применением к нему CSS, я могу, с помощью простой комбинации клавиш, переключаться между режимами просмотра и редактирования.
▍9. Стандартные веб-компоненты
▍10. JavaScript для клиентских скриптов
Для написания клиентских скриптов я пользуюсь модульным объектно-ориентированным JavaScript-кодом. Я применяю новые возможности стандарта ECMAScript только тогда, когда их поддержка появляется в свежих релизах браузеров. То есть, включаю их в свой арсенал в тот момент, когда вижу, что на caniuse.com «зеленеют» все основные браузеры. Я избегаю полифиллов.
▍11. Стилизация с помощью CSS
CSS — это типографское оформление и макеты страниц. Типографика начинается с правильного подбора шрифтов. Самое главное для меня — хорошая читаемость текста. В последнее время я взял себе за правило хостить файлы используемых шрифтов на собственном сервере. Это ограждает мои ресурсы от возможности блокировки, вызванной ограниченной полосой пропускания некоего стороннего сервиса. Например, я пользуюсь примерно такими конструкциями:
Дополнительное преимущество такого подхода заключается в том, что он полностью избавляет меня от проблемы, известной как FOUT — (flash of unstyled text, вспышка обычного шрифта).
▍12. Подготовка графических ресурсов с помощью GIMP и InkScape
И, наконец, для подготовки графических ресурсов я использую пару редакторов. Растровые PNG-изображения я готовлю с помощью GIMP, а векторные SVG-материалы — с помощью InkScape.
Технологии, которые потеряли былую привлекательность
Некоторые средства, которые раньше мне очень нравились, а также некоторые, которыми я увлекался лишь мимолётно, больше не входят в мой стек веб-технологий.
Как выбрать технологический стек для стартапов?
Технический стек также называют экосистемой данных, технологической инфраструктурой или стеком решений. Это комбинация инструментов, которые используются для создания и эксплуатации одного приложения. Это структура, на которой приложение, которое вы используете, например Facebook поддерживается такими инструментами как: HTML, PHP, CSS, ReactJS или JavaScript.
Вы можете спросить, как определить правильный стек технологий для вашего бизнеса? Стек технологий, предназначенный для разработки веб-сайтов, будет отличаться от необходимого для мобильных приложений. Точно так же стек коммерческих/корпоративных продуктов будет отличаться от стека стартапов. К другим факторам относятся скорость, с которой вы хотите выпускать MVP(Минимально жизнеспособный продукт), и количество квалифицированного персонала, которое вы можете выделить для нового проекта.
Стек технологий для стартапов
Чтобы определить правильный набор технологий для вашей стартап-компании, вы должны понимать, что технологический стек не универсален. Они собираются на основе следующих факторов:
— Тип проекта: если у вас небольшой проект, идеальным техническим стеком была бы стандартная система управления контентом, такая как WordPress. Для стартапа среднего размера вы можете объединить CMS с подходящим языком программирования, таким как Python, C ++ или JS. Для более крупного проекта вам потребуются веб-приложения со специальными функциями, отвечающими вашим требованиям.
— Дедлайн: количество времени, в течение которого вы хотите запустить свои проекты, частично зависит от стека, который вы выбрали для своего веб-приложения. Имея правильный технический стек, заданный опытным разработчиком, вы можете выпустить свой продукт вовремя и без ошибок.
— Масштабируемость: способность системы, сети или процесса справляться с увеличением своей производительности при добавлении ресурсов (обычно аппаратных). Увеличение производительности каждого компонента системы с целью повышения общей производительности или же разбиение системы на более мелкие структурные компоненты и разнесение их по отдельным физическим машинам.
— Обслуживание: зависит от кодовой базы и инфраструктуры программного обеспечения. Реюзабилити и длина кода считается важным.
Кроме того, следите за техническими стеками, которые уже созданы компаниями и доступны на рынке. Вы можете найти их на Stackshare, чтобы увидеть, какие компании используют стек программного обеспечения.
Технический стек для MVP
Итак, у вас есть целенаправленный технологический стек, и все сотрудники и приоритеты. Но на протяжении всей разработки вашего продукта MVP может сильно отличаться от того, что вы изначально задумывали.
Иногда вы можете прийти к тому моменту, когда окончательная версия MVP потребует изменений в вашем стеке технологий, поскольку дальнейшие инновации и развитие будут зависеть от того, с чем вы работаете. В таких обстоятельствах вам может потребоваться начать все сначала с новыми фреймворками и совершенно новой архитектурой. Всего лишь один недостающий элемент может изменить всю инфраструктуру и навести беспорядок.
Факторы, которые следует учитывать при выборе стека технологий MVP
— Убедитесь, что продукт выходит на рынок в короткие сроки. Таким образом вы сможете быстрее собирать отзывы и поддерживать быстрый темп исправлений и развития.
— Заранее принимайте расчетные решения, чтобы исключить альтернативные затраты времени из-за отсутствия программ автоматизации, поддерживающих вашу инфраструктуру. Наличие подходящего инструмента CI / CD может ускорить тестирование, управление версиями и размещения приложения.
— Не экспериментируйте со своим MVP в поисках разрекламированной или новой технологии, даже если разработчики этого хотят. Когда вы серьезно относитесь к технологическому стеку для своего проекта, вам нужно думать о долгосрочной перспективе (Хотя, это спорно, стартап не всегда для долгосрочной перспективы). Чтобы увидеть, является ли новая технология причудой или позитивной тенденцией необходимо время.
Новые технологии нестабильны, и вам может быть нелегко найти команду для новой ниши, что является пустой тратой времени и денег. Поэтому сосредоточьтесь на имеющихся в настоящее время и доступных в будущем стеках. Работайте умеренно, чтобы проложить стабильный путь к желаемому результату.
Есть две вещи, на которые вы должны обращать внимание при выборе набора технологий для своего стартапа; проект и разработчик. Вы изучаете свои требования к стартапу и тип MVP, который хотите запустить? Это поможет вам найти похожие примеры и усвоить некоторые знания, на выяснение которых у вас уйдет целая вечность.
Понравилась ли статья? Напишите отзывы, будем продолжать? 🙂
Очень много букав. А все гораздо проще:
— на чем писать стартап?
P.S. Много воды и ничего конкретного для дела.
facebook к php никакого отношения не имеет
Не украл, а вдохновился архитектурой кода
Изучаем GNU/Linux часть 61. Глоббинг и регулярные выражения
Продолжаем изучать GNU/Linux и готовиться к сертификации от Red Hat (RHCSA).
Про глоббинг, регулярные выражения, grep, sed и awk.
Ответ на пост «Мыльная опера про программистов»
Когда учились в школе, у нас была информатика, мы там писали простенькие программки на бейсике. Я всё легко понимала, и писала программы на уроке одной из первых, обычно вторая, после одного парня, иногда третья, после 2х парней, и препод мне никогда не верил, что я сама написала, говорил, что я списала у тех двух, или они мне помогали. Я особо и не пыталась его убедить, как-то пофиг было. В итоге на финальном зачете, он спрашивает меня по теории, про циклы, условия, я всё отвечаю, он мне говорит, как сейчас помню:» Ты ведь ничего этого не понимаешь? Просто зазубрила, да?» Я конечно отвечаю, что всё понимаю. Я вообще думаю, что тут понимать? Циклы, условия-тут всё элементарно, как это можно вообще не понимать? Он так и не поверил, что я всё понимаю легко. Вот такие вот стереотипы.
Уверена, что он так думал, потому что я девушка. Наверное он думал, что девушки не могут программировать. Но для меня это было самым легким и интересным из предметов, ну еще и математика. Поэтому пошла учиться на программиста. Вот бы он наверное удивился, узнав, что я отучилась в универе на программиста, и теперь работаю им же, при чем в универе из всего потока в 50 человек, писали программы от силы человек 7, и я в их числе, а остальные не могли или не хотели, списывали у других. По профессии мало кто пошел работать, даже среди тех, кто писал программы сам. Одна из нас ушла на службу по контракту, другой работает бортпроводником, про одного знаю, что работает программистом в Германии, но он был самый сильный на потоке.
А насчет того парня, который в школе писал программы первым, нашла его лет 5 назад в контакте, работает в Макдональдсе в Питере, не знаю, на кого учился, но скорее всего по профессии работать не стал.
Ответ на пост «Ну, ошибся немного»
КПД мозга в данный момент равен нулю
Моя жизнь в ИТ #19. Одно из самых приятных собеседований
Пандемия сильно поменяла процесс найма.
Новые реалии позволяют безболезненно проходить собеседования прямо из дома по видеосвязи либо до начала рабочего дня, либо после, либо вообще в обед (теперь не нужно отпрашиваться на полдня «к зубному»). За последний месяц я, наверно, отсобеседовался в 6 разных компаний. Где-то прошел 4 этапа, где-то остановился сразу после первого по ряду причин. И ни разу не ездил к кому-то в офис.
И главное — есть из чего выбирать.
Но и компании начинают подстраиваться под эти новые реалии. Уже наткнулся на две конторы, которые на первичном скрининге рассказывают, что предлагают своим сотрудникам добровольно-принудительно устанавливать программы-«скриншотеры», которые делают раз в несколько минут скриншоты экрана и следят за активностью клавиатуры и мышки.
Никогда не понимал этот контроль за сотрудниками.
Удивительно, но про одну из таких компаний я и хочу рассказать в ключе самого лучшего процесса найма за, наверное, всю мою карьеру.
Началось всё с небольшого первого этапа, где максимально вежливый и явно разбирающийся в IT-сфере HR (что в последнее время не то, чтобы редкость, но всё же это сразу бросается в глаза) кратко расспросила про мой опыт работы и также кратко рассказала про вакансию — компания собирается выпускать свой продукт на европейский рынок.
А вот с тестом интересней. Думал, что будут вопросы технического характера, а это оказался лайтовый пятиминутный тест на ICQ (у меня, кстати, семизнак) — продолжите ряд 1-3-5-7-?, истинно или ложно выражение и т.д.
Необычно и немного странно.
Ну, ладно, анкету заполнил, тест выполнил, отправил. Буквально через несколько часов звонит уже другой HR (видимо первый был просто ассистент, что тоже необычно) и говорит о том, как я прекрасно заполнил анкету, что они очень довольны результатами теста и хотят продолжить общение. Они действительно продавали себя, как минимум, своим отношением ко мне, как к соискателю.
Пообщавшись уже детальней по вакансии и по условиям, вдруг всплыла парочка неприятных деталей — пресловутый скриншотер (они используют hubstaff) и оформление по договору безвозмездного оказания услуг с почасовой оплатой. Это даже не по договору ГПХ. То есть все праздники и отпуска — за мой счет.
Я высказал HR свои сомнения по поводу этих моментов, на что он ответил:
— Да, я вас понимаю, вы можете посмотреть-почитать про hubstaff, как он работает, для чего нужен, взвесьте для себя все «за» и «против» работы по договору и уже тогда сможете принять решение. А пока, предлагаю вам выполнить тестовое задание, как вы к этому относитесь?
— Без проблем, тестовое задание выполнить готов.
— Отлично, но не переживайте за свое потраченное время, тестовое задание у нас оплачиваемое, вне зависимости от результата выполнения.
— Да-да, мы ценим время соискателей и готовы оплатить выполнение тестового задания в размере 7 000 рублей.
Ну вот и пришло время для моего первого оплачиваемого тестового задания за 10 лет.
В общем, тестовое стандартное, что-то вроде:
«Представьте, что ваше руководство попросило добавить в мобильное приложение компании чат с техподдержкой. Подготовьте техническое задание по каждому из перечисленных функционалов. Какая команда вам потребуется и в каком количестве.»
При этом, оформлено тестовое было качественно, из каждой строчки веяло «Спасибо, дорогой друг, что решил уделить время тестовому заданию!», «Ты один из немногих, кто дошел до этого этапа, ты красавчик!». Банальная манипуляция, конечно, но она сработала. Азарт взыграл во мне и в тот же день до 2-х ночи я сидел и пилил тестовое, после чего сразу и отправил. На следующий день меня разбудил звонок в 9 утра от HR:
— Jukka, доброе утро! Тестовое ваше получили, спасибо большое! Но вы в письме не указали реквизиты, куда отправлять вам вознаграждение за его выполнение.
— Оо да, точно, сейчас отправлю, спасибо, что напомнили.
Отправил, и, что удивительно, деньги пришли в течение двух часов. А ближе к обеду звонок:
— Тестовое нам очень понравилось. Давайте договоримся о следующем этапе.
Этот следующий, уже третий по счету, этап был особенным. С самого начала HR достаточно четко объяснил, как будет всё происходить: по времени примерно час-полтора, основная часть будет под запись, которую потом мне отправят, чтобы поизучать со своей стороны, пройдемся по последним трём местам работы, в том числе и по самым сильным проектам и поговорим об их особенностях.
И мы действительно прошлись по всем работам, обсудили все моменты и детали прямо-таки основательно. После прошедших 1,5 часа собеседования, я как будто побывал на сеансе психотерапевта. Наверно, всё благодаря обратной связи сразу после.
— Jukka, сейчас я отключаю запись, и давайте просто поговорим. Как считаете, что больше всего мне могло понравится?
— Ну-у-у-у, скорее всего мое последнее место работы, тот крутой проект с мобильным приложением, основанное на нейронках.
— Да, действительно, вы с таким удовольствием и эмоционально рассказывали про этот проект и про саму компанию в целом, что я захотел прямо сейчас туда устроиться! И еще, я заметил, что по вашему рассказу, вы приходили именно к руководителям, а не в компанию или проект. И как только руководитель менялся или уходил — вы почти сразу же покидали компанию. А вот на последнем месте работы — вы шли изначально на проект и в основном рассказывали сейчас про проект и компанию. Вы меняетесь и это хорошо (тут, на самом деле, я не совсем уже точно помню, чем он это обосновал, но звучало круто).
— Оо хм, действительно, никогда об этом не задумывался, скорее всего так и есть.
И еще минут 10-15 некоторых наблюдений и в целом хорошей обратной связи. Это было действительно необычно и очень полезно.
После того, как будущий руководитель ознакомился с записью интервью, буквально на следующий день меня позвали на четвертый этап, уже непосредственно с ним. Общение заняло минут 20. Руководитель погонял по стандартным кейсам («Что вы сделаете в таком случае?», «Представьте, что пришла такая задача, с чего начнем?», «Какие риски вы видите в таком-то проекте?» и т.д.). В общем, приятная и профессиональная вышла беседа.
И финальный ответ дали в течение 3-4 дней, когда отсобеседовали других кандидатов: мне пришел отказ. Но, я вряд ли бы, конечно, рассматривал вообще оффер ввиду тех самых неприятных моментов. У меня с девушкой жеж ипотека и два кота, тут нужна стабильность.
По итогу, что удивительно, на все четыре этапа у меня ушло около недели (плюс на финальное решение 3-4 дня). Когда собеседовался в Яндекс — те же 4 этапа растянулись чуть ли не на 2 месяца.
Прибавляя к этому то, насколько профессиональны были HR-ы и как грамотно они вели беседу, плюс оплачиваемое тестовое задание, плюс доскональное и объёмное интервью с мгновенной обратной связью, я, наверно могу сказать, что это было одно из лучших и приятных процессов найма, что я проходил.
Продолжаем изучать GNU/Linux и готовиться к сертификации от Red Hat (RHCSA).
Научимся работать с Cockpit
Требовательный код
Заказчик: ваш код требует слишком много памяти
Програмист: сейчас я вам покажу, что такое много памяти
Помощь училки: как определить уровень ребенка или понять, компетентен ли учитель. Отвечаю на вопросы пикабушников
Итак, список вопросов:
1) Как правильно выбрать школу/курсы? На что обратить внимание?
+ сюда же «подскажите пожалуйста как определить уровень знаний ребенка и какие дальнейшие шаги по изучению предпринять, спасибо.(14 лет, девочка)»
2) «Как заставить себя учить английский с нуля, если ты хочешь его просто знать, а не учить?)))»
3) «есть что нибудь подобное в Краснодаре» и «по Челябинску тоже глянуть?» и «А по Москве? И стоимость занятий?»
4) Как вы поняли, что ваши уроки интересны? Что считаете основой интересного урока?
5) Посоветуйте, пожалуйста, книгу/учебники/каналы для изучения языка с нуля с 7-леткой? Я вроде и знаю немного английский, но как это все до ребёнка донести, не пойму
6) Вы сами все это придумали?? Как?? На базе чего?
7) Это всё очень красиво и весело. Но такие вопросы: преподаёте ли вы английский детям старшего возраста? Получается ли вписать школьную (довольно объёмную) программу во всё это? Как там дела с письменной речью? Задаёте ли вы что-то на дом? Сколько часов у вас в неделю для одной группы?
ну и к последнему вопросу добавлю рассуждения на тему:
«Это очень круто! Хочется дойти до того, что бы такие методы на все школьные занятия распространились и учёба была пощнавательной игрой вместо нудной обязаловки»
4) Как вы поняли, что ваши уроки интересны? Что считаете основой интересного урока?
Понятно по горящим глазам детей и их результатам. по отзывам родителей: «он поет в туалете что-то на английском». По вот таким вот вещам (занимается вся семья в итоге):
Кстати, я «балую» не только детей, но и людей, с которыми работаю) На НГ развозила лучше в городе Тортики и цветы на НГ всем, с кем я посотрудничала хотя бы пару дней) Машины нет, просила подругу)