Pirms 2 nedēļām publicēju informāciju par PHP Tester jeb maza izmēra platformu, ar kuras palīdzību testēt programmētāju zināšanas. PHP Tester bija 2 mērķi. Pirmkārt pārbaudīt man pašam kādu brīdi iekšā dzīvojušas idejas dzīvotspēju, otrkārt – pamēģināt pievērst PHP programmētāju uzmanību, lai viņi piesakās pie mums darbā draugiem.lv grupas uzņēmumos (tas arī ir iemesls, kāpēc Draugiem Pase šobrīd ir vienīgais autorizācijas mehānisms).

Iesākumā nedaudz statistikas. Kopā šajā rīkā ir autorizējušies nedaudz virs 200 cilvēkiem, ir bijuši ap 900 mēģinājumi veikt testus, no kuriem nepilni 200 ir bijuši veiksmīgi. Šo statistiku gan mazliet pabojāja fakts, ka bija kļūdas arī testēšanas sistēmā. Paskatot cauri cilvēkus, kas ir piedalījušies, atradu arī vairākus pazīstamus cilvēkus, kas ne tuvu ikdienā nenodarbojas ar PHP programmēšanu, taču ar vairumu testiem varēja tikt galā.

Nedaudz izvērstāk padomājot par idejas dzīvotspēju un potenciālu ir skaidrs, ka ideja būtu dzīvotspējīga, vienīgi ir jārēķinās, ka ilgtermiņā ir jāiegulda krietni liels darbs, lai ražotu saturu un jaunus testus. Vairāki no dalībniekiem jau ir vismaz pāris reizes pajautājuši, kad būs pieejami jauni testi.

Ar jaunu testu pievienošanu ir problēma – ir jābūt pilnīgai pārliecībai un garantijai, ka tavs izveidotais testēšanas scenārijs ir bez kļūdām, tātad pirms testu piedāvāšanas publikai, tie ir jānotestē kādā šaurākā testa grupā. Tas arī pierādījās esošajos testos. No esošajiem sešiem testiem divos es pats biju ielaidis neliela izmēra kļūdas testēšanas scenārijos, kā rezultātā uz šīm kļūdām, veidojot savus risinājumus, man norādīja dalībnieki. Tāpat arī atspēlējās pilnīgi nejauša testu datu ģenerēšana un daži no programmētājiem pamanījās datuma korektuma pārbaudes testus iziet ar ļoti vienkāršiem testa piemēriem un attiecīgi arī nepilnīgiem risinājumiem.

Visai pagrūti ir arī izdomāt kvalitatīvus, interesantus, pietiekami sarežģītus testa uzdevumus, jo PHP programmēšanas valoda ir ārkārtīgi brīva un vienu un to pašu lietu var darīt neskaitāmos dažādos veidos. Piemērs ar asociatīva masīva atslēgu samainīšanu vietām ar vērtībām. Izrādās tam ir pat speciāla iebūvēta PHP funkcija array_flip, kuru līdz šim nebiju piefiksējis. Tāpat piemērs ar 6. testa uzdevumu un MySQL vaicājumu ģenerēšanu. Komunicēt ar MySQL var izmantojot standarta mysql_* funkcijas, mysqli interfeisu, PDO bibliotēku, izmantot kādu ORM risinājumu. Katram no programmētājiem ir savs problēmu risināšanas piegājiens un pieredze ar izmantotajiem risinājumiem, turklāt dažiem no šiem risinājumiem uzdevumā minētā problēma vienkārši nav aktuāla, jo tiek risināta citā līmenī.

Raugoties no darba devēja viedokļa šāds rīks ir noderīgs un var dot ieskatu programmētāju izvēlētajos risinājumos, nemēģinot programmētājus piespiest programmēt darba intervijas laikā, kad kandidātiem nereti ir krietni paaugstināts stresa līmenis. Pie tam tiek dots ieskats arī tajā, kāds ir bijis programmētāja domu gājiens neveiksmīgajos testu mēģinājumos, cik ātri ir novērstas problēmas, u.c. Īsti nezinu vai tieši pateicoties šim rīkam, taču izskatās, ka vismaz vienu no nepieciešamajiem programmētājiem būsim atraduši, bet vakance PHP programmētājiem vēljoprojām ir aktuāla.

Ir viegli vēl pirms darba intervijas veikšanas identificēt cilvēkus, kuriem vēl ir nepieciešams krietni papildināt savas zināšanas, tāpat var viegli identificēt cilvēkus, kuriem varētu būt visai labas zināšanas par programmēšanu un ar kuriem noteikti ir vērts aprunāties klātienē.

Par tālākajiem nākotnes plāniem. Šobrīd nekādu tālāku grandiozu nākotnes plānu nav. Visticamāk, ka šo rīku izmantosim reizēs, kad gribēsim iegūt nedaudz vairāk informācijas par programmētāju pirms darba intervijas veikšanas. Šobrīd ir sagatavoti pāris jauni testa uzdevumi, kurus vispirms drošības pēc notestēšu slēgtā testa grupā un publicēšu tuvākajā laikā.