Измерения в программной инженерии

А я продолжаю делиться своими выступлениями. На этот раз речь об измерениях в программной инженерии :)
Выступление c мероприятия, которое периодически устраивает мой любимый работодатель — MobiFest в Томске



 

Posted in Разработка | Tagged , | Leave a comment

Гибкость, возведенная в абсолют

Я иногда выступаю на всяких конференциях и прочих междусобойчиках. И захотелось мне выложить некоторые свои выступления в SlideShare. Сегодня — доклад, сделанный в ноябре 2014 года на конференции ГородIT 2014



 

Posted in Разработка | Tagged | Leave a comment

GetKanban по русски или надмозги за работой

kanban

Есть замечательные ребята — getkanban.com. Они выпускают отличную настолку GetKanban — эмулятор канбана (чуточку подробнее). GetKanban — это настольная игра, которая проведет вас через многие нюансы методологии и объяснит 100500 применяемых в канбане концепций. На  getkanban.com можно бесплатно скачать вторую версию игры. На английском.

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

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

P.S.  О, фитбэк пошел :) Несколько ошибок уже исправлено! :)

download

Posted in Студенты | Tagged , | Leave a comment

What smell?

Намедни состоялся забавный диалог с одним из юзеров… Суть хотелки юзера — заменить слово «РАСПИСАНИЕ» на слова «РЕЖИМ РАБОТЫ» Хотелка попала на разбор во время очередного грумминга. Как водится, поржали… А далее, собственно, цЫтата:

Мирютов Алексей Анатольевич [18:02]:
…объявил сегодня про «переименовать расписание в режим работы» потому что расписание у пользователей ассоциируется со школой.
Юзер [18:02]:
нет не со школой
это я так сказала тебе
Мирютов Алексей Анатольевич [18:03]:
Разработчики теперь индульгируют на тему что у других пользователей «режим» будет ассоциироваться с тюрьмой Continue reading

Posted in Разработка | Tagged , | Leave a comment

Об информационных моделях

По мотивам поста Analyze This, а так же в ходе собеседования нескольких человек на позицию аналитика, внезапно выяснилось, что у граждан (включая тех, кто позиционирует себя как аналитика) напрочь отсутствует понимание сути информационных моделей. А зря, между прочим. Ибо информационные модели пусть и не серебряная пуля анализа, но где-то рядом. Дабы избежать терминологической неразберихи, уточню, что я понимаю под информационной моделью: под информационной моделью я понимаю описание статической составляющей модели предметной области (или модели анализа). Информационная модель описывает сущности предметной области и их связи.

Что нам дает грамотная информационная модель?

  • Полный набор информации о том, что нужно сохранять. По крайней мере, с точки зрения предметной области.
  • Исходные данные для корректного распределения обязанностей между объектами будущей системы (см шаблоны Information Expert, Creator, Don’t talk to strangers и другие шаблоны из набора GRASP).
  • Исходные данные для планирования: мы понимаем, какие истории/варианты использования должны быть реализованы в первую очередь.
  • Исходные данные для проектирования UI

Continue reading

Posted in Разработка | Tagged , , , | Leave a comment

Устав проектной команды

Адептам RUP посвящается. Аминь.

ustavА сегодня речь пойдет о процессах. Ибо правильно поставленный процесс, в купе c магией 80 уровня правильно распределенными по ролям людями, увеличивает вероятность успеха IT-проектов на 146%.

Таки да, вы будете смеяться надо мной за мои банальности, но наблюдаемая мной реальность заключается в том, что 3/4 IT-команд пытаются создавать продукты вне какого-либо процесса. Я не имею ввиду отсутствие в этих командах 5-го уровня CMMI, я имею ввиду хаос. Периодически, благодаря гениальности отдельно взятых личностей. результатом этого хаоса является успешный продукт. Однако лично мне, гораздо спокойнее спать, когда я работаю в рамках определенного процесса.

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

Posted in Разработка | Tagged , | Leave a comment

Analyze This

— Вам, наверное, не часто приходится слышать слово «нет»?
— Почему же? Часто. Только обычно это звучит так: «Нет, нет, пожалуйста, не надо!»

Впрочем, я отвлекся… Вообще я хотел написать про аналитиков. Ибо я хочу себе в отдел аналитика. Может бизнес-аналитика, может системного аналитика, может аналитика требований — черт бы их разобрал. Я вот даже специально открыл википедию и покурил определения, как для системного, так и для бизнес… Не помогло. При этом, я знаю, что я от такого аналитика хочу. Вот полный список: Continue reading

Posted in Разработка | Tagged , , , | Leave a comment

Эссе о попугаях

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

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

Не смотря на всю свою «ущербность»  Scrum работает, да. Continue reading

Posted in Разработка | Tagged , | 2 Comments

Побочные эффекты

Есть такой шаблон поведения проектных команд – Отраженная боль. Суть его в том, что часто команда решает проблему непосредственно там, где эта проблема себя проявляет (пруфлинк) вместо того, что бы осознать причину проблемы и решить ее наиболее эффективно.

Казалось бы, все просто – видим проблему, применяем какой-нибудь Root-Cause Analysis, лечим причины и пожинаем лавры успеха. Однако, как показывает суровая реальность, вместо лавров успеха мы очень часто получаем наноболт! Continue reading

Posted in Разработка | Tagged , | Leave a comment

Размер не имеет значения?

В конце 2013 года, я участвовал в IT-Пати «Лицом к лицу». В рамках этого мероприятия представители IT-компаний Томска «продавали» себя выпускникам и студентам профильных вузов. Компании были разные – начиная от стартапов и небольших веб-студий и заканчивая всемирно известными брендами, такими как Элекард, например.

Так вот, в ходе кулуарных бесед с потенциальными работниками, а так же в ходе анализа обратной связи от них, всплыли забавные убеждения, следствием которых явилось «Мы не хотим работать в больших компаниях» Не хотим,  потому что: Continue reading

Posted in Разработка, Студенты | Tagged | 1 Comment

You are welcome!

Таки да, я его открыл… Идея публикации разного на отдельно выделенном для этого сайте, засела у меня голове год назад. Однако, как это обычно бывает, сначала я страдал перфекционизмом (надо крутой дизайн и прочее бла-бла-бла), а потом я тупо не находил времени… Не только на cto-blog. Но и на ЖЖ. Вот, нашел. По крайней мере для того, что бы поднять сайт. Пока перетащил сюда ряд материалов со своего личного ЖЖ, в будущем материалы «о работе» буду публиковать сюда.

Да, дизайн гавно, но когда-нибудь я и это исправлю. Цель на этот год — генерировать адекватный контент, а дальше видно будет :) В общем, добро пожаловать, други мои!

Posted in Без рубрики | Leave a comment

Тестовые задания

Я тут всячески развлекаю себя размышлениями о том кто я  и чего я собственно хочу, собеседованиями и тестовыми заданиями. Пока что несомненным лидером в нескольких номинациях (креативность, юмор и пацаныващеребята) является тестовое задание на позицию системного аналитика от компании ДубльГис

Собственно задание

Перед Вами система — сказка “Золотая рыбка”.
Требуется:
  • Описать назначение системы
  • Указать участников системы, объекты системы
  • Проставить взаимосвязи между участниками системы и объектами
  • Перечислить возможные функции каждого из участников системы
  • Описать все возможные сценарии системы
  • Визуально изобразить один из сценариев
  • Сделать общее описание дальнейшего развития системы
  • Выборочно описать один из сценариев возможного развития системы
Я аплодировал стоя!
P.S.Результат выполнения тут. Задание принято.
Posted in Без рубрики | Tagged , | Leave a comment

Мантра продукта

Забавные вещи происходят в компании, когда мы начинаем разрабатывать что-то новое… Офис полнится слухами, недомолвками и прочей суетой. Большая часть людей занята делами, не относящимися непосредственно к новому продукту — изучением библиотек, технологий и все такое. Авангард, в виде аналитиков и архитекторов  корпят над требованиями, и пытаются наваять эскизы архитектуры руководствуясь записями на салфетках и своей особой, архитекторской магией. Continue reading

Posted in Разработка | Tagged | Leave a comment

Needs vs features: подмена понятий

Есть такая хрень в разработке ПО — пирамида требований. В верхней части stakeholder needs, в средней features, в нижней software requirements. Вышестоящий уровень определяет нижестоящий.

Stakeholder needs — хотелки заинтересованных лиц. Continue reading

Posted in Разработка | Tagged | Leave a comment

О пользе ролевых игр

…я все о требованиях :) Уж не знаю, о чем вы там подумали, когда открывали эту ссылку.

Ролевые игры, или обыгрывание ролей — яйцерезка для разработчика. Ибо порой, лишь сев на место пользователя, разработчик понимает, как ущербно и однобоко его видение проблемы. Continue reading

Posted in Разработка | Tagged | Leave a comment

Создание мотивации у заинтересованных лиц

В продолжение вот этого поста  Stakeholder requests, хочется сказать несколько слов о том, как мотивировать заинтересованных лиц на работу :)

Вероятно, некоторым из вас известны проблемы, которые возникают в рамках анализа требований. Эти проблемы были описаны в книге ‘Принципы работы с требованиями к программному обеспечению Унифицированный подход’ (в оригинале — ‘Managing Software Requirements: A Unified Approach’ by Dean Leffingwell and Don Widrig) и известны как синдромы «Да, но», «Неоткрытых руин» и «Пользователя и разработчика». Continue reading

Posted in Разработка | Tagged | Leave a comment

Stakeholder requests

Инвесторы, пользователи и разработчики относятся к различным социальным группам, имеют различную мотивацию, опыт, цели и так далее. Тем не менее, когда речь заходит о разработке (или внедрении) программного обеспечения, эти три социальные группы вынуждены сотрудничать ради успеха всего мероприятия. Что получается из такого сотрудничества? Да разное получается. Например, вот такое. Continue reading

Posted in Разработка | Tagged | Leave a comment

Начальник — подчиненный

Инсайт…

Posted in Разработка | Tagged | Leave a comment

Мне нечем заняться

…нередко слышу от коллег подобное. Нет, не от всех, слава Богам.
Граждане, если вы страдаете подобным недугом (да, да, именно недугом) — объясняю, что отсутствие заданий от руководства означает, что у вас есть следующие возможности:

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

Иначе вы тупо проебываете свой главный ресурс — время. На нытье, на индульгирование, на социальные сети и все такое.

Благодарности на мой кармический счет, пожалуйста.

Posted in Разработка | Tagged | Leave a comment

Magic and Software Engineering

Как вы думаете, чем мы руководствуемся принимая то, или иное решение относительно требований, архитектуры, кода и других артефактов? Чем чем… Да вот чем :) Шар для принятия решений! Вот он, самый главный, самый важный и самый безотказный интсрумент инженера! Вы можете купить Шар как в виде отдельного переносимого устройства, так и использовать программные реализации (например, скачать тут http://windows.microsoft.com/ru-RU/windows/downloads/personalize/gadgets

Шар очень прост в использовании. Вы формулируете вопрос, относительно той, или иной проблемы и обращаетесь к Шару. Ответ Шара есть 100% верное руководство к действию. Вот несколько из возможных вариантов ответа Шара:

P.S. Это не шутка. Мы действительно так делаем :)

Posted in Без рубрики | Tagged | Leave a comment