tima: (Default)
[personal profile] tima
Если тут есть большие начальники, системные архитекторы, инженеры по интеграции и т.п. - вопрос к вам.

Как вы знаете, в свободное от ЖЖ и от работы в госпитале время, я помаленьку ковыряюсь в своей цистерне, которую я слудил, спаял, вкопал и обслуживал с 1997 года. Цистерна у меня нестандартная, сработанная исключительно под нашу заправку. Причем ее порывались сменить уже бессчетное количество раз. Не вру - каждый новый начальник Чукотки заправки приходил и первым делом заявлял - это чё у вас тут?! Цистерна что ли? НЕСТАНДАРТНАЯ??? В урну ее, срочно заменить на стандартную, чтобы "все как у людей"! Один раз в 1999 году даже посадили около 30 человек (не вру) на полгода - спроектировать, разработать, запустить в отладку, отработать и запустить в производство замену. А нас тогда было 7 человек на все про все. Мы вечерами и ночами проектировали третью версию своей существующей цистерны, а днями работали на сопровождении и всех изменениях, которые шли потоком. А они - 30 человек - только на разработке.

Когда мы выдали свою версию, их группу распустили. Тихо, мирно, ничего не говоря, потратив нехилые бабки, которые вполне могли нас сделать миллионерами. Но мы съели пуд соли и столько же дерьма вместо получения денег. Зато мы обрели бешеный опыт и поняли что такое мы сотворили, когда нас оставили, а тех 30 уволили. Но не в этом главное, главное, что наша цистерна жива с 1997 года, в то время как все приходившие начальники уже давно убраны. Перед тем как перейти от преамбулы к амбуле, скажу, что мной и французом-испанцем, с которым я все еще встречаюсь раз в год как минимум на ланч, в цистерне сделан движок, который позволяет расширить ее динамически за минуты, позволяет динамически за секунды переделывать любые ее отростки, наименования, поля, странички, графики, tree folders, со всеми их аттрибутами, никакое кодирование для этого не нужно. Вся цистерна существует в кэше и все, что видят потребители заправки - кэш. Если мне что-то надо в цистерне изменить, я спокойно это делаю, удовлятворяюсь результатом, а после просто пинаю кэш, при перезагрузке которого все результаты изменений попадают в видимую часть цистерны. Аналогично мной спроектирована система validations - все желаемые входные данные на входе в цистерну проверяются и откидывают незадачливого нарушителя с его заливным шлангом подальше от греха. Кроме того, в цистерне существует custom система аудита - любое изменение любого элемента цистерны фиксируется с датой и именем того, кто это менял. И последняя крупная часть, сделанная мной - система допуска в цистерну и к ее данным. Помимо входа в здание, в котором она находится, сама цистерна контролирует все возможные виды допуска каждого пользователя, причем все снова-таки сделано динамически. Стоит с погона у кого-то содрать звездочку, и он тут же лишается какого-то вида допуска, зависевшего от этой звездочки, скажем больше не видит заливной шланг. Ну или табло с долларами. Я уж молчу об содрать весь погон. Вот у вас погонов нет, так вы даже и цистерны не увидите, для вас она просто невидимая будет. А для тех, у кого есть наша карточка, видно как минимум заливное отверстие и платежная полочка. Ну и так далее. Кстати, на этой же системе базируется допуск высасывания данных другими программами - слой API и триггеров мы тоже сделали что надо.

В классе Джавы пару лет назад я показал немножко того что делает наша цистерна. Народ долго сидел тихо, а меня все стали называть на Вы, а не Тимохой, как это делает Янкель! Зато, когда инструктор показал что сделано в Джаве (особенно с авторизацией и допусками пользователей) я ржал долго и безостановочно пару дней. А когда я вдобавок показал наш динамический report engine module, который может управляться средним семиклассником и выдавать начальству любые данные в любом виде, "собрание болезненно застонало". Короче - цистерна отличная. И вот теперь закономерный результат - цистерну захотели в Англии. Один из крупнейших тамошних ISP. И тут же следом - в Австралии. И уже идут разговоры про Китай. А теперь внимание - вопрос.

Приходилось ли вам продавать свой системный продукт (не одно application), состоящий из нескольких интегрированных друг в друга сложных систем? Что вы делали с source code? Невозможно же каждому клиенту продавать и сопровождать свой код. По крайней мере у меня в команде на это нет ни сил ни людей. Нам бы свой бензин залить и продать, какое там чужим заниматься. А если мы в цистерне, скажем, найдем баг через пару месяцев и его надо фиксать в проданных, что делать? Код-то уже уйдет на мили друг от друга... А код точно надо будет разный, по крайней мере чтобы привинтить цистерну в разные места у разных покупателей. А вот тут и начинаются проблемы, которыми я уже когда-то наелся с Siebel, Salesforce, CRM, SAP, Remedy, Vantive и тому подобными программами. Что делать? Тащить два-три-четыре кода? Делать один "для всех", но как тогда разделять "что кому"? Кто все это уже прошел - жду советов. Спасибо!

Date: 2010-09-14 04:23 pm (UTC)
From: [identity profile] ctapnep.livejournal.com
я не большой начальни и ничего никому не продавал. Но однажды, давным давно, систему, которую у нас написали, кто-то захотел купить. А начальство решило продать. Но оказалось, что для того, чтобы отлично сделанную систему, которая замечательно работает в одном месте, продать... Ну в общем, ее-бы почти целиком переписать пришлось. Именно потому, что система заточенная под конкретное место сильно отличается от системы, которую можно засунуть куда угодно. Так у нас тогда ничего и не продали.

P.S. А, ну и есть вариант, что вы наберете еще 50 человек, которые будут обслуживать единичные проданные экземпляры. И вести их каждый по отдельности. Все-таки не похоже, что вы собираетесь свои цистерны пачками по 20 штук каждый месяц продавать.
From: [identity profile] tima.livejournal.com
"как для продажи". С тем в уме и проектировали. В том смысле, что "затачивается она" под место спокойно парой-тройкой человек в варюжках и с кайлом за неделю (в зависимости от того что покупателю надо конечно - все, часть, части, какие части...). Но вот что делать дальше...

Я вчера заикнулся про 50 человек, услышал много лестного в свой адрес от самого большого начальника. По 20 штук в месяц конечно нет, не тот уровень, это тебе не облаками торговать. Но даже третью нам не потянуть самим... Я и во второй-то несильно уверен, если все это получится. Все равно кого-то практически выделять придется следить за всеми этими изменениями, добавками, багами и прочей требухой. А цистерна и правда хорошая...
From: [identity profile] tima.livejournal.com
забыл добавить - нашу переписывать не надо, абсолютно все управляется таблицами, и скрины, и лейблы, и валидейшнс, и пермишнс, и аудит контроль, и все-все-все - исключительно конфигурируется. В том числе и продукт сам, который они продают. Нам все равно что они собираются продавать - валенки, самогон или интернет. Система делает customer management, contacts management, configuration workbooks, quote-contract management, order entry, order provisioning, task-project management, customer notifications, ticketing, reporting, billing. You name it.

Date: 2010-09-14 04:50 pm (UTC)
From: [identity profile] inka-kakadu.livejournal.com
гениальной простотой идей порадовать не смогу.
Наша фирма продает железки, которые работают под управлением нашего софта. Железки очень большие и очень разные (хоть и похожие), и конструктивно, и по тому, что они делают. Софт для любой из них состоит из нескольких компонент
1. common ground библиотека - покрывающая общую часть всех железок
2. несколько вспомогательных библиотек - каждая из которых покрывает общую часть, присущую некоторым железкам, а некоторым - нет.
3. т.е. baseline код, по числу железок, который покрывает специфику каждой из них.
Все это лежит под сорс контролом, в отдельных VOB-ах. Никаких изменений, идущих вне сорс контрола - не бывает в принципе.
Софт состоит из прилинкованных 1., (возможно что-то из 2.) и 3.
Каждое из 1., 2. и 3. - разрабатывается, тестируется и сопровождается разными людьми. Ясен пень, иногда они бывают в одном лице :)))
Соответственно, существует нехилая активность по генерализации требований от железок, обобщению функциональности и выносу ее в 1. или 2. Плюс, работа по документации - очень разнообразной (для себя так, для себя эдак, для кастомера так, для кастомера эдак). Плюс, есть группа, которая работает исключительно с кастомерами, заливая пожары у них и донося их уже слегка облагороженные от матюков слова до разработчиков. Плюс чуваки, которые занимаются инфраструктурой - поддержкой билдов, системы сорс контрола, документационных баз данных и проч.
В случае твоей цистерны - если речь идет о продаже нескольким кастомерам - картина, в принципе, просматривается та же, за исключением того, что у нас много связи с железом и соответственно, вызванных этим проблем. У тебя, наколько я понимаю, чистый софт. Все остальное - не велосипед, но и не фигулька, которую Тима сможет самолично, в свободное от основной работы время, одной левой изображать. Кмк.
From: [identity profile] tima.livejournal.com
у нас тоже когда-то были "группы", а теперь осталось 1.7 человека. Реально. А задачи наши крупнее, судя по всему. Но ваши больше в объемах, это и позволяет держать "группы"...

Но идею с библиотеками обдумаю. Хотя опять-таки, моя "железки-софты" система значительно крупнее, чем ваши "болванки" для продажи, библиотеками тут не обойтись... Да и есть они, библиотеки-то... Если б мне эти ваши группы все... "50 человек" этих, чтобы и кустомер саппорт с матюками делали, и за билдами с релизами следили, про документацию уж и не мечтаю - было и у нас когда-то такое же, когда в обеденный перерыв в буфете наливали пиво, а на улице играла live music с черной солисткой. Эх, времечко такое прошло...
From: [identity profile] inka-kakadu.livejournal.com
мы живем очень нежирно, увы. На 25 видов железок, тысячи проданных экземпляров и цену простоя железки в десятки тысяч за одну минуту, с соответствующим недовольством интела и прочих. - наши 50 человек это беспощадно мало.
Про "задачи крупнее" - давай не будем органами меряться :)

так и меряться нечего

Date: 2010-09-14 05:17 pm (UTC)
From: [identity profile] tima.livejournal.com
мой длиннее, твоя глубже!

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

Re: так и меряться нечего

Date: 2010-09-14 05:30 pm (UTC)
From: [identity profile] inka-kakadu.livejournal.com
мы не продаем мелкое. Мы продаем комплект - машина для выпечки микропроцессоров + полностью управляющий ею и анализирующий собранные данные софт. Поскольку машины разные, но все не сноповязалки, то софты - имеют гигантскую общую часть, но и принципиальные отличия. Это тот же самый бокс, причем более замкнутый даже - поскольку весь хардвер тоже наш, и никакого иного софта, кроме нашего, на контроллерах тоже не бежит.
Тысячи идут не от того, что продается тысяча разных мелких приблуд. А от того, что продается много машин, и работают они по многу-многу лет.

Date: 2010-09-14 05:38 pm (UTC)
From: [identity profile] elibom-suxel.livejournal.com
>>>Невозможно же каждому клиенту продавать и сопровождать свой код.

Почему это невозможно? :) Очень многие только этим и занимаются. Многие конечно ещё пытаются писать generic продукт, который потом можно привинтить к чему угодно, но до абсолютно счастья ещё лет пять, может семь.
Edited Date: 2010-09-14 05:39 pm (UTC)
From: [identity profile] tima.livejournal.com
мой продукт как раз дженерик, но дело в том, что в нем масса того, что половине кустомеров и не нужно будет. А зато другой нужно будет что-то иное. Вот в том и речь.

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

а я что написал???

Date: 2010-09-14 05:46 pm (UTC)
From: [identity profile] tima.livejournal.com
вы берете объемами, причем неважно - 1 продукт и 100000 продаж или 10 продуктов и 10000 продаж, но берете продажами. Мой продукт всего АДЫН. Сабцем адын, понимаешь? Вот если тебя взять с еще 50 твоими тиммемберами и всем вашим процессом - и продать копию.
From: [identity profile] elibom-suxel.livejournal.com
>>>в нем масса того, что половине кустомеров и не нужно будет. А зато другой нужно будет что-то иное.

Тогда сделать несколько версий продукта.

Re: а я что написал???

Date: 2010-09-14 05:57 pm (UTC)
From: [identity profile] inka-kakadu.livejournal.com
не, не понимаю. Продукт одын, но продать-то его можно много раз. Мало того, продать по-разному.
Мое нынешнее понимание такое - твоя цистерна это вещь, позволяющая держать данные, администрировать, поддерживать секьюрити и прочая, прочая - для _любых_ данных. Т.е. ее основное отличие в том, что она не заточена на конкретику какую-то, а работает с данными ВАЩЕ, причем
1. с данными, структуры которых могут модифицироваться на ходу
2. серьезно покрыты практически все аспекты и проблемы, которые таким цистернам присущи.

Что делает цистерну вещью, которая
а) потенциально нужна множеству кастомеров (о чем ты и пишешь)
б) потенциально будет нужна им в разных комплектующих. Кому-то чхать на секьюрити, но нужна повышенная скорость доступа. Кто-то наоборот - несколько секунд готов подождать, но секьюрити ему нужна гигантская. Т.е. у тебя есть возможность комплектовать свою цистерну из разных кусочков - и в таком виде, за разные деньги, ее продавать.
в) что делает вдвойне логичным разбивку системы на модули, каждый из которых подддерживается в своем уголке. Т.е. нашли багу в секьюрити - кастомер А заинтересован в новой версии, кастомеру Б начхать. И тепе.
Так мне кажется, могу недопонимать, ессно.

надо, но некем

Date: 2010-09-14 06:01 pm (UTC)
From: [identity profile] tima.livejournal.com
мы ж другое делаем и продаем. Эта система была сделана для себя самих. Просто теперь ее случайно увидели другие и "тоже захотели". А под это тоже у нас народу нет, он основными делами занят...

Re: надо, но некем

Date: 2010-09-14 06:05 pm (UTC)
From: [identity profile] elibom-suxel.livejournal.com
Продукт по-чёрному захардкоден. Продукт хотят другие. Сделать его flexible некому.

Тогда я не понимаю, в чём заключается вопрос? :)

хыхыхы

Date: 2010-09-14 06:09 pm (UTC)
From: [identity profile] tima.livejournal.com
ты все понимаешь! Но беда в том, что унифицированность цистерны достигнута такая, что "бага в секьюрити" не бывает. Он бывает в engine room, потому что оттуда гоняются все модули )))

Все модули создаются исключительно рекордами в таблицах, а не кодом. Введу новый рекорд - на страничке появится новый табчик. В другое место рекорд введу - глядь новый фолдер в три вырос. В третьем рекорде изменю текст и на страничке вместо "Инка Какаду" будет написано "Инка Самая Умная В Мире". Не нужны мне люди для "модулей". Аналогично все сделано с допусками. Аналогично с репортами. И остальным.

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

абсолютно наоборот

Date: 2010-09-14 06:12 pm (UTC)
From: [identity profile] tima.livejournal.com
система полностью динамическая, все делает ее engine. Никаких хардкордов в помине нет.

Вопрос в том, что сегодня появился потенциальный заказчик, которому надо процентов 15 от того, что может система. Ставить ему всю? Зачем? там куча всего, что ему не надо, плюс куча connections с другими цистернами embedded в движок. Начинать усекать engine? некому ни делать, ни за source code следить...

Re: абсолютно наоборот

Date: 2010-09-14 06:16 pm (UTC)
From: [identity profile] elibom-suxel.livejournal.com
Ну, как я уже сказал, если хочется всего лишь иметь 15 процентов от полного продукта - выпускается версия light и продается по цене дешевле.

Если сделать это некому, то тогда вообще о чём можно разговаривать? :)

Re: хыхыхы

Date: 2010-09-14 06:17 pm (UTC)
From: [identity profile] inka-kakadu.livejournal.com
ну да, с поддержкой-продажами замкнутый круг - это понятно :(
но. Вот то, что ты пишешь про унифицированность - так это же закрывает проблему с разбивкой на модули :) нахрен она тебе тогда не нужна. Нужен только сорс контрол для текущего кода и приклеивание лейбла версионного к проданному продукту. Опять же, если количество файлов-версий - не измеряется тысячи X тысячи, то взять какую-нибудь ручную софтину для сорс контрола, наверняка есть маленькие-уютные.
Кладешь все под этот самый контрол на личном (или отдельном) компе, продаешь в Англию - если нужно чинить баги, пользуешься этим сорс-контролом. А там - слух о цистерне идет по всей земле, начальство осознает, выделяются ресурсы и тепе. По маленькой, короче :)

за рыбу деньги

Date: 2010-09-14 07:23 pm (UTC)
From: [identity profile] tima.livejournal.com
я готов сбацать лайт версию. Беда в том, что в какой-то момент им понадобятся изменения. У нас за это время будут изменения. Вполне вероятно, баги найдем какие-нить. Версий над ихней нагородится у нас уже с десяток в сотнях файлов. Прикинь как потом эти изменения им вставлять, не всунув того, что им не надо...
From: [identity profile] tima.livejournal.com
Но... Беда в том, что в какой-то момент им понадобятся изменения. У нас за это время будут изменения. Вполне вероятно, баги найдем какие-нить. Версий над ихней нагородится у нас уже с десяток в сотнях файлов. Прикинь как потом эти изменения им вставлять, не всунув того, что им не надо... Есть у нас лейблы, я не так глуп как это написано у меня на лице. И скрипты для разниц лейблов давно уже сам написал (см. замечание про мое лицо). Ну вытяну я их лейбл из сорса. А в системе тысячи файлов и обнаружу, что разница между этими релизами уже в паре сотен файлов. Да пусть даже всего в сотне. Прикинь как я буду каждый ручками обрабатывать и смотреть - ага, у них версия 2.17, а моя уже 2.43. Чаво там между было??? И каждое изменение надо будет понять - ставить его им или нет. Двинуться же можно будет!

Re: за рыбу деньги

Date: 2010-09-14 07:33 pm (UTC)
From: [identity profile] elibom-suxel.livejournal.com
Ну и что тут такого? Делаешь под каждый version свой собственный branch и вперёд. Если изменения есть в одной версии, синхронизируешь их с другой. Это типичный сценарий.

все ясно

Date: 2010-09-14 07:43 pm (UTC)
From: [identity profile] tima.livejournal.com
ты не представляешь себе размеров цистерны

Re: все ясно

Date: 2010-09-14 07:53 pm (UTC)
From: [identity profile] elibom-suxel.livejournal.com
Не представляю. И каковы размеры цистерны? :)

я и сам не мерял

Date: 2010-09-14 07:55 pm (UTC)
From: [identity profile] tima.livejournal.com
но ОЧЕНЬ большая

Re: я и сам не мерял

Date: 2010-09-14 08:00 pm (UTC)
From: [identity profile] elibom-suxel.livejournal.com
Ты задал вопрос с целью получить solution или с целью найти побольше оправданий, чтобы проблему не решать? :) Because it sounds like the latter :)
From: [identity profile] tima.livejournal.com
мою задачу доподлинно никто ж не знает, кроме меня. Надеялся, что кинут пару-тройку идей, особенно, если кто сталкивался с подобным в своей работе.

У меня было два варианта

Date: 2010-09-15 01:41 pm (UTC)
From: [identity profile] gold4.livejournal.com
1. Дженерик продакт лицензировался по модулям, из клиентской поставки ничего не выбрасывалось, просто отключались модули. Изменения вносились по запросу кастомера, на каждого была своя ветка с бранчами. Так как кастомеров было много никакой мердж не делался, очень часто одна и та же функциональность делалась несколько раз, но это все равно было намного дешевле чем просто безумный мердж - по сути получался просто копи-пэйст, который много времени не занимает. Раз в год выходила новая версия дженерик продакта, в которую включались самые популярные изменения и дальше все по новой. Подход не сильно мачурный, но финансово оправдал себя полностью.
2. Дженерик продакт лицензировался полностью, но включал в себя не только самописный код, но и стандартные продукты (типа клиар квеста, шарепойнта, и т.п.) с кастомными настройками и кастомизейшенами. Развертывание продукта у клиента занимало время, сравнимое с его созданием, у клиентов отличались версии стандартных продуктов и многие кастомизейшены просто не работали. Так что все равно появлялись бранчи, только не по клиентам а по версиям софта.

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

идея ясно, спасибо.

Date: 2010-09-15 01:51 pm (UTC)
From: [identity profile] tima.livejournal.com
На первый вариант у меня просто людей нет. Хотя у меня было именно такое предложение к начальству - ставим всем полную версию и управляем "видимостью" модулей в зависимости от кустомера.

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

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

Re: идея ясно, спасибо.

Date: 2010-09-15 02:58 pm (UTC)
From: [identity profile] gold4.livejournal.com
Выгони китайчонка и возьми на эти деньги трех синьор девелоперов из Киева :)

I wish...

Date: 2010-09-15 03:06 pm (UTC)
From: [identity profile] tima.livejournal.com
Я б на эти деньги давно уже взял пару выпускников универов, и научил бы работать в производстве. Да кто ж мне даст на заправке распоряжаться!

Re: I wish...

Date: 2010-09-15 04:36 pm (UTC)
From: [identity profile] gold4.livejournal.com
Ну так хороший повод авторитиз намутить :)
Я думаю когда твои большие боссы через полгода увидят твой бэклог по реквестам и подсчитают его стоимость то у них враз третий глаз откроется :)
А пока - хорошие фриз-репорты и грамотное бранчевание наше все.

Profile

tima: (Default)
tima

February 2026

S M T W T F S
1234567
891011121314
15161718192021
22 232425262728

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 24th, 2026 11:06 am
Powered by Dreamwidth Studios