Нова Страница - блог на Димитър Димитров

В средата на 90-те, в ...

Dimitar Dimitrov 25/07/2019 13:36:01
В средата на 90-те, в един летен петъчен ден, получих телефонно обаждане от господин, който се представи като завеждащ ИТ отдел на голяма търговска компания в сферата на фармацията. Имали нужда от разработване на софтуер за нуждите им, някой ме бил препоръчал. Беше почти 17:00 часа и той ме покани на среща в понеделник.

В понеделник, в 9:00 часа, господинът ме чакаше пред входа на сградата, каза на охраната, че съм с него, и ме покани в един просторен кабинет, където се помещаваше ИТ отделът. Те вече ползвали мой продукт за попълване на митнически декларации. Изразиха възхищението си от дребна хитринка, която им е спестила стотици похабени формуляри и много нерви. Тези документи се отпечатват върху стандартизирани формуляри и е въпрос на проби и грешки как да поставите листа в принтера така, че буквите и цифрите да попаднат точно в нужните полета и кутийки. Бях го решил по следния начин: матричните принтери освен да печатат текст, са проектирани с възможност за много прецизно управление на валяка и печатащата глава. Освен да „отпечатат“ празен ред или празно поле, можете да им кажете: „Отмести си валяка с 1/12 от инча надолу/нагоре, отмести печатащата глава с половин милиметър надясно и т.н.“. Операторът попълва нужния документ на екрана на своя компютър, подава команда „Печат“, софтуерът го подканя да постави празен формуляр в принтера, след което не започва да „маже“ напосоки, а отпечатва само една малка точка в горния ляв ъгъл на документа, след което валякът се завърта обратно и документът се показва над принтера. На екрана се появява увеличено копие на горния ляв ъгъл на съответния формуляр, а от оператора се иска с помощта на мишката или клавишите за стрелки/посоки да покаже на софтуера къде е попаднала точката. След което софтуерът прави нужните калкулации и като един добър артилерист коригира „стрелбата“ - принтерът гълта листа обратно и всяка буква и цифра попада с абсолютна точност прецизно в реда на всяка кутийка от формуляра. Ползвателите на този продукт обожаваха това. Когато разбраха, че аз съм изобретил тази хитрина и написал продукта, те ме третираха с огромно уважение.

Попитах ги каква е причината да ме извикат, което веднага изтри усмивките от лицата им и те започнаха да гледат с опечалени физиономии. Случаят бил следният: тяхната организация търгувала с над 15 000 артикула. Документооборотът е огромен – десетки хиляди операции месечно. Ползвали много скъп софтуер, специално разработен за тях, но в един момент „ударили“ лимитите на софтуера, по-точно на паметта на компютрите си – повечето системи за обработка на бази данни „качват“ данните в паметта, извършват нужните обработки, след което записват промените след приключване на работа. Добавили памет на машините и това решило проблема за няколко месеца. После купили възможно най-добрите компютърни конфигурации, но и това не решило трайно проблема. Спирали работа няколко пъти, което пък означавало невъзможност да освободят животоспасяващи лекарства от митническите си складове...

И някой им казал, че аз мога да им реша проблема. Опечалените физиономии бяха вперени в мен, но по всичко изглеждаше, че те не очакват да се случи някакво чудо.
Аз разработвам и продавам софтуер от началото на 1993г. От самото начало реших да не ползвам стандартни бази данни, а да създам своя система. Предимствата бяха следните: щях да знам какво точно има „под капака“ на тази система, нямаше да има нужда клиентите ми да плащат луди пари за чужди лицензи на бази данни, а само за моя софтуер. Освен това, точно в този момент, началото на 1993, технологията в областта на магнитните дискове напредна до степен, че четенето и записът върху тези носители не бяха ужасно бавни, и аз реших да приложа безумен за времето си подход: моята система не качваше данните в паметта, а работеше директно на диска. Това не забавяше работата й, поне клиентите не усещаха забавяне. Ограничението за обем на базата данни при моята система беше до обема на диска, не на паметта. Тогавашните конфигурации бяха с 2 до 16 мегабайта памет, но вече имаше 120-мегабайтови дискове. Имаше и още едно предимство – след внезапно прекъсване на електричеството (знаете как е в България) потребителите с облекчение установяваха, че нищо от въведените данни в последната сесия не е загубено! Защото е на диска, не в паметта.

В резултат започнаха да ме канят в големи фирми с огромен документооборот, където заменяха скъпия софтуер с моята система, която се продаваше за 95 долара. Моята система имаше всевъзможни полезни функции, да се дефинират лесно свързани бази данни и т.н.

Обясних на притеснените хора, че ще са ми нужни около 30 минути на място, за да създам адаптирана версия точно за техните нужди, след което, пак на място, в рамките на час-два, ще конвертирам данните от досегашния им софтуер и към обяд ще имат работеща система, която няма да отеснее никога. Те обаче продължаваха да гледат с онези опечалени физиономии. Имало и още нещо...

Искали следното: при лекарствата се работи с партиди. Всяка покупка/внос на даден артикул е отделна партида. Искали, когато изписват определена бройка от даден артикул, системата да я разбива на отделни партиди/редове и да каже: „23 броя от този „Аспирин“ са от партида 1234, 45 са от партида 1235, а останалите 32 броя са от партида 1236“. Кимнах, че това е фасулска работа, но те продължаваха да не се усмихват. Имало и още нещо. Когато отидем на някой стар документ за заприхождаване на стока, там да е отбелязано автоматично какво се е случило с всеки артикул: щом започне да се разходва партидата, системата да отбелязва там, че първите 12 броя от тази партида „Аспирин“ са заминали за склад Х, на дата Y... Да можело и да се трие и поправя, а системата динамично да си наглася и двете бази данни – тази с покупките, и тази с продажбите....

Усмихнах се. Току що ми бяха поставили дяволски интересна главоблъсканица. Помолих за минута. Гледах в нищото и мислех, а те стояха със затаен дъх. След 30 секунди им казах, че ще ми е нужна една седмица, за да напиша това, което им е нужно. Ще им струва 500 долара. Те не питаха никого, а директно казаха, че са съгласни. В следващите три часа им създадох новата система, конвертирах данните от старата и ги обучих да работят. Заплатиха ми стандартната цена от 95 долара и им казах, че ще се видим в следващия понеделник, в 9:00 часа.

Задачата беше много интересна. Обожавам такива прдизвикателства. Имах особен стил на писане: в следващите четири дни се разхождах по цял ден из София. Като безделник. Прибирах се вечер и заспивах, без да съм се докоснал до компютъра. В същото време обаче „пишех“ код, „въртях“ го наум, той „гърмеше“, а аз го поправях... Към петък всичко вървеше по мед и масло, а аз продължавах да се разхождам с вид на лунатик. В събота сутринта си направих голяма кана с кафе, включих компютъра и до неделя вечерта написах няколко хиляди реда код.

В понеделник, точно в 9:00 сутринта, застанах пред входа на търговската фирма, но господин Т., техният ръководител на ИТ отдела, не беше там. Наложи се да помоля охраната да го извика. Той слезе след три минути и изглеждаше много изненадан от появата ми. Сякаш беше забравил за нашата уговорка! Качихме се горе, седнах на компютъра, направих един архив на базата им данни за всеки случай, след което инсталирах новата версия на софтуера, конвертирах данните и започнах да им показвам. Те гледаха и се усмихваха загадъчно, сякаш им показвах някакви много тайни и интересни неща. А всъщност виждаха това, което поискаха, материализирано. Играха си дълго, очевидно се опитваха да провокират софтуера да се обърка – триеха, поправяха, но това моментално пренареждаше всички данни за партидите безпогрешно. Бяха много доволни. Попитаха ме какво пия. Отклоних поканата, казвайки, че пия само вода. Не им оставаше нищо друго, освен да подпишат протоколите към договора и да ми платят онези 500 долара.

Господин Т. ме подкани да го последвам до последния етаж, където се помещаваше счетоводството и касата. Тази сграда нямаше асансьор и докато го следвах по широкото стълбище към 4-ия етаж, той мърмореше: „Ей, най-после го решихме този въпрос. Шефът беше възложил тази задача на фирма на зълва си. ИТ фирма. Те взеха 20 000 долара предварително и казаха, че ще са им нужни около шест месеца, но преди две седмици върнаха парите и казаха, че е невъзможно да се направи това, което искаме...“

Не казах нищо. Живея в България и познавам родната действителност в дълбочина. Казват, че в България имало две икономики – светла и сива. Не, в България има и още една, трета икономика – тази на синчетата, снахите, шуреите и баджанаците. Тази икономика с парите от нашите данъци гради България. Тя строи инфраструктура, поддържа електронно правителство, проектира мащабни съоръжения, решава какъв да бъде новият облик на българските градове и села, решава как да похарчи парите за здравеопазване, отбрана и образование, консултира и прибира, пише доктрини и политики, занимава се с дипломация и е нашето лице пред света. Докато допускаме това, думите „България“ и „българин“ ще бъдат неприятен синоним за останалия свят, личните ни данни ще бъдат публични, здравеопазването ни ще бъде в клинична смърт и дори електрификацията вече няма да бъде постижение, а предизвикателство. Очакваме продължение.