WAF powiedział, że się nie da. Ninja powiedział: potrzymaj mi piwo.
Wtorkowy poranek. Do prezentacji zostało 45 minut.
Czyli dokładnie tyle czasu, żeby zrobić małą poprawkę na stronie, wypić kawę i spokojnie przygotować się do spotkania.
Teoretycznie.
W praktyce był to oczywiście idealny moment, żeby infrastruktura powiedziała:
„Nie.”
Potrzebowaliśmy dorzucić własny, responsywny top-bar przed ścieżką sprzedażową działającą w zewnętrznym systemie sprzedaży online typu SPA.
[Tu nie byłbym sobą, gdybym nie dorzucił kaganka oświaty: SPA = Single Page Application. Aplikacja działa w jednej „powłoce”, a kolejne treści i widoki są podmieniane dynamicznie, bez klasycznego przeładowywania całej strony.
Dla kontrastu: MPA = Multi Page Application — klasyczne osobne podstrony i przeładowania. — przyp. Ninja]
Nic wielkiego.
Trochę HTML-a.
Trochę CSS-a.
Pasek.
Rozwijane regulaminy.
Kilka elementów.
Responsywność.
Robota z kategorii:
„Daj mi chwilę.”
…
HTML wszedł.
CSS nie.
…
Whaaat?
Próbuję „<style>”.
Nie.
Sanitizer wycina cały blok.
Jest akcja, jest reakcja.
Próbuję więc stylowania inline.
„style=”””
Też nie.
Warstwa zabezpieczeń konsekwentnie usuwała wszystko, co pozwalało temu HTML-owi wyglądać jak cokolwiek więcej niż dokument z 1997 roku.
Został nagi HTML.
A do prezentacji coraz mniej czasu.
I tutaj zrobię mały offtopic
Bo właśnie w tym miejscu zazwyczaj zaczyna się najdroższa część całego problemu.
Nie samo programowanie.
Szukanie człowieka, który w ogóle wie, komu ten problem zlecić.
Wyobraźmy sobie normalną firmę.
Marketing mówi:
„Potrzebujemy poprawki na stronie.”
Brzmi prosto.
Tylko komu to przekazać?
Webdeveloperowi?
Programiście PHP?
Frontendowcowi od JS?
Administratorowi serwera?
Firmie, która dostarcza system?
Specjaliście od bezpieczeństwa?
Agencji reklamowej?
A może komuś od WordPressa, chociaż WordPress akurat nie ma z tym nic wspólnego?
Klient nie musi tego wiedzieć.
I najczęściej nie wie.
Nie dlatego, że czegoś nie rozumie.
Po prostu nie po to prowadzi swój biznes, żeby po objawach rozpoznawać, gdzie kończy się HTML, zaczyna WAF, a po drodze ktoś jeszcze postawił sanitizer.
Typowa agencja marketingowa również bardzo często tego nie zrobi.
Więc zaczyna szukać podwykonawcy.
Podwykonawca chce brief.
Ktoś musi brief przygotować.
Potem zaczyna się ustalanie technologii, dostępów, zakresu, wyceny i terminów.
A dosyłanie dostępów w większości firm to osobny krąg piekła.
Klient zazwyczaj ma zapisane jakieś hasła i loginy, ale kompletnie nie wie, co jest do czego.
Wysyła managera.
Manager, który ma przecież swoją normalną robotę, patrzy na to zadanie, jakby właśnie dostał „Władcę Pierścieni” po elficku.
Kto wie, ten wie. — przyp. Ninja
I po kilku godzinach organizowania pracy kilku osób okazuje się, że samo rozwiązanie problemu zajmuje pół godziny.
Dlatego lubię zespoły zbudowane z różnych ludzi
W Saku Media zaraz będzie nas trójka.
Trzy różne specjalizacje.
Trzy różne zestawy supermocy.
Ale Ninja jest tylko jeden. — przyp. Ninja
Jest człowiek, który potrafi sprzedawać.
Jest osoba od social mediów, która czuje ludzi, rozumie komunikację marki i potrafi rozmawiać z klientem.
I jestem ja.
Ninja. 🤣
Marketingowiec, który przez przypadek za długo siedział przy komputerach i nauczył się również pisać kod, grzebać w API, backendzie, serwerach i wszystkich tych miejscach, do których normalny człowiek zagląda wyłącznie wtedy, kiedy coś przestaje działać.
I właśnie w takich sytuacjach ta mieszanka zaczyna mieć największą wartość.
Bo nie trzeba organizować telekonferencji siedmiu specjalistów, żeby ustalić, jaki ósmy specjalista będzie potrzebny.
Jest problem.
Patrzę.
Rozumiem, gdzie leży.
I próbuję go rozwiązać.
Można było zacząć kopać się z koniem
Dlaczego blokuje?
Która reguła?
Czy da się zmienić konfigurację?
Czy ktoś ma dostęp?
Czy dostawca odpowie?
Czy administrator może zrobić wyjątek?
Wszystko są to bardzo ciekawe pytania.
Szczególnie kiedy nie masz na nie czasu.
Ja potrzebowałem działającego rozwiązania.
Nie doktoratu z powodów, dla których rozwiązanie nie działa.
Więc zamiast kolejny raz pytać system:
„Dlaczego mi tego zabraniasz?”
Zadałem inne pytanie:
„A czego mi nie zabraniasz?”
I wtedy zrobiło się ciekawie.
CSS-a bezpośrednio w kodzie nie chciał.
Ale odwołanie do zewnętrznego arkusza stylów już przechodziło.
Ahhh. Zwycięstwo. ☺️
System wycinał CSS osadzony bezpośrednio w kodzie, ale pozwalał HTML-owi odwoływać się do zewnętrznego arkusza.
No to dobrze.
Skoro jedna droga jest zamknięta, sprawdzamy drugą.
Arkusz CSS wylądował na naszym serwerze.
A w systemie został tylko odnośnik:
„<link rel=”stylesheet” href=”https://nasz-serwer.pl/style.css”>”
Refresh.
I nagle wszystko zaczęło wyglądać tak, jak miało wyglądać.
Top-bar działa.
Responsywność działa.
CSS działa.
Prezentacja uratowana.
Bez dostępu do źródeł systemu.
Bez instalowania czegokolwiek.
Bez kilku dni korespondencji.
Bez przekazywania problemu przez trzy firmy.
Oczywiście najpierw był różowy
Jest jeszcze jedna fundamentalna zasada profesjonalnego developmentu.
Jeżeli testujesz, czy CSS faktycznie się załadował, nie ustawiasz subtelnego:
„#f4f4f4”
Nie.
Robisz coś tak różowego, żeby było widoczne z Międzynarodowej Stacji Kosmicznej.
Pasek zrobił się różowy.
Czyli żyje.
I tak — na prezentacji nadal był różowy.
Bo uważam, że o trudnościach należy mówić klientom, zamiast udawać, że ich nie było.
Klient się śmiechnął.
[Potem zaczął się koncert życzeń, z których większość… już była w systemie ustawiona. Bo nie projektuję i nie koduję na pałę. Podwójne zwycięstwo. — przyp. Ninja]
I właśnie za to lubię tę robotę
Nie dlatego, że udało się podpiąć CSS.
Sam CSS jest tutaj najmniej interesującą częścią historii.
Lubię moment, kiedy ktoś przychodzi z problemem, który z jego perspektywy jest dużym, drogim i skomplikowanym przedsięwzięciem, a ja patrzę na niego i myślę:
„Dobra. To się da zrobić.”
Po to uczyłem się marketingu.
Po to później uczyłem się technologii.
Po to przez lata dokładałem kolejne narzędzia do skrzynki.
Nie po to, żeby móc wpisać na LinkedInie więcej technologii i pociąg trudnych słów.
Tylko po to, żeby trudne problemy innych ludzi stawały się dla mnie prostymi problemami do rozwiązania.
I to jest dla mnie jedna z największych wartości Saku Media.
Klient powinien mieć jeden punkt kontaktu
Klient nie powinien płacić za pięć godzin ustalania, kto ma wykonać półgodzinną robotę.
Nie powinien finansować łańcuszka:
klient → marketing → agencja → project manager → software house → developer
Jeżeli problem można rozwiązać szybko i sensownie, wolę powiedzieć:
„Dobra. Dwie–trzy stówki. Zaraz będzie działać.”
Zamiast sprzedawać konsultację, analizę przedwdrożeniową i trzy roboczogodziny spotkań.
Bo wartość nie zawsze bierze się z liczby godzin.
Czasami bierze się właśnie z tego, że ktoś poświęcił wcześniej kilka tysięcy godzin na naukę, żeby dzisiaj nie potrzebować pięciu godzin na rozwiązanie Twojego problemu.
I właściwie o tym jest ta historia
Nie o CSS-ie.
Nie o WAF-ie.
Nawet nie o kodzie.
O tym, że marketing i technologia przestały być dwoma osobnymi światami.
Strona internetowa jest marketingiem.
Analityka jest marketingiem.
Formularz kontaktowy jest marketingiem.
Integracja z CRM-em jest marketingiem.
Automatyzacja jest marketingiem.
Ale wszystko to zostało gdzieś zakodowane, postawione na jakimś serwerze i działa dzięki kilku albo kilkunastu różnym technologiom.
A kiedy coś na styku tych światów przestaje działać, ogromną przewagą jest posiadanie obok siebie człowieka, który nie musi najpierw organizować zespołu, żeby zrozumieć problem.
Czasami wystarczy Ninja.
I 45 minut później można rozpocząć prezentację.
Z różowym paskiem. 😅
Bo czasami właśnie na tym polega ta robota.
System mówi:
„Nie da się.”
A ty odpowiadasz:
Nie na mojej zmianie. Potrzymaj mi piwo.
.