10 години в Стемо, част 2

 Без категория
мар. 302009
 

(към първата част)

Когато постъпих, имаше още четирима членове на софтуерната къща – Балтов (шефа), Свилен, Светльо и Дидо. Дидо (един от „старите кучета”, т.е. от екипа, написал първия Диригент) напусна малко след това и почти не го помня.

Оказа се, че съм влязъл в екипа малко преди първото тестово внедряване на Диригент. На 14.4.1999 системата заработи във филиала на Стемо в Габрово. Мисля, че заработи доста гладко (от техническа гледна точка). Но то нямаше и кой-знае каква функционалност – можеше да се правят търговски поръчки, по тях да се издават фактури и протоколи. Няма складова наличност, движения, пари, доставки и т.н. Нямаше и репорти. Само фактури и протоколи.

Три месеца по-късно Диригент 2.0 бе внедрен и в Софийския филиал на фирмата. И наистина си заработи. Нещо, което се смята за небивал успех.

Хайде да дам още малко перспектива. Тук ще напиша някои неща, на които не съм бил свидетел. Моля ако някой знае историята по друг начин – да каже.

Стемо още отначало (1990 г.) е възникнала като софтуерна фирма. За съжаление в държава, в която авторските права (особено над софтуерен продукт) имат само някаква имагинерна стойност, софтуера не е (бил) добър бизнес. Аз още в училище съм ползвал пиратски софтуер, написан от един от основателите на фирмата (станал по-късно търговски директор – Иван Божинов). Става дума за най-железния драйвер за кирилица под DOS, известен като CYR.COM. Ползвал съм пиратски и резидентния речник RELEX под DOS. Освен тези програми, в първите години на Стемо има и някои разработки за текстилната промишленост (CAD-системите „Дизайн” и „Дизайн-жакард”), някаква система за управление или наблюдение на телефонни централи и не знам още какво. Но от рано са напипали, че със софтуер в тая държава не се храни семейство и са се преориентирали към хардуера.

Все пак софтуерната жилка не е прекъсната и някъде в средата на деветдесетте са сформирали екип, който да напише търговска система за вътрешно ползване. Подходили са много сериозно за времето, направили са много добър бизнес анализ, но архитектурата е била куца. Първата версия на Диригент е писана на C, Pascal и Asembler; не са ползвали СУБД, а са си организирали и репликирали данните както могат. Освен това екипа не е имал отявлен лидер или project manager – въртели са се през няколко месеца. И съвсем оптимистично са решили да напишат всичката функционалност и да я внедрят наведнъж.

Е не се е получило. Някои от по-малките филиали са работили няколко месеца. Но няколко седмици след като Диригент 1.0 е внедрен в София, просто се е сринал. Проекта, който вероятно е погълнал доста средства в няколкото години, в които е писан, е зарязан и екипа се е разпаднал.

И така, малко след това идва Стефан Блатов и успява да убеди собствениците, че той може да им напише системата. Гласуват му доверие. Изгражда си екип, сяда и написва системата. И тя наистина тръгва – не само в Габрово, а и в София.

На този фон, малко след успешното внедряване в София, Светльо (по това време последния от екипа, писал и по Диригент 1.0) реши, че е подценен и направи следната глупост: прескочи Балтов (шефа на софтуерната къща), отиде директно при Ковачев (изпълнителния директор на Стемо) и каза „аз съм направил това и това, мисля, че трябва да получавам такива (големи) пари”. За което беше освободен. Не защото иска пари, а защото прескочи прекият си началник. Тогава разбрах колко се държи на йерархията в тази фирма (или поне в софт. къща). В крайна сметка Балтов е този, който идва, хваща се и за около година написва система, която работи. Е, вярно, в много ограничена функционалност. Но работи.

Като се замисля, в този момент положението в софтуерната къща се е оказало супер изгодно за мен. Защото освен мен (и Балтов) имаше само един член на екипа с малко повече стаж и доста повече опит – Свилен. А той, колкото и да е по-добър професионалист, нямаше моя младежки ентусиазъм за работа по нощите. Аз се юрках с рогите напред във всяко предизвикателство. Успявах да изпълня всички задачи, които Балтов ми дава (е, явно е преценявал какво да ми даде). Пък и винаги съм бил съвестен. За това само в рамките на няколко месеца след постъпването ми станах един от хората, на които се разчита.

И ето един пример колко се разчита на мен. През лятото започнахме да внедряваме всички други филиали. Но по това време Балтов си взе съвсем заслужен отпуск от 3 седмици. Който частично се застъпи с двуседмичния отпуск на Свилен. И така единствени в софтуерната къща останахме аз и Мартин – един колега, който постъпи 3 седмици преди това. Двамата обикаляхме България и внедрявахме. 04.8.1999 в Стара Загора, 09.8.1999 в Пловдив (там имаше доста опарени от първия Диригент), 18.8.1999 в Плевен, 20.8.1999 в Бургас, 23.8.1999 във Варна, 24.8.1999 в Русе. Между другото във Варна и Русе още си пазеха и ползваха Диригент 1.0 – в него си бяха въвели клиентите. Т.е. ползваха го като телефонен указател.

И така нещата изглеждаха стабилни. Да, обаче… помните ли какво СУБД използвахме? Lotus Domino. Един много добър продукт, който, обаче, не става за СУБД. Domino просто не е релационна БД. Нямахме първични ключове (да не говорим за чужд ключ). Аз лично бях направил една util-ка, която търсеше аномалии в данните – примерно повтарящи се номера на поръчки (това истинските СУБД го правят с първичен ключ) или фактури, в които номера на поръчката не съществува в таблицта с поръчки (т.е. проверка на чужд ключ). Освен това с натрупване на данните взе да се държи нестабилно. Всъщност щом се натрупаха 2000 фактури в един от филиалите дневните отчети започнаха да гърмят брутално – Access violation. Това се случи в края на септември 1999. Представям си каква тръпка е изпитал Балтов (и не само той)! Това е бил един от кошмарите – тъкмо системата е понатрупала данни и да се срине!

В този момент Балтов взе съдбовното за мен решение да преминем към Oracle – защото в предишен проект е писал на това. А и успя да го изтегли от сайта на Oracle. На 20.9.1999 успя да инсталира Oracle 8.1.5 в централния офис и създаде схемата Dirigent с всичките и десет таблици (по това време в БД имаше търговски поръчки, фактури, протоколи, филиали, потребители). Заедно със Свилен драснаха едни quick-and-dirty програмки, които да прехвърлят данните за деня от Lotus на Oracle. И така в продължение на няколко дни всяка вечер изчаквахме всички да свършат работа и данните в Lotus да се репликират от филиалите до ЦО. После прехвърляхме данните в Oracle, генерирахме дневен отчет и им го пращахме да си го дооформят.

В това време Балтов разучи как се прави basic replication в Oracle (тогава ставаше графично – с Replication manager, койтo по-късно влезе като част от java-базирания Enterprise Мanager). И една съдбовна сряда двамата с него отпрашихме към най-проблемния филиал, който се беше разгърмял. Там на 30.9.1999 създадохме една БД и започнахме да репликираме от ЦО таблиците с налетите в тях данни. Което се оказа голям проблем. По това време връзките не бяха кой-знае колко стабилни – модем, братче. Всеки филиал си имаше собствен доставчик на интернет и в общи линии свързаността към ЦО беше available някъде над 85%. Но често дропеше. Помня, че успяхме да прекараме почти всичките таблици още на първия ден, но една от всичките (май беше users) така се закучи, че я мъчихме няколко дни. А това без да познаваме механизмите, които стоят зад създаването на snapshot, използването на snapshot log, работата на push и refresh, е тежко.

Обаче стана.

В следващите месеци обиколих всички филиали за да инсталирам Oracle и да им прехвърля данните. Обикновено бяхме двамата с Мартин. Спомням си много ясно ходенето ни до Варна: по план се падаше на 9 декември. Да, обаче, и двамата бяхме студенти (аз – втори курс, той – четвърти). За щастие Мартин беше пълен въздържател, пък и аз още нямах книжка.

На 8 декември аз заедно с две каруци колеги от университета се стоварихме да празнуваме студентския празник в една вила крей Дряново. Аху-иху, много яко стана. Да, обаче продължи цяла нощ. Сутринта към 6 часа аз се стоварих в Дряново, за да може Марто да ме вземе на път от Габрово към Варна. Той се оказа по-отговорен от мен – поне беше подремнал 2-3 часа. И така, подкара той колата по дългия път към Варна (беше една Лада Самара). Кара си той, а на мен ми се спи. Ама се опитвам да не заспя, за да не се унесе и Марто. А в колата едно топло…

На влизане във Варна вече се унасях неудържимо. Но щом се доставихме в офиса и се раздвижих, се пооправих. Е, сигурно съм ударил и някое кафе. Почнахме си работата, нещо се позакучи и откарахме в офиса до 22 часа. Малко е да кажа че бях уморен – бях просто пребит. И тук идва най-драматичната част.

Всъщност Варна е родният град на Марто. Така че нямаше никакъв шанс да спим на хотел. И така, морни-морни, се доставихме у тях към 22:30. А техните нагласили едни софри, едни неща… Нали детето се прибира само няколко пъти годишно, а и на другия ден трябваше да отпътуваме към Бургас. И тук идва моята трагедия. Проблема е, че (както казах) Марто е пълен въздържател. Майка му също не пие, както и сестра му. И баща му реши да използва случая и да си сръбне от хубавата домашна ракия заедно с мен. А аз – предната нощ не спал ама хич, цяла нощ дивял, после пътувал няколко часа, бачкал цял ден… леле, не беше лесно. Но издържах 🙂

Много ясно си спомням момента (към полунощ), в който раздигнаха софрата и ми показаха къде да легна. Отцепих на секундата.

(продължение…)

 Posted by at 14:17

  One Response to “10 години в Стемо, част 2”

  1. „На 20.9.1999 успя да инсталира Oracle 8.1.5“ – колко далечно звучи…пионерско в областта 🙂

Sorry, the comment form is closed at this time.