Konec dohadů o parkovací místo aneb jak jsme v Pricefx vyřešili problém s parkováním díky férovému botovi
Tomáš Lamr, Principal Software Engineer v Pricefx
Znají to asi všichni, kteří do práce jezdí autem, ale u kanceláří mají jen omezený počet parkovacích míst. Pár vyvolených neustále parkuje v pohodlí kousek od vchodu a zbytek musí kroužit v přilehlých ulicích, což se může protáhnout na nekonečné minuty.
Stejný problém řešili také v německém startupu Pricefx, který má v Česku hlavní vývojářské centrum a loni do něj investoři poslali dalších 600 milionů korun. U svých karlínských kanceláří v Praze má pouze pár parkovacích míst, a tak řešil, jak s nimi nakládat férově.
Tomáš Lamr, který v Pricefx působí jako Principal Software Engineer, teď v komentáři pro CzechCrunch popisuje, jak si ve firmě napsali férového bota, se kterým už teď nejen řeší parkování, ale také sdílí kanceláře a vybírají, kdo bude dělat pro celý tým snídani.
***
Téměř před rokem jsme začali mít problém s parkovacími místy v naší kanceláři v Karlíně. Přicházelo stále více nových lidí, ale v naší budově na Křižíkově už nebyla další parkovací místa k pronájmu. Vyvstala tak otázka, jak rozhodnout, kdo, kdy a kde bude parkovat.
Naštěstí jsme odvrátili hrozbu použití nějakého rezervačního systému a udělali to jinak – férově. Výsledkem je, že se tento večerní a víkendový projekt rozrostl a vyřešil nám také problém s obsazováním pracovních stolů a dalším „managementem sdílení“ a to především tak, že se žádný management nekoná a vše se deleguje na aplikaci Holdybot, kterou jsme vytvořili.
Problém: Nejdřív začneme s parkovacími místy. Představte si, že máte 10 parkovacích míst, na kterých chce denně parkovat skupina 5 až 20 lidí, celkem tedy 30 až 40 unikátních uživatelů. Vy, jako office manager, máte za úkol to zařídit tak, aby byli všichni spokojení. Místa přikoupit nemůžete, protože už nejsou. Jak na to?
Návrh 1: Nic nedělat.
Zdá se to jako hloupost, ale pro vás je to skoro optimální strategie. Necháte lidi, ať postupně vjedou do garáže, projedou se kolem deseti parkovacích míst a kdo najde prázdné místo, ten ho obsadí. Naopak ten, kdo ho nenajde, jede zpět a hledá parkovací místo na ulici – všichni řidiči můžou potvrdit, že je to zkrátka otrava, která na náladě ráno nepřidá.
Nastartujte svou kariéru
Více na CzechCrunch JobsA co v případě, když přijede do kanceláře jako návštěva zákazník nebo zahraniční kolega? V podstatě jediné, co můžete udělat je, že zablokujete dané místo den předem nějakým zátarasem anebo brzy vstanete, dorazíte do kanceláře a vymyslíte způsob, jak místo pro návštěvu zabrat. Takže ve výsledku, taky nic moc.
Návrh 2: Rezervační systém.
To je bohužel přístup, který volí většina lidí. Vezmete Excel, Outlook nebo jinou aplikaci a v režimu „kdo dřív přijde, ten dřív mele“ si lidé zaberou místa. Někteří toho využijí a zaberou si parkovací místo na rok dopředu – což není fér. Když omezíte budoucí rezervace, tak jen přesunete problém na to, kdo je kdy online a může si uzmout dané místo pro sebe na úkor jiných.
Ve výsledku dokola parkují jen ti samí lidé. Pro běžného zaměstnance, který jezdí autem do práce jen zřídka, je najedou parkování v podstatě nemožné získat. Jediný způsob, který mu zbývá, je dostatečně včas kontaktovat office managera a delegovat tento úkol na něj. Což pro office managera znamená kontaktovat ty, kteří už mají místo zarezervované a zjišťovat, jestli je opravdu potřebují nebo ne.
Možná se to nezdá, ale za tímto přístupem je spousta práce, které se dá vyhnout. Často se stává, že podle rezervačního systému nemůžete zajistit parkovací místo jiným lidem, protože je v něm vyznačené, že je plno. Pak jdete do garáže a zjistíte, že polovina lidí, která si zarezervovala místo nepřijela a ani se neobtěžovala zrušit svoji rezervaci v rezervačním systému.
Je to bludný kruh – spousta práce, která i přes snahu office managera, vede k nespokojenosti.
Návrh 3: Jinak a lépe.
Technických řešení vás určitě napadla spousta. Mohli bychom dát přednostní právo rezervace lidem, kteří žijí dál nebo mají děti a až hodinu po nich otevřít rezervaci ostatním. Problém je v tom uvědomit si, že se nejedná o technický problém. Naprogramovat lze cokoliv, ale pokud bude existovat ve vašem systému nějaká nespravedlnost, na kterou někdo doplatí, nakonec to budete vy, kdo to odskáče nejvíc. Lidé za vámi, jako office managerem, totiž budou chodit a ptát se, proč právě oni nemůžou nikdy sehnat parkovací místo, když jezdí jen jednou za čas. A tyhle příběhy budete poslouchat denně a ze všech stran.
Opravdové řešení by tedy mělo splňovat následující podmínky:
- Být férové – žádná losovačka, ale každý by měl být spokojený s výsledkem, a to i v případě, že se na něj nedostane.
- Nesmí vygenerovat žádnou práci navíc a musí se zbavit všech nedostatků předchozích řešení.
Tak se dostáváme k Holdybotu, který můžete najít online na Holdybot.com nebo si můžete stáhnout zdrojové kódy na Githubu a pustit si aplikaci u sebe. Tohle řešení používáme v Pricefx již devět měsíců na rezervace parkování, pracovních stolů, masáží, a dokonce i pro rozhodování, kdo pro team připraví snídani.
Samotná aplikace funguje v prohlížeči jak na mobilu, tabletu i desktopech. Má tmavý režim a ovládá se jednoduchým stisknutím/klikem na jedno místo a díky tomu ji zvládnou používat i vaši obchoďáci! Je rychlá a nemá uživatele, takže se přihlašujete e-mailem přes jednorázový token, nebo můžete jít přes OpenID Connect a vaši centrální autoritu (Google/Azure/LinkedIn/Facebook).
Jak to tedy funguje?
Definujete si vaše parkoviště nebo vaši kancelář na podstránce „Settings“ a vaše volba se následně objeví v záložce „Calendar“. V ní uvidíte dny v řádku a lidi pod nimi ve sloupci. Dny jsou rozděleny na tři typy:
- dny v minulosti,
- aktuální den (pozná se podle ztmavených okrajů),
- budoucí dny.
Kliknutím na libovolný, nadcházející den, vytvoříte žádost o rezervaci a vaše jméno se objeví pod zvoleným datem se žlutým pozadím. Tímto „klikem“ se zároveň změní barva vybraného dne také na žlutou – to je potvrzení, že máte v tento den zájem o místo.
Každý den, v přesný čas (dle konfigurace, default 16:00), provede Holdybot přiřazení, kdo získá volná místa a kdo ne. Značka aktuálního dne se poté posune na další den.
Obrázek výše říká: V neděli v 16:00 se spočítá, kdo získá místo na pondělí a zvolené jméno se automaticky označí zeleně, kdo naopak místo nezíská, je označen hnědou barvou. Do této doby byli všichni označeni žlutě. Následně se automaticky pošle e-mail a notifikace do Slacku/Teams, aby každý věděl, na čem je.
Po 16:00 v neděli (až do 16:00 v pondělí) to vypadá takto:
A jak se to spočítalo? Holdybot se podíval na posledních 30 dnů a seřadil uživatele od těch, kteří využívali parkování nejméně (za každé parkování započítává nějaké body). Na základě tohoto seznamu poté přiřadil všechna volná místa. Prostě AI/ML z roku 2033.
Pokud nějaká místa zbydou, tak kdokoliv může jednoduchým kliknutím na aktuální den místo rovnou získat.
A jak žádost o rezervaci zrušit? Jednoduše kliknu na den, kdy už o místo nemám zájem. Pokud jsem již místo na určitý den získal a ráno zjistím, že mi není dobře, můžu získané místo pro ten samý den vrátit a Holdybot mi vrátí i nějaké body. V tom případě můj záznam v aplikaci zčervená (stejně jako níže pro Johnyho) a už s ním nejde nic dělat. Stejné je to i s dny v minulosti – nelze na ně kliknout a něco měnit.
Na tomto obrázku se Johny vzdal místa. Ostatní hnědí ihned dostali e-mail, že se nějaká místa uvolnila, a pokud na ten den znovu kliknou, Holdy jim ihned přiřadí uvolněné místo.
Dostatečné řešení to je, ale pro firmu, do které přijíždějí návštěvy, to ještě není ideální. Proto, pokud jste přihlášeni jako admin, uvidíte vedle loga tlačítko. Pokud na něj kliknete, objeví se na stránce u všech dnů nová tlačítka, která vám umožní s místy manipulovat – odebrat někomu místo nebo naopak někomu místo přiřadit.
Jako admin máte více možností. Do fialového políčka nad určitým dnem, můžete přidat jakoukoliv informaci, např. „Dnes v kanceláři nepoteče teplá voda“ nebo „Bude ISO audit“… Zároveň uvidíte tlačítko „On behalf of“, které vám umožní udělat „sudo“, převléknout se za jiného uživatele a odkliknout rezervaci za něj, což je přesně to, co jako office manager potřebujete.
A to je způsob, jak sdílíme naše parkovací místa. Nikdo nemusí nic řídit, ani se s nikým domlouvat. Všem je jasné, kdo, kdy a proč mohl nebo nemohl parkovat, protože součástí aplikace je i tabulka s body za všechny úkony. Na stránce Analytics můžeme vidět boží obrázek a veškerá data, která nám pomůžou zjistit jaký zájem o parkování je a nemusíme si to domýšlet na základě reakce lidí.
Přístup k těmto datům mají všichni, takže každý ví jak na tom firma je. Pokud admin provede nějakou akci s určitým záznamem, objeví se u něj ikonka „provedeno adminem“.
Po devíti měsících provozu můžu v klidu říct, že je to obrovský úspěch a Holdy nám úplně vyřešil problémy s parkováním.
Funguje to pro parkoviště i pracovní místo
Jako remote-first firma, kde velká část lidí pracuje z domova, jsme potřebovali vyřešit problém s pracovními stoly. Oficiálně máme lidí podobně jako stolů v kanceláři, ale naprostá většina pracuje vzdáleně, takže místa je stále habaděj. Teď budete chtít někoho přijmout, ale oficiálně ho nemáte kam posadit. Co teď? Není to stejný problém jako s parkovacími místy? Skoro ano…
Koncept místa jsme zobecnili a umožnili, aby místo mělo vlastníka. Pokud se uživatel přihlásí a podívá se na kalendář s jeho místem, neuvidí dny modře, ale zeleně. To znamená, že pro daný den místo už má, ale kliknutím na ten den se z něj může odhlásit (zešediví) a tím umožnit ostatním, aby jim bylo přiřazeno.
Tato malá změna je vše, co potřebujeme. Dávání svého místa k dispozici je nepovinné, každý se může rozhodnout sám, jestli to udělá nebo ne. Pokud své místo nevyužívají, dávají ho k dispozici ostatním. Vše bez jakéhokoliv managementu nebo jiné ztráty času.
Některé kolegy motivuje, že jsou body pro parkování a pracovní stoly sdílené, tj. pokud dají svůj stůl k dispozici, dostávají body, které zvyšují jejich šanci na výhru parkovacího místa. Každopádně většina lidí to dělá jen kvůli tomu, že jim to přijde správné.
Během několika měsíců používání, jsme vychytali maličkosti, aby bylo používání Holdybota co nejpříjemnější. Holdy se například snaží přiřazovat stejné místo, abyste nemuseli přeparkovat auto, pokud se zdržíte více dní. Dny, které v aplikaci nepoužijete (např. víkendy), můžete schovat. Jednotlivá místa mohou mít také tagy (u Okna, Engineering/Accounting,…), které lze vybírat v žádostech o rezervaci.
Nakonec kolegové Holdyho začali používat i na rozhodnutí, kdo bude dělat snídaně, a dokonce i na rezervaci masáží v kancelářích. Koncept této aplikace v přihlašování/odhlašování je tak obecný, že se dá použít jednoduše na cokoliv, např. na management sportovních klubů ale to hlavní je, že prostě a jednoduše funguje a je to férovka!