face

IT-аллегория: послесловие

Мою недавнюю IT-аллегорию легко прочесть двумя неправильными способами. Вернее, усмотреть в ней две идеи, которых я туда не вкладывал, и которые, в общем случае, я не считаю верными. А именно:
  1. Создавать универсальные инструменты, реализующие фундаментальные обобщения, — это неправильно. Следует изготавливать маленькие и простые инструменты, решающие конкретную задачу, и не более того.
  2. Изготавливать маленькие и простые инструменты, решающие конкретную задачу, и не более того, — это неправильно. Следует создавать универсальные инструменты, реализующие фундаментальные обобщения.
Ни то, ни другое, в целом, я не считаю универсально правильным подходом, да и не для того, чтобы продемонстрировать преимущество одного перед другим, писал я свой текст. Писал я его, чтобы выразить совсем другую мысль:
  • Адаптация системы, универсальной для одного класса задач, для решения задач из другого класса — это неправильно. При этом теряются преимущества от универсальности системы, но приобретаются накладные расходы в виде общей сложности решения.
С этим утверждением вряд ли кто-то станет спорить, во всяком случае, оно куда менее спорное, чем второе утверждение, составляющее мою точку зрения:
  • Для каждого класса задач следует проводить его детальный анализ, после чего разрабатывать систему, реализующую фундаментальное обобщение именно для данной сферы.
Следствием этого утверждения является вывод о том, что разработка в условиях жёсткого временнóго прессинга вредит качеству продукта, хотя, возможно, и способствует (в случае коммерческого продукта) лучшему его продвижению на рынке.

In English: IT Allegory: Afterword
Tags:
Для каждого класса задач следует проводить его детальный анализ, после чего разрабатывать систему, реализующую фундаментальное обобщение именно для данной сферы.


Но не стоит забывать о том, что данное решение может быть применимо и к синонимичному классу задач в асболютно другой сфере человеческой деятельности.
Reply to your post...
Это в каких областях такие гомологичные классы встречаются?

"Детальный анализ" -- это абстрактно звучит, по-моему. Что должно быть, по-моему, -- это набор законченных user stories, обозрев которые и можно будет сказать, что из логики является общим. На основе этого куска и делать "универсальный" инструмент. Естественно, этот набор можно и нужно обсуждать как можно шире, тем более что его как раз легко представить в виде, понятном любому потенциальному пользователю, а значит -- вообще любому, кто так или иначе причастен к его изготовлению.
Следствие -- не следует делать не используемых степеней свободы "на всякий случай". Надо конкретизировать -- в каком именно случае нужно будет крутить вот эту ручку.
Ну сразу всего ведь не предусмотришь, верно? Все инструменты развиваются, и важно предугадать направление развития, чтобы не пришлось потом ломать и/или переделывать. Скажем, в моём первом прототипе был превосходный потенциал для развития в сторону увеличения числа режимов вращения, но не было потенциала для реализации возвратно-поступательного движения.
На самом деле проблемы были и другие. В том числе и гнездо, на котрое присобачивалась ручка было настолько проприетарно, что даже другая ручка от того же вендора не могла быть использованна. То есть никакой заботы о левшах.
Re: Reply to your comment...
Конечно. Ну не было в изначальном проекте сменности ручек. А если ручку
оторвать с мясом, то нечего удивляться, что туда трудно воткнуть другую.
постой... но ведь отвертку в качестве фаллоимитатора юзают!
как же ты не учёл это?!!!
Re[2]: Reply to your comment...
Дык у тебя и рукоятнка не сменная! И возвратно-поступательные не предусмотрены...