Search
Write a publication
Pull to refresh
5
0
Михаил @Alhart

Инженер-конструктор, руководитель проектов.

Send message

Учимся читать SQL SELECT

Level of difficultyEasy
Reading time21 min
Views15K

Я отчётливо помню, как сидел на втором курсе на лабах по БД и долго и мучительно методом научного тыка подбирал порядок слов в SELECT-запросе с GROUP BY, чтобы он вернул нужный мне преподу результат. Потому что я не понимал, как работает SELECT, хотя был прилежным (на программистских курсах) студентом, ходил на все лекции и делал лабы за себя и пару "тех парней".

Двадцать лет спустя, когда я встал по ту сторону баррикад и начал сам вести лабы по БД, я столкнулся с той же самой проблемой уже у своих студентов. И, так как за двадцать лет я всё-таки понял, как работает SELECT, то придумал для них способ объяснения, который работает хорошо (в моей практике).

Читать далее

Как спроектировать сложный цифровой продукт: метод КРИ — Карта реализации историй

Level of difficultyEasy
Reading time17 min
Views2.1K

Что, если пользовательские истории не работают? Что, если заказчик не понимает, чего он хочет, а команда тонет в предположениях? Андрей Шапиро  @xraizor — дизайнер интерфейсов и соавтор фреймворка проектирования социотехнических систем — рассказывает о «Карте реализации историй» (КРИ) — практическом методе проектирования, который помогает вытащить смысл из хаоса, превратить знания в структуру и наконец-то начать делать сложные продукты осознанно.

Читать далее

Продакт-менеджер и исследователь: формула эффективного взаимодействия

Level of difficultyMedium
Reading time14 min
Views1.8K

Привет! Меня зовут Катя Халитова, я исследователь из Контур.Фокуса. Cегодня поговорим про важное для бизнеса взаимодействие исследователей и продакт-менеджеров. Эта статья основана на десяти экспертных интервью со специалистами из ритейла, финтеха, телекома и других сфер. 

Мы затронем следующие вопросы:

– Как распределяется зона ответственности в discovery между продактом и исследователем? Есть ли чёткие рамки?

– Какие ожидания есть у продактов и исследователей друг от друга?

– Должен ли продакт валидировать исследования, когда проводит их самостоятельно? 

– Какие факторы влияют на внедрение результатов исследования?

Читать далее

Диаграмма последовательности на практике в реальном кейсе

Level of difficultyEasy
Reading time7 min
Views3.5K

Привет Хабр! Меня зовут Татьяна Ошуркова, я системный аналитик и разработчик. Несмотря на то, что UML-диаграммы являются популярным и востребованным инструментом, не все системные аналитики используют его в своей работе. Одной из причин может быть непонимание пользы для требований и проработки задачи.

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

Читать далее

Диаграмма классов (англ. Class diagram)

Level of difficultyEasy
Reading time17 min
Views2.6K

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

Цикл статей о проектировании, призван показать один из возможных путей, достижения успеха, через проектирование программного обеспечения с использованием UML (англ. Unified Modeling Language — унифицированный язык моделирования).

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

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

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

Читать далее

Проектирование Информационных систем. Часть 7. Инжиниринг бизнес-процессов заказчика 7.1. Применение UML Activity

Level of difficultyMedium
Reading time15 min
Views1.7K

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

Как всегда, обозначим цели текущего шага: на основании выявленных функций, определить сценарии использования/применения, разрабатываемого целевого продукта.

На текущем этапе проектирования воспользуемся Алгоритмизацией, еще одним приемом дисциплины «Системный Анализ».

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

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

1)    Экстраполяционная модель

Читать далее

Проектирование Информационных систем. Часть 6. Выявление функции системы. 6.1. Теория систем

Level of difficultyMedium
Reading time14 min
Views2.3K

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

В результате этого оценивания уже можно “поиграть” показателями: время, ресурсы, качество (содержание) и приступить к подбору наиболее подходящего их сочетания. Так же, выявленные объемы и зависимости функциональности позволят делить будущий продукт на модули, подсистемы, контуры и прочие части, обеспечивая поэтапное воплощение, распределение ресурсов и ответственности, снижая риски провала благодаря дроблению. Для решения подобных задач нам очень пригодится умение эффективно определять Границы проекта и управлять ими.

Читать далее

UX-долг — это не про интерфейсы, это про деньги

Level of difficultyEasy
Reading time7 min
Views3.2K

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

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

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

UX-долг, о котором дальше пойдет речь, из той же категории. Он может быть мелким и почти незаметным. Может болеть, но терпимо. А может быть критичным — просто ещё не вскрылся до последнего. Проблема не в том, что UX-долг существует. Проблема в том, что его часто не замечают, не фиксируют и не лечат, пока не станет слишком поздно.

Если вам сейчас стало тревожно — так и должно быть. Во‑первых, не откладывайте заботу о здоровье. Во‑вторых, давайте поговорим о том, как сделать так, чтобы UX-долг тоже не становился поводом для беспокойства.

В этом посте я расскажу, как мы в RuStore выстроили процесс, который помогает не просто «признавать боль», а системно с ней работать: выявлять, приоритизировать и закрывать. И почему UX-долг — это про деньги и эффективность, а не просто «чтобы было красиво».

Читать далее

Проектирование Информационных систем. Часть 4. Управление целями заинтересованных лиц

Reading time16 min
Views1.9K

Одним из основных признаков системы, отличающим ее от #НЕСистемы, является подчиненность всей структуры некоторым целям. Проектная работа команды представляет собой тоже некую систему и, следовательно, должна «идти на поводу» у какой-то цели. Потому установив коммуникации между участниками проекта, начнем вместе с ними определять цели, которые каждое из заинтересованных лиц хочет достичь в результате создания нового продукта.

Цель данной группы работ: определить основные ключевые цели, которых хотят достичь группы заинтересованных лиц, в результате участия в процессе производства Информационной системы.

Поскольку мы постоянно оперируем очень сложными конструкциями и понятиями для эффективного управления ими, на протяжении всего курса мы будем использовать прием «Классифицирование» объектов анализа.

Читать далее

Проектирование Информационных систем. Часть 3. Инфраструктура (ландшафт) для организации проектной деятельности

Level of difficultyMedium
Reading time15 min
Views2.3K

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

Цель данной группы работ: подготовить условия для качественного и эффективного взаимодействия команды проекта в рамках разработки и реализаций требований к целевому продукту.

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

Читать далее

Фронтенд и бэкенд больше не будут общаться как прежде: создаём конструктор сценариев на базе Backend Driven UI

Level of difficultyMedium
Reading time17 min
Views10K

Цикл продуктовой разработки часто напоминает весы: с одной стороны, системное проектирование, подбор основополагающих инструментов, масштабные рефакторинги. С другой — совокупность локальных решений, принимаемых для точечных улучшений в системе. И самое сложное тут: соблюдать баланс. Как понять, когда имеет смысл вмешаться «хирургически», а когда — предпочесть вместо конкретной проблемы решить (или предотвратить) целый класс проблем?  

Иногда нащупать границу между «масштабом» и «целесообразностью» получается почти что случайно. Однажды мы в Сравни подступились к переделке чата в нашем мобильном приложении, и на старте расценивали задачу как «ещё один рядовой продуктовый кейс». Но планы по модификации фичи быстро переросли в создание универсального инструмента: конструктора сценариев на базе Backend Driven UI.

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

Подробности о нашем сценарном BDUI-движке — этапах его создания, вариантах использования и нюансах технического устройства — читайте под катом.

Читать далее

Топ 10 заповедей системного дизайна

Level of difficultyMedium
Reading time19 min
Views15K

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

Если вы архитектор, которому надоело рисовать схемы ради схем — этот список тоже для вас.

А если вы просто строите что-то серьёзное — сохранить, перечитать, внедрить. Это основа.

Читать далее

Что нужно знать о роли системного аналитика в начале пути: история из моего опыта

Level of difficultyEasy
Reading time7 min
Views4K

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

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

Читать далее

Чек-лист для тестирования требований

Level of difficultyEasy
Reading time4 min
Views5.2K

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

Предыстория

У нас двухнедельные спринты, в рамках которых с определённой периодичностью проходят груминги, на которых мы не только приоритизируем задачи, но и разбираем аналитику. Происходит это так: на регулярных встречах собирается вся команда, аналитики презентуют нам новую фичу/задачу, а мы задаём вопросы. Если все вопросы решены, либо что‑то можно быстро уточнить/устранить, то команда двигает эту задачу в статус «Готово к разработке». И мы командой тестировщиков определили, что во время грумингов презентация аналитики происходит быстро, мы не успеваем параллельно читать и слушать пояснения, а также придумывать на ходу вопросы. Нужен был процесс по тестированию требований.

За несколько итераций проведённых 1-to-1 я выяснила, что нам было бы удобно построить это следующим образом: разделиться на подкоманды согласно функционалу, который мы реализуем, и до груминга читать аналитику, разбираться, оставлять комментарии с вопросами в спокойной обстановке без строго ограничения по времени.

Читать далее

Как мы делали таблицы для производственных интерфейсов

Level of difficultyEasy
Reading time10 min
Views6.6K

Таблица для цеха отличается от обычной таблицы. Очень сильно:

— «Модные» тонкие шрифты — сразу на свалку. Числа должны читаться даже в маске сварщика.

— Освещение в цехах адаптировано под специфику задач— почти всегда нужна ночная тема.

— Минимум цветов, новый цвет — только привлечь внимание к реально критичной вещи.

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

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

Cтандартные подходы не всегда решали эти задачи.

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

Читать далее

Скрытые языки: как инженеры передают информацию внутри команды, избегая документации

Level of difficultyHard
Reading time5 min
Views4.6K

Технические команды часто избегают лишней документации, но информация всё равно каким-то образом передаётся, сохраняется и развивается. В этой статье — попытка разобрать скрытые механизмы общения внутри инженерных команд: как выстраиваются негласные соглашения, каким образом рождаются "внутренние диалекты" и зачем вообще всё это, если есть JIRA, Confluence и куча других инструментов. Много примеров, блоков кода на разных языках и немного личного опыта.

Читать далее

Use Case: как описывать эффективные сценарии использования. Part 2

Level of difficultyMedium
Reading time10 min
Views4.8K

Всем привет!

В этой статье — пошаговый разбор создания сценария использования (Use Case) на основе двух совершенно разных примеров: бронирование отеля в современном IT‑сервисе и покупка брюк на рынке 90-х.

Рассмотрим, как формируются эффективные сценарии использования от этапа создания Use Case диаграммы с помощью промта до детализации сценария.

Читать далее

Obsidian: синхронизация с Google Drive одной кнопкой

Level of difficultyEasy
Reading time3 min
Views8.5K

Доброе время суток!

Недавно начал пользоваться Obsidian на ПК и телефоне (Windows + Android) и естественно захотелось синхронизировать заметки между устройствами, но синхронизация стоит денег и её оплата проблематична.

Начал искать в интернете решение и наткнулся на 2 статьи Хабра (они первые в поиске Obsidian синхронизация можете посмотреть их) из решений там были варианты такие:

Читать далее

Obsidian: исчерпывающее руководство по Templater

Level of difficultyMedium
Reading time38 min
Views14K

В этой статье я расскажу о том, как плагин Templater может упростить ежедневное взаимодействие с заметками в вашем хранилище Obsidian, постараюсь рассмотреть большинство его возможностей, а также поделюсь собственными шаблонами, которые могут оказаться для вас полезными.

Читать далее

Что такое Story Points и почему они причиняют боль командам

Level of difficultyEasy
Reading time10 min
Views8.5K

SP создали, чтобы уйти от тирании часовых оценок, но в итоге без понимания принципов превратились в бессмысленный ритуал. Команды тратят рабочее время на пересчет баллов в дни, менеджеры требуют «увеличить velocity на 20%», а разработчики — тихо ненавидят планирование.

Разбираемся, что такое Story Points, как их считают, в чем их проблема и как их используют разные команды.

Читать далее

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity

Specialization

Specialist
Lead
Python
SQL
SolidWorks
Kompas 3D
English
Design
CAD
Research work