среда, 4 ноября 2009 г.

Одна фича – один релиз!

Уф, дело к ночи – готовь калачи! Сбылась мечта девелопера – русский релиз новой версии Aml Pages упал на сайт! А то, чуялось мне всё, мерещилось, что уже попер “ползучий фичеризм”. А боюсь я его пуще огня и багов кромешных. Нет тюрьмы, хуже чем в своей голове. А П.Ф. это не проста тюрьма, это прям Алькатрасс эдакий :)

Очень давно наблюдаю один и тот же эффект. Чем больше впихивается фич в одну версию, тем тяжелее релиз. Мозги начинают разбрасываться вразнобой, и вместо того чтобы сосредоточить все силы на вылизывании кода, начинаешь кидаться из стороны в сторону. А в результате – один большой комбайн, который делает многое. И всё это “многое” одинаково херово нехорошо.

  • Фича одна и только одна: сосредотачиваемся на единственной фиче и уж делаем ее – так делаем. Пусть не всем нужна именно эта фича, но кому нужна – получают ее в доведенном до ума виде.
  • Use-case подход: сосредоточение на единственной фиче позволяет максимально использовать use-case аналитику. Больше внимания тратим не на херь техническую нюансы решения, а на use-case анализ. Продумываем и делаем до конца пусть один, но вполне четкий сценарий использования софтины. И клиент получает не набор бессвязных приблуд, а некоторый, вполне конкретный способ решения своих вполне конкретных задач (следует читать: “некоторый, вполне конкретный стимул поделиться денюжками”).
    К слову говоря, вот именно сейчас отложил пару наиклевейших идей, только потому, что никак толком не вырисовывалась ясность в вопросе: как и зачем это будет использоваться юзерами. А главное: пока мужественно забил на эти клевые придумки – а это было непросто, потому как клёвые - и в голове идеи доточились, и варианты решений появись. А рванул бы как на сто метров – точно делов бы наворотил.
  • Быстрый релиз равно быстрый feedback: при быстром релизе пользователи раньше получают финальную версию. Все просто: несомненно бету качают значительно меньше, чем финальную версию. Поток возрастет – возрастет и feedback. А все таки сотни и тысячи пользователей наверняка смогут предложить любопытных мыслей больше, чем десятки хоть и маститых бета-тестеров.
  • Быстрый релиз равно быстрый баг-фикс: фичи фичами, но от багфикса в новой версии никуда не деться. А значит, старинные пользователи получат и более быстрый баг-фикс. Чем плохо?
  • Огонь и движение: ударим новой версией по бездорожью и конкурентам. Пусть версия и не революционная, но все равно – “а шоб не дремали”. Пока новая версия “прикрывает нас огнем”, можно спокойно “окопаться” и поразмышлять над будущим движением вперед.
  • Как так? Нарушаем-с? если не отметить, то все написанное будет полуправдой (что есть “наглая ложь”). Сколько раз нарушал это правило быстрого релиза, вот ровно столько раз в жопе ней самой и сидел. Ни разочка меня расплата не миновала. Неспроста же!?!

Один релиз – один день: это еще одно сугубо эмпирическое правило. Правда, оно уже и не только, да и не столько к самой разработке как таковой относится, поэтому о нем как-нибудь отдельно.

P.S. просто не могу молчать: убить мало этот пилять Сбербанк! С кризисом они мать-иво борются! Платеж от 29 июля… Знаете когда деньги пришли? Седьмого сентября! Нормально, да!?!
Ладно, продолжаем разговор – “Адские клоуны. Часть вторая”. Платеж от 5 октября, сегодня 4-ое ноября. Как вы думаете, пришли денюжки!?! Может убрать их из способов платежей нах!?!

2 комментария:

  1. 1. Пишется новая фича на Windows
    2. Выкладывается виндовый релиз
    3. Новая фича отлаживается на Linux и добавляется что то новое
    4. Выкладывается линуксовый релиз
    5. Новые фичи отлаживаются на Mac OS X и добавляется нечто новое
    6. Выкладывается маковый релиз
    7. Новые фичи отлаживаются на Windows и добавляется нечто
    8 ... и так по кругу, непрерывно ...

    ОтветитьУдалить
  2. Я скорее писал про фичи в контексте use-case аналитики - т.е. один конкретный сценарий использования юзером, конкретное решение его конкретной задачи.

    Простой пример: в Aml Pages 9.14 появились отметки для узлов дерева (флажки, отмечено\не-отмечено). Ну дык вот отображение оных флажков, манипуляция ими в дерева, да и даже фильтры данных по флажкам по сути все равно одна фича в понимании use-case, т.к. решает по сути одну задачу пользователя: манипуляция данными и выборки по данным.

    А вот всякая остальная муть вроде мульти-категорий и\или расширенной навигации через букмарки это уже отдельные фичи в том же самом контексте use-case анализа, т.к. решает уже совершенно другую, пусть хоть и соседнюю, задачу пользователя...

    ОтветитьУдалить