Dlaczego konserwacja aplikacji internetowych powinna być czymś więcej

Opublikowany: 2022-03-10
Krótkie podsumowanie ↬ Aplikacje internetowe wymagają konserwacji, tak jak każdy inny rodzaj oprogramowania, ale jako branża nie jest to coś, na co zwracamy uwagę. W efekcie narażamy naszych klientów na wymierne ryzyko, a także zostawiamy pieniądze na stole.

Tradycyjni twórcy oprogramowania ukrywali przed nami tajemnicę na widoku. To nie jest nawet kwestionowany fakt. To część ich modelu biznesowego.

Nie ma znaczenia, czy mówimy o wysokiej klasy dostawcach oprogramowania dla przedsiębiorstw, czy mniejszych firmach zajmujących się oprogramowaniem, które piszą narzędzia, z których wszyscy korzystamy na co dzień w naszej pracy lub firmach, takie jak bezpłatny menedżer dzienników systemowych. Jest tam z przodu i na środku. Dodatkowe koszty, których nie ukrywają i do których przyzwyczailiśmy się płacić.

Więc czym jest ten sekret?

Cóż, wielu tradycyjnych dostawców oprogramowania zarabia więcej na utrzymaniu oprogramowania, które piszą, niż na początkowej sprzedaży.

Nieprzekonany?

Szybkie wyszukiwanie terminu „Całkowity koszt posiadania” zapewni wiele podobnych definicji, takich jak ta z Gartner (podkreślenie moje):

[TCO] to koszt wdrożenia, obsługi, wsparcia, utrzymania lub rozszerzenia oraz wycofania aplikacji z eksploatacji.

Co więcej, w artykule opublikowanym na Uniwersytecie Stanforda stwierdza się, że utrzymanie zwykle wynosi od 60% do 90% całkowitego kosztu posiadania oprogramowania.

Warto to na chwilę zagłębić . Zarabiają znacznie ponad początkową cenę zakupu, sprzedając bieżące plany wsparcia i konserwacji.

Więcej po skoku! Kontynuuj czytanie poniżej ↓

Nie naciskamy na konserwację

Problem, jak widzę, polega na tym, że w branży tworzenia stron internetowych utrzymanie aplikacji internetowych nie jest czymś, na czym się skupiamy. Możemy umieścić to w naszych propozycjach, ponieważ podoba nam się pomysł miesięcznego wynagrodzenia, ale prawdopodobnie będą one obejmować proste zadania porządkowe lub prośby o nowe funkcje.

Nie jest niczym niezwykłym ukrywanie niezbędnych aktualizacji i optymalizacji w naszych wycenach na późniejsze iteracje, ponieważ nie jesteśmy pewni, czy klient będzie chciał zapłacić za rzeczy, które uważamy za niezbędne ulepszenia. Próbujemy wciągnąć ich tylnymi drzwiami. Innymi słowy, nie jesteśmy otwarci i przejrzyści, że podobnie jak bardziej tradycyjne oprogramowanie, te aplikacje wymagają konserwacji.

Bez względu na powody, staje się jasne, że gromadzimy problemy na przyszłość. Tworzone przez nas aplikacje są dostępne na dłuższą metę . Musimy myśleć jak tradycyjni dostawcy oprogramowania. Nasze oprogramowanie będzie nadal działać przez 10 lub 15 lat i powinno być utrzymywane w dobrym stanie.

Jak więc możemy to zmienić? W jaki sposób my wszyscy jako branża zapewniamy naszym klientom ochronę, aby rzeczy były bezpieczne i aktualne? Podobnie, w jaki sposób możemy wziąć udział w torcie konserwacyjnym ?

Co to jest konserwacja?

Heather Smith i James McKeen w swoim artykule z 2012 r. Efektywna konserwacja aplikacji definiują konserwację jako (podkreślenie moje):

Przeniesienie aplikacji na nowy serwer, połączenie z innym systemem operacyjnym, uaktualnienie do nowszej wersji, zmiana tabeli podatkowej lub zgodność z nowymi przepisami — wszystko to wymaga konserwacji aplikacji. W rezultacie konserwacja koncentruje się na unowocześnianiu aplikacji w celu zapewnienia jej produktywności i/lub opłacalności . Definicja utrzymania aplikacji preferowana przez grupę fokusową to — każda modyfikacja aplikacji w celu usunięcia błędów; poprawić wydajność; lub dostosować aplikację do zmienionego środowiska lub zmienionych wymagań. W ten sposób dodanie nowej funkcjonalności do istniejącej aplikacji (tj. ulepszenie) nie jest, ściśle rzecz biorąc, uważane za utrzymanie .

Innymi słowy, konserwacja jest niezbędną pracą, którą należy wykonać na aplikacji, aby mogło nadal działać niezawodnie i bezpiecznie.

Nie dodaje nowych funkcji. Nie sprawdza plików dziennika ani nie zapewnia wykonywania kopii zapasowych (są to zadania porządkowe). Pracuje nad kodem i podstawową platformą, aby upewnić się, że wszystko jest aktualne, że działa zgodnie z oczekiwaniami użytkowników i że światła pozostają włączone.

Oto kilka przykładów:

  • Zmiany w technologii i platformie
    Biblioteki innych firm wymagają aktualizacji. Język bazowy wymaga aktualizacji, np. PHP 5.6 do PHP 7.1 Nowoczesne systemy operacyjne regularnie wysyłają aktualizacje. Nadążanie za tym jest konserwacją i czasami będzie wymagało również zmian w kodzie, ponieważ stare sposoby robienia pewnych rzeczy stają się przestarzałe.

  • skalowanie
    W miarę rozwoju aplikacji pojawią się problemy z zasobami. Procedury w kodzie, które działały dobrze przy 10 000 transakcji dziennie, mają problemy z 10 000 na godzinę. Aplikacja musi być monitorowana, ale także należy podjąć działania w przypadku wyzwolenia alertów.

  • Naprawa błędów
    Oczywiste, ale warte wyjaśnienia. Oprogramowanie zawiera błędy, które wymagają naprawy. Nawet jeśli uwzględnisz krótki okres darmowych poprawek błędów po wysłaniu projektu, w pewnym momencie klient będzie musiał zacząć za nie płacić.

Trudno sprzedać?

Co ciekawe, kiedy rozmawiam o tym z moimi rówieśnikami, czują, że trudno jest przekonać klientów, że potrzebują konserwacji. Obawiają się, że ich klienci nie mają budżetu i nie chcą, żeby byli zbyt drodzy.

Cóż, oto rzecz: w rzeczywistości jest to dość łatwa sprzedaż. Mamy do czynienia z ludźmi biznesu i po prostu musimy porozmawiać z nimi o konserwacji w kategoriach komercyjnych. Ludzie biznesu rozumieją, że aktywa wymagają konserwacji lub staną się pasywami. To po prostu kolejne standardowe stałe miesięczne obciążenie. Koszt prowadzenia działalności. Musimy tylko umieścić to w naszych propozycjach i upewnić się , że to zrobimy .

Niezwykle skuteczną metodą jest zaoferowanie elementu ustalającego, który w swoim rdzeniu obejmuje konserwację, ale także oferuje wiele dodatkowej wartości dla klienta, takie jak:

  • Raportowanie postępów a KPI (np. ruch, konwersje, liczba wyszukiwań)
  • Ograniczony „darmowy” czas każdego miesiąca na drobne poprawki w witrynie
  • Raportowanie o przestojach, aktualizacjach serwera lub zakończonych pracach rozwojowych
  • Kontakt telefoniczny z Tobą lub konkretnymi członkami Twojego zespołu, aby odpowiedzieć na pytania

Rzeczywiście, możesz sprawić, że zaliczka zaoszczędzi pieniądze klienta i zapłaci za siebie. Dobrym przykładem może być żądanie klienta, aby co miesiąc otrzymywać prosty raport lub eksportować z bazy danych do przetwarzania w trybie offline.

Możesz wycenić kilka dni rozwoju, aby zbudować — prawdopodobnie bardziej złożony niż początkowo zakładano — interfejs użytkownika raportowania lub alternatywnie skierować klienta do swojego przedstawiciela. Uwzględnij w nim co miesiąc zadanie dla programisty, aby ręcznie uruchomić wstępnie ustawione zapytanie SQL w celu ręcznego dostarczenia tych samych danych.

Trywialne zadanie dla Ciebie lub Twojego zespołu; dużo wartości dla twojego klienta.

Praktyczny przykład

Oczywiście będziesz miał swój własny sposób pisania propozycji, ale oto kilka fragmentów z przykładowej prezentacji.

W sekcji swojej propozycji, w której możesz namalować swoją wizję na przyszłość, możesz dodać coś o konserwacji. Wykorzystaj to jako okazję do zasiania ziarna o tworzeniu długoterminowej relacji.

Chcesz zminimalizować długoterminowe ryzyko.

Chcesz mieć pewność, że Twoja aplikacja działa dobrze, jest bezpieczna i łatwa w obsłudze.

Rozumiesz również, jak ważna jest konserwacja każdego zasobu biznesowego.

Później, w sekcji elementów wynikowych, możesz dodać część dotyczącą konserwacji jako samodzielną opcję lub w pakiecie z bieżącym ustalaniem.

W poniższym przykładzie staramy się to uprościć i dołączamy do przedpłaconej opłaty programistycznej:

Zdecydowanie zalecamy, aby wszyscy klienci uważali konserwację za niezbędne koszty ogólne ich witryny. Nowoczesne aplikacje internetowe wymagają konserwacji i tak jak Twój dom czy samochód; utrzymujesz swoje aktywa w celu zmniejszenia namacalnego ryzyka, że ​​później staną się pasywami .

Jako klient, który jest rozsądnie zainteresowany utrzymaniem aplikacji, jak również dodawaniem nowych funkcji, sugerujemy N dni w miesiącu (jako punkt wyjścia) na ogólne utrzymanie i rozwój.

Rozłożylibyśmy wszystko tak, aby programista pracował nad twoim systemem przynajmniej [pewny okres w tygodniu/miesiącu], dając ci wyraźną przewagę, że programista może przełączyć się na coś ważniejszego, jeśli pojawią się problemy w [tym samym okresie] . W zależności od Twoich priorytetów, ten czas można poświęcić na pracę nad nowymi funkcjami lub podzielić na konserwację, to Twoja decyzja. Zwykle sugerujemy podział 75%/25% na nowe funkcje i ważne prace konserwacyjne.

Jak wcześniej wspomniano, jest to również świetna okazja, aby połączyć konserwację z innymi bieżącymi usługami o wartości dodanej, takimi jak raportowanie wydajności, przeprowadzanie zadań porządkowych, takich jak sprawdzanie kopii zapasowych, a nawet comiesięczna rozmowa telefoniczna w celu omówienia postępów i priorytetów.

To, co prawdopodobnie odkryjesz, to to, że po wylądowaniu pracy, ustalacz nie jest już wspominany. Jest to zrozumiałe, ponieważ Ty i Twój klient musisz rozważyć wiele rzeczy na początku projektu, ale gdy projekt się kończy, jest to świetny moment, aby ponownie wprowadzić go w ramach procesu offboardingu projektu.

Niezależnie od tego, czy chodzi o fazę 2, czy po prostu o wprowadzenie faktur końcowych i przekazanie, przypomnij im o konserwacji. Przypomnij im o ciągłym szkoleniu, raportowaniu i możliwości uzyskania wsparcia . Naciskaj na aparat podtrzymujący, pamiętając, aby mówić tymi samymi słowami handlowymi: ich nowy atut wymaga utrzymania, aby pozostał błyszczący .

Czy konserwacja może być denerwująca?

Powszechnym błędem jest przekonanie, że uchwyty alimentacyjne mogą stać się dodatkowym obciążeniem. Obawa polega na tym, że klienci będą stale do ciebie dzwonić i prosić o drobne poprawki w ramach twojego aparatu. Jest to szczególnie ważne w przypadku mniejszych zespołów lub konsultantów indywidualnych.

Jednak zwykle tak nie jest. Może na początku klient będzie miał listę problemów, które trzeba przepracować, ale to jest normalne; jeśli masz doświadczenie, to tego oczekujesz. Można nimi łatwo zarządzać, ulepszając kanały komunikacji (użyj narzędzia do śledzenia problemów) i łącząc wszystkie żądania razem, tj. pracując nad nimi w jednym działaniu.

W miarę dojrzewania aplikacji przejdziesz w tryb tick-over. W tym miejscu uchwyt staje się szczególnie cenny dla obu stron. Oczywiście zależy to od tego, jak ustrukturyzowałeś aparat, ale z Twojej perspektywy starasz się co miesiąc przypominać klientowi, jak bardzo jesteś cenny. Możesz wysłać im swój miesięczny raport, powiedzieć im, jak naprawiłeś spowolnienie w tej procedurze i że serwer został załatany pod kątem globalnego exploita systemu operacyjnego w tym tygodniu.

Oczywiście można było również pracować nad wieloma nowymi żądanymi funkcjami , które były dodatkowo płatne . Z perspektywy klienta widzą, że tam jesteś, widzą postępy i mogą usunąć „martwienie się o stronę internetową” ze swojej listy. Oczywiście „ci klienci” istnieją, więc najważniejszą rzeczą jest właściwe sformułowanie i odpowiednie zarządzanie oczekiwaniami.

Jeśli twój klient spodziewa się księżyca na patyku za niską miesięczną opłatą, odsuń się lub renegocjuj. Płacenie za — powiedzmy — dwie godziny konserwacji i sprzątania miesięcznie w ramach sporządzania comiesięcznego raportu i innych zadań pomocniczych jest dokładnie tym; nie jest to czek in blanco, aby wprowadzić wiele zmian ad hoc. Przypomnij im, co zawiera, a co nie.

Jak ułatwiamy konserwację?

Wreszcie, aby zapewnić najlepszą wartość dla swoich klientów i ułatwić sobie życie, użyj niektórych z tych taktyk podczas tworzenia aplikacji.

Wsparcie długoterminowe (LTS)

  • Korzystaj z platform technologicznych z dobrze udokumentowanymi wersjami LTS i ścieżkami aktualizacji.
  • Należy się spodziewać ciągłych aktualizacji systemu operacyjnego, języka, frameworka i CMS we wszystkich projektach, więc śledzenie wersji LTS jest proste.
  • Wszystko powinno działać w obsługiwanej wersji. Jeśli tak nie jest, powinny rozbrzmiewać wielkie dzwonki alarmowe.

Dobra higiena projektu

  • Miej zadania konserwacyjne publicznie w swoim rejestrze funkcji lub systemie śledzenia problemów i uzgodnij priorytety z klientem. Nie ukrywaj zadań konserwacyjnych.
  • Testy na poziomie kodu i testy funkcjonalne pozwalają mieć oko na szczególnie problematyczny kod i pomogą przy wyciąganiu modułów do refaktoryzacji.
  • Monitoruj aplikację i dowiedz się, gdzie są wąskie gardła i błędy. Wszelkie problemy można dodać do zaległości programistycznych i odpowiednio nadać im priorytety.
  • Monitoruj prośby o pomoc. Czy użytkownicy końcowi przekazują przydatne informacje zwrotne, które mogą wskazywać na wymagania dotyczące konserwacji?

Aplikacja powinna być przenośna

  • Każdy programista powinien mieć możliwość łatwego uruchomienia i uruchomienia systemu lokalnie — nie tylko Ty! Użyj wirtualnych serwerów lub kontenerów, aby upewnić się, że wersje rozwojowe aplikacji są identyczne z wersjami produkcyjnymi.
  • Wniosek powinien być dobrze udokumentowany. Należy co najmniej spisać przepływy pracy aprowizacji i wdrażania oraz wszelkie specjalne zaklęcia wymagane do wdrożenia.

Konserwacja to prawdziwa wygrana

Konserwacja to praca, którą musimy wykonać nad aplikacją, aby mogła bezpiecznie stać w miejscu. Jest to standardowy koszt biznesowy. Średnio 75% całkowitego kosztu posiadania w okresie życia aplikacji.

Jako profesjonaliści mamy obowiązek dbać o to, aby od samego początku edukować naszych klientów w zakresie konserwacji . Jest tu ogromna szansa na dodatkowy dochód przy jednoczesnym zapewnieniu wymiernej wartości Twoim klientom. Możesz utrzymywać stałe relacje handlowe i będziesz pierwszą osobą, do której zwrócą się, gdy będą mieli nowe wymagania.

Kontynuowanie dostarczania wartości poprzez swój retencyjny buduje zaufanie u klienta. Otrzymasz platformę do sugerowania ulepszeń lub nowych funkcji. Pracę, którą masz dużą szansę na wygraną. Twój klient zmniejsza koszty życia, zmniejsza ryzyko i przestaje się martwić o wydajność lub bezpieczeństwo.

Zrób sobie, swojemu klientowi i całej naszej branży przysługę: pomóż, aby utrzymanie aplikacji internetowych stało się czymś więcej.