„Jak zapewniacie jakość kodu?” – to jedno z najpopularniejszych pytań od klientów w trakcie rozmowy wstępnej. Powtarza się na tyle często, że postanowiliśmy to omówić w postaci artykułu. Dowiesz się z niego jak w Atinea dbamy o wyniki naszej pracy. Najpierw jednak obalimy mit, że umowa może zagwarantować jakość kodu.
Złudna umowa
Wiele osób wierzy w to, że ich interesy w trakcie współpracy zabezpiecza umowa. To bardzo złudna wiara. Z naszych obserwacji wynika, że zapisy umowne nie zagwarantują wysokiej jakości efektów. Jest to technicznie niemożliwe, gdyż programowanie to zbyt rozległa dziedzina. Wystarczy powiedzieć, że jeden system można zrealizować w co najmniej kilku technologiach i na kilkanaście różnych sposobów. To tworzy mnóstwo scenariuszy dla powstawania i usprawniania kodu, a przewidzieć to i zapisać w umowie graniczy z cudem. Jeśli ktoś twierdzi, że jest inaczej, to zwyczajnie nie wie, o czym mówi.
Co robimy, aby zapewnić najwyższą jakość naszego kodu?
Skoro umowa nie działa na tej płaszczyźnie, to w jaki sposób dbamy o to, aby efekty naszej pracy były zgodne z wymogami klientów? Często klienci zgłaszają swoje obiekcje na ten temat, mówiąc: „Z waszej umowy wynika, że poprawki błędów będą wymagać dodatkowych godzin Waszej pracy. To sugeruje, że nie będziecie dbać o wysoką jakość kodu na etapie jego tworzenia. Jak rozwiązujecie tę kwestię? W jaki sposób zapewnicie mnie, że Wasz kod będzie wysokiej jakości?”
Jest to doskonałe pytanie. A oto nasza odpowiedź.
Po pierwsze należy wyjaśnić, że outsourcing IT to w dużym uproszczeniu zatrudnienie pracowników, tyle że w szybszy i bezpieczniejszy sposób. Czy szefowie wymagają od swoich etatowych programistów, żeby zostawali po godzinach i za darmo poprawiali swoje błędy? Oczywiście, że nie. Dokładnie tak samo działa to w przypadku typowego outsourcingu – ewentualne błędy wymagają dodatkowego czasu, aby je poprawić. Z tym że my mamy sprawdzone metody na kontrolę i ograniczenie ilości tych błędów. Ponadto nasz outsourcing znacząco różni się od typowego body-leasingu.
Poza metodami i unikalną formułą usługi, mamy też świetną ekipę programistów. Dlaczego to takie ważne?
Wysokie umiejętności programistów
Wybitny programista wykona swoją pracę szybciej i lepiej od programisty przeciętnego. Wybitny programista popełni mniej błędów, a dzięki swojej wiedzy i doświadczeniu szybko je wykryje. Wybitny programista z łatwością nauczy się nowej technologii, bo zna jej podstawy w postaci języka niższego rzędu. Nikogo to nie dziwi, ale…
Co to ma do rzeczy?
My zatrudniamy dokładnie takich programistów i to ich umiejętności są pierwszym czynnikiem, który decyduje o wysokich wynikach naszej pracy. Są to prawdziwi mistrzowie kodu i to określenie nie jest nadużyciem. Za proces rekrutacji w naszej firmie odpowiada Andrzej Gąsienica-Samek, który sam zdobył tytuł mistrza świata w programowaniu zespołowym. Kiedyś był dyrektorem działu Badań i Rozwoju w Comarchu. Dzisiaj jest prezesem zarządu Atinea.
Jego metody i wiedza pozwalają mu selekcjonować najlepszych i odrzucać wszystkie inne kandydatury. Dodatkowo co kwartał organizujemy testy kompetencji wśród naszej załogi. Tak do rekrutacji, jak i do testów korzystamy z zadań pochodzących z olimpiad programistycznych. Już nawet jedno takie zadanie potrafi oddzielić średniaków od mistrzów programowania. Ci pierwsi nigdy nie znajdą u nas zatrudnienia.
Tutaj warto dodać, że nasi programiści znają język C/C++. Na tej podstawie budują swoje kompetencje w technologiach wyższego poziomu. Znając fundament w postaci języka C, dokładnie rozumieją mechanikę kodu i szybko uczą się nowych technologii.
Pracują sprawnie, eliminują błędy, działają z wyprzedzeniem, przewidują ewentualne problemy. Są pierwszym filarem naszej dbałości o jakość.
Przemyślane procesy
Drugim czynnikiem, który decyduje o jakości naszego kodu, są procesy wytwórcze. Tutaj ponownie ich autorem jest Andrzej Gąsienica-Samek. Jego doświadczenia z czasów kierowania działem R&D okazały się bezcenne i do dziś procentują w Atinea. Na czym polega nasz proces? Pomijając szczegóły, sprowadza się on do sprawnej kontroli nad każdym etapem powstawania, modyfikacji lub przejmowania kodu. Gdy jakiś element systemu okazuje się trudniejszy do wdrożenia, natychmiast dowiadujemy się o tym i rozwiązujemy ten problem. Takie działanie pozwala wykrywać problematyczne części kodu jeszcze na etapie prac nad nim i skutecznie eliminować błędy, jakie mogłyby z tego wyniknąć.
Ostatecznie to klient ma decydujący wpływ na proces testowania i wprowadzania poprawek. Bazując na jego wytycznych, dostosowujemy nasze procesy i dostarczamy mu wybrany element systemu, który jest zgodny z wymaganiami. Możemy działać szybko i wdrożyć główną funkcjonalność, a następnie obudować ją innymi modułami. Możemy również modernizować działające systemy w sposób zrównoważony, tak, aby nie naruszyć ich stabilności i dokładnie testować nawet najmniejsze zmiany. Wszystko zależy od aktualnych potrzeb i wymagań naszych klientów.
Wiedza, umiejętności i doświadczenie
Powyższe trzy cechy to czynniki decydujące o sukcesie w branży IT. My nie dajemy nikomu złudzeń zapisami umownymi, które tak naprawdę niczego nie gwarantują. W zamian oferujemy to, co ma największe znaczenie: świetnych programistów i dopracowane procesy, a wszystko to wsparte ponad 20-letnim doświadczeniem w IT.
Skupiamy się na tym, co istotne, czyli na sprawnym kodowaniu i pełnej kontroli nad całym procesem. Aby jeszcze bardziej usprawnić kontrolę nad postępem prac, do każdego zespołu programistów przydzielamy kierownika z naszej strony. Zespół dzieli się pracą, szacuje czas potrzebny na jej wykonanie, a kierownik panuje nad wszystkim i reaguje, gdy szacunki zaczynają rozmijać się z rzeczywistością.
Tak w skrócie wyglądają nasze metody dbania o jakość. Możemy o nich opowiedzieć w większych szczegółach i chętnie zrobimy to podczas rozmowy telefonicznej lub na spotkaniu. Jeśli chcesz dowiedzieć się więcej i poznać nasze sprawdzone metody współpracy, to skorzystaj z poniższego formularza lub zadzwoń i umów się z nami na rozmowę.