
Wywiad: jakość oprogramowania dedykowanego
26.09.2023
X Kongres Przedsiębiorczości organizowany już w listopadzie w Krakowie stał się doskonałą okazją do podjęcia dyskusji na temat jakości oprogramowania, tworzonego w Opsenio. Szczególnym wyróżnieniem stało się uzyskanie nominacji do Polskiej Nagrody Jakości. Więcej na ten temat można przeczytać w mini wywiadzie opublikowanym w Forbes Polska „Zaprogramowani do perfekcji”: przeczytaj wywiad. A już teraz zapraszamy do lektury zdecydowanie bardziej rozbudowanej rozmowy z Jakubem Rumianem.
Marta Skiba: czy rzeczywiście wszyscy w Opsenio są „zaprogramowani do perfekcji”?
- Jakub Rumian: to pytanie nie tylko do mnie, ale do całego Teamu. Osobiście w pełni podpisuję się pod tym stwierdzeniem. Istota tworzenia oprogramowania dedykowanego opiera się na nieustannym dążeniu do perfekcji. Zarówno od strony technologicznej, jak proklienckiej. W Opsenio traktujemy oba te wyzwania niezwykle poważnie.
Marta Skiba: rozumiem, że takie podejście czyni Opsenio wyjątkowym partnerem technologicznym? Na tym polega główny atut marki?
- Jakub Rumian: myślę, że taką postawę szczególnie doceniają klienci. Wypadkową sukcesu stanowi także zaangażowanie całego Teamu i dobór partnerów technologicznych, którzy są jednymi z największych graczy na rynku. Transfer doświadczeń w gronie specjalistów procentuje w każdym pojedynczym projekcie, który realizujemy.
Marta Skiba: mówisz o dużych graczach z sektora IT, porozmawiajmy zatem o konkretnych markach.
- Jaku Rumian: oczywiście! Należymy do Cohesive – międzynarodowego lidera w dziedzinie transformacji cyfrowej i zarządzania aktywami przedsiębiorstw. Brand powstał poprzez połączenie czołowych marek sektora IT, które zostały wyselekcjonowane przez Bentley Systems. Wszystko po to, by dostarczać oprogramowanie jak najwyższej jakości i efektywnie wprowadzać innowacje w przedsiębiorstwach na całym świecie. Naszym partnerem technologicznym jest też IBM, którego chyba nikomu nie trzeba przedstawiać. Całości obrazu dopełnia Siemens wraz z platformą low-code Mendix, która umożliwia tworzenie wysokiej jakości aplikacji w optymalnym czasie. Przykładów mogę podać więcej, najważniejszy jest ich wspólny mianownik: nieustanny rozwój i dążenie do podnoszenia jakości.
Marta Skiba: partnerstwo technologiczne jest więc podstawą sukcesu w kontekście tworzenia jakościowego oprogramowania dedykowanego?
- Jakub Rumian: niewątpliwie to ważny czynnik. Trzeba jednak wyróżnić się z tłumu, a to już kwestia wewnętrznych uwarunkowań w firmie.
Marta Skiba: zdradzisz receptę Opsenio na to wyróżnienie?
- Jakub Rumian: wiele firm koncentruje się na jakości punktowo a dla nas ważne jest podejście holistyczne. Nie faworyzujemy elementu wytwórczego, nie skupiamy się jedynie na kontakcie z klientem w zakresie zapewniania jakości. Kompleksowe patrzenie na cały proces tworzenia, wdrażania oprogramowania i supportu – to czynniki, które nas wyróżniają na rynku.
Marta Skiba: kompleksowe podejście definiuje markę Opsenio?
- Jakub Rumian: w praktyce definiują nas trzy wymiary: to czym się zajmujemy, jak to robimy i z kim. Nie wyobrażam sobie zapewnienia jakości realizowanych projektów bez odpowiednio dobranych ludzi. Jakość pojawia się już na etapie wdrożonych procedur rekrutacyjnych, w systemie motywowania, w tworzeniu jasnej ścieżki działań projektowych. Miałem szczęście spotykać i dobierać do współpracy bardzo wartościowych ludzi. Ci ludzie tworzą obecnie Opsenio i jestem pewien jednego: ciężko znaleźć drugi tak bardzo zaangażowany zespół. To prawdziwa wartość i podstawa jakości naszego oprogramowania.
Marta Skiba: bo jakość zaczyna się od ludzi…
- Jakub Rumian: zdecydowanie tak. Bez fundamentów każda konstrukcja jest słaba, nawet ta tworzona w świcie IT. Fundamenty odpowiedniej jakości to również sprawdzone narzędzia i produkty. Dobór komponentów do portfolio jest niezwykle istotny. Bardzo dużo czasu zajęło nam zweryfikowanie, jaką platformę low-code wybrać. Decyzja o topowej marce Mendix była poprzedzona nie tylko badaniami rynku i opinii, ale też szerokich możliwości rozwiązania. W podobny sposób podchodzimy do wyboru wszelkich wykorzystywanych komponentów.
Marta Skiba: i dopiero mając te fundamenty rozpoczyna się koncentracja na jakości procesów?
- Jakub Rumian: przechodząc do szczegółów w zakresie zapewnienia jakości należy pamiętać o pewnym cyklu życia oprogramowania, czy też cyklu wytwórczym. Oczywiście nasze projekty realizujemy zwinnie lub kaskadowo, jednak zawsze wyróżnić możemy fazę lub działania związane z projektowaniem, wytworzeniem i utrzymaniem oprogramowania. Każdy z tych elementów musi być odpowiednio zaadresowany. Jeśli źle zaprojektujemy rozwiązanie, błędy będą pojawiać się na kolejnych etapach i będą trudne do usunięcia. Im dalej zajdziemy z błędnie zaprojektowanym rozwiązaniem, tym bardziej kosztowne będzie jego wycofanie.
Marta Skiba: dlatego tak ważnym elementem jest odpowiednie zaadresowanie systemu, czyli w zasadzie sam wstęp do działań projektowych?
- Jakub Rumian: odpowiednie zaprojektowanie systemu pod kątem funkcjonalnym, architektury, wymagań niefunkcjonalnych związanych np. z ergonomią, bezpieczeństwem czy wydajnością to podstawy. Kluczowe jest tu zebranie wymagań, ich zrozumienie, przełożenie na realnie funkcjonujące projekty. Należy w klarowny sposób zaprezentować pomysł na nowy system, postawić na otwartą komunikację z klientem i stałą weryfikację działań. Do tego dochodzi też odpowiednie zebranie wymagań UX/UI.
Marta Skiba: gdzie się w tym wszystkim pojawia element troski o zapewnienie jakości?
- Jakub Rumian: jakością jest dobór zespołu, wykorzystanie odpowiednich technik zbierania wymagań i prezentacji projektu (diagramy BPMN, UML), prezentacji ekranów użytkownika czy też logiki, itd. Bardzo często wykorzystujemy podejście test driven development. Zaczynamy projekt od interfejsu stopniowo dorabiając logikę dla elementów tego interfejsu.
Marta Skiba: i tutaj wchodzimy już w zagadnienia prowadzenia projektu. Wspomniałeś o pojęciu zwinnym i kaskadowym, teraz mówisz o test driven development. Jak się ma pojęcie jakości do zarządzania projektami IT?
- Jakub Rumian: aby zapewnić jakość, wszystkie osoby zaangażowane w projekt muszą znać i rozumieć stosowaną metodykę. Dbamy o to, by zasady były czytelne, zrozumiałe, transparentnie komunikowane oraz stosowane. Tylko w ten sposób teoretyczne założenia stają się użyteczne w praktyce. Wyróżniamy odpowiednie role w zespole, zakresy odpowiedzialności, cele projektowe, czasami produkty zarządcze. Ogromną wartość w każdym projekcie ma określenie zasad kontroli postępu prac. Każdy ze wskazanych elementów to część składowa procesu zapewniania jakości oprogramowania dedykowanego.
Marta Skiba: omówiliśmy etap projektowania i zarządzania projektami IT, czas na wytwarzanie. I coś mi mówi, że tutaj też możesz wiele opowiedzieć w kontekście jakości.
- Jakub Rumian: troska o jakość na tym etapie to przede wszystkim dobór wzorców projektowych, architektonicznych i frameworków oraz stosowanie ich w projektach. W procesie wytwórczym powinna następować ciągła weryfikacja kodu (code review). Staramy się zawsze patrzeć na kod kompleksowo: jedna osoba go tworzy, inna weryfikuje i akceptuje. To dodatkowe zabezpieczenie jakości. Wykorzystujemy narzędzia analizy statystycznej kodu (wyłapujące np. duplikaty, ilości linii, zagłębienia, etc.), narzędzia wyłapujące podatności w kodzie czy też w zastosowanych komponentach. Aktualnie proces wytwórczy i jakość wspierane są poprzez wykorzystanie pewnych narzędzi w procesie CI CD – wgrywanie (deployment) odpowiednich zmian na środowiskach z równoległą ich weryfikacją. Testy są dla nas kluczowym elementem działań.
Marta Skiba: czyli nie liczy się samo oddanie produktu tylko uzyskanie pewności, że produkt spełnia wymagania jakościowe?
- Jakub Rumian: zdecydowanie tak! Nasze produkty powinny być stabilne a klienci muszą czerpać z nich realne korzyści biznesowe. Dlatego tak wiele firm zostaje z nami na dłużej. Dla nas istotne jest, aby w projekcie pojawiła się faza testów. Mamy bardzo mocny zespół testerów czy to automatycznych czy manualnych. W ramach projektów realizujemy unit testy, testy integracyjne, testy end-to-end, UAT w tym testy UX/UI np. first click testing. Realizujemy również testy DRP – disaster recovery plan. Przy testach wykorzystujemy oczywiście odpowiednie narzędzia, np. do automatyzacji testów funkcjonalnych, wydajnościowych i bezpieczeństwa. Dbamy o ciągły monitoring aplikacji oraz odpowiednie logowanie.
Marta Skiba: dużo tu specjalistycznych nazw, czy możesz podać przykład, w jaki sposób działają takie testy?
- Jakub Rumian: na bazie automatycznych narzędzi do testowania wydajności jesteśmy w stanie optymalizować zapytania, kod i szybkość działania systemu usuwając wąskie gardła. Nasze systemy są systemami krytycznym dla np. sektora bankowego, dla sektora energetycznego. Tutaj nie ma miejsca na błędy. Wydajność oraz bezpieczeństwo są dla nas bardzo ważne.
Marta Skiba: sporo się dzieje w fazie wytwarzania oprogramowania…
- Jakub Rumian: owszem, a warto powiedzieć jeszcze o samych środowiskach pracy i zasadach ich aktualizacji. Dbamy o to, by wykorzystać środowisko developerskie (co najmniej jedno), testowe (co najmniej jedno), preprod i produkcyjne. W okresie utrzymania warto mieć także środowisko referencyjne. Ważne jest określenie zasad zarządzania tymi środowiskami, tj., kiedy i w jaki sposób przechodzą zmiany np. ze środowiska dev na środowisko test, itd.
Marta Skiba: i tym sposobem docieramy do ostatniej fazy w zakresie tworzenia oprogramowania, fazy utrzymania.
- Jakub Rumian: wsparcie świadczone dla klientów, gdy system został już wdrożony, jest niezwykle istotne. Buduje poczucie realnego partnerstwa technologicznego, zaufania. Z punktu widzenia zarządzania jakością mówimy tu o doborze odpowiednich osób, które są w stanie świadczyć wsparcie powdrożeniowe na jak najwyższym poziomie. W grę wchodzą tez czasy reakcji, naprawy i dobór optymalnych kanałów komunikacji z klientem. Stosujemy tu praktyki ITIL, które stanowią nieodłączny element naszych codziennych działań. Wdrażamy oprogramowanie dedykowane klasy EAM i ITISM, troska o jakość jest naszym priorytetem.
Marta Skiba: całe to holistyczne podejście przekłada się bezpośrednio na jakość oprogramowania dedykowanego tworzonego w Opsenio. To tak naprawdę to cześć DNA firmy.
- Jakub Rumian: największym plusem jest fakt, że nasza jakość wpływa bezpośrednio na innych. Po pierwsze nasi klienci mają pewność, że korzystają z rozwiązania stabilnego i dokładnie sprawdzonego. Po drugie, indywidualnie dobrane funkcjonalności naszych systemów poprawiają jakość działań operacyjnych w wielu krytycznych dla gospodarki sektorach. Przedsiębiorstwa zyskują dostęp do systemów, które optymalizują komunikację, proces podejmowania decyzji, obsługi konkretnych procesów. Można wymieniać wiele przykładów, jednak jedno jest pewne: wysoka jakość oprogramowania dedykowanego oddziałuje szeroko na użytkowników systemów.
Marta Skiba: dzięki Jakub, brzmi to jak doskonałe podsumowanie całej rozmowy. Jakość, która realnie wpływa na innych to gratyfikacja sama w sobie.
Masz dodatkowe pytania lub ciekawi Cię nasz sposób pracy? Skontaktuj się z nami, chętnie opowiemy o możliwościach współpracy i pomożemy wprowadzić Twoją firmę na wyższy poziom optymalizacji.