Dodavatel přestal odpovídat. Zhluboka se nadechněte, dá se to zachránit
Co udělat první den, co druhý a čeho se držet, když se webový projekt zasekl a dodavatel mlčí. Psáno podle projektů, které jsme reálně přebírali.
Ten telefonát začíná skoro pokaždé stejně. „Dobrý den, my máme web. No. Měli jsme mít web.” Pak přijde pauza a věta, kterou slyšíme pořád dokola: naposledy se ozval v březnu.
Jestli tohle zrovna řešíte, mám pro vás dvě zprávy a obě jsou docela dobré. Za prvé, nejste v tom sami ani zdaleka. Za druhé, ve většině případů se z toho dá vyjít líp, než to teď vypadá.
Škodu obvykle nenapáchá ten mizející dodavatel. Napáchá ji panika prvního týdne.
Tak si dáme kafe a projdeme to popořadě.
Doména. Vážně jenom doména
Kód počká. Design počká. Běžte se podívat, kdo je uvedený jako držitel vaší domény.
Jestli tam stojí jméno vaší firmy, gratuluju, vyhráli jste a ještě o tom nevíte. Zbytek téhle kapitoly můžete přeskočit.
Jestli tam stojí jméno agentury nebo konkrétního člověka s gmailem, je to nepříjemné, ale řešitelné. Domény se převádějí přes autorizační kód a ten vám vydá jedině držitel. Právní cesta existuje, jen u CZ.NIC znamená měsíce a advokáta, což nikoho nebaví.
Devět z deseti sporů, které jsme viděli, se točilo kolem držitele domény. Ne kolem kódu, ne kolem peněz za nedodělanou práci. Kolem jednoho řádku ve whois.
Zkratka, která funguje častěji, než by člověk čekal: nabídněte mu zaplacení poslední faktury výměnou za převod domény. Vím, že to zní jako odměna za to, jak se choval. Ale advokát vás bude stát víc, bude to trvat dýl a vy hlavně potřebujete mít klid.
Sesbírejte, co existuje jen v jeho hlavě
Dokud s vámi mluví aspoň formálně, poproste ho o přístupy. V tomhle pořadí:
- Registrátor domény, a hned potom DNS, pokud běží někde jinde
- Hosting a databáze včetně možnosti udělat si vlastní zálohu
- Git repozitář, nebo aspoň ZIP se zdrojovými soubory
- Analytics a Search Console převedené na firemní účet místo na jeho
- Licence k šablonám, pluginům a fontům
Ta poslední položka vypadá jako formalita a taky tak vypadala, dokud jednomu klientovi nepřišel dopis od Monotype kvůli fontu, na který nikdy nikdo licenci neměl. Nebyla to jeho vina a stejně to řešil on.
Jak poznáme, jestli se to dá zachránit
Klient se vždycky ptá jako první, jestli to není celé na vyhození. A tady mám dobrou zprávu: odpověď zní překvapivě často „není”. Rozhodujeme se podle čtyř věcí a všechny se dají zjistit za jedno odpoledne.
Nastartuje to vůbec? Naklonujeme repozitář, nainstalujeme závislosti, spustíme build. Chybějící .env je nuda a vyřeší se za hodinu. Chybějící package-lock.json u projektu, do kterého tři roky nikdo nesáhl, je horší. Nainstalujete si dnes jiné verze knihoven než autor a pak půl dne hledáte, proč se rozbil kalendář v objednávkovém formuláři.
Jak vypadá historie commitů? Nejlepší diagnostický nástroj, jaký existuje, a skoro nikdo ho nepoužívá. Pravidelné commity s rozumnými popisky znamenají, že tam někdo přemýšlel. Tři commity za celý projekt a poslední z nich final fix 3 znamenají, že tam někdo v poslední den hasil. Bez zlé vůle. Prostě to takhle dopadlo.
Jednou jsme otevřeli repozitář, kde měl někdo zacommitovaný celý node_modules. Klonování trvalo dýl než káva a historie vypadala jako skládka po vichřici.
Projekt jsme nakonec dokončili. Ta složka byla to nejmenší, co s ním bylo v nepořádku.
Kolik toho jde vyhodit? Zaseknuté projekty mívají funkční jádro a kolem něj vrstvu polotovarů, do kterých se dodavatel pustil a nestihl je dodělat. Ta vrstva jde obvykle smazat a nikomu nebude chybět. Bývá to nejrychlejší způsob, jak projekt zpřehlednit.
Sedí databáze s kódem? Nejnáročnější nález je datový model, který se měnil za pochodu a migrace se dopisovaly ručně přímo na produkci. Pak nikdo pořádně neví, jaká je vlastně pravda, a musíme ji nejdřív zjistit.
Kdy naopak doporučíme začít znovu
Stává se to, ale málo. Tři situace, kdy je dokončení dražší než nový začátek.
Projekt stojí na frameworku, kterému za rok končí podpora. Přebírali bychom práci, kterou byste stejně za chvíli platili podruhé.
Celý web visí na jednom placeném pluginu, na který nemáte licenci a autor ho už neprodává. Zažili jsme to. Obcházení vyšlo dráž než přepis.
V kódu se míchají tři různé přístupy k jednomu problému, protože na tom postupně dělali tři lidé a žádný z nich nečetl, co udělal ten předchozí. Tohle nejde opravovat po kouskách, protože každá změna něco rozbije jinde.
Čeho se držet, i když je vám z toho blbě
Nezačínejte poptávkou na nový web. Chápu, že to láká, protože to vypadá jako čistý stůl a čistý stůl je po tomhle všem hrozně příjemná představa. Jenže dokud nevíte, co reálně existuje, kupujete znovu něco, co možná z osmdesáti procent máte.
Nemažte nic. Ani starý hosting, ani zapomenuté subdomény, ani ten testovací server, u kterého nikdo neví, kdo ho vlastně platí. Dvakrát se nám stalo, že jediná kompletní verze projektu ležela na stagingu, o kterém klient neměl tušení. Oba dva klienti se ten den měli výrazně líp.
A doménu si nechte. Ani nám ji nedávejte. Jestli si z tohohle článku odnesete jednu jedinou věc, ať je to tahle.
Co s tím děláme my
Vstupní analýza trvá pět pracovních dní a stojí 15 000 Kč. Dostanete dokument, který říká, co existuje, co chybí, kolik stojí dokončení a jestli do toho podle nás vůbec jít.
Ten dokument je váš a můžete s ním klidně obejít další tři dodavatele. Vážně nám to nevadí, je to rozumný postup.
To poslední číslo tam je schválně. Vzít peníze za projekt, který nedopadne, je krátkodobě příjemné a dlouhodobě hloupé.
Jestli tohle zrovna prožíváte, ozvěte se. A než napíšete, mrkněte na tu doménu. Bude se vám pak líp spát.