Инвестиции

Пару недель назад встречался с человеком — основателем конторы AnimalID. Они делают чипы для чипирования животных и держат соответствующую базу данных, работают в США и Украине. Во Львове они порешали проблемы с бездомными животными на корню, а в Киеве не порешают (потому что тут бюджеты на это огого какие пилятся, хватит стрерилизовать всех собак в Украине, не то что в Шевченковском районе). Но это лирика. У нас разговор был по поводу интеграции в проект который сейчас бодро пилится силами двух волонтеров.

Скорость

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

Дебаг

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

О конференциях 4. Качество

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

О превосходстве одних технологий над другими

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

Сперва добейся / Болтать — не мешки ворочать

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

Работа, которая мне не нравится 1/∞

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

Вендор-лок наоборот

Для тех, кто не знает, “вендор-лок” — это такая тема, когда вы подвязываетесь (в чем угодно) закрытую технологию какого-нибудь производителя, делаете на его платформе какое-то решение, а дальше не можете с него слезть. Самый распространённый пример — использование, например, базы данных Oracle или облака AWS. Вначале может быть все хорошо и радужно, но чем дальше в лес тем толще партизаны, и вот уже весь ваш бизнес завязан на кучу технологических решений, которые в любой момент по желанию вендора могут изменить свое поведение или ценовую политику.

Рассказать я и сам могу, а вот сделать как?

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

Фулл-стек системы управления проектами

Любимая тема при старте проекта — “какой системой будем пользоваться для управления?”. Кажется что вот сейчас выберем правильную и хорошую систему и проект сделается сам по себе. На моей первой работе (в 2007) была самописная штука сделанная на базе платформы, которую компания и разрабатывала/продавала (сама платформа — это ERP конструктор для телекомов, тоже очень навороченная). Для заказчиков продавались модуля для работы с сетями, инвентарём и труднопереводимым словом resource/service provisioning, а для внутренних нужд пилились свои модули.

Работа, которая мне нравится

В любой работе есть 20% интересной и сложной части и 80% рутины и полировки. Вначале ты довольно долго подступаешься к задаче, превозмогаешь, а дальше раз—основная проблема решается и остается только “задеплоить код”. Вторая фаза естественно будет занимать гораздо больше времени нежели первая. Basecamp визуализируют это в виде так называемых Hill Charts. Вначале ты долго ползешь на гору, не знаешь, что будет дальше, кое-как добираешься до вершины, понимаешь, что дальше лезть уже некуда и надо спускаться.

Рецензия на книгу Егора Бугаенко "Code Ahead"

Я очень давно хотел закупиться у Егора всеми его книгами, но как-то так получалось, что все митапы и конференции с его участием я пропускал (из рук автора купить книги можно со скидосом в 50%). Но вот, месяц назад Егор анонсировал что он будет в Киеве на конфе QA-чего-то там и потом будет делать митап. Я незамедлительно написал что хочу купить все книги, получил положительный ответ и уже на самом митапе затарился.

Обсуждение багов в синхронных чатах

Вчера со мной произошла забавная ситуация. На одном из проектов меня попросили добавить REST API метод. Ничтоже сумнящеся я нафигачил его, отдал фронтенд разработчикам сигнатуру и пошел заниматься своими делами. Через некоторое время мне пишет в личку разработчик, который пилит свою функциональность на базе моего API, говорит “не работает” и прикладывает скриншот из постмана где написано 404. Я быстро смотрю и вижу что там неверный хост, указываю на это. Разработчик исправляет и опять показывает 404.

Продажа жопочасов

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

Resume Driven Development

Один из частых вопросов у любого инженера (и не только) — как и когда учить новое? Технологии (по крайней мере внешне) обновляются довольно быстро, количество инструментов, которыми необходимо владеть для ежедневной работы растёт и нужно все это как-то изучать и применять. Для решения этой проблемы и была придумана методология RDD она же Resume Driven Development. Для начала ответим на вопрос “как?”, он же “форма обучения”. Я считаю, что всё нужно изучать на реальных и нужных кому-то проектах (e.

Как разжечь срач в интернете

Есть несколько тем на которые у любого человека есть что сказать: религия политика отношения Обсуждение любой из этих тем моментально провоцирует срач и в терминальных случаях приводит к “вычислю по ІР”. Два года назад в твиттер треде про women in tech мне люди на полном серьезе угрожали физической расправой хотя я вроде ничего оскорбительного или радикально-провокационного не говорил. Хотите пошуметь — выбирайте одну из этих тем и вперед —гарантированно получите мощнейшую дискуссию, правда совершенно деструктивную и бесполезную.