Prenosim svoj članak objavljen u kolovoškom izdanju Mreže - jedinog domaćeg časopisa za IT profesionalce koji na moje oduševljenje na svojim stranicama otvara prostor i za teme iz domene korisničkog iskustva (UX). U njemu se bavim jednom od meni profesionalno najinteresantnijih tema - suradnjom između razvojnih inženjera i dizajnera te razmatram ulogu koju u toj priči ima XAML i, općenito, Microsoft Expression Studio. Članak je poprilično dug pa ću ga objaviti ovdje u dva dijela, a engleska inačica istoga će uskoro osvanuti i na UXPassion.com blogu.
U potrazi za svetim gralom…
Pružiti korisnicima uporabljivu i funkcionalnu aplikaciju ili servis se danas podrazumijeva. Ono što se (pre)često zanemaruje i obično ne podrazumijeva je pružanje kvalitetnog korisničkog iskustva. Korisničko iskustvo je temeljni element kojeg zajednički moraju graditi i razvojni inženjeri i dizajneri. Kako pomiriti ta dva svijeta, omogućiti im da rade zajedno i da stvaraju i funkcionalne i ugodne aplikacije i servise? Odgovor kriju 4 slova: XAML
Kako nastaje i što čini odličan računalni program, servis ili operativni sustav? I dok se možda oko tog pitanja ne može naći sasvim jasan odgovor, odličan se softver, u načelu, na tržištu i kod samog korisnika lako prepoznaje. Proizvodnja softvera danas nije jednostavan biznis i u pravilu uključuje vrlo širok raspon faktora. Korisnici najčešće prvo zamjećuju samo grafičko korisničko sučelje i njegovu estetiku, tu je onda sadržaj, funkcionalnost, vrijeme potrebno da aplikacija odgovori na neku korisničku akciju... Faktori koji utječu i oblikuju naše iskustvo i doživljaje pri korištenju aplikacija su brojni i danas je sasvim jasno kako sami razvojni inženjeri uz eventualno pokojeg testera nisu niti izbliza dovoljni za razvoj kvalitetnog softvera. Razvojni tim danas više nije ograničen na te tradicionalne uloge već se proširuje i postaje gotovo interdisciplinaran.
Softverski arhitekt, projektni menadžer, dizajner… I dok su prve dvije uloge svoje mjesto u većim razvojnim timova već na neki način zaslužile i opravdale, „crna ovca“ cijele priče su do sada bili dizajneri. Pomiriti razvojne inženjere i dizajnere ili otići čak veliki korak dalje – omogućiti im da zajedno rade na istom projektu, ali svaki samo ono u čemu je najbolji – dugo je vremena bio nedosanjani san. I, budimo realno – izvor frustracija s obje strane fronte.
Dobro je odmah na početku naglasiti kako se pod pojmom „razvojnog inženjera“ često podrazumijevaju uloge i same osobe koja piše i razvija kod, softverskog arhitekta, testera – dok se, pod zajedničkom kapom „dizajnera“ kriju grafički, web, dizajneri interaktivnosti i ostali… Jednostavnosti radi, dva tabora ćemo dijeliti u razvojne inženjere i dizajnere.
Danas je poslovno, ali i tehnološko okruženje dovoljno zrelo da se i jednoj i drugoj ulozi omogući zajednički rad i suradnja. No, potrebno je biti svjestan tri ključna momenta u samoj ideji suradnje razvojnih inženjera i dizajnera iz Microsoftove perspektive.
Prvi uključuje nuždu za promjenom paradigme i načina rada. Klasični workflow prema kojem razvojni inženjer piše kod u nekoj razvojnoj okolini, a dizajner svoje skice crta u, primjerice, Photoshopu, danas može biti posve drugačiji. Priča je otišla toliko daleko da danas na istom projektu razvojni inženjer piše kod i dodaje programsku logiku, dok dizajner, praktično istovremeno, dizajnira grafičko sučelje, branding, elemente interakcije…
Drugi ključni moment je ideja koja uključuje prihvaćanje koncepta prema kojem su kod i izgled aplikacije (presentation layer) međusobno odvojeni elementi, povezani samo s nizom event handlera koji korisničke zahtjeve povezuju s nekom programskog logikom sadržanom u nekoj code – behind datoteci. Ovaj moment i ne predstavlja izuzetno veliku novost jer je, na neki način, već uobičajen prilikom razvoja ASP .net aplikacija. Ipak, njegova je uloga izuzetno velika u ovoj novoj promjeni paradigme.
I konačno, treći moment uključuje tehnološku podršku cijeloj ideji suradnje razvojnih inženjera i dizajnera. Iz perspektive razvojnih inženjera tu je već dobro poznata i ustoličena razvojna okolina Microsoft Visual Studio, trenutno u inačici 2008. No, po prvi puta platforma je zaokružena s obitelji alata Microsoft Expression Studio namijenjenoj prvenstveno dizajnerima (web, grafičkim, interakcijskim…), ali i razvojnim inženjerima koji su spremni donekle se prilagoditi ponešto drugačijoj radnoj okolini. Expression Studio 2, koji je izašao s prvim danima svibnja, se sastoji od niza alata: Weba (namijenjen web dizajnerima i programerima), Blenda (alat za izradu multimedijalnih, bogatih te interaktivnih web i desktop aplikacija temeljenih na Windows Presentation Foundationu i Silverlightu), Designa (alat za vektorsku grafiku i obradu) te alata Media i Encoder (namijenjenih za upravljanje i encodiranje video i ostalih multimedijalnih sadržaja).
Konačno, svjedoci smo konvergencije novog načina rada (workflowa) nove platforme i novih alata u jedinstven proces razvoja i izgradnje softvera koji, u konačnici, rezultira boljem i kvalitetnijem iskustvu korisnika, stabilnijim i jednostavnijim aplikacijama te poboljšanom učinkovitošću.
Ta četiri divna slova...
XAML – eXtensible Application Markup Language se, bez pretjerivanja, smatra „svetim gralom“ koji omogućuje nesmetanu kolaboraciju razvojnih inženjera i dizajnera u Microsoftovom svemiru. Na samom početku treba odmah pojasniti da XAML, sam po sebi, nije taj koji omogućuje sve te krasne prednosti međusobne suradnje – pravi ključ je WPF (Windows Presentation Foundation), a XAML bi onda mogli smatrati sredstvom kroz koji se, dijelom, WPF manifestira.
XAML se često opisuje pojmom markup language – isti atribut nosi i čitav niz drugih opisnih jezika za sučelja poput HTML-a (hypertext markup language), SVG-a (scalable vector graphics) ili XUL-a (XML user interface language). Uspjeh HTML-a kao tipičnog, i vjerojatno najpoznatijeg i najrasprostranjenijeg markup jezika ide u prilog tvrdnji kako su opisni jezici za sučelja uspješni i da su zajedno s razvojem ukupne platforme (kako za desktop, tako i za web) i sami rasli. XAML je u svojoj srži nalik XML-u, no XAML nije samo jezik za opisivanje izgleda samog sučelja. Uporabom XAML-a je moguće definirati i korisničke kontrole, na njima dodavati event handlere koji se, kasnije, povezuju s programskom logikom u code – behind datotekama.
Naravno, kao i gotovo svi opisni jezici, XAML je čitljiv ljudima (human readable) što je prednost koju ne treba zanemarivati. Primjerice, prilikom razvoja u Expression Blend 2 okolini, klikom na split view), u gornjem se dijelu zaslona vidi izgled samog sučelja dok se u donjem dijelu vidi jasan i čitljiv XAML kod.