Второто ми работно място. Post-mortem

Декември 2008. Напуснах.

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

Мисля, че вече съм достатъчно кадърен, за да мога да направя оценка на ситуацията. И така, това е post-mortem за моето бивше работно място.

Работих във фирмата около 8 месеца

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

Цялостното ми впечатление е по-скоро негативно.

Работата беше на Python, изключително елегантен език от високо ниво. Вече просто не искам да пиша на C++. Няма причина да хабя двойно повече време, за да напиша двойно по-грозен код, който да върши същата работа, но с два пъти по-голям шанс да има бъгове.

Човекът, който ме покани на интервю, беше кадърен програмист, бивш състезател, поддържа системата с която се провежда националната олимпиада. Аз бях съставил една задача и трябваше да се тества дали успешно се сработва с гореспоменатата система. Бях си написал тестово скриптче на Питон, а той го забеляза и ми каза, че в неговата фирма наемат хора. Той щял да ми бъде пряк началник.

Първите няколко месеца беше сравнително добре.

Аз правех грешки постоянно, но се учех от тях и започвах да усещам къде е пътят, и как да не излизам от него. Version Control, Unit Testing, Refactoring, Дизайн на архитектурата - все неща, на които не те учат в университета. Освен това, абсолютно всичко, което ползвахме във фирмата, беше Свободен Софтуер. Това е хубаво както защото не ми се налагаше да работя с некадърни програми на Microsoft, така и защото работех с неща, които се каня да ползвам и вбъдеще, а и редовно правехме модификации на този софтуер(от което аз научавах много). Аз работех основно по вътрешни проекти - подобрявах инструментите, които всички ползвахме.

Обаче след това…

Team Leader-ът ни - същият, който ме покани да работя във фирмата - напусна.
Той беше кадърен програмист. Работил е в Гугъл, доколкото знам не само на стаж, ами и за постоянно. Обясняваха ми защо бил напуснал, но това е тема за друга статия. Беше ми странно да чуя как някой може да иска да си тръгне от Гугъл. Но, в крайна сметка, когато си млад, работите се сменят лесно.
Та, той не говореше твърде много. И почти винаги беше спокоен. Май даже не съм го виждал ядосан. Умееше да се изразява свободно(нещо, което всеки истински програмист трябва да умее, а аз още не съм усъвършенствал). Често когато в офиса имаше спор, той се намесваше в края с едно-две изречения. Не бяха някакви общовселенски истини, но бяха верни неща, които не бяха казани до момента и те караха да се замислиш. Освен това говореше аргументирано - никога Защото аз казвам, а всеки път Защото ако направиш обратното, вбъдеще ще имаш проблеми с …

Е, той напусна.
И се оказа, че сме екип от четирима, в който няма истински Team Leader. Кадърни програмисти, като цяло, но когато имаш проблем и няма кой да ти помогне с него, работата спира. А един младши програмист се отличава точно с това, че такива случки ги има от време на време. Това е отразено и в заплатата му.

Единият ми колега беше умен, но…

всеки път, когато го питах за нещо, отговорът му все едно беше наказание. Удряше по клавиатурата ми така, все едно че се опитва да я счупи, псуваше мен и света наоколо, като цяло излъчваше аура на не съм аз човекът, на когото да задаваш въпроси.

Другият беше Бог на кода.

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

А третият…

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

Получи се един не особено сплотен екип, без ръководител и без участници с лидерски качества.

Идилията бързо пропадна, а аз започнах да осъзнавам истината.

Без бившия ми началник, вече не научавах почти нищо, защото нямаше нито интересна работа, нито кадърен ментор. Работех не знам кой пореден месец над същите глупави програми за вътрешно ползване. Плановете закъсняваха, понякога с цял месец1 Когато все пак пристигнеха, се оказваше, че не стават за нищо и всичко ще се прави в движение.

Имаше и ужасна бюрокрация. В последния проект, по който работих, ми четоха конско половин час, защото съм бил свършил… повече работа, отколкото трябвало. CSS файловете(проектът беше един малък сайт) бяха направени изключително некадърно. Става дума за аматьорски грешки - такива, каквито би допуснал човек, който върши това за първи път. Най-вероятно е бил правен от красива дизайнерка, която всъщност не е истински дизайнер, но поне е красива. Правилната процедура в такава ситуация е да докладвам на висшестоящ програмист, който да докладва на шефа си, който да се скара на дизайнерката, да и' даде списък с неща, които не са наред, а тя да ги оправи. Некадърно. При което процедурата се повтаря. Вместо, примерно, сам да ги напиша за петнадесет минути. Някой да е учуден, че не успявахме да си свършим задачите навреме?

А програмите ни бяха концептуално сгрешени.

Говорим си за нещо, което създава N на брой таблици в базата данни, при положение, че всъщност му трябва 1. Която на всичкото отгоре вече съществува. Но ние все пак ще я повторим. А след това няма да ползваме нашата, а вече съществуващата. Но това не преди да си направим Create/Read/Update/Delete за всяка от N-те таблици. И след това, 70 реда hard-coded SQL директно в Python кода. Шест пъти подред. Така и не разбрах защо беше това, може би някой е бил решил, че проектът ни не смуче достатъчно.
Когато попитах защо нещата са направени така и защо не сме си проектирали системата така, че да се избегнат допуснатите грешки ми се скараха - младшите програмсти нямат право на глас. А старшите, очевидно, нямат право на здрав разум. Когато предложих да променим готовите неща, изсмяха ми се. Oh well. Няма после аз да го поддържам това.

По някое време осъзнах, че такива глупости са *всичките* неща, които Python екипът върши. Не че Java хората правеха нещо много по-идейно - кажи-речи всичките ни приложения бяха изкопирани от някъде. Но техните поне виждаха бял свят извън офиса.

Какво може да се добави? Екип продажби, които за осем месеца не успяха да сключат и една сделка? Но въпреки това се мислеха за изключително висши същества - по-умни и по-красиви от програмистите? Да, и да.
Шеф, който си няма идея какво става в офиса? Вината не беше изцяло негова, той беше печен, но някъде в бюрокрацията контролът му се губеше. А той не се опита да си го вземе обратно и не се опита да премахне крацията на бюра.
Изключително оригинална схема за плащане на заплати, при която всеки ден, който може да се ореже от надника, се орязва? По закон този петък не е работен ден? - не се плаща за петък. Даже и да си на работа. Или да си на 20 часа на седмица, които ще изкараш - в събота. А ако работиш 30 часа ще получиш бонус, нали? Ми, не. Някой да е учуден защо мотивацията беше повсеместно ниска?

Това заслужава специално внимание

За осем месеца нито веднъж не си получих заплатата навреме! Един път закъсня с 40 дена. Коледното чудо в офиса беше, че на 20-ти декември ни бяха превели заплатите за ноемрви.
Коледни надбавки, Team building и редовни увеличения на заплащането бяха неща, които се случват на другите фирми.

Въобще не изпитвам угризения, че напуснах.

Сериозно, когато си подадох молбата, секретарката три пъти ми се скара, че не съм бил подавал правилните документи. Предизвестието не било достатъчно голямо, молбата не била по специално определения за целта фирмен формуляр. Опита се да ме накара да подам първо молба за отпуск на 29-ти декември, а чак след това молба за напускане - на 22-ри.
Сериозно, какво не ви е наред, хора? В момента, в който започнем да робуваме на статуквото, всяка надежда за вършене на работа се изпарява. Опитвам се да предам някакво послание. А именно Вие сте балъци, напускам. След като посланието е предадено, тогава чак идва време да се уточнят подробностите.

Неприятно.

Защото в такива управленчески грешки се оплитат и похабяват наистина качествени програмисти, които работят там.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License