Pull to refresh
25
0
netslow @netslow

Пользователь

Send message

Как прогнозировать время выполнения задач

Level of difficultyHard
Reading time20 min
Views47K

Привет! Меня зовут Павел Ахметчанов, я руководитель направления улучшения процессов разработки. В статье расскажу про часто используемые методики оценок задач и есть ли в них ошибки. Посмотрим, как правильно ставить вопросы при оценке. Узнаем, что собой представляет время решения задач, а это далеко не очевидная вещь. Попробуем изменить свое мышление и получим рецепт для определения времени решения задач. 

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

Читать далее

Архитектура Flutter проекта простым языком. Clean Arch (MVVM, DI, Bloc, Inversion of Control)

Level of difficultyMedium
Reading time7 min
Views7K

Привет! В этой статье я рассказываю о чистой архитектуре и о паттернах для нее простыми словами. Где, когда и как применять тот или иной паттерн?

MVVM
Inversion of Control
Dependency Injection
Service Locator

Так же вы узнаете как можно применять ViewModel вместе со своими стейт менеджерами (Bloc), избавив свой виджет от ненужного.

Читать далее

Философия SLA: что такое эскалация и зачем она нужна

Reading time8 min
Views41K

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


Эскалацию в IT, по-моему, мало кто понимает. В ITIL она как-то мутно определена. Соответственно и дальше, при попытках её внедрить, градус мутности только возрастает. Ни Гугл, ни Яндекс не помогают найти ничего вразумительного. Вместо того, чтобы объяснить эскалацию просто и понятно (как это сделаю я), авторы начинают вводить какие-то новые термины, указывать в чём различие между функциональной и иерархческой эскалацией (зачем вообще это?), вещать что-то про автоматическую эскалацию, ничего не объясняя и уводя в сторону. И при этом из контекста можно предположить, что эскалация — это то ли синоним передачи запроса другому исполнителю, то ли в другое подразделение, то ли привлечение дополнительных ресурсов, то ли повышение приоритета. А иногда я просто теряюсь понять смысл. Всё это вызывает лично у меня ощущение или "кручу-верчу, обмануть хочу", или банальной некомпетенции.


Особенно мило (не могу удержаться и не привести этот пример) выглядит автоматическая "эскалация" запроса на другой уровень поддержки, если (sic!) текущий исполнитель не успевает в заданный в SLA срок. То есть будучи исполнителем, принимаем запрос и держимся изо всех сил, ничего по нему не делаем, пока он не будет вот-вот уже почти просроченным, и… бац! — срабатывает автоматическая "эскалация", которая переназначает запрос на кого-то другого. Профит!.. Главное держать себя в руках и ничего не делать. Можно было бы от души посмеяться, но кое-где именно такую схему "эскалаций" и применяют, выдавая за лучшие практики IT!


КДПВ


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

Читать дальше →

Этапы формирования навыков программирования

Level of difficultyEasy
Reading time12 min
Views15K

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

Читать далее

Эмиттерный повторитель — ключ к пониманию работы транзисторных каскадов

Level of difficultyMedium
Reading time9 min
Views56K


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

Архитектура боевого корпоративного frontend-приложения

Level of difficultyEasy
Reading time5 min
Views10K

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

Читать далее

Как увеличение команды влияет на её продуктивность, или почему 9 женщин не смогут родить ребенка за 1 месяц

Reading time6 min
Views7K

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

Читать далее

Успех тимлида — это успех команды: три ошибки тимлидов в начале пути

Reading time5 min
Views11K

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

Читать далее

Кто вы, пишущие на Gherkin? Или корнишон в поисках целевой аудитории

Reading time5 min
Views112K

Сценарий: Определение причин слабой распространенности Gherkin
  Допустим я решил разобраться, почему Gherkin используется небольшим количеством команд
  Когда начал анализ причин
  Тогда понял, что неверно выбрана целевая аудитория


Не так давно среди моих знакомых возник вопрос: “Зачем Gherkin?”. Причем вопрос был поставлен не как вброс на лопате, а чтобы понять его применимость.

Старт обсуждению дал kuntashov в G+ заметкой со следующим содержанием (сюда я привожу сухой остаток, совсем немного подкорректированный мной):
Gherkin был создан, чтобы сценарии использования можно было редактировать как нарратив (повествование), т.е. “почти на человеческом языке” в простой, лаконичной форме и доступном формате. Т.е. назначение формата было — быть в первую очередь лицом к не-технарям, но при этом сохранить более-менее достаточную формальность, чтобы можно было автоматически обрабатывать.

При этом бизнес-аналитики или любые другие конечные пользователи не очень хотят читать и тем более редактировать сценарии на Gherkin. Таким образом создание feature файлов перекладывается на плечи разработчика, для которого Gherkin — дополнительный и, возможно, лишний слой абстракции. Как мы знаем, “абстракции текут” и дополнительный слой только увеличивает вероятность “протечки”.

Может все же использовать языки, которые больше повернуты лицом к программистам?

Если есть желание совместно разобраться в полезности Gherkin и для кого он предназначен, добро пожаловать под кат.
Читать дальше →

Как есть слонов по кусочкам в крупных популяциях, или как мы работаем с большими проектами

Reading time6 min
Views6.1K
Привет, Хабр! Давайте поговорим о проектном управлении в продуктах Ozon.

Меня зовут Андрей, я пришёл в компанию менеджером по продукту полгода назад. И первое, что бросилось мне в глаза, — отсутствие излишней бюрократии, которую ожидаешь встретить в корпорации: формальных планёрок, отчётных встреч, бесконечных служебок и приказов. Ура! Не надо отчитываться по решённым задачам разработчиков, объёму техдолга, собирать статистику спринтов, искать виноватых или самому ходить «на ковёр».

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

Такой подход к планированию связан с масштабом — количеством и размером продуктов в Ozon. Здесь нет фундаментального ноу-хау — принцип «Давайте есть слона по кусочкам» для работы с большими проектами работает и в нашем случае. Наша специфика в том, что приходится думать не только о нюансах работы с отдельно взятым слоном, но и об их популяции: учёте, хранении, планировании поставок, селекции и разведении. 


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

Доводим распределённые действия до конца с использованием простейшего паттерна Saga

Reading time11 min
Views24K

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


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


image

Читать дальше →

Как начинающему тимлиду не сойти с ума от обилия задач: практический гайд

Level of difficultyEasy
Reading time6 min
Views11K

Привет, Хабр! Меня зовут Капитолина Кузнецова, я Ruby-разработчик и на своём текущем месте работы в Купере (ex СберМаркет) доросла до роли тимлида. За 2,5 года я, так сказать, освоилась в этом статусе и, если верить моей команде, руководитель из меня получился неплохой, но вьетнамские флэшбэки о своих первых месяцах работы в новой роли ещё свежи.

Быть начинающим тимлидом — это...

- когда встречи занимают по семь, восемь, а то и девять часов подряд;

- когда ты целый день что-то делаешь, дико устаешь, а в конце не видишь никакого результата;

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

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

Читать далее

Как провести аудит процессов в новой команде: инструкция для руководителей

Level of difficultyEasy
Reading time11 min
Views15K

Когда вы вступаете в должность в качестве руководителя или старшего менеджера проекта, одной из первых и самых важных задач является понимание текущих процессов управления проектами. Этот процесс, часто называемый аудитом, позволяет определить точку «As Is…» — текущее состояние дел в компании. Без четкого понимания текущей ситуации невозможно разработать эффективный план действий и начать внедрение улучшений. Меня зовут Саша Максимова, я уже 10 лет занимаюсь развитием команд и управлением проектами, сейчас работаю в Kokoc group на должности Руководителя отдела управления проектами и надеюсь, эта статья поможет многим избежать моих ошибок.

Читать далее

Как мы оценивали любые требования заказчика за два часа

Level of difficultyMedium
Reading time9 min
Views9.7K

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

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

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

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

Читать далее

Оценка задач в Story Points

Reading time9 min
Views237K
Практически каждый человек, который сталкивался с разработкой ПО знает что такое оценка задач в Story Points (SP), тем не менее периодически мне доводится рассказывать коллегам из других отделов или новичкам в команде, которые ни разу не сталкивались с таким подходом, зачем мы используем SP и почему это удобно для команды и эффективно для компании.

Цель этого текста – рассказать, что такое SP, как их использовать для оценки задач и почему эта методика получила такое широкое распространение.

Паттерн Saga в микросервисной архитектуре

Level of difficultyMedium
Reading time9 min
Views62K


Автор статьи: Артем Михайлов

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

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

Анализ в управлении системами

Reading time9 min
Views6K


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

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



Решение будем искать не в области сложных алгоритмов, которые часто трудно понять и применить. Мы будем говорить о простых вещах, которые около 70 лет назад, были причиной выхода из кризиса для целой страны. Обсуждаться будет измерение и анализ массовых явлений. Только такие явления будут статистически управляемыми. Почему люди могут считать статистику злом? Порой это связано с тем, что кто-то с умыслом или по глупости неверно делает выводы на её основе. Три примера, с которыми многие сталкиваются в повседневной жизни.
Читать дальше →

Практикум использования контрольных карт Шухарта

Reading time3 min
Views103K
Недавно я публиковал здесь свой слайдкаст с рассказом о 6-сигмах, контрольных картах Шухарта и людях снежинках, где достаточно простым языком, местами злоупотребляя сквернословием, под 20-ти минутный хохот слушателей рассказывал о том, как отделить системные вариации от вариаций, вызванных особыми причинами.

Теперь хочу подробно разобрать пример построения контрольной карты Шухарта на основе реальных данных. В качестве реальных данных я взял историческую информацию о завершенных личных задачах. Эта информация у меня есть благодаря адаптации под себя модели личной эффективности Дэвида Аллена Getting Things (про это у меня тоже есть старый слайдкаст в трех частях: Часть 1, Часть 2, Часть 3 + Excel-табличка с макросами для анализа задач из Outlook ).

Постановка задачи выглядит так. У меня имеется распределение среднего числа завершенных задач в зависимости от дня недели (ниже на графике) и нужно ответить на вопрос: «есть ли что-то особенное в понедельниках или это всего лишь погрешность системы?»

image

Ответим на этот вопрос при помощи контрольной карты Шухарта – основного инструмента статистического управления процессами.
Читать дальше →

Основы 6-сигм и контрольных карт Шухарта (слайдкаст)

Reading time1 min
Views38K
Недавно дошли руки до превращения записи моего доклада на AgileKitchen в полноценный слайдкаст.

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

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

Гайд для системного аналитика: как управлять требованиями на разных этапах проекта. Часть 2: планирование и исполнение

Level of difficultyMedium
Reading time21 min
Views11K

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

Читать далее

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Registered
Activity