LINUX.ORG.RU
ФорумTalks

[разработка] Поделитесь историями успеха

 


0

0

Многие из нас знают об «эффекте второй системы».

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

Примеры — не надо идти далеко. Свиста, четвертые кеды — самое первое, что приходит на ум. Ну еще компиз, и я бы назвал амарок.

Фредерик Брукс пишет об «эффекте третьей системы». Это когда к этой куче говна применяют бритву Оккама, выкидывая все лишнее, когда за каждую фичу нужно бороться, чтобы она нашла свое место. И когда получается что-то достаточно удобное в работе и сопровождении.

Так вот, о чем я.

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

★★★★★

Да, в основном все делают по-старинке: лепят кучу говна, потом к этой куче сооружают костыли, и в итоге получается мегакуча говна.

Я сам так делаю.

lester_dev ★★★★★
()
Ответ на: комментарий от lester_dev

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

anonymous
()
Ответ на: комментарий от lester_dev

Меня интересуют те, кто смог сделать не так, а из той кучи говна сделать конфетку. Или переделать. Или по канону Брукса:

простые требования --> идеальный продукт без лишних запчастей --> тут заказчика понесло --> много фичей --> ПОЛНАЯ ГОДЗИЛЛИНА Ж-ПА --> все падает --> выкинули все ненужное --> отрефакторили все, что нужно --> сопровождабельный, простой продукт.

shimon ★★★★★
() автор топика
Ответ на: комментарий от shimon

>выкинули все ненужное

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

lester_dev ★★★★★
()

У Майкрософта всегда так, причём в 2 итерации.

MS-DOS. 1-2-3, затем 3.0-3.20-3.30

Windows. 1-2-3, затем 3.0-3.1-3.11

Windows NT (1 и 2 не было). 3.5-4-5, затем 2000-XP-SP2

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

А четвёртые версии у Майкрософта всегда хреновые. Хоть дос, хоть виста.

question4 ★★★★★
()
Ответ на: комментарий от question4

>Windows NT (1 и 2 не было)

были, только назывались не Windows NT.

lester_dev ★★★★★
()
Ответ на: комментарий от anonymous

> Но и на этот, и в следующие разы всегда получается говно, его приходится прикрывать сверху красочным брезентом, чтобы люди не пугались.

Да, а если это говно все развалиться - и того лучше, можно будет ещё бабла сдернуть. Естесно, опенсурсникам этого не понять.

anonymous_num_0
()
Ответ на: комментарий от shimon

простые требования --> идеальный продукт без лишних запчастей --> тут заказчика понесло
                                /\                                        \/
                       отрефакторили все, что нужно                  много фичей 
                                /\                                        \/
                      выкинули все ненужное  <-- все падает <-- ПОЛНАЯ ГОДЗИЛЛИНА Ж-ПА

//fixed

ono
()
Ответ на: комментарий от anonymous_num_0

> Да, а если это говно все развалиться - и того лучше, можно будет ещё бабла сдернуть

а если заказчик более-менее грамотный, он, в зависимости от договора, может и претензии предъявить

ono
()
Ответ на: комментарий от lester_dev

+100
Мы с тобой одной крови, ты и я.

vada ★★★★★
()
Ответ на: комментарий от shimon

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

Пробовал неоднократно. Не поспеть за идеями о новых костылях!

Пока что-то привожу в порядок, систематизирую, упрощаю.... Влетает директор: - Бля, бросай все нах! Мне пужно чтов уже вчера работала вот такая фича!
Я ему: - Дук хер! Ибо ты сам меня нагнул чтоб как раз такая фича у нас не в коем случае не могла быть! Я под это все костыли еще в прошлом году поставил!
- Не! Все нах! Кризис, мля!
....
Ну и так далее

vada ★★★★★
()

Убедил я как то своего друга Линуса что нужно ему операционку делать....

anonymous
()
Ответ на: комментарий от anonymous_num_0

> Да, а если это говно все развалиться - и того лучше, можно будет ещё бабла сдернуть. Естесно, опенсурсникам этого не понять.

Хинт: иногда программа пишется не ради того, чтобы ее писать, причем для себя. Что, будешь бабло с левого кармана в правый перекладывать?

shimon ★★★★★
() автор топика
Ответ на: комментарий от lester_dev

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

vada ★★★★★
()
Ответ на: комментарий от shimon

> Хинт: иногда программа пишется не ради того, чтобы ее писать, причем для себя. Что, будешь бабло с левого кармана в правый перекладывать?

Опенсурсник-нищеброд детектид. Работать можно только за бабло. Пока не заплатили - даже думать начинать противопоказано.

anonymous_num_0
()

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

shimon ★★★★★
() автор топика

Ну не знаю.. я обычно свои программы проектирую. Т.е. сначала усиленно думаю... строю на листочке схемы, а уж потом реализовываю.

hibou ★★★★★
()
Ответ на: комментарий от anonymous_num_0

> Опенсурсник-нищеброд детектид. Работать можно только за бабло. Пока не заплатили - даже думать начинать противопоказано.

Узколобое существо детектед.

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

Так понятнее?

shimon ★★★★★
() автор топика
Ответ на: комментарий от olegchir

> А как же agile?

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

shimon ★★★★★
() автор топика
Ответ на: комментарий от vada

> Я, например, точно не могу сказать про некоторые модули, участвуют они в работе, или просто место занимают. Выкидывать боюсь. Т.к. уже и сам потерял нить повествования.


для этого нужны тесты. выкидываешь, запускаешь, смотришь. profit!

kelyar ★★★★★
()

>Может быть, кто-нибудь из вас мог бы рассказать собственную историю успешного перехода от «второй» системы к «третьей»?

Практиковал такой подход на PHP при переходе от своего безымянного тогда ещё фреймворка «второй» системы к новому «третьей».

Была страшная каша многолетнего кода от разных проектов.

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

Слепил примитивную заглушку-загрузчик и начал добиваться её работоспособности мелкими расширениями и подключением готовых модулей/компонентов старой системы.

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

Один из редких случаев, когда получившееся решение мне нравится идеологически :)

..

Аналогично предстоит ещё делать на Java, но там будет и проще, и сложнее. Проще, потому что новая система будет несовместимой со старой. Сложнее - потому что совершенно новый уровень по функционалу будет.

...

Конкретных названий и ссылок на код не даю, а то опять скажут, что пиарюсь :D

KRoN73 ★★★★★
()

В enterprise такого ни разу не доводилось видеть/делать. Обычно на этапе "кучища гомна" менеджерам приходит мысль купить/сделать новый продукт. А в мелких проектиках для себя с количеством пользователей <= 100 было.

eXOR ★★★★★
()
Ответ на: комментарий от lester_dev

>Да, в основном все делают по-старинке: лепят кучу говна, потом к этой куче сооружают костыли, и в итоге получается мегакуча говна.

Соционика рулит. Типичный подход чёрного логика.

У белого - другая беда. Хороший прочный и расширяемый каркас, но жидкое и никакое мясо на нём. Ни интерфейса, ни юзабилити :)

Поэтому в проекте должны быть оба типа. БЛ пишет каркас, ядро, API. ЧЛ делает функционал, модули, интерфейс пользователя.

KRoN73 ★★★★★
()

актуально - ровно завтра начинаю строить эту самую "вторую систему" - правда не ради фишечек - старая в сопровождении слишком громоздка.

VladimirMalyk ★★★★★
()
Ответ на: комментарий от lester_dev

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

Я ещё с «детства на Форте» приучился всё делать как можно более модульным. «Одно слово должно состоять не более, чем из 7+/2 базовых слов», «За многоэкранные простыни кода - отлучать от программирования» и т.п.

Форт очень хорошо мозги чистит в этом смысле.

Thinking Forth! :)

KRoN73 ★★★★★
()
Ответ на: комментарий от anonymous_num_0

> Как же ты задолбал со совей соционикой. Хуже коммивояжера.

Если знать смысл его заклинательных фраз, то в принципе он дело сказал. Заклинательные фразы - гуглимы. Только лень..

olegchir
()
Ответ на: комментарий от vada

>Я, например, точно не могу сказать про некоторые модули, участвуют они в работе, или просто место занимают.

Гы. Гы-гы :D У меня фреймворк уже давно в голове не помещается даже на уровне ядра, не говоря уже о конкретных проектах-расширениях :) Самое смешное бывает иногда собираешься писать какой-то новый функционал, опишешь сперва сверху-вниз модель, чтобы потом расширять, а она - оп-па, и заработала. Оказывается, ты этот функционал уже пол-года тому назад, как написал. А API имеет уже отработанную логику в названиях и функционале. Вот оно и подхватилось.

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

Непередаваемые ощущение испытываешь, когда система вдруг в чём-то как бы сама работать начинает :)

KRoN73 ★★★★★
()
Ответ на: комментарий от kelyar

>для этого нужны тесты. выкидываешь, запускаешь, смотришь.

У микромодульной системы сложность тестов нередко оказывается выше сложности модуля :)

Я реализовывал у себя тест-юниты. Но хотя бы поверхностное тестирование отнимает уже втрое больше времени на написание модуля. А полное тестирование по всем возможным вариантам (кстати, это даже на уровне теории задача уже непростая)... Проще выкинуть и посмотреть что получится. Конечно, в софте по управлению АЭС такой подход не прокатит, но в Web'е - так эффективнее :)

KRoN73 ★★★★★
()
Ответ на: комментарий от olegchir

> Если знать смысл его заклинательных фраз, то в принципе он дело сказал. Заклинательные фразы - гуглимы. Только лень..

Да читал я. Он мне в укор Ка́рнеги поставил и тут же начал соционику пиарить. Мде.

anonymous_num_0
()
Ответ на: комментарий от anonymous_num_0

>Как же ты задолбал со совей соционикой.

Так работает же. Грех не поделиться :)

Если на форуме увидишь человека, который файлы редактирует через cat/less/echo, ты ему про vim/nano/mcedit хотя бы не скажешь, или подумаешь, что ну его, а то ещё скажет, что советами задолбали... :D

Я, вот, подскажу.

KRoN73 ★★★★★
()
Ответ на: комментарий от olegchir

>Если знать смысл его заклинательных фраз, то в принципе он дело сказал. Заклинательные фразы - гуглимы.

Фишка в том, что соционика - это именно язык по сути. Можно говорить «я сижу за устройством, представляющим из себя конструкцию из электронных компонентов, работающих по таким-то и таким-то принципам [лекция на 10 минут skipped], заключённым в металлический корпус», а можно сказать - «я работаю за компьютером».

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

И как из факта этого деления организовать более эффективную команду.

Кому интересно - пойдут гуглить или зададут вопрос. Кому неинтересно - пропустят :)

KRoN73 ★★★★★
()
Ответ на: комментарий от anonymous_num_0

>Он мне в укор Ка́рнеги поставил

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

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

> Так работает же. Грех не поделиться :)

Чего работает? Я тут на работку новую пристраивался. И тут мне кадровик и говорит:

- А ты кто по знаку задика?
- Не верю в это все равно.
- Но все же?
- Овен.
- Как замечательно! Как раз не хватало стихии огня!! По феншую нужно что бы все четыре стихии были в коллективе.

Что за маразм то? Вот, ты у меня такое же ощущение вызываешь. Впрочем, ещё одни тип бесит - Делин, но тот вообще фашист конченный, шебутной.

P.S. По поводу движка - не получилось. Аккурат сменил работу и совсем не до этого стало. Там свой кактус.

anonymous_num_0
()
Ответ на: комментарий от VladimirMalyk

>что за софтина, если не секрет?

PHP-фреймворк. GPLv3. Если детали интересуют - то в почту или Jabber. balancer@balancer.ru

А то на ЛОРе запарили уже с обвинениями в пиаре :D

KRoN73 ★★★★★
()
Ответ на: комментарий от anonymous_num_0

>Чего работает? Я тут на работку новую пристраивался. И тут мне кадровик и говорит

Таких кадровиков надо сразу ссаными тряпками гнать :D Если, конечно, он этими подходами при выборе работника пользоваться будет.

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

И поэтому _стереотипно_ не подходящий для данной профессии тип может прекрасно справиться с данной работой уже хотя бы только из-за одной своей ифнормационной развитости.

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

>Вот, ты у меня такое же ощущение вызываешь. Впрочем, ещё одни тип бесит - Делин, но тот вообще фашист конченный, шебутной.

Меня очень сложно отнести к фашистам :D Хотя бы потому, что мне постоянно приходится разрушать чужие стереотипы в вопросах кластеризации. Половой, национальной, психологической... :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

> И поставлю :) Карнегианство - принцип, удобный лишь для одного из 16 соционических ТИМов. И он под собой не имеет никакого базиса, голые субъективные наблюдения автора в достаточно узкой прослойке общества.

Те, кто не читал Карнеги внимательно, всегда думают, что он рекомендует просто всем льстить. Однако ж все совсем наоборот.

Да, и ещё раз да - БАНАЛЬНЫЕ ВЕЩИ. Что аж от зевоты челюсть сводит, но их нужно соблюдать! Я считаю, что мир ужасен именно из-за несоблюдения понятных и банальных вещей, начиная от поднаторевших заповедей.

anonymous_num_0
()
Ответ на: комментарий от KRoN73

> С соционическим типированием это не имеет ничего общего.

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

Вы даже не представляете, как люди слепо верили одному человеку на букву Г. Жизни, миллионы жизней положено на это было. Тоже классификацией занимался, сволота.

anonymous_num_0
()
Ответ на: комментарий от anonymous_num_0

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

Да, сам грешен, ибо тролль.

anonymous_num_0
()
Ответ на: комментарий от KRoN73

>>Да, в основном все делают по-старинке: лепят кучу говна, потом к этой куче сооружают костыли, и в итоге получается мегакуча говна.

>Соционика рулит. Типичный подход чёрного логика.

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

Absurd ★★★
()
Ответ на: комментарий от anonymous_num_0

>Это тебе кажеться, ибо твой мозг насквозь промыт книжками по соционике.

Тебя очень удивит, если я скажу, что я не прочитал ни одной книги по соционике? Более того, ни одной из них ни разу в глаза не видел? :D

>Вы даже не представляете, как люди слепо верили одному человеку на букву Г.

А соционика тут при чём? :)

>Тоже классификацией занимался, сволота.

Ну, например, люди совершенно _объективно_ делятся на мужчин и женщин. Ты против такой классификации? :)

KRoN73 ★★★★★
()
Ответ на: комментарий от Absurd

>По моему все программисты занимаются разгребанием такого вот кода "черных логиков" чтобы иметь его его в минимально поддерживаемом состоянии.

Не все :) Но ЧЛ среди программистов объективно много больше, чем БЛ.

ЧЛ - это любовь слепить что-то своими руками и увидеть что-то в действии. БЛ - это любовь к классификации и анализу, раскладыванию по полочкам. Ничего удивительного, что в программирование больше идут первые.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

> Тебя очень удивит, если я скажу, что я не прочитал ни одной книги по соционике? Более того, ни одной из них ни разу в глаза не видел? :D

Это, видимо, в конце каждой книжки самогипноза записано "и все что вы сейчас прочитали - вы знали изначально. Раз, два, три, КОНЕЦ".

> Ну, например, люди совершенно _объективно_ делятся на мужчин и женщин. Ты против такой классификации? :)

Смотря какие ты делаешь выводы из этого. Есть ещё объективные - цвет волос и глаз, рост. Что с этого то? А нет, гаденыш Г. поставил это на поток и исходя из этих параметров творил пакости.

anonymous_num_0
()
Ответ на: комментарий от anonymous_num_0

>Это, видимо, в конце каждой книжки самогипноза

Увы, соционика не имеет ничего общего с какими-либо психологическими техниками :) Это не средство воздействия, а средство изучения. При чём её базис вообще не антропоцентричен.

>Смотря какие ты делаешь выводы из этого.

Ну, и? Какие я выводы делаю, опасные для тебя?

Или знание о том, что некоторые люди лучше способны описать скелет проекта, а какие-то - мясо нарастить для тебя опасно? :D

Так это тут уже без всякой соционики звучало.

Заметь, соционика не делит людей на плохих или хороших. Она делит их на имеющих разные приоритеты в информационном обмене.

...

Мне кажется, что у тебя какая-то болезненная и идиосинкразия на соционику. При чём особенно это нездорово смотрится на фоне того, что у тебя о ней явно ни малейшего представления.

Как думаешь - нормально так ненавидеть нечто, с чем ты не только совершенно незнаком, но о чём у тебя фантазии просто предельно далёкие от реальности? :)

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.