Múlt héten élesítettem egy 2018, de inkább 2013 óta húzódó projektemet. 2013-ban készült el az első változata, amit pár hónappal később beszántottam. Ezután nem foglalkoztam különösebben vele, a fiókban pihent az ötlet pár évig. 2018 év végén vettem újra elő, hogy talán mégiscsak foglalkozni kellene vele egy kicsit. Voltak hosszabb-rövidebb kihagyások a projekt életében, de elmondható, hogy minden évben volt valami kalapálás rajta.
Mondanom se kell, hogy mekkora öröm volt számomra mikor feltöltöttem a szerverre, beállítottam a konfigurációs állományt, meg belőttem a DB-t és pöcre elindult az oldal. Hat évnyi kalapálás vége egy szinte teljesen az eredeti funkciókkal elinduló weboldal lett. Úgy gondoltam, hogy egy ekkora eposzi utazás tapasztalatait, és az általam elkövetett hibákat magamnak és mások számára is összeírom, hogy okuljatok. Persze van olyan, amire majd mások fogják majd a fejüket, hogy mennyire amatőr hibákat követtem el, de ez az egész a tapasztalatszerzésről szólt.
Hiba: folyamatos scope change
Az egyik legnagyobb hiba, amit elkövettem az, hogy bár volt egy eredeti elképzelésem az idők során folyamatosan változott a scope és a funkciólista. Ezt ráadásul megtetéztem azzal, hogy még be se fejeztem egy funkciót, már a következő új, érdekesebb funkción kezdtem el dolgozni.
Óriási a kísértés, hogy egy új funkcióba kezdjünk bele, egy már meglévő polírozása helyett, de ne engedjünk a kísértésnek!
Erre nagyon jó megoldás lehet a Trello használata, ahol létrehozhatunk táblákat, kártyákat és listákat, ahol vezethetjük a különböző ötleteket, funkciókat. Így sose felejtődik el semmi. Létrehozhatunk például egy Ötletek táblát vagy egy Nice-to-have táblát, ahová kártyák formájában bedobálhatjuk az ötleteket. A TODO táblában az aktuálisan fontos fejlesztéseket, funkciókat tartalmazó kártyákat rakhatjuk. Egy Done táblába átrakhatjuk a kész kártyákat. Lehet ezt még jobban szofisztikálni, sőt kanban vagy egyéb módszereket is használhatunk, de szerencsére a Trello elég rugalmas etekintetben.
Hiba: shiny object syndrome
Szorosan összefügg az előzővel: az új funkció mindig sokkal fényesebben ragyog, mint a korábban elkészített, és az ember sokkal könnyebben eldobja a régit, hogy az újjal foglalkozzon. A shiny object syndrome pontosan erről szól, és nagyon sok projekt során felüti a fejét, akár üzleti, akár fejlesztői oldalon is. Nem is gondolnánk, hogy hány projekt fut zátonyra emiatt. Gondolhatjátok, hogy milyen jó, ha egyszemélyben te vagy az üzlet és fejlesztő is, és mindkét oldalon beüt. 😀
Shiny object lehet egy új technológia, könyvtár, framework, engine vagy design pattern alkalmazása, ami miatt szinte mindig újra kell írni a már korábban elkészült, letesztelt funkciókat is. Így folyamatosan újra meg újra ugyanazokat a köröket futjuk, így valójában sose lehet készre jelenteni egy alkalmazást.
Hiba: folyamatos refactor
A shiny object syndrome-nál már elhintettem, hogy nem csak funkció, de új framework vagy design pattern is lehet shiny object, ami miatt a már korábban megírt funkciókat is újra meg kell írni. 2018 és 2024 között az oldal forráskódja kétszer lett teljesen refaktorálva a kódbázis, és ha nem állítottam volna le magam, akkor jöhetett volna egy harmadik is, amivel további legalább 2 évig elszüttyögtem volna, és az oldalon igazából nem látszódott volna funkcionálisan semmilyen változás.
Ennek oka egyrészt az, hogy alapvetően tapasztalatszerzésként tekintettem a projektre, nem pedig úgy, hogy ebből ebből kész termék lesz (legalábbis nem mindig tekintettem így rá). Így könnyen elcsábultam új design pattern-ek próbálgatása iránt pusztán kíváncsiságból, de utána mindig bűntudatom lett, hogy igazából nem haladtam az oldallal semmit.
A másik ebből következett: szerettem volna szép kódot írni. Csakhogy az a helyzet, hogy be kellet látnom: a szép kód relatív. Ideig óráig szép és tiszta a kód, aztán elkezd eldurvulni a helyzet, ahogy jönnek az újabb és újabb vadabb ötletek. Itt-ott picit trehányabb a megvalósítás, vagy nem szedem szét megfelelően a funkciókat. Például pont tegnap találtam meg egy 2021-es függvényemet, ami 260 soros. Lehetne egy picit jobban szervezni, szétszedni. Viszont tény, hogy a kód frissebb része jól néz ki, és gyorsan tudok benne fejleszteni, ha szükséges.
Hiba: bizonytalanság
A folyamatos refaktor és a scope change, illetve az, hogy ennyire elhúzódott egy weboldal fejlesztése mögött elsősorban a bizonytalanság állt. Bizonytalan voltam magamban, hogy jó kódot írok. Bizonytalan voltam az oldalban, hogy egyáltalán van-e értelme megcsinálni. Fogják-e egyáltalán látogatni? Aztán átcsapott az egész abba, hogy nem érdekel hányan fogják látogatni, mert nem ez a lényeg. Aztán, hogy azért csak jó lenne, ha valahogy megtérülne a belefektetett idő és energia. Aztán megint kezdődött elölről az egész: megint elbizonytalanodtam és megint a fiókba tettem az egészet, majd megint elővettem változtatott scope-pal.
Tanulság: mindig tartsunk ki az elképzeléseink mellett, és vigyük végig a megvalósításig! Ha nem kerül ki a nagy közönség elé az elképzelés, valójában sose fog kiderülni róla, hogy mennyire életképes. Utólagosan optimalizálni mindig van lehetőség.
A szóban forgó projekt: Hostingvadasz.hu
A projekt egy hazai tárhelycsomag összehasonlító oldal, ahol a hazai tárhelyszolgáltatók kínálatát lehet böngészni, a tárhelyszolgáltatókat értékelhetjük, elmenthetjük kedvenceink közé az ajánlataikat. Ilyen oldallal még itthon nem találkoztam. Ezért gondoltam, hogy megcsinálom. 2013-ban már volt egy korábbi próbálkozásom, és akkor egész szépen alakult a látogatottság. Talán túlságosan is nagy volt az érdeklődés körülötte, és ettől megijedve inkább töröltem a projektet… én hülye.
Persze jó kérdés, hogy 11 évvel később mennyire van ennek relevanciája, de azért még Facebook csoportokban most is látom havonta felbukkanni a kérdést, amire az oldal szándékaim szerint választ tud majd adni: “Tudtok ajánlani jó tárhelyszolgáltatót?“.
Az oldalon regisztrálni is lehet. Hasznosnak jelölhetünk véleményeket, javaslatokat, és ajánlásokat tehetünk, valamint ajánlatkérést is intézhetünk a tárhelyszolgáltatók felé. Van még pár funkció, ami nem került bele az 1.0-ba, legalábbis most ki vannak kapcsolva, de idővel ezek is feloldásra kerülnek.
Tervben van egy lejáró domain figyelő regisztrált felhasználóknak. A felhasználók pontokat gyűjthetnek az oldalon történő tevékenységeik alapján, amikkel különböző rangokhoz juthatnak. Ezeket még picit kalapálom, illetve érthetőbb leírásokat és aloldalakat kell létrehoznom hozzájuk. Továbbá a reszponzív megjelenéssel van még pici teendő, de desktopon és mobilon használható.
Nem csak tárhelyekre, de VPS szolgáltatásokra és regisztrálható domainekre is kereshetünk, valamint azokat is össze tudjuk hasonlítani. Az összehasonlító táblázatot pedig elküldhetjük ismerősünknek, vagy ügyfelünknek egy rövidített URL formájában.