Dostałeś nowy projekt do rąk i aż nie możesz się doczekać by się za niego zabrać. Rączki świerzbią, głowa pełna pomysłów, nic tylko JUŻ teraz zacząć pisać! To uczucie… czy to będzie projekt dla firmy czy to domowa zabawa czy też hackowanie. Tak naprawdę, gdyby nie to, że jest już 23 to byś się za to zabrał TERAZ.

Pomysły przewalają Ci się przez głowę to zrobię tak! A tamto tak! W końcu wyżyjesz się technologicznie. Zrobisz coś czego jeszcze nikt nie zrobił do tego będziesz się świetnie bawił. Już widzisz te blog posty które powstaną opisujące Twoje doświadczenia (chwała i w ogóle).  Zabierasz się za pisanie i idziesz jak burza:

  • Tutaj automatycznie generujesz kontrolki Windows Forms
  • Przy okazji hakujesz zasoby by apka była wielojęzyczna
  • Tam rozwiązujesz problem poprzez internal messaging
  • Odkrywasz ukrytą metodę, którą wykorzystujesz by zapisać plik który automatycznie przez GO jest wczytywany i wykonywany
  • Zamiast zwykłej bazy bierzesz graph DB
  • Do podpytań danych używasz GraphQL
  • Do tego wszystko łączysz z OpenCV
  • A uwierzytelnianie wywalasz do Auth0

Zrobiłeś coś niesamowitego! Czyste arcydzieło. Aplikacja z kilkoma mikro serwisami, dwoma funkcjami serverless, z zarządzana na starszych systemach przez Windows Forms, na nowszych przez web. Czujesz dumę z tego co zrobiłeś i DOBRZE. Dawno się tak nie wyżyłeś i w końcu możesz się zająć normalną pracą.

Tylko, że… stworzyłeś coś tak niesamowitego i fajnego, że jesteś jedyną osobą, która to może wspierać. Nikt nie ma czasu na to by teraz siedzieć i uczyć się 20 technologii. Pół biedy wykorzystałeś jakieś wersje alpha, które już teraz są nieaktualne a nowsze wersje zawierają breaking changes. Firma nie chce przeszkolić ludzi, bo woli ich wrzucić do innego projektu.

Stworzyłeś coś niesamowitego, ale jesteś z tym teraz sam. Jak sądzisz, jak długo taki projekt pożyje? Miesiąc? Dwa? Rok? U mnie żyje już dwa lata, ale wszyscy wiedzą, że powinien być ubity – ciutkę inna sytuacja była, bo miał to być niby PoC ale… no właśnie. PoC poszedł na produkcję. I to się zdarza.

By uniknąć takich sytuacji trzeba zawsze pisać kod tak jakby miałby być on rozwijany przez osobę trzecią i zrozumiały przynajmniej przez osobę średnią lub średnio zaawansowaną (bez urazy tutaj, brak mi pozycji pomiędzy junior a senior, ninja i inne nazwy które są używane a które mają się ni jak do rzeczywistości). Jest to ciężkie i nie pozwala na wykorzystanie wszystkiego co byś chciał. Ale dzięki temu stworzysz kod dużo bardziej przejrzystszy, czytelniejszy i dokładniej określający swoją intencję. Nie będziesz stosował skrótów i hacków które tylko ty rozumiesz. Nie użyjesz też bibliotek które nie są stabilne.

Na końcu skończysz z bardzo podobnie działającym projektem z podobnym, ale nie z tym samym stosem technologicznym. Jednak z projektem, który będzie mógł być wspierany i rozwijany. Co też znaczy z projektem o dużo większej wartości dla firmy/klienta.

Zdradzę Ci zaś tajemnicę, że jeżeli do takiego projektu przemycisz trochę swojej szalonej pasji, to w następnym będziesz mógł znów dołożyć kolejny raz ją. Ludzie zaczną powoli opanowywać technologię z których korzystasz. To takie małe zwycięstwo które możesz odnieść na rzecz innych poświęceń.

Powodzenia :)

4 KOMENTARZE

  1. Chyba żartujesz … UTRZYMANIE!!! A po co? Przecież są nowe Frejmworki, nowe bazy danych, tylko NO SQL i tylko w wersji ALPHA. Ale że co, że ja nie napisze trzech różnych API do jednej aplikacji w innej technologii? Ja nie napiszę? No co ty, hold my beer…

    A – BTW, jutro odchodzę bo znalazłem ciekawsze miejsce, gdzie nie ględzą o tym utrzymaniu tylko idą do przodu. Dokumentacja, no co ty – macie przecież kod. to sobie poradzicie.

Comments are closed.