Zdjęcie główne wpisu na bloga wykres malejący

Jak obniżyć całkowity koszt witryny internetowej

Na konferencji, w której uczestniczyłem jakiś czas temu, jeden z CTO zauważył, że „w dzisiejszych czasach za dobre oprogramowanie płaci się jak za zboże”. Patrząc na niektóre budżety projektów, rzeczywiście można odnieść takie wrażenie. Co więc powinieneś zrobić, jeśli masz ograniczony budżet, a potrzebujesz witryny internetowej? Na szczęście istnieje wiele sposobów, które mogą pozwolić ci obniżyć koszty.

Poświęć czas na badania i planowanie

Dobry plan pozwala zaoszczędzić czas. Może się wydawać, że szybkie działanie to świetny pomysł, ale dopiero po zakończeniu planowania. Planowanie jest tańsze niż realizacja tylko po to, aby musieć później ponownie wykonywać pewne czynności, gdy okaże się, że były lepsze rozwiązania, lub że nie wszystko zostało dobrze przemyślane. 

Poza tym, to właśnie w fazie planowania można wiele zrobić, aby redukować koszty. Wskazane poniżej cele da się osiągnąć głównie dzięki szczegółowemu planowaniu wymagań i zarządzaniu oczekiwaniami.

Unikaj zaczynania od zera

Pośród dostępnego oprogramowania Open Source znajdziesz mnóstwo projektów tworzonych przez społeczność, które mogą być doskonałym punktem wyjścia dla twojego własnego projektu. Pozwolą ci one zaoszczędzić ogromną ilość czasu i pieniędzy. W zależności od twoich wymagań, mogą one lepiej lub gorzej odpowiadać twoim potrzebom, ale ich właściwe dostosowanie nadal będzie tańszą opcją.

Na przykład: jeśli w dzisiejszych czasach chcesz zbudować witrynę internetową, najczęściej nie tworzysz całości od zera, ale bazujesz na CMS-ach Open Source, takich jak Drupal czy Wordpress. To oczywiste. 

Ale czy możesz uzyskać jeszcze więcej? TAK! Wokół obu tych CMS-ów skupiają się na przykład dedykowane społeczności, które tworzą doskonałe, gotowe do użycia serwisy internetowe zbudowane na bazie podstawowej instalacji. 

Korzystając z Drupala, zbudowaliśmy starter dla stron korporacyjnych i biznesowych. Droopler jest wysoce konfigurowalny, oferuje wiele wstępnie zbudowanych elementów i może zaoszczędzić twojemu zespołowi ogromną ilość czasu dzięki nadającym się do wielokrotnego zastosowania komponentom, opcjom SEO itp.

Już samo rozglądanie się za dostępnymi rozwiązaniami może pozwolić ci oszczędzić dużo czasu i pieniędzy. 

Rób mniej

Planując nowy projekt, zwykle spisuje się wszystkie wymagania – te niezbędne, te potencjalnie przydatne i te uzupełniające – w jednym dokumencie, a następnie próbuje się wdrożyć je wszystkie. Jest to drogie i niepotrzebne.

Sugeruję, abyś w pierwszej wersji zrobił tylko to, co niezbędne. Całą resztę należy zaplanować już na kolejne fazy. Dobrze działa podejście, w którym spisuje się wszystkie wymagania i ocenia się ich priorytet w skali F1-F4, a następnie planuje się dostarczenie w pierwszej fazie jedynie tych oznaczonych jako F1 – przy czym F1 oznacza, że bez danego elementu nie da się zrealizować projektu, a F4 oznacza, że można się bez niego obejść nawet przez 2 lata.

Ważne jest, aby upewnić się, że F2 i F3 są możliwe do realizacji dzięki pakietowi oprogramowania i zespołowi, który wybrałeś, ale nie należy jeszcze planować ich wdrożenia. Na początku powinieneś zwyczajnie zapomnieć o wszystkich elementach z zakresu F2-F4.

Zaletą tego podejścia jest nie tylko zmniejszenie kosztów, ale również:

  1. Więcej czasu na działania marketingowe – będziesz mógł szybciej wykorzystać swoją nową witrynę internetową i zarobić pieniądze na kolejne fazy.
  2. Możliwość zmiany zdania – nawet najlepsze plany nie są wolne od błędów. Po uruchomieniu często staje się jasne, że początkowe założenia nie były w 100% poprawne i elementy, które pierwotnie oceniono jako F2, zmieniły się w F3 lub F4, a jednocześnie pojawiają się nowe elementy, które okazują się skrajnie istotne.

Gdy masz już pełną listę elementów F1, zastanów się, czy możliwe byłoby dostarczenie ich jeden po drugim, a nie wszystkich naraz. Dzięki temu jeszcze szybciej postawisz swój serwis. Zasadniczo, jeśli w twojej aktualnej witrynie czegoś brakuje, to prawdopodobnie możesz się bez tego obyć również w pierwszej wersji nowej witryny.

Na przestrzeni lat widziałem wiele projektów z wysoce złożonymi funkcjonalnościami, które miały być niezbędne, a ostatecznie nigdy tak naprawdę nie były używane. Im mniejszy będzie twój projekt początkowy, tym lepiej. To właśnie w tym punkcie możesz zaoszczędzić mnóstwo pieniędzy.

Ustalanie priorytetów jako narzędzie do zarządzania oczekiwaniami interesariuszy

Podejście bazujące na ustalaniu priorytetów i stopniowym dostarczaniu spisuje się doskonale nie tylko w celu zmniejszenia początkowego obciążenia pracą i kosztów. To również świetne narzędzie do zarządzania oczekiwaniami i ograniczania polityki dotyczącej projektów. Zazwyczaj, jeśli tworzysz nowy serwis internetowy, musisz zaangażować do projektu interesariuszy. Mogą zaoferować wiele ważnego, ale i mniej ważnego wkładu. Jednakże oni sami mogą być istotni, a ich wymagania mogą nie być łatwe do pominięcia, nawet jeśli nie stanowią elementów podstawowej ścieżki do sukcesu projektu.

Jednym ze sposobów na zadowolenie wszystkich jest uwzględnienie wszelkich wymagań, a następnie nadanie im priorytetu w ramach właściwej kolejności faz, w których zostaną dostarczone. Pozwoli to każdej zainteresowanej osobie na rozszerzenie zakresu projektu o jej wkład, ale nie zwiększy od razu wysiłku i kosztów wymaganych dla dostarczenia 1 wersji witryny. Z mojego doświadczenia wynika, że w typowym projekcie interesariusze są bardzo zaangażowani w fazę planowania i uruchomienia. Dalsze fazy dostarczania F2 i F3 są mniej popularne i często pozostawia się je zespołowi projektowemu. Kolejne nowe i zmienione wymagania, które napływają po uruchomieniu, prowadzą projekt ku nowym kierunkom, a początkowe listy F2 i F3 stają się przestarzałe, dzięki czemu można nie zaprzątać sobie głowy wieloma wymaganiami, które na początku trudno byłoby wykluczyć. ;)

Nie twierdzę, że wymagania zainteresowanych stron są bez znaczenia. Wiele z nich jest niezwykle ważnych, a zarządzanie interesariuszami także jest istotne. Po prostu poszukujemy tu sposobu na szybsze i tańsze dostarczenie witryny. Poza tym, jeśli jakiś wymagany element z Fazy 2 lub Fazy 3 rzeczywiście zostanie wdrożony, dowiedzie to, że był naprawdę potrzebny i nie dało się go pominąć.

Uprość niezbędne elementy

Masz już listę kluczowych i wymaganych elementów. Pytanie, które powinieneś teraz sobie zadać, brzmi: „Czy mogę je uprościć?” Czy jest jakiś łatwiejszy sposób na uzyskanie dokładnie tego samego rezultatu?

Zamień „świetnie" na „szybkie", gdzie tylko ma to sens

Być może istnieje szansa na jakiś kompromis, który ma sens i mógłby obniżyć koszty? Pamiętaj, że projekt jest realizowany, aby osiągnąć cele. Nie osiągnie się ich, jeśli będzie doskonały pod kątem technologicznym, ale zbyt drogi.

W programowaniu witryn internetowych typowym polem dla poszukiwania kompromisów jest na przykład konfigurowalność. Niektóre rzeczy powinny być konfigurowalne, ale nie wszystkie. Pozbycie się elementu konfigurowalności zazwyczaj obniża koszty programowania.

Kolejny kompromis polega na wykorzystaniu czegoś, co jest już gotowe, ale spełnia 80% twoich oczekiwań, zamiast poświęcania mnóstwa czasu na tworzenie od zera, aby ostatecznie spełnić te oczekiwania w 100% (przy czym 100% rzadko osiąga się w indywidualnych projektach).

Nie mam tu oczywiście na myśli szukania kompromisów co do jakości, ale funkcji. Funkcje można dodać później, jeśli okażą się potrzebne. Jednakże trudno jest potem poprawić jakość.
Zastąp pierwotny pomysł alternatywnym, tańszym rozwiązaniem

Kolejnym uproszczeniem jest przyjrzenie się złożonym funkcjom i zastanowienie się, czy być może cele, które mają zostać spełnione, dałoby się osiągnąć w inny, tańszy sposób. Typowe przykłady to:

  1. Strony z ofertami pracy wraz z całym procesem składania podań, na potrzeby których z łatwością można wykorzystać dostępne na rynku rozwiązania SAAS. 
  2. Formularze opinii można przejąć z rozwiązania SAAS.
  3. E-commerce – stosowane rozwiązania łatwo da się zastąpić Shopify lub podobną platformą.
  4. Skomplikowane sekcje FAQ, w których ludzie mogą dodawać pytania, na które szukają odpowiedzi (zazwyczaj lepiej zastąpić je prostą, ręcznie edytowaną sekcją FAQ i formularzem „prześlij pytanie” – wysyła on pytanie na dany adres e-mail).
  5. Skomplikowane integracje z wieloma usługami – mogą być niezbędne, ale sposób ich integracji można odpowiednio dostosować. Czasami iframe może wykonać zadanie lepiej niż dwukierunkowy mechanizm komunikacji.

Im więcej niestandardowych elementów i własnych rozwiązań, tym wyższy koszt budowy i utrzymania.

Na koniec – pamiętaj o zasadzie 80-20

Jak ktoś powiedział: „Gotowe jest lepsze niż idealne”. Witryna internetowa powinna spełniać swoją rolę, a nie stanowić dzieło sztuki. Jeśli możesz uzyskać 80% żądanego wyniku przy 20% wysiłku, wybór takiej ścieżki jest całkowicie sensowny. Zawsze możesz opracować pozostałe 20% później, gdy będziesz miał większy budżet i więcej czasu.
 

3. Najlepsze praktyki zespołów programistycznych