Як я працював на ФІМ-проекті

Був це рік 1999-й чи 2000-й… Але почекайте, трохи передісторії.

В моєму місті, Жовтих Водах, є така собі Фабрика Штучного Хутра (ФІМ) де виробляють з різної хімії те саме штучне хутро з якого шиють іграшки та і взагалі що завгодно. За легендою саме на цій фабриці робили того самого знаменитого Олімпійського Мішку який полетів у небо на закритті Олімпіади-80 (як було насправді з тим Мішкою читайте ось тут).

І ось за часів становлення ринкової економіки коли ФІМ як і більшість інших великих підприємств працювала лише на частину своєї потужності при ній утворилася ціла купа дрібних структур які “обслуговували” саме підприємство. Ясно що у більшості випадків це були контори з 1-2 людей де син директора (усі приклади вигадані) купував сировину у постачальника і тут же її перепродував ФІМу роблячи хороші гроші просто з повітря.

Ну і одна з таких дрібних структур мала назву ФІМ-Проект і займалася обслуговуванням техніки (станків та іншого обладнання) на самій фабриці. Треба сказати що вони таки насправді робили реальну роботу. Директором цього ФІМ-Проекту була одна дуже цікава (це політкоректно сказано) людина що любила повторювати про себе “я совєтскій інжинєр” з таким виразом наче це щось хороше. Далі його буду називати прото “директор”. А відрізнявся цей директор своїми нездійсненними наполеонівськими планами більшість з яких були настільки далекі від реальності що навіть у книгу “Незнайка на Місяці” не потрапили б через свою казковість.

Мене цей директор знав спочатку як студента (він викладав у нас щось типу “Автоматизація документообігу на виробництві”), а потім як викладача того ж місцевого ВУЗу. У нього була ідея на мільйон доларів (як і усі інші його ідеї) і потрібна була програма яка б реалізувала його ідею. Суть ідеї така. При виробництві штучного хутра певний колір досягається змішуванням барвників у певній пропорції. Є спеціальні люди які за допомогою різних таблиць та діаграм визначають скільки чого треба додати щоб отримати замовлений колір. І через те що барвники постійно різні і постійно різної якості треба робити тестову “порцію” хутра, потім перевіряти що вийшло і вносити корективи. Проблема в тому що набір кольорів доступних замовнику обмежений лише тим що є в таблицях і тим які барвники є на складі. Так ось хотілося мати (і продати фабриці) програму яка б знаходила найближчий колір з доступних барвників і давала “рецепт” змішування.

З першого погляду задача не така вже й важка, головна проблема була в тому щоб при зміні одного показника змінювати в правильну сторону усі інші. Якщо ви колись пробували настроювати гітару з ричагом (машиною) то приблизно розумієте про що йдеться. Були там свої заморочки, але я впорався. Треба сказати що директор до того давав цю задачу парі студентів, але ті побившись об неї якийсь час дійшли висновку що задачу розв’язати не можна. Тоді директор вирішив найняти когось на зарплатню хто б рішив цю задачу.

Однією з цікавих особливостей “совєцького інжинєра” була бережливість яка доходила до божевілля. Так, наприклад, заварник із чаєм був забитий заваркою під саму кришку (не перебільшую) і викидати її не можна було бо там щось ще можна було вицидіти зі стоп’ятсотого заварювання. І не дивно що у нього було вдвічі менше комп’ютерів ніж людей: щоб працювали у дві зміни і не витрачатися на “ненужні” комп’ютери. З часом директор побачив можливість підвищення ефективності введенням нічної зміни.

Отже ходив я на роботу “в ніч”, якщо не помиляюся на 8 чи 9 вечора. Тиха мертва темна фабрика де боковими сходами у темряві пробираєшся на свій поверх, відкриваєш комірку, вмикаєш комп’ютер і врубаєш музон на всю (пам’ятаю що слухав тоді The Red Hot Chili Peppers та Faith No More). Нас було двоє там і крім написання програм ми звісно гралися в Duke Nukem, Age of Empires, Full Throttle  та інші вже не пам’ятаю які іграшки. Ще ми друкували собі книги (Visual C++, MFC) і пробували різний софт до якого дотягнуться руки. Саме тоді я дуже добре і доволі глибоко познайомився з MFC (якщо не знаєте що це то не переймайтеся – технологія дуже стара і практично мертва) що сильно допомогло мені через кілька років на іншій роботі. Там же я розбирався з DirectX і зрозумів що мені не цікаво займатися комп’ютерною графікою: занадто багато зусиль треба докласти щоб отримати не надто вражаючий (для мене) результат.

Що стосується програми то її було написано і передано директору, він безуспішно намагався її продати попутно генеруючі абсолютно безумні ідеї. Ну от приклад. Якщо програма вміє змішувати різні кольори у близький до бажаного то чому б не запустит алгоритм задом наперед? Тоді ми зможемо продати програму скажімо Роскосмосу, а вони будуть робити знімки полів пшениці і за допомогою нашої програми визначатимуть зрілість пшениці через відсоток жовтого і зеленого “компонентів”. І це він дійсно серйозно пропонував і навіть шукав якісь контакти в космічній галузі.

Ще пару геніальних ідей. Давайте розробимо свою спеціалізовану ОС (так, операційну систему!) для бухгалтерського обліку. Треба сказати що тоді тема комп’ютеризованої бухгалтерії була дуже популярна і 1С:Бухгалтерія рубала шалені гроші і годувала цілу армію так званих “1С-програмістів” які встановлювали та конфігурували її (крадену звісно) різних розмірів організаціям. Ну от у нам мала б бути своя ОС де створення програм бухгалтерського обліку було б дуже простим і ще там щось. Збирається група “програмістів” де я один знаю С/С++, ще пара людей вміє щось писати на Delphi (Object Pascal) та інші 1С-ники. І починають планувати як самі і як довго ми будемо писати свою ОС… Фейспалмами я ледь тоді не розбив собі все обличчя бо на будь-які мої аргументи що у нас нема ні вмінь ні знань були контр-аргументи студентів “та в 1С/Delphi це легко робити” та директора “що там може бути складного, я совєтскій інжинєр, таку мєлочь як ОС точно зробити зможу, це ж не ракета”. Коротше я відхрестився від цього проекту, а люди ще наче щось там писали…

Друга божевільна ідея виникла після того як директор вичитав що  Microsoft заробляє так багато тому що продає не просто програми, а продає платформи. Давай значить і ми робити платформу. Яку? Ну для бухгалтерського обліку звісно ж! І тут як в знаменитій серії “Південного Парку” про гномів і кальсони: крок перший – даємо усім (!!!) виробникам бухгалтерського програмного забезпечення вимоги яких вони будуть вимушені (!!!) дотримуватися, потім щось в тумані, крок останній – у нас платформа і всі бухгалтерські програми пишуться виключно під неї… На моє питання чому саме хтось матиме дотримуватися наших вимог мені контрагрументували “а чому ні?”.

Ну коротше як би там не було програму написано, звісно вона не продається (спеціальним людям вона не потрібна, замовники зі своїми вибриками переб’ються і куплять з того що є), директор нервує. Спочатку пробує наїхати що я теж маю бути зацікавленим в успішних продажах на що я пояснюю що ідея не моя і я працював як виконавець, а не співвласник чи щось таке. Тим більше ніколи мені не платили за те що буде воно продане чи ні, а платили саме за написання програми та доведення її до ума.

Через якийсь час директор починає заводити розмови про те що ось він потратився на зарплатню, а прибутку нема, може я поверну зарплатню? На той час я вже розумів що дискутувати і щось аргументувати не варто тому просто казав що гроші вже витратив і повертати нема чого. Такі аргументи діяли миттєво припиняючи діалог. З часом “зарплатня” (а я ніколи не був там офіційно працевлаштованим) почала зменшуватися. Пару місяців платили половину, потім третину, а потім я просто припинив туди ходити, а директор про мене теж забув. Хлопці ж які там працювали розказували що так платять усім кілька місяців знижуючи зарплатню, а потім просто припиняють її платити бо “нічого не заробили”.

Ну от якось так сумбурно. Зараз згадувати і смішно і в той же час приємно: багато вільного часу за відносно сучасним комп’ютером і вивчені деякі корисні речі що і дали мені зрозуміти що я хочу працювати програмістом у майбутньому чи хоча б мати відношення до розробки програмного забезпечення. Також я побачив наскільки мало я знаю і наскільки важлива хороша освіта. Для порівняння усе те що я вивчив самостійно десь за пів-року щоденних занять я згодом розказав своїм студентам у структурованому вигляді менше ніж за місяць. Також цей досвід примусив мене замислитися як же в біса розробляють софт коли в проекті задіяно більше одного програміста і як взагалі можливо зробити щось типу Word чи Excel?

А потім я влаштувався на кілька місяців на “Позітрон”, але це вже зовсім інша історія…