Danas mogu da započnem razvoj digitalnog proizvoda mnogo brže nego pre nekoliko godina.
Opišem ideju, razradim osnovne funkcionalnosti, otvorim editor i uz pomoć veštačke inteligencije počnem da gradim. Za relativno kratko vreme mogu da dobijem interfejs, početnu strukturu aplikacije i prve funkcije koje zaista rade.
To je neverovatna promena za nekoga ko je godinama razvijao veb-sajtove i aplikacije na mnogo sporiji način.
Ali postoji jedna stvar koju demonstracije AI alata uglavnom preskaču.
Prvi prototip nije isto što i gotov proizvod.
Između te dve tačke nalazi se mnogo više posla nego što na prvi pogled izgleda. I upravo tu, po mom iskustvu, počinje najzanimljiviji deo razvoja.
Onaj trenutak kada ideja postane moguća
Ranije je svaka nova ideja podrazumevala prilično ozbiljno pitanje: koliko će mi vremena biti potrebno da je napravim?
Morao sam da razmišljam o tehnologijama, strukturi baze, korisničkom interfejsu, logici aplikacije i svim sitnicama koje će se pojaviti tokom razvoja. Naravno, o tome razmišljam i danas, ali se promenila brzina kojom mogu da proverim neku pretpostavku.
AI mi je omogućio da više ideja iz faze razmišljanja prebacim u fazu eksperimenta.
Tako su nastajali i razvijali se projekti kao što su Fridica, ProjectFlow i AI Website Builder.
To su različiti proizvodi, sa različitim korisnicima i problemima koje pokušavaju da reše. Ali imaju nešto zajedničko: njihov razvoj me je stalno vraćao na pitanje šta se zaista događa kada ideja prestane da bude samo ideja.
U početku je sve prilično uzbudljivo. Vidiš prvi ekran, klikneš na dugme, dobiješ rezultat i pomisliš: ovo bi stvarno moglo da funkcioniše.
A onda počneš ozbiljnije da koristiš sopstvenu aplikaciju.
Prototip radi. A šta se događa kada ga stvarno koristiš?
Dok razvijam proizvod, sve češće pokušavam da ga posmatram iz perspektive nekoga ko ne zna ništa o tome kako je napravljen.
Korisnika ne zanima da li sam neku funkciju napisao ručno, uz pomoć AI agenta ili kombinacijom različitih alata.
Njega zanima da li funkcija radi. Da li razume šta treba da uradi. Da li može da sačuva ono što je napravio. Da li će aplikacija raditi i sutra.
Tu se početno oduševljenje veoma brzo pretvara u ozbiljan posao.
Na primer, kod AI Website Buildera nije dovoljno da sistem generiše stranicu koja lepo izgleda u trenutku kada se pojavi na ekranu.
Važno je i šta se dešava sa slikama, kako se čuvaju projekti, da li se ispravno izvoze fajlovi, kako funkcioniše upravljanje sadržajem i šta se događa kada korisnik pokuša nešto što tokom početnog razvoja nisam predvideo.
Kod Fridice se pojavljuje druga vrsta pitanja.
Ako alat analizira sajt i pronađe problem, koliko je taj nalaz pouzdan? Da li korisnik razume šta treba da popravi? Da li je preporuka dovoljno konkretna da na osnovu nje može da donese odluku?
Kod ProjectFlowa opet je drugačiji izazov. Nije dovoljno samo prikazati projekte, zadatke ili dostupne prilike. Podaci moraju da budu korisni, pregledni i dovoljno ažurni da bi neko mogao da se osloni na njih.
Tri različita proizvoda. Tri različite grupe problema. I ista lekcija: softver ne postaje koristan samo zato što smo uspeli da ga napravimo.
AI može da napiše kod. Ali ko odlučuje da li je to dobro rešenje?
Jedna od najvećih promena u mom načinu rada jeste to što sve manje vremena provodim razmišljajući samo o tome kako da napišem određeni deo koda.
Mnogo češće razmišljam o tome šta taj deo koda treba da postigne, kako se uklapa u ostatak sistema i šta sve može da pođe naopako.
AI agent može da predloži implementaciju. Može da pronađe grešku, napiše test ili ponudi nekoliko različitih pristupa.
Ali njegovo rešenje nije automatski i pravo rešenje.
Nekada dobijem funkciju koja na prvi pogled radi, ali pravi problem na drugom mestu. Nekada se reši jedan slučaj, a pokvare dva postojeća. Nekada predložena izmena nepotrebno komplikuje sistem.
Postoje i situacije u kojima odgovor izgleda vrlo uverljivo, iako ne rešava ono što sam zapravo tražio.
Zato sam sve više počeo da cenim jasnu specifikaciju, male korake, testove i proveru stvarnog ponašanja aplikacije.
Drugim rečima, AI nije uklonio potrebu za razumevanjem razvoja softvera.
Promenio je mesto na kojem to razumevanje postaje najvažnije.
Najskuplje greške nisu uvek programske
Kada govorimo o razvoju digitalnih proizvoda, lako je usmeriti svu pažnju na tehnologiju.
Koji model koristiti? Koji programski jezik? Gde hostovati aplikaciju? Kako smanjiti troškove API poziva?
Sve su to važna pitanja i njima se redovno bavim.
Ali postepeno sam shvatio da neke od najvažnijih odluka nemaju mnogo veze sa samim kodom.
Za koga pravim proizvod? Zašto bi ga neko koristio? Kako će saznati da postoji? Šta mu je zaista potrebno, a šta sam ja dodao zato što mi je bilo zanimljivo da napravim?
Posebno je primamljivo stalno dodavati nove mogućnosti. Kada razvoj postane brži, lako se pojavi osećaj da svaku novu ideju treba odmah pretvoriti u funkciju.
Ali proizvod ne postaje nužno bolji zato što ima više opcija.
Ponekad je korisnije popraviti jednu postojeću funkciju, pojednostaviti interfejs ili jasno objasniti šta aplikacija radi.
A ponekad je najvažnija odluka upravo ona da nešto ne pravim.
Između funkcionalnog proizvoda i održivog posla
Postoji još jedan deo priče o kojem se ne govori dovoljno.
Napraviti proizvod nije isto što i pronaći korisnike. A pronaći korisnike nije isto što i izgraditi održiv posao.
Možeš da imaš aplikaciju koja radi, dobru ideju i lepo dizajniran sajt, a da još uvek nemaš jasan odgovor na pitanje kako će taj projekat dugoročno živeti.
Razvoj podrazumeva i hosting, održavanje, podršku, troškove servisa, komunikaciju sa korisnicima, dokumentaciju i promociju.
Sve te stvari traže vreme i pažnju.
To je za mene posebno važna lekcija, jer je veoma lako zaljubiti se u sam proces stvaranja. Uvek postoji još nešto što bih mogao da poboljšam, još jedan eksperiment koji želim da isprobam.
Ali ako želim da od digitalnog proizvoda nastane nešto održivo, moram da razmišljam i izvan razvojnog okruženja.
AI može značajno da smanji prepreku za početak razvoja. Ne može sam da obezbedi razlog zbog kojeg će se neko vraćati proizvodu.
Zašto želim da o ovom procesu govorimo otvoreno
Upravo iz ovakvih iskustava nastaje i ideja o IT Komuni kakvu želim da razvijamo.
Ne kao još jednom mestu na kojem ćemo samo predstavljati završene proizvode ili objavljivati da je izašla nova verzija nekog alata.
Voleo bih da govorimo o onome što se dešava između početne ideje i konačnog rezultata.
O problemima za koje nismo imali spremno rešenje. O tehnologijama koje smo izabrali, pa kasnije preispitivali. O stvarima koje su uspele, ali i onima koje nisu.
Mislim da takve priče mogu da budu korisnije od još jednog spiska najboljih AI alata.
Jer neko ko danas razmišlja o svojoj prvoj aplikaciji možda ne mora da zna samo koji alat da otvori.
Možda mu je mnogo važnije da razume kako da proveri ideju, kako da organizuje razvoj, šta da testira i kada da prestane sa dodavanjem novih funkcija.
I možda mu najviše znači saznanje da iza proizvoda koji izgledaju jednostavno često stoji mnogo pokušaja, ispravki i učenja.
Učenje kroz stvarne proizvode
Iz tog razmišljanja razvija se i koncept AI Product Lab u okviru IT Komune.
Ideja je jednostavna: šta ako bismo deo znanja sticali tako što zajedno razvijamo stvarne digitalne proizvode?
Ne samo kroz predavanja i tutorijale, nego kroz konkretne zadatke, razgovore, zajedničko rešavanje problema i proveru onoga što smo napravili.
Programiranje bi bilo jedan deo tog procesa, ali ne i jedini.
Tu ima mesta za dizajn, istraživanje korisničkih potreba, upravljanje projektima, pisanje sadržaja, testiranje, analitiku i komunikaciju.
Takav pristup mogao bi da poveže ljude sa različitim iskustvima i interesovanjima.
AI Product Lab je za sada pravac koji želimo da razvijamo, a ne gotov program sa unapred obećanim rezultatima.
Ali verujem da ideja ima smisla upravo zato što polazi od onoga što sam naučio radeći na sopstvenim proizvodima: najviše razumemo onda kada pokušamo nešto da napravimo, suočimo se sa stvarnim problemom i pronađemo način da ga rešimo.
Prvi prototip je tek početak
I dalje me raduje onaj trenutak kada se nova ideja prvi put pojavi na ekranu.
Kada nešto što je do juče bilo samo skica ili beleška postane aplikacija koju mogu da otvorim, isprobam i pokažem drugima.
AI je taj trenutak učinio mnogo dostupnijim.
Ali danas na njega gledam drugačije.
To više nije trenutak u kojem pomislim da je najveći deo posla završen.
To je trenutak u kojem konačno mogu ozbiljno da proverim da li moja ideja ima smisla.
I upravo tu počinje ono što me u razvoju proizvoda najviše zanima: eksperimentisanje, učenje, popravljanje i pokušaj da od nečega što radi napravim nešto što je ljudima zaista korisno.
Jer napisati kod danas je možda lakše nego ikada. Napraviti dobar proizvod i dalje zahteva mnogo razmišljanja.
A možda je baš zato ovo najzanimljivije vreme da zajedno učimo i stvaramo.