Pull to refresh
0
0
Дмитрий Григорьев @demon_guru

User

Send message

Вещи, которые мы хотим сделать «потом»

Reading time6 min
Views21K
Известно, что ошибки проще не допускать, чем исправлять и чем позже найдена ошибка, тем сложнее ее исправить. Не смотря на это у всех нас есть менеджеры дедлайны и тот кусок кода, который надо бы исправить после релиза.



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

Если не хотите ходить по моим граблям, добро пожаловать под кат.
Читать дальше →
Total votes 39: ↑24 and ↓15+9
Comments10

Ubiquitous Language и Bounded Context в DDD

Reading time3 min
Views56K

Domain-Driven Design: Tackling Complexity in the Heart of Software Эванса — лучшая книга о проектировании действительно больших enterprise-приложений, что я читал. Видимо это мнение разделяют многие другие разработчики и проектировщики, потому что Entity и ValueObject, Repository и Specification встречаются почти в каждой большой кодовой базе. Но вот незадача, Ubiquitous Language (единый язык) и Bounded Context (контекст предметной области) в чужом коде я не видел ни разу. И здесь зарыта очень большая собака.
Выкапываем собаку
Total votes 23: ↑16 and ↓7+9
Comments42

Рентабельный код

Reading time12 min
Views65K


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

Разработка ПО – область, подверженная рискам. В нашей сфере при наступлении одного или нескольких рисков, срок поставки рабочей версии может сдвинуться не на привычные и комфортные 10-20%, а на все 150-300%. И надо признаться, что это далеко не предел.

Мы можем либо скрестить пальцы и надеяться, что удача будет сопутствовать проекту во всем, либо признать, что по статистике большая часть проектов по разработке ПО «проваливается» и предпринять дополнительные усилия по ослаблению возможных рисков.
Моя практика показывает, что клиенты крайне неохотно работают по схеме T&M и чаще предпочитают Fixed Price. В условиях зафиксированной стоимости наступление рискового случая означает автоматическое снижение рентабельности проекта: сотрудники получают зарплату ежемесячно, а не за сданные проекты.

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

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

С моей точки зрения спокойная рабочая обстановка вместо авралов и бонусы – неплохая мотивация, чтобы начать заботиться об этом.
Читать дальше →
Total votes 76: ↑68 and ↓8+60
Comments26

Дизайн vs. Верстка?

Reading time7 min
Views45K
На Хабрахабре уже не раз поднимался вопрос о том, что популярные на сегодняшний день жизненные циклы разработки веб-интерфейсов, прямо говоря, устарели. Последний раз его обсуждали в публикации «Дизайн в браузере», но так и не пришли к единому мнению.

Настало время наконец-то найти ответы на два главных вопроса: “Кто виноват?” и “Что делать?” в вечной борьбе дизайна и верстки…


Читать дальше →
Total votes 15: ↑11 and ↓4+7
Comments28

10 уроков о том, как повысить продуктивность, которые я усвоил, работая по 90 часов в неделю целый месяц

Reading time8 min
Views198K
image

Сколько часов в неделю вы тратите на работу? Около 40, не так ли? А как вы думаете, что будет, если работать 90 часов в неделю?

Автор сайта a Year of Productivity Chris Bailey решил провести такой эксперимент. К чему это привело? Читайте о 10 уроках, которые он извлек, в нашем переводе его статьи.
Читать дальше →
Total votes 97: ↑78 and ↓19+59
Comments72

Настройка просмотра отдельных Issue в Аtlassian Jira

Reading time2 min
Views15K
Настраивая Jira столкнулся с тем, что не могу дать доступ пользователю системы к отдельному Issue в конкретном проекте.

Конечно, выход есть — это настройки Security Level, но мне, к сожалению, не подошел данный способ, хотя он лежит в основе придуманного варианта настройки. Метод проб и ошибок очень развивает познавательные способности и прочно закрепляет полученные навыки, но отнимает много времени, поэтому делюсь тем, что получилось у меня и приглашаю к обсуждению. Надеюсь, это будет полезно и сэкономит некоторое время администраторам Jira.
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments10

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

Reading time3 min
Views16K
Это перевод статьи «Goal Setting Secrets for Entrepreneurs», опубликованой 5 февраля 2013 года на сайте издания www.smallbusinessbc.ca.

Об авторе
Hunter Phoenix является успешным, проверенным жизнью, тренером, национальным спикером и ментором малого бизнеса. Ее специализация — помощь новым и «подрастающим» предпринимателям в создании простого и эффективного маркетинга, также она предлагает стратегии по привлечению новых клиентов.

Hunter — автор работы «Perfect Lives and Other Fairy Tales» и создатель коучинг системы «Life By Design™ & Biz Breakthrough™».
Читать дальше →
Total votes 19: ↑12 and ↓7+5
Comments0

Как мы создавали сервис частных грузоперевозок. От бизнес-плана до разработки

Reading time7 min
Views8K
Краткое саммари предыдущей статьи: решение делать сервис было принято, идея найдена, и нужно было начинать работать.

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

По плану мы должны были запуститься через год и потратить на это 300 тысяч рублей. Сразу скажу: мы превысили и то, и другое. Почему? Подробности под катом.
Читать дальше →
Total votes 2: ↑2 and ↓0+2
Comments0

Управление зависимостями в сложной Agile-среде

Reading time12 min
Views18K
Перевод статьи «Dependency Management in a Large Agile Environment».

Краткий обзор


Департамент разработки Salesforce.com включает в себя более 30 Scrum-команд, совместно работающих над общим кодом в одной и той же ветке системы контроля версий. Статья описывает методы, используемые salesforce.com для масштабирования Scrum-подхода и для управления межкомандными взаимосвязями.

1 Введение


В октябре 2006 года начался грандиозный переход отдела разработки (R&D) salesforce.com от модели водопада к гибким методологиям, основанных на Scrum. На тот момент прошло 10 месяцев с предыдущего мажорного релиза, а дата выпуска нового переносилась уже пять раз. Многих расстраивало, что продукт выпускается редко и с серьёзными опозданиями. Мы не стали дожидаться завершения релиза, реорганизовали существующие команды в Scrum-команды и с помощью процессов Scrum выпустили релиз в феврале 2007 года. С тех пор, используя наш новый гибкий подход, мы выпустили уже пять мажорных релизов (длительностью в 3-4 месяца) нашего набора SaaS приложений и платформы Force.com. Каждый из них состоялся точно в запланированный день.

Во время реорганизации мы следовали рекомендациям Scrum для отдельных команд, но не обращали особого внимания на взаимодействие между командами. Формируя команды, мы стремились минимизировать зависимости между ними, однако код не изменился в одночасье, так что сохранилось немало взаимосвязей. Довольно скоро мы внедрили Scrum-of-Scrum meetings. Эти встречи помогали обсуждать проблемы и состояние дел, но одних только собраний было недостаточно. Работая над последними пятью релизами, мы опробовали и отшлифовали дополнительные подходы, улучшающие взаимодействие команд. Далее в статье мы расскажем о некоторых трудностях с управлением зависимостями и о том, как мы преодолели эти проблемы.
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments0

Starban. Гибкая методология разработки, геймификация и еще много модных слов

Reading time13 min
Views20K
Поскольку пост некороткий и даже неуместные картинки не делают его чтение легче, то давайте первым делом обозначим целевую аудиторию.
  • Вы разработчик ПО, руководитель группы разработки, менеджер проекта или его эквивалент.
  • Над проектом работает больше одного программиста, желательно — больше трех.
  • Вы пробовали все эти скрамы и эджайлы, почувствовали их прелесть, но есть определенные нарекания к догматическому следованию методологии. Возможно, у вас никто не занимается постановкой процессов совсем и задачи просто «накидываются».
  • Команда устала (от проекта, от стресса, ...) и в скором времени всех ждут кнуты и пряники.


Хорошо, есть методология, которая выдумана командой программистов «для себя», но которую, по нашему мнению, будет интересно попробовать и другим. Внутри команды воссоздаётся небольшая экономическая модель рыночных отношений, а приоритеты регулируются при помощи курса внутрикомандной валюты.
Starban
Total votes 14: ↑12 and ↓2+10
Comments3

Группа тестирования в Scrum-проекте

Reading time5 min
Views17K


У нас в отделе четыре Scrum-команды. Спринты, таймбоксинг, митинги, демо, Product Owner, заказчик и т.д. С годами сформулировался список основных ценностей:
  • командный дух и атмосфера в командах — удобство процессов важнее сложившихся годами правил и привычек;
  • автоматизация рутины важнее задавливания массой;
  • быстрое принятие решений важнее консилиумов, коллегий, долгих совещаний;
  • доверие к людям, возможность учиться (и ошибаться!) важнее централизации управления;
  • открытость для всех (от высшего руководства до конкретного участника проекта) и вовлеченность важнее сиюминутной экономии времени и видимости согласия;
  • демократия в обсуждении вопросов, но диктатура в претворении решений в жизнь;
  • необходимый минимум правил, но требовательность при их исполнении;
  • когда все думают одинаково — никто не думает;
  • «мужик сказал — мужик сделал», все несут ответственность за свои решения.

Все хорошо, но несколько лет нас не отпускали мысли о том, как организовывать тестирование. Мы немало поэкспериментировали, прежде чем пришли к нынешнему положению вещей.
Читать дальше →
Total votes 11: ↑8 and ↓3+5
Comments13

Практическая холакратия. Нарезаем круги и готовим роли

Reading time15 min
Views49K
В середине лета мы впервые услышали слово «холакратия». За пару дней отвадили себя от неправильного написания (холОкратия) и научились отличать эту модель организации бизнеса от почившей в бозе формы правления с созвучным названием «охлократия». Дальше началось самое интересное: мы решили попробовать холакратию в деле. Момент был подходящим, не хватало только информации. Пришлось изучать скудно описанный опыт западных коллег, призывать на помощь менторов из Амстердама и нырять в бездны поисковиков. Спустя полгода новая концепция начала приживаться, а у нас появился опыт, которым не стыдно поделиться.



В предыдущей статье мы писали о том, что такое холакратия и почему она вам не нужна. Сегодня разбавим сладкую теорию горькой практикой и посмотрим, как это работает в Кнопке. Не обойдём стороной опыт Zappos, Medium, David Allen Company и поспорим в комментах о ситуации в GitHub. Вы с нами? :)
Читать дальше →
Total votes 21: ↑14 and ↓7+7
Comments25

Экспресс-курс «Проектное планирование»

Reading time8 min
Views22K

Везде ли применимо проектное планирование


Любую деятельность компании или отдельного человека можно разделить на два состояния:

  1. Я делаю (сделаю) что-то сейчас;
  2. Я буду это делать в будущем.

Первое состояние очень популярно в торгово-закупочной деятельности:

  • купить прямо сейчас;
  • заказать прямо сейчас;
  • позвонить прямо сейчас.

На вас сваливается десяток задач которые надо сделать прямо сейчас. Как правило, это задачи на «на пять минут», хотя иногда подготовка к выполнению самой задачи может занять и больше пары часов. Если такое происходит, тогда весь поток задач, которые надо сделать «прямо сейчас», останавливается, пока короткая задача не будет завершена, Однако, каким-то мифическим образом все такие задачи «рассасываются» к концу недели.
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments5

Пол Грэм: нелогичный стартап

Reading time26 min
Views37K


Cтэнфордский курс CS183B: How to start a startup. Стартовал в 2012 году под руководством Питера Тиля. Осенью 2014 года прошла новая серия лекций ведущих предпринимателей и экспертов Y Combinator:


Первая часть курса
Читать дальше →
Total votes 36: ↑29 and ↓7+22
Comments6

Как в Яндексе используют PyTest и другие фреймворки для функционального тестирования

Reading time19 min
Views124K
Всем привет! Меня зовут Сергей, и в Яндексе я работаю в команде автоматизации тестирования сервисов монетизации. Перед каждой командой, которая занимается задачами автоматизации тестирования, встает вопрос: «Какой [фреймворк|инструмент] выбрать для написания своих тестов?» В этом посте я хочу помочь вам на него ответить. Если быть конкретнее, речь пойдет об инструментах тестирования на языке Python, но многие из идей и выводов можно распространить на другие языки программирования, поскольку подходы часто не зависят от конкретной технологии.



В Python существует множество инструментов для написания тестов и выбор между ними неочевиден. Я опишу интересные варианты использования PyTest и расскажу о его [плюсах|минусах|неявных возможностях]. В статье вы найдёте развёрнутый пример использования Allure, который служит для создания простых и понятных отчётов автотестов. Также в примерах будет применяться фреймворк для написания матчеров — Hamcrest для Python. Надеюсь, что в итоге, те, кто сейчас в поиске инструментов для тестирования, смогут на основе изложенных примеров быстро внедрить функциональное тестирование в своем окружении. Те же, кто уже использует какой-то инструмент, смогут узнать новые подходы, варианты использования и концепции.
Читать дальше →
Total votes 62: ↑60 and ↓2+58
Comments10

I am Groot. Делаем свою аналитику на событиях

Reading time6 min
Views32K


Весной этого года я узнал о возможности базы данных HP Vertica создавать запросы с матчингом паттернов событий. Так называемый Events Pattern Matching хорошо ложился под задачу анализировать поведение пользователей в продуктах ivi.ru. Мы решили попробовать разобраться с воронками оплаты, с поиском проблемных мест на устройствах, глубже погрузиться в анализ трафика. Нашей команде очень нравится, как реализована аналитика у Mixpanel и Localytics (она как раз основана на событиях и их свойствах), поэтому многие идеи были позаимствованы у них.
Читать дальше →
Total votes 38: ↑31 and ↓7+24
Comments48

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

Reading time9 min
Views27K
image

Недавно на хабре была публикация о том, как реализована аналитика на ivi.ru. После прочтения захотелось рассказать об аналитике, которую мы делали для одного крупного сайта. Заказчик, к сожалению, не разрешил публиковать в статье ссылку на сайт. Если верить Alexa Rank, то трафик на сайте, для которого мы делали аналитику, раз в 10 больше, чем на ivi.ru.
Читать дальше →
Total votes 34: ↑29 and ↓5+24
Comments78

Сам себе AWS. Часть 1

Reading time5 min
Views20K
И снова здравствуйте!

image
Нет, это не Fez

В прошлый раз я вкратце рассказал, что есть на рынке open-source для создания карманного облака.
Теперь же настало время рассказать вам про сам OpenStack и его реализацию в виде Mirantis OpenStack 5.1.
Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments27

Краш-тест облачной платформы высокой доступности

Reading time4 min
Views13K
Краш-тест новой облачной площадки IT-GRAD

Как убедиться в том, что инфраструктура облачного провайдера действительно не имеет единой точки отказа?
Проверить это на деле!
Здесь я расскажу о том, как мы проводили приёмо-сдаточные испытания нашей новой облачной площадки.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments31

5 советов новоиспеченному начальнику отдела

Reading time5 min
Views160K
Хочу поделиться 5 важными, на мой взгляд, вещами, которые должен осознать специалист, внезапно ставший начальником своего отдела. Это скорее напутствие, психологическая накачка, чем конкретные методики, но как мне кажется, карьерные изменения — момент для изменений внутренних. Мне самому повезло стать начальником нового отдела, созданного из сотрудников, занятых определенным направлением, и вот что я успел для себя уяснить.
Читать дальше →
Total votes 88: ↑71 and ↓17+54
Comments41

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity