MESERIA DE PROGRAMATOR Programatorul mesrias Definirea problemei Elaborarea specificatiilor Desenarea diagramelor de control Scrierea de cod Testarea Elaborarea documentatiei Implementarea Managementul Programatorul meserias
Programarea calculatoarelor este o meserie ca oricare alta atunciu cand:
- programele au un caracter repetat de elaborare in sensul ca programe pentru calcule matriceale se scriu de multe ori, programe pentru crearea de fisier se scriu, de asemenea, de multe ori
- programul este un produs al muncii artizanale, care seamana cu alte produse asa cum oalele de lut dintr-o anumita zona realizate de un anumit meserias au ceva in comun
- numca programatorului nu este o munca de rutina, in care apar elemente de creativitate strict impuse de particularitatile problemei de rezolvat; daca o problema trebuie rezolvata cu un masiv unidimensional, programatorul care stie meserie nu va folosi un masiv bidimensional cu mai multe linii si o singura coloana
- imbinarea instructiunilor are la baza regulilor care s-au decantat de-a lungul timpului si care din aproape in aproape conduc la secvente de program eficiente
- reutilizarea de componente este asemanatoare motivelor folclorice utilizate in productia de oale de lut; apar forme si dimensiuni diferite, se schimba culoarea vopselelor, se adauga ceva ornamente; programele se realizeaza in serie mica; vor exista multe programe de creare de fisiere; vor exista multe programe de obtinere a tabelelor; diferentele apar prin faptul ca tabelele au trei sau 7 coloane, ca au cate zele sau cate cincisprezele randuri pe pagina; asemanarea de la un tabel la altul se vede dupa cum sunt definite datele, dupa cum se efectueaza initializarile, dupa cum se fac calculele si apoi dupa cum se afisaza rezultatele
- produsele software sunt analizate prin prisma semanarii lor daca realizeaza aceeasi tipologie de prelucrare; un program care aduna matrice nu va fi foarte diferit de un program care scade matrice; rutina isi spune cuvantul; mai mult, daca intr-un program este necesara secventa de adunare de matrice, asemeni mesterului olar care simte nevoia sa preia un motiv de pe o strachina pe un ulcior, programatorul va introduce secventa in care se aduna matrice, exact asa cum este realizata in alt program, schimband numai denumirile operanzilor
- programatorul are la baza o serie de cunostinte acumulate prin experienta sa sau invatate din manuale de programare sau preluate de la programatori cu experienta; in activitatea curenta exista clase de aplicatii informatice; programatorul meserias invata cateva retete pe care le aplica cu consecventa; variatiile sunt minore de la un program la altul care apartine aceleiasi clase; programele de actualizare a fisierelor au aceeasi structura: deschid fisierul, citesc articole dupa cheie, testeaza tipul actualizarii, efectueaza adaugare, modificare sau stergere, rescriu daca este cazul si se inchide in final fisierul; programatorul meserias respecta aceasta structura, asemeni mesterului olar; el nu va face niciodata din materialul pentru o strachina o statuie cu un pitic; va iesi oribil
- fiecare produs software este face parte din productia de serie mica, realizata artizanal
- comunicarea intre programatori este redusa, cel mult exista dialoguri la targurile de software, la cursuri de perfectionare; intrucat programatorul meserias are o arie de exercitare a meseriei foarte restransa, comunicarea este limitata si viitorul acestei comunicari este nesigur
- constructiile din interiorul programului sunt rezultatul reutilizarii obligatorii a motivelor deja cunoscute dupa principiul "asa este bine" fara a exista explicatii riguroase in legatura cu alegerea unei instructiuni in favoarea alteia; este un dat ce se transmite de la un meserias la altul
- programele elaborate de programatorul meserias au caracteristicile imprimate de acesta dar si minusurile datorate stagnarii in raport cu dinamica informaticii; asa se explica existenta inca pe piata software a produselor realizate cu SGBD-uri considerate anacronice, asa se explica dezvoltarea de software sub instrumente cu tre-patru versiuni mai vechi decat ceea ce exista pe piata
- programele realizate nu au un nivel de noutate spectaculos, sunt de dimensiuni strict care depind de capacitatea unei singure persoane de a le realiza
- programele sunt simple, au multe elemente de siguranta si de dependenta care il fac pe programatorul meserias sa fie solicitat masiv la depanare, la intretinere si mai ales la mentenanta; este si elementul de regres pe care constient sau nu, programatorul meserias il impune produsului final; el vrea sa fie solicitat, vrea sa aiba asigurate resurse in viitor, fara sa-si dea seama ca depanand programe, nu are timp de autoperfectionare, iar timpul pentru a realiza noi programe se limiteaza drastic
- modulele realizate de membri unei echipe de programatori meseriasi au reguli locale, se inscriu in aceleasi coordonate si permit finalizarea prin specializare stricta; exista programatori specializati in validari, exista programatori specializati in a construi module pentru obtinerea de tabele, exista programatori care stiu sa efectueze interfete prietenoase.
Programatorul este un meserias mai mult sau mai putin priceput.
Lucreaza solitar si cel mult are cativa ucenici care invata de la el exact ceea ce el cunoaste si nimic mai mult.
Programele sunt produse de serie mica si oricine vine sa faca analiza pe text sursa, intr-adevar conchide ca are in fata programe din aceeasi clasa care nu difera mult unele de altele, fie ca au fost transferate secvente eficiente de la o clasa de programe la alta, cu mici modificari, fie ca au in fat o constructie pe care au mai intalnit-o si cu alte prilejuri si care reprezinta o reteta sigura de a construi solutii care satisfac cerintele beneficiarului .
Mesterul programator stie foarte bine un limbaj de programare si multe retete de folosire a instructiunilor, fara a avea explicatii riguroase la multe dintre optiuni.
El are o bogata experienta si o colectie de solutii proprii.
Are deja o ierarhizare a secventelor de instructiuni care si unde se potrivesc.
Este limitat in a interveni pe programul elaborat de un alt programator pentru ca diferentele de stil, de abordare, de resurse utilizate reduc eficienta interventiei.
Programatorul meserias are capacitatea de a se autoperfectiona numai strict in masura in care instrumentele, tehnicile pe care le stapaneste nu mai sunt solicitate de piata software si trebuie sa treaca la realizarea de alte tipuri de programe, in alte limbaje de programare, cu alta tehnica.
El va avea nostalgia timpurilor trecute si o perioada indelungata va da solutii cu instrumentele noi folosind vechile deprinderi.
Va obtine programe C++ cu obiecte dar se vede de la o posta ca sunt constructii care puteau sa fie mult mai eficiente fara clase, fara supradefiniri de operatori, pentru ca din acele programe se vede abordarea artificiala, neeficienta a tehnicii obiectuale.
Vine rar cu idei creatoare si de fiecare data trecerea este lenta, anevoioasa, iar o noua varianta a software pe care il are in exploatare, este impusa de repararea carentelor semnalate de beneficiar.
Programatorul meserias:
- elaboreaza singur specificatiile dupa metode invatate sau create de el
- elaboreaza singur diagramele de control de cele mai multe ori sub forma ce ciorne pe care de cele mai multe ori nu le finalizeaza in documentatii riguroase
- scrie texte si cel mult da si la alti programatori meseriasi cu experienta ceva mai redusa, sa elaboreze unele componente dar prin indicatiile pe care le dau si prin restrictiile pe care le impun vor obtine proceduri exact in forma pe care ei le-ar fi elaborat el, cu limitele incorporate; daca este convins de alti programatori sa modifice ceva, va accepta
- testeaza programele dupa metode empirice dar eficiente
- elaboreaza rudimente dedocumentatie si numai daca este foarte meticulos sau numai daca prin contract se specifica expres, documentatia respecta cerintele de completitudine si de structura cerute prin standarde
- trec la implementare gestionand toti pasii si aducand pe loc modificarile care nu sunt putine
- asista utilizarea curenta a produsului la beneficiar si intervine cu sfaturi sau direct pe textul sursa daca este nevoie pentru a raspunde cerintelor si a ramane util in continuare beneficiarului.
Programatorul de acest tip este un meserias asa cum este olarul, croitorul cismarul, macelarul si brutarul. revenire