Hardware bez software jest jak samochód bez silnika – niby ładnie wygląda, ale nigdzie nie zajedziesz. Hardware, czyli nasz komputer i software, czyli oprogramowanie to dwie rzeczy budujące współczesny świat. Już w momencie uruchomienia laptopa korzystasz z oprogramowania – bez systemu operacyjnego ani rusz! We współczesnym świecie nie przetrwamy bez aplikacji, ale dlaczego ich wytwarzanie musi być aż tak drogie?!
Każda firma w XXI wieku musi korzystać z oprogramowania, choć jego rola bywa przeróżna. Zupełnie inne oprogramowanie wykorzystywane jest do marketingu internetowego, inne do księgowości, a jeszcze inne do zarządzania procesem produkcyjnym. Wytwarzając jakikolwiek produkt prawie zawsze będziemy korzystać z jakiejś formy oprogramowania – czy to na etapie początkowym projektując go, czy w trakcie produkcji lub później sprzedaży.
Nowoczesny świat bez oprogramowania nie istnieje
Wiele firm zleca tworzenie oprogramowania dedykowanego ich potrzebom. Zatrudniając software house decydują się na długofalową współpracę, której efekty powinny prowadzić do rozwoju jakości – czy to dostarczenia zupełnie nowej usługi, czy też poprawy dotychczasowych standardów produkcji. Z zatrudnieniem software house’u do wytwarzania oprogramowania mogą się jednak wiązać koszty, na które nie każdy biznes jest gotowy.
Dlaczego nie warto oszczędzać na wytwarzaniu oprogramowania?
Oszczędzanie na współpracy z software house’m może prowadzić do wielu przykrych konsekwencji. Zaczynając od tego, że firma tworząca oprogramowanie może po prostu nas porzucić – nie przyjąć zlecenia lub uznać, że wytworzyła to, co było w umowie i nie wprowadzi więcej poprawek. Aplikacja może działać niezgodnie z wymogami lub bardzo szybko stać się przestarzała. W momencie stworzenia zbyt dużej aplikacji biznes ryzykuje, że koszty utrzymania będą zbyt wielkie, co automatycznie zachęca do szukania oszczędności… Błędne koło się zamyka – software house (jeśli w ogóle jeszcze chce z nami pracować) – nie ma dość funduszy, by dostarczyć wystarczająco jakościowe rozwiązanie. Firma nie jest z niego zadowolona, zleca poprawki, tnie koszta i zamiast spokojnie porozmawiać o problemach, zleca kolejne zmiany…
Jak uciec od takich problemów? Najlepiej już na samym początku: rozsądnie optymalizując budżet.
Na czym nie należy oszczędzać w procesie wytwarzania oprogramowania?
Nie istnieje jedna sztywna lista wytycznych, na czym nie należy oszczędzać, ponieważ każde oprogramowanie jest inne. Dlatego tak istotna jest współpraca z doświadczonymi programistami, którzy będą w stanie oszacować koszt oprogramowania i opowiedzieć o potencjalnych problemach. Istnieje jednak kilka elementów, które na pewno poprawią jakość otrzymywanego oprogramowania. Są to:
– świadome zarządzanie długiem technologicznym i nie usuwanie go „za wszelką cenę”;
– aktualizowanie oprogramowania na bieżąco; nie tylko tego wytwarzanego, ale przede wszystkim tego używanego do wytwarzania aplikacji;
– korzystanie z dobrodziejstw testowania, w tym testów automatycznych, o które powinien zadbać dobry software house;
– rozsądne rozmiary projektu – jeśli wiemy, że budżet może być problemem, nie powinniśmy od razu tworzyć ogromnej aplikacji, bo jej utrzymanie będzie kosztowne.
Co jeszcze pochłania budżet?
Wszystkie wspomniane aspekty pochłaniają budżet, ale zwykle jest to konieczne, by aplikacja była aktualna, bezpieczna i działająca zgodnie z wytycznymi. Dlaczego produkcja oprogramowania jest taka droga? Powodów jest wiele – już sam fakt, że każdy zespół programistyczny składa się z kilku osób, którym trzeba zapłacić, nasuwa pierwszą odpowiedź.
Złożoność oprogramowania
Ponadto w kwestii produkcji oprogramowania dużą rolę zawsze odgrywa jego złożoność. Złożoność oprogramowania może być zmierzona za pomocą dedykowanych temu metryk, na przykład metodą IFPUG lub COSMIC. Istotne jest tutaj, że wzrost złożoności oprogramowania zawsze będzie wpływał na wzrost kosztów jego produkcji, a także czas wytworzenia aplikacji.
Dług techniczny
Wiele firm programistycznych tworząc aplikacje decyduje się zaciągnąć dług techniczny. Dług techniczny może oznaczać na przykład skorzystanie z niewłaściwego oprogramowania do wytwarzania aplikacji. Zespół programistów może zdecydować się na kontynuowanie wybranego rozwiązania, ale musi mieć świadomość, że z każdą chwilę będzie coraz trudniej usunąć ten dług i przejść na oprogramowanie dedykowane problemowi. Długiem może też być kod pisany niezgodnie z dobrymi praktykami – jeśli zespół nie ma czasu na refaktoryzację i pisanie testów, dług będzie się pogłębiał. Nie zawsze jednak warto dług usuwać – czasem koszt usunięcia jest zbyt duży. Jeśli na przykład wkrótce ma się ukazać zupełnie nowa wersja aplikacji napisana od zera, nie warto inwestować w usuwanie długu w wersji starszej, nieaktualnej.
Koszt migracji starych systemów i historycznych danych
Bezpośrednio z długiem technicznym powiązany jest koszt migracji starych systemów. Czasem niestety programiści muszą z jakiś przyczyn korzystać z przestarzałych danych lub bardzo rzadkich języków programowania. Sytuacja ta często ma miejsce w bankowości. Przepisanie bardzo złożonej aplikacji wymagającej uwzględnienia skomplikowanych kwestii bezpieczeństwa może nie być warte wysiłku. Z drugiej jednak strony specjaliści od starych systemów i rzadkich języków mają najwyższe stawki na rynku.
Czy da się coś z tym zrobić? A może tak SPM – Software Process Mining?
Software Process Mining (SPM) to modne pojęcie w dziedzinie zarządzania wytwarzaniem oprogramowania. SPM pomaga przedsiębiorcom w optymalizacji rozwoju oprogramowania, wiążąc się między innymi z usuwaniem długu technicznego, ale nie tylko.
SPM to holistyczne podejście do wytwarzania oprogramowania, w ramach którego diagnozowane są problemy w procesie produkcji oprogramowania, podkreślane najlepsze praktyki, identyfikowane wąskie gardła i negatywne trendy. SPM prowadzi do nieustannego doskonalenia twórców oprogramowania, a przede wszystkim gwarantuje przejrzystość. Przedsiębiorstwo stosujące się do SPM wie, ile zasobów zostało wykorzystanych i znajduje sposoby na ich optymalizację, choćby na optymalizację czasu pracy.
Mierz budżet na zamiary i nie bój się pytać o radę!
Produkcja oprogramowania musi pochłaniać budżet – na to nie ma rady. Jednak nie zawsze są to tak wysokie kwoty, jak z początku się wydaje. W Investcore potrafimy optymalizować budżet, zwiększać wydajność, a także dostarczać minimalne wartościowe produkty (MVP). I to wszystko w akceptowalnym czasie! Najważniejsza bowiem w wytwarzaniu oprogramowania jest rozmowa z software house’m, któremu chcemy powierzyć projekt… a poniekąd przyszłość naszej firmy. To oni powinni umieć doradzić i dostarczyć produkt, który spełni oczekiwania, nie zabijając przy tym firmy. Zresztą przynosi to korzyść obu stronom.
Brak komentarzy