Šių metų rugsėjo 29d., tikrai netikėtai man pačiam, buvau pakviestas į Microsoft padalinio Lietuvoje rengiamus „Spaudos pusryčius“, kuriuose buvo supažindinta su kompanijos ateities planais, į šį renginis buvo pakviesti spaudos atstovai ir tinklaraštininkai. Iš tiesų aš savęs ne tik kad nelaikau profesionaliu tinklaraštininku, bet ir apskritai tinklaraštininku, esu tik žmogus, kartas nuo karto pasidalinantis savo [...]
Įrašai pažymėti žyme ‘Rašiniai’
Programuotojo darbo procesas: #2 Bazinis darbo procesas
Kaip pastebėjote, po gana sėkmingo mano asmeninio tinklaraščio starto, kai per savaitę buvo parašyta keletas įrašų, stojo visiškas štilis ir beveik visą mėnesį šiame tinklaraštyje dienos šviesos neišvydo nė vienas įrašas, dėl nenumatytų aplinkybių. Na bet štilis baigiasi ir grįžtu su naujais įrašais. Pirmasis bus apie bazinį darbo procesą, linkiu smagaus skaitymo.
Taigi, pradėsiu nuo sąvokos bazinis darbo procesas išaiškinimo. Bazinis darbo procesas – tai etapų, žingsnelių seka reikalinga darbui atlikti. Šiuo atveju – programai sukurti. Na patį savo rašinių ciklą pradedu nuo bazinio darbo proceso, nes pats, prieš pradėdamas skaityti ir nagrinėtis literatūrą apie asmeninį programos kūrimo procesą, nenaudojau jokio darbo proceso – iškart, gavęs užduotį, pradėdavau programuoti, net nesusimąstydamas, kokią įtaką rezultatams turėjo padrikas darbas. Darbo proceso turėjimas ir naudojimas suteikia:
- Duomenų apie programuotojo vykdomą darbą, jo rezultatus ir sritis, kurių darbą reikėtų pagerinti.
- Gaires programos kūrimo plano susidarymui, nes tam, kad būtų galimą sudaryti planą, reikia žinoti, kaip atlieki darbą.
- Informacijos, kaip reikėtų koordinuoti darbą, dirbant programuotojų komandoje.
- Organizuotumo, kai nėra švaistoma laiko, galvojant, ką reikėtų daryti toliau, atlikus vienokią ar kitokią užduotį.
Programuotojo darbo procesas turėtų būti sudarytas iš tokių etapų: planavimas, projektavimas, kodavimas, kompiliavimas, testavimas ir aptarimas. Na planavimo metu yra susidaromas užduoties, programuotojo atveju programos kūrimo, vykdymo planas. Projektavimo, kodavimo, kompiliavimo ir testavimo etapų kūrimo metu ir sukuriama pati programa. Aptarimo etapo metu yra vertinami suplanuoti rezultatai su realiaisiais. Na šio įrašo pavadinime neveltui yra įrašytas žodis bazinis, kadangi noriu pateikti tokį programuotojo darbo procesą, kurį siūlyčiau naudoti visiems, kurie bandys pasinaudoti mano išdėstytomis mintimis ir žiniomis. Jis bus tas pats pradinis programuotojo darbo procesas, kuris vėliau bus papildomas ir sudėtingės, įtraukiant vis daugiau užduočių. Taigi, aš siūlyčiau naudoti tokį bazinį programuotojo darbo procesą:
- Planavimas:
- Programos kūrimo plano sudarymas.
- Įvertinama programos kūrimo trukmė ir kuriamos programos apimtis.
- Istorinės informacijos fiksavimas (Darbo trukmės, defektų).
- Projektavimas:
- Programos ar užduoties detalaus projekto sudarymas. Šio etapo metu pagal specifikacija aprašomos programos dalys, atliekamos funkcijos ir veiksmai, bei kaip tos funkcijos sąveikaus tarpusavyje.
- Istorinės informacijos fiksavimas (Darbo trukmės, defektų).
- Kodo rašymas:
- Programos kodo rašymas.
- Istorinės informacijos fiksavimas (Darbo trukmės, defektų, kodo eilučių).
- Kompiliavimas:
- Kompiliavimas, defektų pašalinimas.
- Istorinės informacijos fiksavimas (Darbo trukmės, defektų).
- Testavimas:
- Testų vykdymas, defektų pašalinimas.
- Istorinės informacijos fiksavimas (Darbo trukmės, defektų).
- Programos aptarimas – šio etapo metu programuotojas dar kartą peržiūri savo sukurtą programą ir patikrina, ar atitinka reikalavimus, palygina, ar viskas padaryta taip, kaip buvo aprašyta plane. Taip pat yra sudaromos atitinkamos suvestines apie įvykdytą projektą ar sukurtą programą.
Iš esmės, šis programuotojo darbo procesas, neturėtų labai skirtis, nuo kiekvieno programuotojo darbo proceso. Vienintelė nauja užduotis, kurią manau vykdo nedidelė dalis programuotojų, yra istorinės informacijos fiksavimas. Kaip ir kokią istorinę informaciją reikia fiksuoti, aptarsiu sekančiose rašinių dalyse. Viliuosi, jog šis įrašas jums suteiks naujų minčių ir idėjų, kaip galima organizuoti ir sekti savo darbą.
Programuotojo darbo procesas: #1 Įžanga
Ilgai galvojau, kaip reikėtų pristatyti savo pirmąjį (tikiuosi ne vienintelį) rašinių (įrašų) ciklą tema “Programuotojo darbo procesas”, visgi šio rašinių ciklo rašymas yra viena pagrindinių priežasčių, dėl ko aš pradėjau rašyti tinklaraštį, ir noriu iš pradžių pasidalinti mintimis, kas mane paskatino tai padaryti. Taigi, studijuodamas Vilniaus universitete, tiek kursinį tiek baigiamąjį darbą rašiau tema – “Asmeninis programos kūrimo procesas”. Šio darbo rašymas buvo viena naudingiausių patirčių per visą studijavimo laikotarpį universitete. Asmeninis programų kūrimo procesas (angl. Personal Software Process) yra disciplina, kuri parodo, kaip reikėtų dirbti programuojant, kokius įrankius ir priemones naudoti ir kaip įvertinti ir pagerinti savo darbą ir rezultatus. Kadangi programavimas yra mistinis procesas, kurio rezultatus, manau su manimi sutiks didžioji dalis programuotojų, dažnai yra ypač sunku vertinti. Todėl ir noriu pasidalinti įgytomis žiniomis ir patirtimi, kurios tikiuosi padės tiek darbe tiek gyvenime.
Paklausite, kodėl programuotojo darbo procesas? Priežastis paprasta – mintis ir žinias, kurias ruošiuosi išdėstyti, galima pritaikyti ne vien kuriant programas o ir įvairiose, su programuotojo darbu susijusiose, srityse. Ar verta šį rašinių ciklą skaityti žmonėms nesispecializuojantiems programavime? Galbūt, iš tiesų šis rašinių ciklas yra skirtas būtent programuotojams, tačiau kai kurių skyrelių medžiagą galimą pritaikyti įvairiose srityse, pvz.: planavime, darbo organizavime ir pan.. Ko aš tikiuosi, rašydamas šį rašinių ciklą? Pasidalinti žiniomis ir užmegzti diskusijas, kuriose kiekvienas iš mūsų arba sutiktų su mano siūlomais metodais arba paprieštarautų, argumentuodamas ir pateikdamas savo versiją.
Na toliau danties užkalbinėti nesiruošiu ir norėčiau pereiti prie esmės. Programuotojo darbo procesą ruošiuosi išdėstyti tokia eile/struktūra:
- Bazinis darbo procesas
- Istorinės informacijos rinkimas
- Planavimas
- Programinės įrangos kokybė
- Peržiūros
- Dažniausiai naudojamų funkcijų biblioteka
Rašinių ciklas bus rašomas tokia tvarka, kokią čia ir matote, tikiuosi, jog pavyks parašyti bent po vieną įrašą per savaitę ir 2-3 mėnesių bėgyje pilnai pristatyti mano įsivaizduojamą programuotojo darbo procesą.
Dar norėčiau trumpai paminėti literatūros šaltinius, kurių medžiaga kartais remsiuosi. Tokių yra du: Introduction to the personal software process ir PSP – A Self-improvement Process for Software Engineers. Abi šios knygos ir yra apie asmeninį programos kūrimo procesą. Žinoma, mano rašinių ciklas nebus paprasčiausia, šiose knygose išdėstytų, minčių kopija, o bus aprašyta programuotojo darbo metodika, kurią susidariau, nagrinėdamas minėtą literatūrą ir taikydamas įgytas žinias praktikoje.
Viliuosi, kad visos šio rašinių ciklo metu išdėstytos žinios, padės organizuojant savo darbą, bei tikiuosi sulaukti jūsų atsakymų ir diskusijų šia tema.




