Nga Hillel Wayne, inxhinier software
A është inxhinieria e softuerit “me të vërtetë” inxhinieri? Shumë prej nesh e quajmë veten inxhinierë softuerësh. A e meritojmë këtë titull? A jemi ne thjesht pretendues të idesë së inxhinierisë? Kjo është një pyetje e rëndësishme dhe si të gjitha pyetjet e rëndësishme, ajo ndez diskutim në internet. Nga njëra anë, ju keni njerëzit që thonë se, “ne nuk jemi inxhinierë, sepse nuk i përmbushim standardet inxhinierike”. Ata thonë se ne kemi nevojë për gjëra të tilla si certifikimi, licencimi dhe dizajni rigoroz nëse duam të fitojmë titullin inxhinier.
Në anën tjetër, ne kemi njerëz si Pete McBreen dhe Paul Graham që thonë se ne nuk jemi inxhinierë, sepse inxhinieria nuk mund të zbatohet në fushën tonë. Inxhinierët punojnë në projekte të parashikueshme me shumë planifikim paraprak dhe kërkesa rigoroze. Softueri është dinamik, vazhdimisht në ndryshim, i paparashikueshëm. Nëse përpiqemi të zbatojmë praktikën inxhinierike në softuer, atëherë softueri do të ishte 10 herë më i shtrenjtë dhe i ngecur në 1970.
Nëse do të doja të dija se si zhvillimi i softuerit krahasohet dhe kontraston me inxhinierinë “reale”, atëherë do të më duhej të flisja me inxhinierë “të vërtetë”. Por, duke menduar për këtë, kuptova një problem tjetër: ndërsa inxhinierët “të vërtetë” mund të më tregonin se çfarë bënin, ata nuk mund të më tregonin se si ndryshonte puna e tyre nga e imja.
Vetëm një person që ka bërë zhvillimin e softuerit dhe inxhinierinë “e vërtetë” mund të flasë me të vërtetë për dallimet midis tyre.
Pra, kjo është ajo që kam vendosur, të gjej njerëz që dikur ishin inxhinierë profesionistë dhe më pas u bënë zhvillues profesionistë softuerësh. Unë i quaj këta njerëz “corssover”, hibridë midis dy botëve. Kam intervistuar 17 “corssovers” mbi keqkuptimet e zakonshme të softuerit, si lidhen të dy botët me njëra-tjetrën, nëse me të vërtetë mund ta quajmë inxhinieri atë që bëjmë dhe çfarë mund të mësojnë fusha të ndryshme nga njëra-tjetra.
Keqkuptime të zakonshme
Shumica e njerëzve kanë një koncept joformal se çfarë është inxhinieria, por jo një përkufizim i rreptë. Njerwzit e dinë se çfarë është inxhinieria kur e shohin atë. Kur u kërkova atyre të rendisin në mënyrë eksplicite cilësitë e asaj që e bën diçka inxhinierike, këtu janë përgjigjet më të zakonshme:
- Bërja e diçkaje komplekse si pjesë e një ekipi.
- Bërja e diçkaje fizike.
- Përdorimi i parimeve matematikore në hartimin e tyre.
- Puna në situata me pasoja të larta, si humbja e jetës.
- Kryerja e punës me certifikatë dhe licencë.
Cilësia e parë është shumë e gjerë: pothuajse të gjitha profesionet njerëzore përfshijnë krijimin e diçkaje komplekse në një ekip.Kjo nuk specifikon “inxhinierinë”. Cilësia e dytë është shumë kufizuese: jo të gjitha format e inxhinierisë rezultojnë në procese fizike. Në veçanti, inxhinieria industriale e bën rrallë.
Kjo lë tre pretendime për të diskutuar. Të tre përdoren për të thënë se softueri nuk mund të jetë inxhinierik. “Ne nuk përdorim asnjë matematikë, ndryshe nga inxhinierët e vërtetë. Softueri nuk ka pasoja, ndryshe nga inxhinierët e vërtetë. Ne nuk jemi të licencuar, ndryshe nga inxhinierët e vërtetë.” Siç do ta shohim, asnjë nga këto nuk qëndron plotësisht.
Inxhinieria është matematikore
Pretendimi është se inxhinieria përfshin shumë matematikë të vështirë, ndërsa softueri përfshin shumë pak matematikë. Konfuzioni këtu vjen nga keqkuptimi ynë i matematikës. Pjesa më e madhe e matematikës që përdorin inxhinierët mekanikë është matematikë e vazhdueshme, si numrat realë. Gjëra të tilla si llogaritja, trigonometria dhe ekuacionet diferenciale janë në këtë kategori.
Në softuer, ne nuk i përdorim këto gjëra, duke çuar në konceptimin se nuk përdorim matematikë. Por ne në fakt përdorim matematikë diskrete, ku kemi të bëjmë ekskluzivisht me numra jo të vazhdueshëm si: teoria e grafikut, logjika dhe kombinatorika. Sa herë që thjeshtoni një kusht ose punoni me kompleksitetin e performancës së një algoritmi, po përdorni matematikën. Vetëm për shkak se nuk ka integrale nuk do të thotë që ne jemi pa matematikë.
Kjo bie në përputhje me pjesën tjetër të inxhinierisë. Degë të ndryshme përdorin lloje të ndryshme të matematikës në mënyra të ndryshme. Inxhinierët industrialë merren me gjëra shumë të ndryshme nga inxhinierët mekanikë. Vetëm për shkak se ne përdorim një degë të ndryshme të matematikës nuk do të thotë se nuk po bëjmë inxhinieri.
Inxhinieria është me pasoja të larta
Ka një ndryshim të madh nëse jeni duke bërë një kabinet për altoparlantët Bluetooth, si ato që janë në tavolinën time, ose jeni duke bërë një montim për pajisjen e uljes së 737. Ju jeni duke përdorur disa nga të njëjtat mjete, por qasja është jashtëzakonisht e ndryshme. – Nathan (mekanik)
“Por ka ende disa gjëra që çojnë në humbje jete!” Po, dhe e njëjta gjë është e vërtetë për softuerin. Një tejkalim i numrave të plotë në softuerin Intrado çon në një ndërprerje disa orëshe të 911 për miliona njerëz. Një algoritëm i njëanshëm i dërgoi njerëzit në mënyrë të padrejtë në burg. Ashtu si me inxhinierinë “e vërtetë”, ka gjithashtu një gamë të gjerë softuerësh që nuk do të vrasin njerëz, por do të çojnë në miliona dollarë dëme.
Inxhinierët janë të licencuar
Ky është pretendimi që kam dëgjuar më sw shumë: licencimi. Ka një ndryshim midis të bërit inxhinieri dhe të qenit inxhinier, ashtu si njerëzit praktikojnë mjekësinë në shtëpi pa qenë mjekë. Ndoshta inxhinieria e softuerit është e mundur, por pa licenca ne nuk jemi inxhinierë softuerësh. Në Kanada nuk mund ta quash veten “Inxhinier Softuerësh” nëse nuk je i akredituar!Dhe rreth gjysma e inxhinierëve me të cilët fola nuk ishin të licencuar, por konsideroheshin ende inxhinierë profesionistë nga kolegët e tyre. Ata nuk kishin “certifikimin”, por kishin aftësitë.
Në SHBA, nuk keni nevojë për licencë për të ushtruar asnjë lloj inxhinierie. Ju duhet një licencë për të qenë një “inxhinier kryesor”, i njohur ndryshe si personi që nënshkruan zyrtarisht planet si të vlefshme.
Këtu është problemi me vendosjen e inxhinierisë bazuar në licenca: licencat janë një konstrukt politik dhe social, jo një fakt i natyrës. Shoqëritë miratojnë licencën për arsye që janë sa politike aq edhe teknike.
Si përfundim: licencat ekzistojnë sepse ne jemi pjesë e shoqërisë dhe kemi kërkesa ligjore, jo sepse ato janë thelbësore për atë që do të thotë të bësh inxhinieri. Pra, mund të dëshironi ta bëni softuerin më të licencuar, por çështja e licencimit nuk e ndryshon thelbin e punës sonë.
E vërteta
Kjo na lë përsëri aty ku e filluam: nuk ka asnjë cilësi që mund të tregojmë dhe të themi “kjo është inxhinieri, kjo nuk është”. Përkundrazi, diçka si “inxhinieria” është një familje konceptesh të lidhura, ku ne gjykojmë nëse diçka i përket, bazuar në atë se sa shumë i ngjan gjërave të tjera në familje. Me fjalë të tjera, “inxhinieria” është “ajo që bëjnë inxhinierët”. Diçka bëhet inxhinierike nëse mjaft inxhinierë thonë se është inxhinieri.
Merrni parasysh inxhinierinë kimike. Inxhinieria kimike është ndryshe nga inxhinieria mekanike, civile ose elektrike. Inxhinierët kimikë krijojnë procese për të prodhuar produkte në shkallë, shpesh duke përdorur eksperimentimin dhe përsëritjen. Por askush nuk do të pajtohej se është inxhinieri. Inxhinieria kimike filloi në fund të viteve 1800, përpara se shtetet të licenconin inxhinierët. Nëse inxhinieria kimike do të fillonte tani, njerëzit do të refuzonin ta quanin inxhinieri. Dhe ata do të ishin gabim të refuzonin.
Sapo e kuptova këtë, procesi im i intervistimit ndryshoi pak. Në vend që t’i pyesja se si ndiheshin për tema të caktuara inxhinierike, unë thjesht i pyeta : “A e konsideroni inxhinierinë e softuerit në të vërtetë inxhinieri?”
Nga 17 crossover me të cilët fola, 15 thanë po.
Kjo nuk është përgjigjja që prisja . Mendova se nuk ishim inxhinierë, se në fakt jemi shumë larg të qenit inxhinierë. Unë nuk e di se si është të jesh një inxhinier “i vërtetë” dhe kështu nuk mund ta krahasoj inxhinierinë e softuerit me forma të tjera spese nuk kam përvojë nw inxhineri tw tjera. Këta njerëz e bënë, dhe ata e konsideruan inxhinierinë e softuerit një inxhinieri të vërtetë.
Ky është mendimi im i fundit. Unë hyra në këtë duke menduar se softueri nuk ishte vërtet inxhinierik. Ndoshta kishte disa njerëz që mund ta konsideronin veten si të tillë, por shumica prej nesh ishin shumë nën atë prag. Unë ende besoj se shumica prej nesh nuk janë inxhinierë, sepse po punojmë në fusha që njerëzit nuk i shohin si inxhinieri. Shumica e njerëzve nuk e konsiderojnë një faqe interneti “të projektuar”. Sidoqoftë, ka një hendek shumë më të vogël midis “zhvillimit të softuerit” dhe “inxhinierisë së softuerit” sesa midis “elektricistit” dhe “inxhinierit elektrik”, ose midis “tregtisë” dhe “inxhinierisë” në të gjitha fushat e tjera. . Shumica e njerëzve mund të kalojnë midis “mjeshtërisë softuerike” dhe “inxhinierisë softuerike” pa rikualifikim të rëndësishëm. Ne jemi të ndarë nga inxhinieria nga rrethanat, jo nga thelbi, dhe ne mund të zgjedhim ta kapërcejmë atë hendek sipas dëshirës.