Optimizacija razvojnog okruženja za 95% slučajeva umjesto za preostalih 5%

Nedavno sam naletio na ovaj vrlo zanimljiv tekst što me navelo na razmišljanje jer sam se prepoznao u tome.

Autor gore navedenog teksta naišao je na vrlo zanimljiv naslov “Why I wrote 33 VSCode extensions and how I manage them” gdje se među komentarima moglo vidjeti sljedeće:

My problem with adding plugins or extending my environment much past the default is that eventually I have to deal with a co-worker’s non-extended default installation. I end up relying too much on the add-ins.

Shvatio sam da sam i ja do nedavno na takav način, za onih “što ako” 5%, donosio odluke. Komentar koji mi je posebno “zapeo za oko” kaže:

I strongly dislike the reasoning that suggests you should hamstring yourself 100% of the time to accommodate a potential situation that may affect you 5% of the time.
“I don’t use multiple monitors because sometimes I’m just with a laptop”.
“I don’t customize my shell because sometimes I have to ssh to a server”
“I don’t customize my editor because sometimes I have to use a coworkers editor”.

Sada vidim koliko takav način razmišljanja nije imao smisla, ali tada mi se sve to činilo sasvim logično i vrlo sam odlučno branio svoje stavove.

Sjećam se da dugo vremena nisam htio koristiti nikakvu drugu temu niti većinu proširenja za Visual Studio Code ili Sublime Text jer što kada budem morao koristiti PC od kolege, a on koristi zadanu temu ili nema određeno proširenje.

Znači u startu sam se ograničavao i umjesto da sebi olakšam 95% slučajeva ja sam više razmišljao i radio na preostalih 5% jer tada nisam shvaćao sljedeće – optimizacija za 5% je primjer optimizacije za scenarij “što ako”.

Činio sam sve što je u mojoj moći da svoje razvojno okruženje učinim dovoljno generičkim da može raditi svugdje i da mogu biti spreman za onih 5%, ali sam zapravo otežavao sam sebi 95% vremena, a to je vrijeme koje je najvažnije.

Takve vrste odluka ne utječu samo na razvojno okruženje nego i na kod.

Personally, I often try and over optimize before I’ve even begun. Consequently I get overwhelmed and rarely build any of the ideas I was thinking about. – izvor

Ako se nešto ide programirati da bi odgovaralo “što ako” scenariju to znači da vjerojatno u potpunosti ne odgovara traženoj specifikaciji. Možemo mi kao developeri misliti što god hoćemo i htjeti unaprijed napraviti pripremu za sve moguće scenarije, ali ako to nije traženo po specifikaciji može doći samo do još više grešaka koje će samo oduzimati dodatno vrijeme za rješavanje, a do tih grešaka nije niti trebalo doći.

Premature optimization is the root of all evil.

Ipak, kada vidimo na koji način radi Google i druge velike tvrtke opet je moguće doći do izgovora za “što ako” scenarij i raditi nešto što nam realno nije potrebno pri čemu fokus opet odlazi na dio od 5%.

Ako neka velika tvrtka nešto koristi na određeni način to ne znači da taj način odgovara svim ostalim tvrtkama.

Instead of just getting your app up and running and seeing how it goes, you try to make decisions so that your application can be developed by 100 different teams sprawling across 5,000 developers.

Do 5% može doći i prilikom procesa implementacije tj. postavljanja aplikacije u produkciju.

To često može uključivati mjesece potrošene na detalje poput savršenog skaliranja, automatizacije određenih procesa i sl. što na kraju ne dovede do očekivanih rezultata jer sva dostupna rješenja, ma koliko tvrdila drugačije, ne mogu dati odgovor za sve vrste scenarija. Velike tvrtke koje su ta rješenja kreirala i koje ih koriste iza toga skrivaju mnoštvo specifičnih prilagodbi da bi sve radilo na određeni način.

When you try to optimize your deployment strategy to handle a billion requests a second from day 1, you’re just setting yourself up for an endless loop of theory based research.

Zaključno, energiju je pametnije usmjeriti prema 95% i vidjeti kako će se stvar ponašati. Ovisno o povratnim informacijama raditi dodatne optimizacije. Drugim riječima, raditi optimizaciju onda kada postoji realna potreba za tim, a ne zbog “što ako” slučajeva.

Uvod u SEO za Bing [Microsoft Virtual Academy]

Na Microsoft Virtual Academy moguće je pronaći sve više različitih online tečajeva tj. za svakoga po nešto. I nedavno sam tako primijetio ovaj vezan za SEO pa reko idem vidjeti što nudi. Opravdao je moja očekivanja jer i nisam očekivao saznati ništa posebno novo ili drugačije pošto je ipak ovo tečaj za početnike, a kojima ga svakako mogu preporučiti. I neovisno o tome što je riječ o Bingu, većinu sadržaja ovog tečaja možete primijeniti kako na Google tako i na ostale tražilice. Stara narodna poslovica kaže ”Reci mi za koliko tražilica znaš reći ću ti tko si”.

Uvod u SEO za Bing [Microsoft Virtual Academy]

Tečaj je podijeljen u 5 modula od kojih svaki sadržava video predavanje i Power Point prezentaciju te kratki test od 5 pitanja za provjeru znanja. Naravno, ako već imate nekog SEO iskustva možete se odmah baciti na rješavanje svih testova i na taj način skratiti vrijeme konzumacije tečaja na minimum.

1. modul: Uvod u SEO

Uvod u SEO
Prvi modul, uz to što će vam dati više detalja o samom SEOu ponudit će i neke informacije o Bing/Yahoo tražilici te vas upoznati s usko vezanim pojmovima kao što su: Bingbot, MSNbot, Adidxbot i BingPreview. Uz to će prikazati načine kako Bing gleda na SEO optimizaciju uz više od 1000 faktora koji na nju utječu. Pojmovi kao što su SERP, crawler, ranking, index i dr. nešto su što ćete od prve shvatiti iako možda do sada niste niti čuli za te pojmove.
Također, kratko je predstavljena i platforma Bing Ads kao direktan konkurent Googleovom AdWordsu koji trenutno pokriva Bing i Yahoo tražilice te partnerske stranice kao što su Facebook, WebMD, Amazon, CNBC, Monster i Viacom.

2. modul: Istraživanje i važnost ključnih riječi

Uvod u SEO: Istraživanje i važnost ključnih riječi
Ključne riječi su već toliko prožvakana tema da to postaje bolno za čitati, ali od nekakvih početaka se mora krenuti pa tako i u ovom modulu sva pažnja ide prema ključnim riječima. Pojašnjava se terminologija (head keywords, mid-tail keywords, long-tail keywords), osnove istraživanja ključnih riječi koristeći Bing Keyword Tool kao i najbolje prakse i savjeti. Prilikom istraživanja ključnih riječi od velike vam koristi može biti Microsoft Excel tj. Bing Ads Intelligence plugin.

3. modul: On-page optimizacija

Uvod u SEO: On-page optimizacija
Ovaj se modul tiče planiranja sadržaja web stranica i kako ga optimizirati za najbolje rezultate. Glavni savjet ovog dijela tečaja je da umjesto korištenja zastarjelih SEO tehnika kao što je nabacivanje ključnih riječi (keyword stuffing) pišete zanimljiv i koristan sadržaj. Nakon toga fokus skreće na on-page elemente poput title taga, H1-H6 elemenata, ALT teksta i ostalog što je potrebno da bi se zadovoljile neke osnove SEO optimizacije. Osnovna razlika između on-page i 0ff-page optimizacije je što u prvom slučaju imate punu kontrolu dok u drugom nemate. Da biste dobro savladali on-page optimizaciju morate poznavati HTML.

4. modul: Pregled tehničkih SEO pitanja i alata

Uvod u SEO: Pregled tehničkih SEO pitanja i alata
U ovom modulu počinje prava zabava i konkretni primjeri kako pravilno koristiti sve što ste naučili kroz prijašnje module te kako riješiti potencijalne probleme pri čemu vam od posebne koristi može biti Bing Webmaster’s Tools. Prije svega toga pojašnjava se teorija i logika koja stoji iza arhitekture web stranica, planiranja iste i međusobnog linkanja.
Prije planiranja i pisanja kvalitetnog sadržaja potrebno je zadovoljiti tehničke kriterije, kao što su dobra arhitektura stranice, čisti kod, responzivan dizajn, pravilno postavljen robots.txt i dr., koji će omogućiti da sadržaj na pravi način bude prezentiran korisnicima.
Kada je stranica napravljena i postavljena na web potrebno ju je provući kroz Bing Webmaster’s Tools u kojemu je moguće napraviti željenu konfiguraciju, pregledavati izvještaje o stranici i raditi dijagnozu stranice te u slučaju problema iskoristiti neke od ondje ponuđenih alata za rješavanje tih problema.