How do we follow the SCRUM process?
If it is a process it is not agile.
Agile is like an octopus – small central brain and smaller processing units in various arms. The classic management thinking are crazy about this, ;).
G
How do we follow the SCRUM process?
If it is a process it is not agile.
Agile is like an octopus – small central brain and smaller processing units in various arms. The classic management thinking are crazy about this, ;).
G
Design is not just what it looks like and feels like. Design is how it works.
Steve Jobs
Pe vremuri se spunea că era deajuns să fi citit cartea „The Peter Norton Programmer’s Guide to the IBM PC” să te numești programator. Se înșelau, cum se înșeală și azi cei care te întreabă „Știi Java? Știi dotnet?”. Da, nu ajunge să citești o carte sau să cunoști un framework să te numești programator. Sau să fii în stare să enumeri multe acronime de trei litere. Cunosc persoane care azi învîrteau Perlu, iar peste o săptămînă erau profi în Modula 2, dar nu erau programatori. Nu pot să uit răspunsul unui prieten întrebat în ce programează: „În Word.” Dacă ați zîmbit la citirea acestui răspuns atunci e timpul să vă căutați o meserie în afara celor numite software development.
Cum am devenit programator? Primul lucru de spus e că am avut cel mai prost profesor – pe mine însumi.
Am pornit cu aplicații pe un computer cu procesor Z80 la 1MHz și cu 64KB memorie (din care 18KB erau ocupați de SO, plus 25KB memoria video). Așa am învățat să lucrez modular pentru că aplicațiile nu încăpeau în memorie. Pentru că viteza formulelor trigonometrice era mică am „inventat” tabelele cu valori precalculate. Tot din cauza vitezei scăzute a limbajului interpretat am fost nevoit să scriu cîteva rutine în limbaj mașină.
Apoi am trecut pe PC-XT cu procesor Intel 8086. În prima seară cînd l-au adus mai că nu am dansat ritualic în jurul lui. Am pierdut simplitatea memoriei video de 25KB, dar mi-am revizuit tehnicile greșite. Am înțeles că aplicația trebuie să fie independentă de hardware-ul pe care rula – la început numai pentru video, dar mai încolo mi-am dat seama că e o idee bună pentru orice fel de aplicație. Au apărut oportunități pentru aplicații mai complexe – baze de date. Am făcut-o la nivel de fișiere, dar curînd s-a dovedit că nu făceau față cerințelor de performanță. Am căutat algoritmi de sortare mai performanți, dar am fost nevoit să descopăr că teoria lui Codd face o bună abstractizare și că aplicațiile mele nu mai depindeau de baza de date aleasă, că puteam să le mut dacă nu mai performau cînd creștea numărul userilor. Tot căutînd l-am descoperit pe Knut și „The Art of Computer Programming”.
A venit Windows-ul cu interfața grafică și programarea orientată pe mesaje. Și rutinele call-back. Și Windows API cu framework-urile OWL și MFC. Plus problemele de accesare a stringurilor. Win32 și backward compatibility. Apoi WinNT și problemele de compatibilitate cu Win9x. Știți de ce Copy/Paste funcționează atît de bine peste Windows, iar în Linux le-a luat un milion de ani să le aducă? OLE Automation e răspunsul.
Alte vremuri cu ale lor client/server side development. Explozia internetului și ActiveX, DOM, IE object model – pe toate le-am mîncat pe pîine la sfîrșitul anilor 9x.
Design patterns le-am învățat de la Bruce Eckel și nu de la gang of four. Patterns & practices de pe MSDN este locul de unde am furat multă meserie. OOP, TDD, FDD, SOM, KISS, YAGNI nu sunt doar acronime, ci tehnici cunoscute.
Ce ar mai trebui să cunoască un programator? Ceva legat de UI, de securitate, de deployment și instrumentation. Un fleac. Modelare, ce e aia?!
După cum vedeți am scris o pagină fără să mă refer la limbajul în care am programat. De fapt, nici nu e atît de important!
G.