Як я працював в ISD

Цілий рік я колись провів в Дніпропетровську працююци в пекельних нутрощах ISD (http://www.isd.dp.ua/en/).

Після 30 з гаком років проведених у рідному місті де я вчився у школі і інституті, а потім і працював в тому ж інституті і ще парі місцевих компаній нарешті прийшов час їхати світ за очі. Біло кілька причин для того, але найголовніші – в інституті стало просто некомфортно і нудно працювати, а також захотілося подивитися як роблять “великий” софт у великих конторах, як працюють команди і все таке. Їздив я на співбесіди кілька разхів на рік просто щоб тримати себе у тонусі то у Львів пару разів, то в Києв, ну і в Дніпро звісно катався. Але тільки тут мене змогли вмовити. Та і крім того я чув про компанію багато схвальних відгуків як по рівню поплати, так і по методам роботи.

На співбесіді традиційно морочили голову тонкощами С++ та англійської мови з ціллю наочно показати хто тут дурак, а хто начальник. Ну та то така видно традиція в Україні – там де вас питають про віртуальні деструктори, шаблони та нюанси множиного успадкування там ви будете правити древній код на С.

Коротко по суті роботи. Є така компанія SCC (http://www.softcomputer.com/) що підтримує і розробляє софт для всяких медецинских установ в США. Паціенти, аналізи, страховки, … Код старючий – клієнт і сервер під викопний AIX, кліент Windows, якась ієрархічна БД. Проектів там у них багато. У самої головної контори є купа компаній що підтримують різні продукти.

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

В компанії був найзабюрократизованіший процес розробки з усих які я бачив. В МС в порівнянні з ІСД суцільне вільнодумство і “роби що хочеш”. Там було щось типу такого:

  • Бізнес аналітики визначають список фіч для імплементації
  • Також визначають список багів для фікса, а оскільки одночасно підтримується кілька весрій продукта то один і той же фікс доводиться робити кілька разів, але з інтервалом від кількох тижнів до кількох років.
  • Чер менеджерів і тім-ліда завдання на (увага!) дослідження бага оходить до розробника. Той описує як і де його фіксати, а також як тестувати. І до купи вказує скільки часу на це піде.
  • Потім все повертається через лідів і менеджерів назад і на певному рівні відбувається планування в які дати для яких версій пофіксати цей баг.

Доволі специфічно було зроблено тестування. Тестери робили все вручну (!!!). Тобто у них був з самого ранку список тестів для виконання вручну (кожен крок описано) для різних версій продуктів. Були тестери як на команду, так і на весь продукт. Але в Україні, наскільки я пам’ятаю, тестори практично завжди вважаються м’ясом для гармат і код практично не пишуть. Не дивно що там де пара адекватних тестерів могли б все автоматизувати за пів року доводиться тримати армію дешевих “ручних” тестерів роками.

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

Тепер підемо послідовно по позитиву і негативу. Почнемо з негативу.

  1. Приміщення. Не знаю як зараз, компанія наче перїзхала, але в той час (2006 рік) це був жах. Зашарпані конюшні з подовбаними стінами, брудними підлогами і народом що сидів один у одного на голові. Ніде  не бачив гірших умов. Це при тому що я сидів у доволі ще комфортній кімнаті з усього якимось 20-з-чимось людьми. А був ще в прямому сенсі спортзал з десь 150 людей в ньому. Жах, жах…
  2. Техніка. Це просто ганьба. Видавали напівсліпі монітори, старі запилюжені системні блоки і такі брудні миші і клавіатури що не було літер на клавішах видно. Аргументація у адмінів просто залізна була – а що, викидати їх чи що?
  3. Оті самі адміни очевидно мали забагато влади. Їх і було більше ніж треба – ціла кімната. Замість займатися своїми адмінськими обов1язками, читай робити можливою безперешкодною роботу програмістів і тестерів, вони починали видумувати чим зайнятися і як показати свою важливість і значущість. Постійні моніторинги винтів співробітників з ціллю знайти музику і фільми “бо ніззя”. Моніторинг усього встановленого софта і інші перешкоди.
  4. Абсолютно дебільна політика відносно інтеренету. Компанія постійно хвалилася який жирний у неї інтерент, як у них на випадок чого аж через трьох провайдерів зв’язок іде, але при цьому жорстко обмежували доступ співробітникам. Тобто тупа “ніззя ходити в інет” поки твій менеджер щось там не підпише що тобі можна. Народ чатився в асьці. Закрили аську. Почали листуватися інтенсивніше. тали слідкувати за трафіком. Почали в корідорах більше зустрічатися і спілкуватися. Коротше замість вигнати дві третини адмінів і відкрити усе постійно видумували собі проблеми і боролися з ними.
  5. Система обліку часу. І це не совєцько-вахтерський дебілізм, це, наскільки я знаю йде від американських власників.
  6. Ацькі дебільна система контролю версій з локуванням файлів, потворним клієнтом і таким іншим. До того ж ще купа саморобного софту для тракінга завдань, багів, тестів та іншого.
  7. У менеджменті середнього рівня все ж таки багато людей які незрозуміло як туди пробилися (очевидно що висиджування років). На диво технічно безграмотні і при цьому із замашками крутих босів. Більшість часу пофіг на них взагалі, але попсувати життя можуть при нагоді так що йой. Все не розвалюється тільки через ту групу сильних людей про яких я вже згадував.

Тепер про хороше.

  1. Біла і пристойна зарплатня. Так, уся зарплатня була біла. Тобто повністю уся. Причому платили пристойно і підвищували регілярно. Жалітися не було на що.
  2. Курси англійської – без обмеження, бери стільки потягнеш. І граматика, і просто побалакати. До того ж регулярне ESL-тестування усієї компанії.
  3. Сильні люди (саме в плані програмування) в яких є чому повчитися. Такими, наприклад, були лід моєї команди, його заступник і ще пара людей в ній же.
  4. Складний і вкрай бюрократизований процес розробки після якого усі інші великі проекти здаються доволі простими.
  5. “Відділ освіті” – невеличка команда що займалася розробкою і проведенням курсів. Тут і курси по продуктам, і англійська, і курси з програмування для студентів. Коли мені наскучило весь час заповнювати тікети я домовився щоб частину робочого часу читати студентам С++. Стало легше.
  6. Через якийсь час відпрацьований у компанії вивозять працювати в США. Спочатку у відрядження, а потім і назавжди. Правда я чув що умови там доволі погані, але то вже інше. Непоганий спосіб одночасно і кар’єру зробити і виїхати.
  7. Сама компанія давала можливість взяти у неї кредит на купівлю квартири. Причому умови було дуже добрі.

Власне я би оцінив досвід як доволі позитивний. Там мабуть важко працювати джуніором – платять їм не так щоб багато, чисто галери. Але придбання досвіду йде на повну. Розумію і тих людей хто через короткий час пішов звідти – в мене самого перші місяці три був такий настрій. Нічого не зрозуміло, ні в коді, ні по процедурам, і просвіту не видно, ну і робота сама по собі нецікава. Як мені сказала головна HR на співбесіді – запам’ятай, ми не пишемо софт, ми його підтримуємо!

Причиною тому що я пішов стала моя нелюбов до Дніпропетровська, це по-перше. Ну а по друге, мені запропонували місце у цікавомо проекті, стартапі (читай деталі тут – http://013x4nd2.wordpress.com/2011/07/29/%d1%8f%d0%ba-%d1%8f-%d0%bf%d1%80%d0%b0%d1%86%d1%8e%d0%b2%d0%b0%d0%b2-%d0%b2-luxoft%d1%96/), і ось проти цього ІСД не могла протиставити нічого.