Globální skupina ABB se sídlem ve švýcarském Curychu patří mezi největší a nejznámější dodavatele elektrotechniky, průmyslové automatizace či bezpečnostních technologií na světě. Svou nesmazatelnou stopu v ABB Group zanechává i několik skupin programátorů působících v České republice. Hosty technologického podcastu SCRIPTease byl manažer softwarového vývoje Jindřich Šonka a vedoucí development týmu Petr Kubát.
Článek vznikl v rámci spolupráce SJ News a podcastu SCRIPTease. Celou epizodu si můžete poslechnout zde:
Úvodní představení společnosti, jejíž roční obrat dosahuje 30 miliard amerických dolarů a která je už 24 let součástí prestižního žebříčku Fortune 500, si vzal na starosti první jmenovaný. „ABB je mimořádně velká firma s širokým portfoliem, které lze rozdělit do tří hlavních skupin. První z nich je elektrifikace, tedy produkty a služby související s elektřinou. Druhou oblastí je robotika. ABB vyrábí své roboty, automatizované linky či motory pro roboty. A třetí oblastí, kam spadáme my s Petrem, je průmyslová automatizace,“ vysvětluje Jindřich Šonka. „Právě sem se řadí divize zaměřené na těžbu nerostných surovin, námořní přepravu společně s přístavy, a také na těžbu a zpracování ropy,“ dodává.
Připomíná však obratem, že celá skupina čítá více než 105 tisíc zaměstnanců působících ve zhruba 100 zemích světa, a tak není možné v rámci jednoho natáčení diskutovat o firmě v kompletní šíři.
Jen v České republice pracuje v ABB asi 3500 lidí, z toho 680 v operačním centru, pod které spadají Šonka s Kubátem. Jejich oddělení zaměřené na softwarový vývoj je specifické v tom, že ABB Group není v žádném případě softwarovou firmou. Avšak při dodávkách zboží a služeb koncovým zákazníkům je často potřeba vše přizpůsobit konkrétnímu prostředí – například ropné plošině. Šonkův tým tak naprostou většinu objednávek dostává od dalších poboček ABB, které následně vyvinutá řešení nabízejí klientům například z řad předních průmyslových a těžařských společností.
Vyhnout se vlnám i vojákům
Dodávka služeb vývojového týmu v ostravské pobočce ABB probíhá typicky ve dvou režimech. „Prvním je takzvaná dlouhodobá kooperace, kdy jsme součástí distribuovaného týmu. Projektový management zastává lokální jednotka a náš tým inženýrů spolupracuje s tím zahraničním. Druhý model nazýváme ‚work package‘ a spočívá v tom, že si převezmeme celou část projektu – například vývoj softwarové aplikace. Pak řešíme vše od začátku do konce – byznys analýzu, projektové řízení, dodávku, testování, nasazení,“ vysvětluje Šonka. Poslední kategorií jsou pak projekty, které týmy zastanou pro koncového zákazníka kompletně. Takových má česká pobočka jednotky a zaměřují se třeba na námořní přepravu či papírenský průmysl.
ABB využívá ve svých produktech následující technologie:
C#, ASP.NET MVC, .NET, Blazor, Angular, React, TypeScript, WPF, Python
„Vyvíjíme například produkt, který umožní poskytovatelům námořní nákladní přepravy spravovat své lodě vzdáleně. Tedy aby věděli, v jakém stavu loď je a jak co nejefektivněji realizovat plavby. Více než 50 % veškerých nákladů v tomto odvětví totiž připadá na spotřebu paliva. Menší firma, která má třicet lodí, dokáže při úspoře 2-3 % paliva ušetřit zhruba 20 až 40 milionů dolarů. Plavbu přitom ovlivňuje mnoho faktorů. My se nezaměřujeme úplně na všechny, ale několik desítek jich řešíme,“ popisuje Šonka.
Zdůrazňuje, že laická představa o tom, že loď může jet na širém moři z jednoho přístavu do druhého v podstatě po přímé dráze a příležitostí pro úsporu paliva příliš neexistuje, je lichá. „Trasa se musí například vyhýbat zakázaným oblastem, což jsou místa s nízkou hloubkou či vyhlášenou uzávěrou, třeba kvůli vojenskému cvičení. Dalším prvkem, který vše komplikuje, je těžko predikovatelný pohyb rybářských lodí. Na algoritmus pro výpočet trasy lodi má vliv i počasí, například směr větru a výška vln. Řešíme i střídající se roční období, která ovlivňují podmořské proudy,“ vysvětluje Jindřich Šonka.
Věčný boj s pašeráky
Na projektech pro námořní divizi v současnosti pracuje i Petr Kubát. A to přesto, že produkty vyvíjené jeho týmem najdou své využití zejména na souši. „Jde o automatizaci kontejnerových terminálů – přístavů a nákladových nádraží. Terminál od nás dostává informaci o tom, jaké kontejnery do něj přijíždějí a jaké z něj odjíždějí. Působíme tedy jako pomyslný vrátný, který komunikuje s dalším softwarem uvnitř terminálu,“ popisuje Kubát. „Kamion projede rozpoznávacím portálem, který zachytí ze všech stran jak samotné auto, tak i kontejner. Další aplikace vyhodnotí, o jaký náklad jde, jestli a kam má nákladní automobil pustit, umožňuje i komunikaci s řidičem prostřednictvím kamery, internetové telefonie či speciálního prostředí na dotykové obrazovce,“ vysvětluje.
ABB nezajišťuje jen operační flexibilitu terminálu, ale také bezpečnost. „Přepravní společnost v rámci plánu musí zadat informace o tom, jaká je registrační značka kamionu, kdo bude řídit, co poveze. Naším úkolem je ověřit, že realita odpovídá plánu. Cílem je zabránit podvodům či pašeráctví,“ dodává Kubát. „Přístaviště je v podstatě malé město. Musíme myslet na to, že kontejnery putují nejen z kamionů na lodě, ale i opačným směrem. Jednou jej naskenujeme v New Yorku, podruhé o pár týdnů později třeba v Londýně,“ doplňuje Šonka.
Přístavní informační systémy jsou obvykle propojeny ethernetovými kabely, avšak od vnějšího internetového prostředí jsou z důvodu zabezpečení pečlivě izolovány, a to včetně serverů určených ke zpracování dat ze senzorů a kamer. Přístup na ně je možný jen skrze zabezpečené síťové tunely a na omezenou dobu – a ani to neplatí ve všech případech.
Supermoderní nádraží v poušti
Konstantní výzvou pro vývojové týmy ABB je technologický dluh, postupné povyšování aplikací na vyšší verze programovacích frameworků nebo přechod z kódové báze Subversion od společnosti Apache na v poslední době oblíbenější a používanější Git. „Rýsuje se před námi také projekt ve Spojených arabských emirátech. Zákazníkem je firma, která staví novou trať přes celé Emiráty a staví několik vlakových a kamionových terminálů, přičemž čtyři z nich budou automatizované pomocí našeho systému,“ zmiňuje Petr Kubát, co jeho kolegy čeká v následujících týdnech.
„Naše problémy a výzvy se stále opakují a jsou hodně podobné dalším softwarovým firmám. Je to byznys analýza, specifikace projektu, definice zadání a jasných akceptačních kritérií. Rozdělení zodpovědností mezi byznys analytiky a projektové manažery, definice rolí – těmto věcem se nyní věnujeme. Snažíme se identifikovat projekty, kde to v minulosti nefungovalo dobře, a posunout je alespoň na úroveň těch, kde to dobře fungovalo, ale spíše ještě dál. Je to dlouhodobá, náročná práce, která obnáší změnu pracovních návyků našich vývojářů i dalších lidí,“ vysvětluje Jindřich Šonka a s úsměvem přiznává, že ví, že si nevybral jako manažer úplně jednoduchý úkol.
Jak konkrétně probíhá návrh důlních systémů a jaké technologie ABB využívá? Je vhodné v produktech pro miliardové společnosti využívat spíše úplně nové, nebo časem osvědčené technologie a frameworky? Jak náročné je vychovat vývojáře pro tak specifické průmyslové obory, jako je těžba ropy či námořní doprava? A může se programátor z ABB vzdáleně připojit třeba na plošinu uprostřed Severního moře, nebo jej čeká nevšední výlet vrtulníkem? To vše se dozvíte v další epizodě podcastu SCRIPTease, jehož studio tentokrát navštívili vedoucí vývojáři z české pobočky ABB Jindřich Šonka a Petr Kubát a moderování se ujal Jirka Bachel z vývojářského klubu LOLO.team.