[Наброс] Почему нам так нравится разрабатывать фреймворки и платформы?
От: 0x7be СССР  
Дата: 02.05.14 09:09
Оценка: 44 (8) +7

"Что делают программисты, когда собираются вместе? Правильно — пишут фреймворк"
(с) Волков, Танки Онлайн, неточная цитата.

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

Я лично участвовал в пяти проектах, которые развивались по этой схеме. Вот результаты:
1. Три полностью провалились (т.е. были отменены после того, как сожрали изрядно денег и не дали никакого полезного результата).
2. Один еле вытащили до состояния shippable-продукта (т.е. все обещанные плюшки от разработки платформы пошли лесом, оставив переусложненную и нестабильную кодовую базу, в которую были зарыты крупные деньги).
3. Один, участником которого я являюсь сейчас, так же борется за жизнь, но есть сильный риск того, что он повторит первый или второй сценарий.
Про случаи, о которых я знаю по наслышке, я рассказывать не буду, но их ещё больше.

"Тенденция, однако" (с)


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

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

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

Зло, о котором я говорю — это именно такой подход, а не результат.

Вообщем, наброс сделан, жду ваших мнений
Re: [Наброс] Почему нам так нравится разрабатывать фреймворки и платформы?
От: jazzer Россия Skype: enerjazzer
Дата: 02.05.14 09:40
Оценка: 18 (1) +9 :))) :))) :))) :))
Здравствуйте, 0x7be, Вы писали:

0>Моя скромная гипотеза, объясняющая этот феномен, состоит в том, что типичным технарям просто психологически комфортнее делать технологию, а не конечный продукт, обладающий business-value. Разработчики — эгоцентристы, им некомфортно влезать в шкуру пользователя, учиться смотреть на мир его глазами, понимать его проблемы, получать от него негативный фидбек. Им гораздо проще и интересное заниматься технологией ради нее самой, потому что там не надо выходить из своей зоны комфорта.


Зоны комфорта, бла-бла...
Просто фреймворки и платформы гораздо прикольнее разрабатывать , вот и всё.

jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[2]: [Наброс] Почему нам так нравится разрабатывать фреймворки и платформы?
От: 0x7be СССР  
Дата: 02.05.14 09:52
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Зоны комфорта, бла-бла...

J>Просто фреймворки и платформы гораздо прикольнее разрабатывать , вот и всё.
Вот взял и всё опошлил

J>

Re: [Наброс] Почему нам так нравится разрабатывать фреймворки и платформы?
От: Географ Россия нет
Дата: 02.05.14 10:34
Оценка: +1 -1
Здравствуйте, 0x7be, Вы писали:
0>

0>"Что делают программисты, когда собираются вместе? Правильно — пишут фреймворк"
0>(с) Волков, Танки Онлайн, неточная цитата.

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

Тем не менее, любое успешное решение, пережившее не одну версию, изначально создавалось на какой-либо платформе. Просто поток кода, склёпанный быстро, решает только одну задачу, на вторую его уже не согнуть.
Re[2]: [Наброс] Почему нам так нравится разрабатывать фреймворки и платформы?
От: 0x7be СССР  
Дата: 02.05.14 10:45
Оценка:
Здравствуйте, Географ, Вы писали:

Г>Тем не менее, любое успешное решение, пережившее не одну версию, изначально создавалось на какой-либо платформе.

Прямо таки любое?

Г>Просто поток кода, склёпанный быстро, решает только одну задачу, на вторую его уже не согнуть.

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

В любом случае, я критикую не идею разработки платформы в принципе, я критикую метод принятия решения.
Re[2]: [Наброс] Почему нам так нравится разрабатывать фреймворки и платформы?
От: Kernighan СССР  
Дата: 02.05.14 10:57
Оценка: +1
Здравствуйте, jazzer, Вы писали:

J>Здравствуйте, 0x7be, Вы писали:


0>> Им гораздо проще и интересное заниматься технологией ради нее самой, потому что там не надо выходить из своей зоны комфорта.


J>Зоны комфорта, бла-бла...

J>Просто фреймворки и платформы гораздо прикольнее разрабатывать , вот и всё.

Тавтология. Вот 0x7be и пытается объяснить, почему "прикольнее".
Re: [Наброс] Почему нам так нравится разрабатывать фреймворки и платформы?
От: Artifact  
Дата: 02.05.14 16:12
Оценка: 6 (1) :)
Здравствуйте, 0x7be, Вы писали:

0>Я лично участвовал в пяти проектах, которые развивались по этой схеме.

Да мы с вами коллеги

0>

0>"Тенденция, однако" (с)

Подтверждаю.

0>Я не говорю, что фреймворки и платформы — это зло и их не надо разрабатывать в принципе.

У вас была одна проблема. Для её разработки вы решили сделать/использовать платформу/фреймворк — теперь у вас две проблемы

0>Есть ситуации, когда такой подход к разработке полностью оправдан. Но ни в одном из упомянутых мною пяти проектов не было сделано никакого серьёзного анализа для выбора стратегии разработки. Все оправдания для выбранного пути сводились к чисто устному "бла-бла-бла, снижение затртат, бла-бла-бла". Никто не посчитал, насколько затраты снизятся, никто не посчитал ни одной цифры, не провёл анализ рисков такого подхода и т.п.

Собственно выделенное.

0>Зло, о котором я говорю — это именно такой подход, а не результат.

+100500

Ну, и как бы, вот https://medium.com/p/db854689243
__________________________________
Не ври себе.
Re: [Наброс] Почему нам так нравится разрабатывать фреймворки и платформы?
От: andyag  
Дата: 02.05.14 21:24
Оценка:
Здравствуйте, 0x7be, Вы писали:

0>Вообщем, наброс сделан, жду ваших мнений


Как только программист глядя на описание новой фичи задаёт вопрос "зачем?", его тут же выгоняют в тимлиды, а потом в менеджеры проектов. Программистами остаются только те, кого интересует только написание кода за деньги
Re[2]: [Наброс] Почему нам так нравится разрабатывать фреймворки и платформы?
От: 0x7be СССР  
Дата: 02.05.14 21:26
Оценка:
Здравствуйте, andyag, Вы писали:

A>Как только программист глядя на описание новой фичи задаёт вопрос "зачем?", его тут же выгоняют в тимлиды, а потом в менеджеры проектов. Программистами остаются только те, кого интересует только написание кода за деньги

Да, примерно так оно и есть
Толковых лидов и менеджеров не хватает
Re: [Наброс] Почему нам так нравится разрабатывать фреймворки и платформы?
От: мыщъх США http://nezumi-lab.org
Дата: 03.05.14 03:35
Оценка:
Здравствуйте, 0x7be, Вы писали:


0>Про случаи, о которых я знаю по наслышке, я рассказывать не буду, но их ещё больше.

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

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

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

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

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

ЗЫ. когда я начинал изучать JS, то первое что я стал писать -- это логгер. шеф покрутил пальцем и виска и показал на готовый, которым до сих пор пользуюсь.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[2]: [Наброс] Почему нам так нравится разрабатывать фреймворки и платформы?
От: 0x7be СССР  
Дата: 03.05.14 09:04
Оценка:
Здравствуйте, мыщъх, Вы писали:

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

Они как раз очень интересны с точки зрения предотвращения хождения по тем же граблям.

М>ЗЫ. когда я начинал изучать JS, то первое что я стал писать -- это логгер. шеф покрутил пальцем и виска и показал на готовый, которым до сих пор пользуюсь.

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

Что характерно, в моём сообщении уже не первый раз видят наезд на концепцию плафтормы/каркаса в принципе. Либо я так неудачно выразился, либо это тоже особенность мышления нашего брата-программиста
Re: [Наброс] Почему нам так нравится разрабатывать фреймворки и платформы?
От: Osaka  
Дата: 03.05.14 09:58
Оценка: +1 -1
0>технарям просто психологически комфортнее делать технологию, а не конечный продукт
Всё гораздо проще, программистам некомфортно делать бесполезную работу (которую можно автоматизировать и переложить на машину). Для кого эта разница в "написании кода за деньги" незаметна, тот, скорее всего, не программист, а простой клерк-делопроизводитель.
http://ru.wikipedia.org/wiki/Don%E2%80%99t_repeat_yourself
Появляется, например, бизнес-задача поменять 1 слово в 100 похожих экранных форм. С фреймворком эта задача решается изменением 1 места в коде, а без фреймворка — долгим и внимательным ручным тиражированием этого изменения в 100 откопипастенных-с-изменениями мест, и последующим отловом ошибок, сделанных при тиражировании.

0>Вообщем

"Нутыпонел".
Re[2]: [Наброс] Почему нам так нравится разрабатывать фреймворки и платформы?
От: 0x7be СССР  
Дата: 03.05.14 11:34
Оценка:
Здравствуйте, Osaka, Вы писали:

0>>технарям просто психологически комфортнее делать технологию, а не конечный продукт

O>Всё гораздо проще, программистам некомфортно делать бесполезную работу (которую можно автоматизировать и переложить на машину). Для кого эта разница в "написании кода за деньги" незаметна, тот, скорее всего, не программист, а простой клерк-делопроизводитель.
O>http://ru.wikipedia.org/wiki/Don%E2%80%99t_repeat_yourself
O>Появляется, например, бизнес-задача поменять 1 слово в 100 похожих экранных форм. С фреймворком эта задача решается изменением 1 места в коде, а без фреймворка — долгим и внимательным ручным тиражированием этого изменения в 100 откопипастенных-с-изменениями мест, и последующим отловом ошибок, сделанных при тиражировании.
Ты описываешь ситуацию оправданного внедрения обобщенного решения. Я же говорю о тех мыслительных процессах, которые приводят к появлению мертворожденных фреймворков и платформ, чему я был свидетелем неоднократно.

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

В чем причина такого положения дел?
Я предложил гипотезу
Re[3]: [Наброс] Почему нам так нравится разрабатывать фреймворки и платформы?
От: Osaka  
Дата: 03.05.14 11:58
Оценка:
0>городят огромные и нестабильные решения, которые потом на практике ещё и с трудом решают прикладные задачи под которые создавались. То есть на поверку получается та же самая бесполезна работа, которая обходится намного дороже.
0>В чем причина такого положения дел?
В том, что иногда видят только одну крайность, и игнорируют другую. Необходим баланс между решением сиюминутной задачи и созданием задела на будущее. И для тех, кто сегодняшнюю задачу сдал/премию получил/а дальше хоть трава не расти, и для тех, кто тратит время на создание расширяемости, которая потом не будет использоваться.
Re[4]: [Наброс] Почему нам так нравится разрабатывать фреймворки и платформы?
От: 0x7be СССР  
Дата: 03.05.14 12:19
Оценка:
Здравствуйте, Osaka, Вы писали:

O>В том, что иногда видят только одну крайность, и игнорируют другую. Необходим баланс между решением сиюминутной задачи и созданием задела на будущее. И для тех, кто сегодняшнюю задачу сдал/премию получил/а дальше хоть трава не расти, и для тех, кто тратит время на создание расширяемости, которая потом не будет использоваться.

Ок, к моей "психологической гипотезе" добавим банальные недостаток компетенций
Видимо, так же можно говорить и про несовпадение целей проекта и его исполнителей.
Re[2]: [Наброс] Почему нам так нравится разрабатывать фреймворки и платформы?
От: andyag  
Дата: 03.05.14 13:55
Оценка: 3 (1) +3
Здравствуйте, Artifact, Вы писали:

A>Здравствуйте, 0x7be, Вы писали:


0>>Я не говорю, что фреймворки и платформы — это зло и их не надо разрабатывать в принципе.

A>У вас была одна проблема. Для её разработки вы решили сделать/использовать платформу/фреймворк — теперь у вас две проблемы

А потому что не надо "брать и делать фреймворк". Фреймворк должен появляться постепенно как результат ежеминутного рефакторинга существующего работающего кода.
Re[2]: [Наброс] Почему нам так нравится разрабатывать фреймворки и платформы?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 03.05.14 13:56
Оценка: +1
Здравствуйте, Географ, Вы писали:

Г>Тем не менее, любое успешное решение, пережившее не одну версию, изначально создавалось на какой-либо платформе. Просто поток кода, склёпанный быстро, решает только одну задачу, на вторую его уже не согнуть.


История и Unix, и Windows — история успеха того, что началось как "склёпанный быстро поток кода", превращённый в платформу, пережил несколько десятилетий.
The God is real, unless declared integer.
Re: [Наброс] Почему нам так нравится разрабатывать фреймворки и платформы?
От: hi_octane Беларусь  
Дата: 03.05.14 15:53
Оценка: +1
0>Вообщем, наброс сделан, жду ваших мнений

Программисты начиная с Hello World используют уже готовые фреймворки. Как следствие понимание что какое-то количество обобщённого кода может решать спектр задач и это лучше чем лепить уникальное решение для каждой в отдельности, приходит очень-очень быстро. Собственно без выделения общих участков (функции, классы, компоненты), программистом стать нереально. Исключения конечно есть, например тут код РАБОЧЕЙ игры, но всё-таки нереально.

Опыт по созданию обобщённого кода приходит годами позже. Иногда отсутствие опыта на одних уровнях (архитектура, бд, использование готовых решений), удаётся компенсировать опытом на других уровнях. А иногда получается то что ты наблюдаешь.
Re[2]: [Наброс] Почему нам так нравится разрабатывать фреймворки и платформы?
От: CreatorCray  
Дата: 04.05.14 07:20
Оценка: 2 (1) +1
Здравствуйте, Osaka, Вы писали:

0>>технарям просто психологически комфортнее делать технологию, а не конечный продукт

O>Всё гораздо проще, программистам некомфортно делать бесполезную работу (которую можно автоматизировать и переложить на машину). Для кого эта разница в "написании кода за деньги" незаметна, тот, скорее всего, не программист, а простой клерк-делопроизводитель.
O>http://ru.wikipedia.org/wiki/Don%E2%80%99t_repeat_yourself

O>Появляется, например, бизнес-задача поменять 1 слово в 100 похожих экранных форм. С фреймворком эта задача решается изменением 1 места в коде, а без фреймворка — долгим и внимательным ручным тиражированием этого изменения в 100 откопипастенных-с-изменениями мест, и последующим отловом ошибок, сделанных при тиражировании.


Ой ребе, не начинайте.
Это работает и в обратную сторону: надо сделать какую нибудь простую штукенцию, но для этого надо создать фабрику фабрик синглтонов фабрик объектов, написать несколько XML, которые это всё описывают и с подвыподвертом это всё вызывать.
Re[2]: [Наброс] Почему нам так нравится разрабатывать фреймворки и платформы?
От: 0x7be СССР  
Дата: 04.05.14 17:09
Оценка:
Здравствуйте, hi_octane, Вы писали:

_>Программисты начиная с Hello World используют уже готовые фреймворки. Как следствие понимание что какое-то количество обобщённого кода может решать спектр задач и это лучше чем лепить уникальное решение для каждой в отдельности, приходит очень-очень быстро. Собственно без выделения общих участков (функции, классы, компоненты), программистом стать нереально. Исключения конечно есть, например тут код РАБОЧЕЙ игры, но всё-таки нереально. Опыт по созданию обобщённого кода приходит годами позже. Иногда отсутствие опыта на одних уровнях (архитектура, бд, использование готовых решений), удаётся компенсировать опытом на других уровнях. А иногда получается то что ты наблюдаешь.

Одно дело — обобщать код в работающей (хотя бы частично) программе, другое дело — вместо работающей программы писать неработающий фреймворк.
Я говорю именно о втором феномене.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.