Как стать автором
Поиск
Написать публикацию
Обновить
31
13
Александр Королев @alex_29

Программист

Отправить сообщение

Сказ о компании «Дёшево и сердито»

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров1.5K

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

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

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

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

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

Читать далее

Две книги о проблемах ИТ-команд

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров604

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

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

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

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

Читать далее

Истории о том, как молчание стоило слишком дорого

Время на прочтение7 мин
Количество просмотров1.7K

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

Читать далее

Когда руководителей становится двое

Время на прочтение6 мин
Количество просмотров12K

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

Кажется, вот появился новый человек, чтобы помочь… но почему-то вместо облегчения становится только сложнее. Один руководитель — это порядок. Два — это борьба. Особенно если старый — «свой», а новый — новичок с инициативой.

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

Читать далее

Когда кондиционер становится символом недоверия

Время на прочтение4 мин
Количество просмотров1.5K

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

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

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

Самое интересное — конфликт чаще всего можно предотвратить, но в ситуации, когда доверие отсутствует, этого не происходит.

Читать далее

Сокращение штата: как не уйти по чужому сценарию

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.3K

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

Читать далее

Кросс-функциональное взаимодействие в ИТ: когда все правы, но ничего не работает

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1.6K

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

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

Читать далее

Приходят в компанию, уходят от руководителя

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров2.2K

Люди приходят работать в компанию, а уходят от руководителей.

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

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

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

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

Разные компании, разные люди – но причины похожи.

Читать далее

Тимлиды бывают разными. Иногда очень неожиданными

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.4K

Что делает тимлид? Руководит командой? Делегирует задачи? Пишет код? Отвечает перед заказчиком? В книгах всё чётко: тимлид — это лидер, вдохновляющий команду и ведущий её к успеху.

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

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

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

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

Читать далее

Ловушка продуктивности: Когда процессы работают против вас

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров3.6K

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

Читать далее

Системы генерации отчетов

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров6K

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

Читать далее

Angular в картинках

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров11K

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

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

Рисовал я все это в PowerPoint.

Читать далее

Избавляемся от предупреждений и уязвимостей при установке пакетов с помощью yarn

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров7.5K

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

Warnings типа:

has incorrect peer dependency

has unmet peer dependency

Vulnerabilities:

Prototype pollution in webpack loader-utils

loader-utils is vulnerable to Regular Expression Denial of Service (ReDoS)

Crash in HeaderParser in dicer        

Читать далее

Jest: error Command failed with exit code 1

Время на прочтение3 мин
Количество просмотров3.9K

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

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

Читать далее

RStudio, R Markdown, Latex и отчеты в PDF формате. Мой опыт

Время на прочтение8 мин
Количество просмотров4.4K

RStudio, R Markdown, Latex и отчеты в PDF формате. Мой опыт.

Сегодня я хочу рассказать о том, как я писал отчеты на R, с чем сталкивался и как решал проблемы, которые возникали по ходу разработки. Отчеты были в формате PDF и запускались из Python в Camunda.

Читать далее

Собеседование по Javascript, мой опыт. Часть вторая

Время на прочтение5 мин
Количество просмотров23K

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

(Виктор Цой)

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

"- Ну как на собеседование сходил? Успешно? - Да. Ручку у них спер" (ссылка)

Часть вопросов будет по typescript, часть по javascript, что-то будет из html, Node.js, настройки, библиотеки, концепции. В общем всё то, о чем говорят на собеседованиях.

Читать далее

Собеседование по Javascript, мой опыт. Часть первая

Время на прочтение7 мин
Количество просмотров29K

“Не люблю темные стекла, сквозь них темное небо.
Дайте мне войти, откройте двери.”

(Виктор Цой)

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

Читать далее

Как Microsoft Analysis Services финансовым аналитикам жизнь упростил

Время на прочтение8 мин
Количество просмотров13K
Как мало пройдено дорог — как много сделано отчетов ©

Введение


— Василий, мы установили новый BI продукт, наш САМЫЙ ГЛАВНЫЙ от него просто в восторге!
— Да, но я не знаю, как выгрузить данные для анализа из этой системы?! Он, похоже, только в html может что-то показывать.
— Ничего, я думаю ты справишься, сам понимаешь, чем шире улыбка шефа, тем выше премия.
— Но, Иван Васильевич, этот продукт в качестве источника данных использует только PDF файлы.
— Зато он показывает шикарные разноцветные графики, у него анимация как в “Звездных войнах”, а руководство просто в восторге от его интерактивных возможностей. Там ещё и пасхалочка есть. Если три раза кликнуть в правом нижнем углу, появится Дарт Вейдер и споёт Марсельезу. Да и в целом, Вася, будь оптимистом! Хочешь анекдот в тему?
Читать дальше →

Как отлаживать код в RStudio и создавать новый проект на R

Время на прочтение4 мин
Количество просмотров7.5K
Новогодним подарком в этом году стали для меня новая команда и проект на языке R, о котором в тот момент я знал немного. Поначалу было трудно и не понятно, но время шло, картинка прояснялась. С чем-то удалось разобраться, что-то пришлось принять как есть. И вот, спустя два с половиной месяца работы на R, я решил поделиться опытом и рассказать о своих первых шагах в этом проекте. Я не буду описывать все свои душевные муки и эмоции, которые переполняли меня в процессе освоения этого очень интересного языка, а сосредоточусь на технической стороне вопроса. Цель моей статьи рассказать о том, как отлаживать код в RStudio и создавать новый проект на R.
Читать дальше →

Creating Node.JS web server application with Express, Typescript, Jest, Swagger, log4js and routing-controllers

Время на прочтение7 мин
Количество просмотров4.4K
This is a step by step instruction for creating Node.JS web server application with typescript and express. Creating of new web application on Node.JS is is not making often, so the steps how to do it can be forgotten. So this article is a kind of reminder for me and other developers. Also I added in article links to video clips for more clarification. Here I show how to create application on Node.JS without using any frameworks for it. Just Node.JS and packages.
Read more →
1

Информация

В рейтинге
2 714-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность