Jak napisać własne oprogramowanie?
Większość firm na pewnym etapie rozwoju rozważa możliwość wdrożenia systemów informatycznych wspomagających proces zarządzania, produkcji, przebiegu pracy i inne. Zjawisko to dotyczy niemal wszystkich sektorów gospodarki, w tym również branży tłumaczeniowej. Stosunkowo często menedżerowie podejmują decyzję o samodzielnym stworzeniu takiego oprogramowania, przekonani, że będzie to najbardziej elastyczne i najkorzystniejsze finansowo rozwiązanie. Niestety nic bardziej mylnego.
Planowanie
Decyzję o stworzeniu własnego oprogramowania należy poprzedzić szczegółową analizą określającą m.in. koszty oraz etapy procesu produkcji. Pierwszym i jednym z najważniejszych zadań jest stworzenie bardzo szczegółowej dokumentacji, zawierającej spis wszystkich pożądanych rozwiązań, funkcji użytkowych, zakresu pracy systemu itp. Taka wyczerpująca specyfikacja jest bazą do pracy zespołu informatyków. Na jej podstawie zostanie dobrana technologia, zdefiniowany wygląd systemu i sposób przebiegu pracy. Warto podkreślić, że dokumentacja nie oznacza kilku stron ogólnie zarysowanych zadań, ale ponad 100 stron specyfikacji zawierającej drobiazgową listę wszystkich elementów i metod realizacji kolejnych scenariuszy pracy. Ogólnie ujmując, na stworzenie takiej dokumentacji należy poświęcić kilka do kilkunastu tygodni pracy.
Kolejna kwestia to wybór osoby, która będzie prowadzić projekt i odpowiadać za komunikację pomiędzy zlecającym a zespołem projektowym. Zadaniem takiego kierownika projektu jest bowiem przełożenie wizji początkowej na uporządkowaną strukturę systemu, a następnie na zestaw elementów kolejno realizowanych przez zespół. Należy przy tym pamiętać, że informatycy posługują się bardzo specjalistycznym językiem, dlatego też dodatkową rolą kierownika będzie przełożenie zadań i funkcjonalności, ustalonych z pomysłodawcą systemu, na język informatyczny zrozumiały dla osób zaangażowanych w pisanie kodu programistycznego.
Technologia
Następnym krokiem w projekcie jest wybór technologii. Należy rozpocząć poszukiwania specjalisty, najczęściej bardzo kosztownego, znającego dostępne na rynku rozwiązania. Taka osoba powinna, stosownie do przedstawionych potrzeb i oczekiwań, zaproponować technologię, która nie tylko sprawdzi się w danym momencie, ale pozwoli na swobodny rozwój i modyfikację oprogramowania w przyszłości. W tym miejscu należy wziąć pod uwagę, że z biegiem czasu pewne oczekiwania firmy będą ewoluować, zmieni się otoczenie i wymagania rynkowe, powstanie konieczność wprowadzenia zmian czy uruchomienia dalszych możliwości. Błędna decyzja w wyborze technologii może skutecznie utrudnić pracę firmy w dalszym czasie oraz narazić ją na dodatkowe koszty.
Zespół programistów
Można rozpocząć organizowanie zespołu informatyków. Chodzi tu o specjalistów, którzy mają doświadczenie w wybranej technologii i będą rzetelnie realizować poszczególne etapy przedstawionego im projektu. Ta część pracy wbrew pozorom jest dość trudna i ryzykowna. Podobnie jak w każdej dziedzinie, istnieje ryzyko rekrutacji osób, których umiejętności nie spełnią naszych oczekiwań. Trzeba liczyć się z faktem, że wiele osób, choć deklaruje podjęcie się stawianego przed nimi zadania, w rzeczywistości nie posiada niezbędnej wiedzy i doświadczenia. A efekty błędnej rekrutacji odczuje przede wszystkim nasza firma. Dobrze zatem przewidzieć w miarę precyzyjną metodę weryfikacji kandydatów, liczyć się z kosztami oraz czasem koniecznym do zbudowania właściwego i kreatywnego zespołu.
Proces tworzenia
Gdy posiadamy już odpowiednie zasoby ludzkie, należy przejść do etapu realizacji projektu, a zatem „pisania kodu”. Czas, jaki należy przewidzieć na tę część, zależy od stopnia skomplikowania zaplanowanego systemu oraz wielkości zespołu informatyków. Można założyć, że w przypadku oprogramowania, wykorzystywanego do zarządzania działami i biurami tłumaczeń, okres ten wynosi na pewno kilka do kilkunastu miesięcy. Warto zaznaczyć, że jest to również czas licznych konsultacji, dopracowywania poszczególnych kwestii zawartych w dokumentacji początkowej, poszukiwania najbardziej właściwych rozwiązań danego problemu. Oczywiście im bardziej obszerna i precyzyjna była wstępna specyfikacja, tym mniej czasu należy przewidzieć na pracę z kierownikiem projektu.
Testowanie
Po kilku miesiącach pracy, gdy system wydaje się nabierać właściwego kształtu, należy przejść do etapu testowania. Nowy produkt instaluje się na serwerach testowych, a następnie symuluje takie użytkowanie, by pracami kontrolnymi objąć całą jego funkcjonalność. Tego typu testy są zazwyczaj przeprowadzane zarówno na poziomie programistycznym, jak i użytkowym, a zatem wymagają zaangażowania również pracowników wewnętrznych biura. Okres testowania jest zazwyczaj dość żmudny i czasochłonny, co więcej, może utrudnić bieżącą pracę firmy. Należy jednak pamiętać, że im dokładniej ten etap zostanie przeprowadzony, tym sprawniej i szybciej nastąpi końcowe uruchomienie systemu.
W wyniku powyższych prac powinna powstać szczegółowa lista elementów wymagających poprawek. Produkt wraca do zespołu informatyków, gdzie usuwa się wykryte błędy i realizuje oczekiwane zmiany. W ten sposób przygotowywana jest kolejna wersja i powtarzana cała procedura testowania. Po kilku takich cyklach powstaje system, który na tyle satysfakcjonuje zamawiającego, że można rozpocząć etap wdrożenia i szkolenia pracowników.
Wsparcie techniczne
Na koniec do rozstrzygnięcia pozostają jeszcze dwie kwestie: wsparcie techniczne i bieżąca pomoc dla pracowników oraz rozwój systemu o kolejne funkcje i możliwości, na które pojawia się zapotrzebowanie w miarę pracy i rozwoju firmy. Oznacza to, że po wdrożeniu systemu, kiedy pozornie prace wydają się być zakończone, nadal musimy utrzymywać zespół, który będzie rozwiązywać bieżące problemy oraz udoskonalać i rozbudowywać program. Projekt staje się więc procesem ciągłym, a nie jednorazowym przedsięwzięciem.
Produkcja własnego systemu do zarządzania biurem w dużym przybliżeniu ma właśnie taki przebieg. Czy powyższy opis przeraża? Z pewnością podejmując się realizacji projektu o takiej skali, trzeba wziąć pod uwagę, że zarówno koszty, jak i czas potrzebny na wprowadzenie systemu są kilkanaście do kilkudziesięciu razy większe niż w przypadku zakupu gotowego już rozwiązania. Firma musi rozbudować strukturę pracowniczą, angażować się organizacyjnie, czasowo i koncepcyjnie w kolejne etapy pracy, by w bliżej nieokreślonym czasie (rok, może dwa) stworzyć własny, niekoniecznie doskonały produkt. Warto bowiem zaznaczyć, że decyzja o budowaniu systemu to przede wszystkim ryzyko, że nie wystarczy energii i środków finansowych na ukończenie projektu lub że produkt końcowy okaże się zgoła inny od tego, który początkowo rysował się w naszej głowie.
Andrzej Nedoma
Współwłaściciel i dyrektor zarządzający biura LIDO-LANG w Krakowie (Polska). Jeden z pomysłodawców i twórców systemu do zarządzania biurami tłumaczeń (XTRF™ Translation Management Systems)




