SimCorp - « біла ворона » українського ІТ

Компанія SimCorp виділяється на тлі інших розробників як мінімум з двох причин. Перша з них - на відміну від звичних «ППшників» в компанії практикуються офіційне працевлаштування та «білі» зарплати. Друга - в технологічному стеку компанії на першому місці знаходиться досить екзотичний мова APL.

Про ці та інші особливості SimCorp розповідають Тетяна Шкулепова, Group Manager, Василь Заулічний, Senior APL Developer, Олег Дудник, Senior C # Developer і Юлія Ступак, PR.

- Традиційно, спочатку розкажіть, будь ласка, про історію компанії ...

Тетяна Шкулепова: Компанія SimCorp почала свою діяльність в Україну сім років тому. 1 квітня 2005 тут з'явився перший проект компанії Infopulse. На ньому працювало чоловік п'ять. Уже в серпні нас стало 20, ймовірно цей момент і можна вважати відправною точкою компанії. У нас було дві рівновеликих команди розробників і тестерів, але вони були розподілені по двом окремим компаніям - Infopulse і ProFIX. Це був перший проект, що стартував не в головному копенгагенському офісі і спочатку не було чіткої програми нашого розвитку, навчання персоналу, ми йшли якимсь своїм власним шляхом, методом проб і помилок. Але вже до кінця року вже була встановлена ??дуже хороша навчальна програма для розробників APL, тестерів. А з 2008 року у нас почала працювати SimCorp-Академія, яка давала можливість навчити людей працювати з продуктом з нуля.

Юлія Ступак: Головний офіс компанії знаходиться в Копенгагені, маркет-юніти - в Центральній Європі, Скандинавії, окремі юніти в Англії і Франції, Амерікe, азіатський юніт охоплює частину Азії і Австралії. Якщо говорити про продакшені, то це в основному Копенгаген і Україною, зовсім невеликі відділи є в Австралії, Німеччини та Англії.

На сьогоднішній день приблизно половина загального тестування і третина всієї розробки проходить в київському офісі.

На сьогоднішній день в українському підрозділі працює 140 осіб. З них дуже невеликий відсоток адміністрації, у нас є команда менеджерів, яка складається з 12 осіб. Всього в корпорації близько 1100 співробітників. Групи різного розміру, всі групи інтегровані, спілкування на постійній основі з датськими колегами, відрядження, відеоконференції, зустрічі, заходи ...

У нас один продукт - SimCorp Dimension. Це дуже складний і масштабний продукт, кінцевими користувачами якого є банки, фінансові, страхові, інвестиційні компанії. Продукт орієнтований на західного клієнта.

- Це можна назвати BI?

Т. Ш.: Так, ймовірно його можна так класифікувати. Цей продукт може виконувати всі, або окремі функції інвестиційного менеджменту практично у всіх фінансових інституціях. Ми даємо можливість використовувати окремі модулі системи.

На нашому ринку конкурентів у нас немає, продукт орієнтований виключно на західні компанії. Серед західних компаній є конкуренти і аналоги, але наша перевага в тому, що Dimension охоплює всі сфери фінансових інструментів і є потужним інструментом бек-офісу, зараз у нас йде акцент на фронт-і міддл-офіси. Ми також одразу беремо на озброєння всі фінансові інструменти, які з'являються на ринку.

Василь Заулічний, Senior APL Developer

Василь Заулічний: Тут ймовірно необхідно зробити відступ і пояснити термінологію. Продукт орієнтований на інвестиційні фірми. Загальноприйнята структура таких фірм складається з кількох департаментів. У будь-якому інвестиційному банку є фронт-офіс, це трейдери, люди, які приймають рішення про купівлю/продаж. Люди, що належать до департаменту міддл-офісу - аналітики, отримавши дані про угоду, вони займаються прогнозуванням ситуації, оцінкою ризиків і т.д. Окрема частина міддл-офісу займається оцінкою ефективності роботи трейдерів. Бек-офіс - юридична підтримка угод. Для реєстрації угоди, укладеної трейдером, необхідно оформити безліч документів і провести масу дій. Це досить складна структура, два основних відділу бек-офісу - це бухгалтерія та відділ постачання.

- Якась специфіка роботи, відмінність від інших компаній вже проявилося?

Ю.С.: Наше основне відміну від великих IT-компаній - ми не аутсорсинг, ми продуктова компанія, і це дає нам певну стабільність. Завдяки цьому ми досить легко вижили під час кризи, не скоротивши жодної людини і не зменшуючи зарплат.

У нас немає швидкого кар'єрного росту. Тут все відбувається досить повільно, але впевнено. Тому для тих, кого цікавить зміна проектів - у нас це можливо, але не так швидко. Потрібно опрацювати на одному місці два-три роки, а потім вже рухатися далі всередині корпорації. Наші співробітники затребувані і в інших офісах компанії в цілому по світу, в минулому році було чотири міжнародних assignment.

Олег Дудник, Senior C # Developer

Олег Дудник: Ні для кого не секрет, що в аутсорсингу 70% проектів - це саппорт і баг-фіксинг. У нас тут - повноцінний R & D-офіс, ми розробляємо дуже багато нової функціональності. До того ж ми завжди намагаємося використовувати найостанніші версії інструментів - в аутсорсинг-проектах з цим є проблеми.

- Чим викликана необхідність використання такого досить рідкісного інструменту як APL?

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

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

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

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

До приходу в SimCorp я в основному писав на PHP, C + + і працював в основному з високорівневими мовами. Завдяки тому, що в мене був досвід роботи з інтерпретаторами, плюс я мав знаннями у фінансовій теорії - все, що запропонувала мені компанія, мені дуже сподобалося. Мені найбільше імпонував навіть не APL - за великим рахунком все одно, яка мова, не так драматично для програміста якою мовою писати, - скільки завдання, які ставила перед собою компанія.

Хоча звичайно, перше знайомство було незабутнім, мене попереджали, що це «марсіанський мова», але коли я вперше побачив код, був трохи в шоці ... Для непідготовленої людини він може здатися досить незвичайним.

Але, хороший програміст - досить лінива істота. Якщо йому вдається вирішити задачу в одну-дві строчки - це приносить йому масу задоволення. Ось це як раз про APL.

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

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

О.Д.: П'ять років тому було прийнято рішення переводити весь призначений для користувача інтерфейс на C #. Для цього використовуються компоненти DevExpress. А потім вже було вирішено, що за допомогою C # можна вирішити деякі проблеми швидкодії програми.

- А до цього як був реалізований інтерфейс?

В.З.: У нас є старий фреймворк на С/С + +, він був колись створений, але зараз оновлюється слабо. В APL існує окремий клас для виводу і підсистема, написана на С, бере звідти дані і формує користувальницьке вікно. Але весь введення/виведення так чи інакше приходить в APL, який і обчислює всю логіку. Зараз ми хочемо передати завдання побудови інтерфейсу C #, він більш динамічний, ніж наш «заморожений» фреймворк.

Т. Ш.: Внутрішній девелопмент, бек-офіс по колишньому залишається на APL і конкретних планів з перекладу немає. Але є сфери для яких швидкодії є критичним параметром - наприклад, для трейдера, що здійснює покупки в реальному часі. Тут рахунок іде на секунди, тому фронт-офіс перейшов на C # першим. Фронт-та міддл-офіси - це ті додатки з якими працюють люди, яким необхідно дуже швидко взаємодіяти з інтерфейсом - їх ми переводимо на C #. Крім того, C # дозволяє створювати складні звіти, форми, dashboard, що дозволяють бачити одночасно велику кількість різних даних, що змінюють спосіб відображення в залежності від профілю користувача. Зараз вони всі доступні в системі, але в APL - це маленькі віконця, безліч кліків. А кінцевий користувач хоче мінімізувати кількість кліків.

- Тобто C # не витіснить APL остаточно?

Т. Ш.: Не витіснить. Скажімо так, у нас є стратегія поступового переходу на C #, але немає повного переходу навіть у далекій перспективі. Аккаунтинга, як сама внутрішня частина, бухгалтерська система, яка розраховує втрати, прибутки, що працює з великими масивами даних - ця частина якщо коли-небудь і перейде на C #, то в саму останню чергу.

- APL був створений ще в 70-х роках минулого століття, а зараз хто займається розробкою і підтримкою інтерпретатора?

В.З.: Власником цього продукту є компанія Dyalog, компанія SimCorp володіє контрольним пакетом цієї компанії. Мова не стоїть на місці, в ньому постійно додаються нові речі, не можна назвати його зовсім динамічним, але все необхідне в ньому присутня. Підвищується швидкодію інтерпретатора - адже не секрет, що у компільованих мов продуктивність вище. У результаті SimCorp стежить, щоб відбувалися оновлення.

- Наскільки розумію, в Києві ніхто не готує фахівців APL, ви берете навчання повністю на себе?

Т. Ш.: Якщо ми говоримо про процес навчання APL - сім років тому було важко. Тут не було ні однієї людини, яка нам міг би допомогти. Тому спочатку була розроблена дуже хороша, на мою думку, програма - як початковий проект SimCorp в Україну ввести в APL. Був так званий standard assignment - спеціальні тренінгові інсталяції, розроблена програма навчання мови програмування. Були спеціальні вправи, тренінги, завдання.

Це працювало дуже добре, до того моменту, поки ми не виростили тут у себе всередині людей, які в принципі могли б бути вже помічниками, тренерами для наших новоприбулих. У якийсь момент необхідність в цьому досить об'ємному і тривалому (ми навчали людей протягом 4-х місяців) standard assignment відпала, і ми перейшли на більш скорочений варіант. Я не можу сказати, що ми кидаємо людей відразу «у воду», але програма цього assignment скоротилася до півтора місяців і разом з тим зросла роль наших внутрішніх APL-експертів, які допомагають новачкам.

Ю.С.: Ну і це звичайно курс Бернара Леграна (Bernard Legrand), це гуру APL. Всі новачки зобов'язані пройти тижневий базовий курс, до нас приїжджає викладач із Франції. Він стояв біля витоків цієї мови, відмінний викладач і фахівець, може добре, дохідливо і популярно пояснити всю принадність цієї мови. Після цього курсу зазвичай новачки приходять і кажуть - так, це класно, це здорово, ми хочемо програмувати на APL, він дійсно вміє «запалити» початківців.

Напевно, небагато варто розповісти про нашу Академії. Це обов'язкова сходинка для тих, хто хоче стати повноправним співробітником SimCorp, незалежно від того, на яку позицію ви приходите - тестера або програміста. Новачок повинен пройти тритижневий курс SimCorp Академії - це огляд продукту Dimension, який досить складний. Кілька разів на рік ми організовуємо Академію тут і 5-6 разів на рік вона організовується в Копенгагені. На сьогоднішній день Київ та Копенгаген - це два міста, де вона проходить і куди приїжджають люди з усіх країн. Протягом двох тижнів йде начитка лекцій, для цього приїжджають викладачі з Данії. Третій тиждень з допомогою досвідчених співробітників виконуються різні вправи, а потім йде саме цікаве - іспит. Необхідно набрати не менше 60% правильних відповідей, щоб залишитися з нами.

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

- Наскільки добре вдається залучити такий «екзотикою» ринок, хто приходить в компанію?

Ю.С.: Ми можемо умовно розділити пул кандидатів на наступні категорії: перша - це талановиті випускники вузів, які бачать себе в програмуванні, у яких є великий плюс у вигляді фінансового бекграунду і гарна англійська . Невеликий відсоток таких людей ми можемо взяти.

Наступна категорія людей, яка нам цікава - це ті програмісти, які вже мають досвід роботи в якихось закінчених проектах. До нас навряд чи підуть «сішарпери» і «джавісти», але для тих, хто працював, наприклад, з SQL, Delphi або C - для них це може бути цікаво.

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

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

В.З.: У фінансовому світі падіння одного великого банку може спричинити за собою масу небажаних наслідків, і торкнутися навіть тих, хто не ризикував своїми коштами.

Показовий приклад - падіння Lehman Brothers. Під час кризи завдяки нашому продукту деякі компанії змогли вчасно оцінити свої зобов'язання перед банкрутом і повернути свої гроші.

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

- Тобто ваш підхід до розробки - не зовсім Agile?

Т. Ш.: У нас комбінований підхід, я не можу сказати, що у нас Agile і не можу сказати, що у нас Waterfall. В залежності від місця і команди, ми можемо вибирати або той, або той принцип. Є вимоги досить добре визначені, то Agile не дуже потрібен, ми можемо діяти на свій розсуд. Якщо вимоги недостатньо ясні для отримання кінцевого продукту - так, ми десь використовуємо Agile, він дозволяє більше прояснити по ходу подій.

Ще один наш підхід по-русски звучить як «одна голова добре, а дві краще», а данський варіант прислів'я звучить як «чотири очі краще». Після стадії розробки кожен фрагмент проходить код-ревью, коли хтось ще з команди перевіряє написаний код. Останніх пару років, особливо з переходом на C #, у нас посилилася тенденція до юніт-тестів.

Опубліковано: 21/05/12 @ 03:39
Розділ Різне

Рекомендуємо:

SQA Days в Києві : враження учасників
Вони захопили нас?
Стаття Хелла видалена з « Трибуни Громадської палати»
Живий журнал обзавівся доменом. Рф
American Express : підтримка клієнтів через соцмережі вигідна