Wycena realizacji aplikacji internetowej – prace jakościowe
Czas czytania:
W pierwszym artykule tej serii pisaliśmy o elementach składowych wyceny (zobacz artykuł), którą przygotowuje podwykonawca. W tym chcielibyśmy się skupić tylko na pracach jakościowych czyli tych, które sprawią, że Twój projekt będzie lepszy i bardziej wartościowy od innych. Na poczatek przedstawię kilka cech, które które mają wpływ na finalną jakość oprogramowania:
- Wykonanie dobrej analizy wymagań, trafny wybór technologii oraz nowoczesnych rozwiązań
- Przeprowadzenie pełnego procesu projektowego aplikacji – tak od strony interfejsu jak również back-endu.
- Tworzenie kodu aplikacji
- Zgodnie ze standardami i dobrymi praktykami
- Przeprowadzanie code-review
- Opieka i nadzór nad powstającym oprogramowaniem przez projektanta aplikacji, szefa technologicznego
- Testy tak zewnętrzne jak i samego kodu źródłowego
- Pisanie testów jednostkowych z wysokim pokryciem
- Dobre dokumentowanie kodu
- Niekiedy praca developerów w parach
- Mądre wersjonowanie
- Przeprowadzanie testów gotowego systemu
- Funkcjonalne
- Bezpieczeństwa
- Wydajności
- Integralności
- Obciążalności
- Scenariuszowe itd.
- Świetna komunikacja i zrozumienie z zespołem wdrożeniowym
- Duże zaangażowanie czasowe na spotkania z Project Managerem i Product Ownerem.
- Troska zespołu nie tylko o realizowane funkcjonalności ale również ogół projektu
- Patrzenie zawsze „2 kroki naprzód”
- Bieżąca obsługa gotowego systemu
- Wsparcie techniczne zespołu (lub wydzielone osoby do bieżącej obsługi)
- Ciągły monitoring i rozwój systemu
Sporo tego, nieprawdaż? Niestety wielu inwestorów w systemy informatyczne traktuje realizację oprogramowania jako prace w zakresie jedynie „programowania”. I owszem, przy banalnie prostych realizacjach może i jest to rozwiązanie ale tylko i wyłącznie w ekstremalnie prostych pracach. Omówione powyżej aspekty nie zawsze są usługa lecz cechą zespołu/podwykonawcy (jak na przykład „mądre wersjonowanie”) za którą w sposób czasem mniej zrozumiały trzeba też zapłacić. Nasuwa się teraz pewnie pytanie – czemu warto płacić za tak szeroki wachlarz usług? Odpowiedź jest prosta – dla zapewnienia wysokiej jakości finalnego produktu oraz maksymalizacji szans na jego sukces. Każde oprogramowanie (tu powinienem bardziej użyć słowa „produkt”) to składowa prac bardzo wielu specjalistów z różnych dziedzin technologii i biznesu. Suma ich prac i zaangażowania tworzy kompletne i wartościowe narzędzie. Można napisać nawet, że jest to dość skomplikowany proces w którym niekiedy cykle projektowe i web-developmentu się powtarzają aż do uzyskania satysfakcjonującego (bardzo dobrego) efektu końcowego.
Procentowy udział w kosztach składowych kosztów
Spotkaliśmy się nie raz z pytaniami „a jaki udział procentowy w kosztach oprogramowania ma dodanie testów jednostkowych?” albo „Dlaczego koszty komunikacji i obsługi projektu są takie wysokie?” – odpowiedzi na te pytania jednoznacznego nie ma. Każda web aplikacja ma swój specyficzny charakter, określony poziom skomplikowania, pewną ilość procesów logicznych. Każdy podwykonawca sam ocenia skale i poziom złożoności projektu i szacuje jakie elementy wymagają większego zaangażowania a jakie mniejszego, na przykład:
- czy charakter projektu wymaga większej lub mniejszej liczby spotkań lub poświęconego czasu klientowi.
- czy skomplikowanie systemu wymaga dużych nakładów na testowanie i systemy testujące
- jak dużo trzeba poświecić na prace User Expirence?
- Jak dużo system zawiera elementów wymagających obsługi po zakończeniu prac
- Jak istotny jest nacisk na bezpieczeństwo i jakość kodu (w jakiej skali przeprowadzać testy bezpieczeństwa i code-review)
- Jaką ilość danych system będzie przetwarzał i jak będzie obciążany czyli – jak bardzo trzeba optymalizować oprogramowanie.
Jak zatem podejść do wyceny aplikacji?
Przede wszystkim nie spisuj tylko i wyłącznie „funkcjonalności” aplikacji, gdyż jest to wierzchołek góry lodowej wszystkich realnych prac do wykonania przez Software House. Postaraj się również odpowiedzieć sobie na czym Ci zależy w szerszej perspektywie, przykłady:
- Czy mój projekt ma być później rozwijany? (koszty związane z prototypowaniem, modelowaniem procesów, specyfikacją techniczną, testami i code-review)
- Czy zależy mi na wysokiej jakości kodu czy tylko na działającym systemie? (koszty związane z code-review, doświadczeniem zespołu i dokumentacją)
- W jak dużym stopniu niezawodność systemu jest dla mnie ważna (koszty związane z testowaniem i code review)
- Czy ważna dla mnie jest dobra komunikacja z wykonawca? (koszty związane z zarządzaniem projektem oraz obsługą klienta)
- Czy chcę zrobić aplikację szybko czy zgodnie z przyjętymi standardami?
- Jak wydajny ma być system? (koszt związany z optymalizacją wydajności)
- Jak bezpieczny ma być system? (koszty związane z testami bezpieczeństwa)
Jak sam widzisz aspektów kosztowych każdej aplikacji jest bardzo wiele, jeśli sam nie określisz bardzo precyzyjnie własnych potrzeb wówczas podwykonawcy lub podmioty biorące udział w przetargu będą oceniały projekt przez własny pryzmat i w przypadku kryterium cenowego – nie będą zazwyczaj brane prace jakościowe. Warto abyś wówczas dokładnie zapytał co wchodzi w zakres oferty aby później móc to rzeczywiście zweryfikować.
Zainteresował Cię ten artykuł?
Może Cię również zainteresować:
5 rzeczy, na które warto zwrócić uwagę, wybierając dedykowany system klasy ERP, WMS lub LMS
Tworzenie dedykowanych aplikacji web’owych (dostępnych przez przeglądarkę WWW z poziomu komputera, tabletu czy telefonu) jest… Read More
Warsztaty Discovery – 5 powodów dla których warto je przeprowadzić
Post pochodzi bezpośrednio z naszych oficjalnych kanałów na Social Media. W dynamicznym… Read More
Optymalizacja eCommerce vs. Zewnętrzny Dyrektor Technologiczny
🛠️ Studium przypadku 🛠️Post pochodzi bezpośrednio z naszych oficjalnych kanałów na Social… Read More