Izvještaj o izletu ICSE 2018: 50 godina softverskog inženjerstva

Većina glavnih stolica i programskih stolica od svih 40 sastanaka ICSE-a.

Područje istraživanja inženjerstva softvera ove je godine 50 godina; najveća, najstarija i najbolja konferencija softverskog inženjerstva, Međunarodna konferencija softverskog inženjerstva, stara je 40 godina. Ovogodišnja konferencija bila je sjajna prilika za zajednicu da se osvrne na proteklih pola stoljeća istraživanja i upita: „Što smo naučili? Što smo zaboravili? Što nam nedostaje? Provela sam tjedan u Geteborgu u Švedskoj, baveći se ovim pitanjem, razmišljajući o mnogim pronicljivim govorima i razgovorima koji su odgovarali na ta pitanja, ali i dijelila vlastita razmišljanja o tome kako krenuti naprijed kroz dva pozvana razgovora.

Kako bih započeo svoj prvi cijeli dan, dao sam uvodnu riječ u Rudarsko spremište softvera.

Pokrenuo sam svoje vrijeme na ICSE dajući zajedničku riječ na ICPC 2018 i MSR 2018 o nuždi za interdisciplinarnim radom i teorijom u istraživanju softverskog inženjeringa, koristeći zajednice koje su usredotočene na razumijevanje i rudarstvo kao primjere za ove veće točke. O svom govoru pisao sam u prethodnom postu, rezimirajući svoje argumente. Nakon mog razgovora i tijekom cijele konferencije, vodio sam zaista zanimljive razgovore s višim istraživačima koji su se borili shvatiti što mislim pod teorijom, ali i s novim doktoratom. studenti fascinirani potencijalom teorije da im posao učini što boljim. Imao sam sjajan grupni razgovor s nekoliko studenata doktorskog studija CMU-a o tome što je teorija, kako izgleda, kako može transformirati studije koje radimo i kako naše rezultate može učiniti dubljima. Razgovarao sam i s inženjerom iz Adobe Analytics-a koji se potrudio dobiti interno prihvaćanje alata za analitiku. Bila je to fascinantna prilika da pokušam utjecati na to kako će nova generacija istraživača i inženjera uključiti teoriju u posao, ali postavilo me je pitanje kako naučiti teoriju da učinkovito koristi.

U ponedjeljak sam proveo dio svog vremena na sesijama MSR-a i ICPC-a, slušajući o najnovijim istraživanjima percepcije poruka o pogrešci, razumijevanju obrasca dizajna i drugim naporima da istražim razumljivost. Jedan je članak ponovio procjenu 121 mjerila složenosti koja se odnosi na kod kako bi se utvrdilo povezano li s iskustvom razumljivosti programera, otkrivši da su dužina i nazivi varijabli zajedno predviđali ocjene programera. Postoji nešto zaista pametno korištenje podataka na tim manjim kongresnim konferencijama koje postavljaju zaista uvjerljiva pitanja na sjecištu razumijevanja i rudarstva. Kao što sam napomenuo u svom uvodnom izlaganju, njima je stvarno potrebna teorija o razumijevanju, ali obrasci koje pronalaze su dobra osnova za razvoj ovih teorija.

U popodnevnim satima u ponedjeljak vodio sam zakopan razgovor sa Timom Menziesom o relativnim zaslugama dubokih nasuprot plitkim modelima. Djelomično je iznenađeno odgovorio na moj glavni govor da nisam iznio dublje kritike zajednice rudarstva skladišta, ali i da nisam priznao neke zapanjujuće moći jednostavnih, plitkih modela za optimizaciju i skaliranje svih vrsta odluka u softveru inženjering. Njegova je tvrdnja bila u osnovi da u nekim slučajevima, ili možda mnogim, ne trebamo objašnjavati zašto alati, sustavi ili procesi rade, oni jednostavno trebaju raditi. Razriješili smo neslaganja, na kraju zaključujući da su nam vjerojatno potrebni modeli svih vrsta dubine (od teorija do neobjašnjivih zakona do bezumnih, ali preciznih prediktivnih motora). Takva je raznolikost vjerojatno znak zdravog akademskog diskursa.

MSR banket u Gothenburškom muzeju svjetske kulture.

U ponedjeljak navečer bio je domjenak za konferenciju Rudarskog softverskog spremišta. Imao sam bogat niz razgovora s Mei Nagappan, Andyjem Zaidmanom i Michaelom Godfreyjem. Razgovarali smo o svemu, od mandata i napredovanja, učenja CS-a na ljestvici, naše osobne povijesti oko učenja programa i o našim ulogama vratara u učenju CS-a. Za mene su ovakvi razgovori duboka snov umreženosti akademskim putem: oni su razgovori o našem životu, našim idejama i načinu na koji oni komuniciraju.

Abram je govorio o potrebi inkrementalnog znanstvenog napretka.

U utorak ujutro, Abram Hindle održao je najutjecajniju nagradu za novinare govoreći o svom radu: "Što nam govore velike obveze? Taksonomska studija velikih dobara? "Ono što je značajno u ovom radu je da je jedan od prvih radova koji nije samo unaprijedio rudarske tehnike, već zapravo postavio pitanje o sadržaju skladišta, premještajući polje prema znanstvenim pitanjima o softveru inženjering, a ne samo tehnike rudarstva. Ono što se meni uistinu činilo zanimljivim bilo je koliko je znanstveno izraženo mišljenje: iznio je snažnu tvrdnju da su odbitci važni i ne zanemarivi i da su veliki odlasci ljudi bili presudni pokazatelji prirode evolucije softvera. Također se jedinstveno usredotočio na detaljnu analizu sadržaja djela, što je bila (i još uvijek jest) rijetka metoda u bilo kojem istraživanju rudarstva podataka. Abram je također dao uvjerljiv argument da odbacivanje radova zbog toga što nemamo odmah djelotvorne rezultate koči našu znanost, a samim tim i našu budućnost, i suprotstavlja se onome što se tiče stipendije. U pitanjima i odgovorima, Abram je iznio neke pronicljive točke o ekonomiji istraživanja i kako se može izobličiti koja pitanja trebamo tražiti i dubinu znanstvenog istraživanja koja dopuštamo.

Tijekom pauze, Lutz Prechelt postavio mi je fascinantno pitanje: zašto se softver, iako je toliko složen, a programeri toliko nespremni, taj softver ipak gradi, usvaja i koristi na učinkovit način? Razmislila sam na trenutak i podijelila svoju veliku teoriju. Moje je objašnjenje bilo da softver, uprkos tome što ima učinkovito beskonačni prostor pogubljenja, a programeri su beskrajno neshvatljivi, zapravo ima samo mali relevantan prostor država koje korisnici u praksi koriste. To znači da, unatoč svim ovim složenostima, programeri su sposobni steći dovoljno znanja o ovom relevantnom prostoru pogubljenja i osigurati da softver bude učinkovit i robustan za njih. Čak i kad softver nije učinkovit i robustan, sumnjam da su korisnici otporni na većinu kvarova s ​​kojima se susreću, pronalazeći zaobilazno rješenje ili mijenjajući ciljeve na temelju svog ponašanja. Ova teorija otpornosti objašnjava zašto je softver vrijedan iako je lomljiv. To ne znači da kvarovi softvera nisu važni: postoje ozbiljni kvarovi i oni često proizlaze iz toga što programeri nemaju točnu predodžbu o tome koji su dijelovi složenog softverskog sustava zapravo važni na terenu. Nadalje, programeri često nemaju alate ili podatke potrebne za dobivanje ovog točnog znanja. Nadalje, postoji mnogo podsustava sustava koji su potpuno automatizirani i koje moramo biti u mogućnosti formalno provjeriti kako bismo spriječili ozbiljne kvarove na daljnjem toku. Postoje i značajna razmatranja o ljudskoj vrpci koja trebaju dodatnu posebnu pozornost da bi se ispravno zahtijevala, zahtijevajući HCI metode. Koliko smo svijeta otporni na krhki softver, možemo i moramo učiniti bolje.

Odmorio sam se u utorak na ručku kako bih razgovarao s mlađim kolegom o savjetovanju doktoranda. Postavljao je izvrsna pitanja, što mi je bilo sjajan temelj za razmišljanje o mojim postupcima. Puno sam razgovarao o definiranju kulture i svojoj novoj strategiji pisanja brodskog dokumenta koji postavlja očekivanja. Razgovarao sam o psihološkoj sigurnosti kao temelju izgradnje povjerljivih odnosa sa svojim studentima i u svom timu. Govorio sam o kritičnoj potrebi da se zapravo primjenjujem i modeliram norme u svom brodskom dokumentu kako bih ojačao kulturu svog laboratorija. Dijelio sam ideje o udruživanju učenika radi povećanja odgovornosti, raznolikosti ideja i učestalosti povratnih informacija. Također sam raspravljao o napetostima prije mandata koje mogu nastati potrebnim publikacijama, ali također i treba dati prostora učenicima za učenje i kako riješiti te napetosti održavanjem zasebnog niza prvih autorskih istraživanja. Ono što je najvažnije, podsjetio sam kolegu da to učenje ne prestaje. Znam starije kolege koji i dalje traže savjet nakon desetljeća učenja.

U utorak navečer imao sam divnu večeru s Thomasom LaTozom i dr. Sc. student August Shi u kojem smo imali široku diskusiju o osnovnim i primijenjenim istraživanjima softverskog inženjerstva, ulozi društvenih znanosti u istraživanju softverskog inženjerstva i potrebi za poštenijim, teoretski utemeljenim prikazima temeljnih pretpostavki o tehničkom radu na terenu.

Magnus Frodigh, predsjednik Ericssona istraživanja, u srijedu je održao uvodnu riječ o bežičnim komunikacijama i 5G. Započeo je predviđanjem brzog tempa promjena u našem digitalnom iskustvu, ali i sporijem tempom promjena mrežne infrastrukture. Ustvrdio je da će stabilnost 5G standarda biti za sve vrste nove transformatorske infrastrukture u IoT-u, uključujući komunikaciju stroj-stroj u stvarnom vremenu. Ušao je duboko u detalje 5G infrastrukture, što sam smatrao suhim i uglavnom nevažnim za softversko inženjerstvo, ali uvjerljiva vizija zakopana u razgovoru bila je nezamisliva razmjera povezanosti ljudi i strojeva koja dolazi u osnovi uklanjajući kašnjenje. Magnus je tvrdio da će to prototipiranje novih iskustava drastično olakšati, jer se sustavi mogu u potpunosti sastaviti pomoću mrežnih servisa s malim kašnjenjem, a ne hardverskim implementacijama.

Tijekom srijede ujutro pauze, Walter Tichy, James Herbsleb i ja vodili smo produktivan razgovor o tome kako transformirati uporabu i razvoj teorije zajednice za istraživanje inženjerstva softvera. Započeli smo promatranjem kako polje ima teorije, one su samo implicitne, a ako nam to izričito daju, mogu nas natjerati da razmislimo o svojim pretpostavkama i našim uputama za istraživanje. Na primjer, polje ima teorije moći apstrakcije, pojmove sklonosti pogreškama u dizajniranju programskog jezika i funkcioniranje razumijevanja programa. Jednostavno ne izražavamo te teorije eksplicitnim. James je također dao glavnu riječ teoriji, a i on i ja dobili smo tople odgovore na naše pozive za dodatnom teorijom, pa sumnjamo da je polje spremno za učenje. Razmišljali smo o načinima obrazovanja zajednice, uključujući izradu nekih laganih materijala za podučavanje novih doktoranda ili zainteresiranih nastavnika. Razgovarali smo o potencijalnom organiziranju Dagstuhla za razvoj i raspoređivanje ovih materijala.

Chris Parnin raspravljajući o složenosti poučavanja.

Ostatak srijede proveo sam na sesijama na Inženjerstvu softverskog obrazovanja i obuke (kojem ću biti predsjedatelj 2020. godine, ali također mislim da je vrlo važno i ključno za moje interese u obrazovanju računarstva). Ova pjesma objavljuje stroga, stručna, računalna ispitivanja obrazovnog istraživanja o softverskom inženjerstvu. Chris Parnin započeo je prvu sesiju razgovorom o korištenju iTrust-a, velike složene implementacije softvera, za podučavanje softverskog inženjerstva. Otkrio je da su studenti mnogo kasnije nakon tečaja cijenili dubok angažman s velikim složenim sustavom, ali nisu svi uživali tijekom tečaja. Rad sa naslijeđenim kodom bio je neodoljiv. Revidirali su tečaj uskladjivanjem aktivnosti u razredu sa samim projektom, što je dovelo do mnogo pozitivnijih stavova o tečaju (kao što bi se i trebalo očekivati; učenicima je potrebna dosljedna pripovijest o aktivnostima nastave da bi se održali svojim angažmanom). Drugi je razgovor utvrdio da aktivno gledanje videozapisa u kojem učenici komentiraju sadržaj i pregledavaju komentare povećava angažman u gledanju videozapisa. Neki su razgovori bili usredotočeni na laboratorije, kamene kamenje i druge projekte iskustvenog učenja. Općenito, ove studije su otkrile da je iskustveno učenje zaista teško izvesti logistički, izazovno je učiniti autentičnim i vrlo je teško znati procijeniti. Zvuči kao da nam trebaju neke teorije iskustvenog učenja da bismo organizirali ovaj rad.

Reid Holmes razgovarao je o onim što su učenici uživali u učenju.

Reid Holmes predstavio je lijepu longitudinalnu studiju kanadskog programa iskustva učenja za visoko uspješne studente informatike (dodiplomski Capstone projekti otvorenog koda). Studija je otkrila nevjerojatno pozitivna iskustva, sa studentima, visoko cijeneći primjenjujući svoje znanje u učionici na stvarne, nove zadatke, za stvarne projekte sa zajednicom korisnika, istovremeno primajući mentorstvo od stvarnih programera. Mračni ispod ovog rada je način na koji se studenti biraju: program izričito bira najbolje studente iz više institucija, čime se izbjegavaju mnogi izazovi u učenju koji bi mogli nastati kod manje pripremljenih učenika.

Kišna šuma Universeuma bila je zaista vlažna!

U srijedu navečer prijam je bio u Universeumu, prirodoslovnom muzeju punom životinja, riba i masovne vlažne kišne šume. Bio je to zaista zanimljiv kontekst za prijem, jer umjesto da predstavlja veliki otvoreni prostor za razgovor, bio je pun interaktivnih eksponata koji su polaznike uključivali u igru ​​i istraživanje. Izlošci nisu bili posebno privlačni ili uvjerljivi, ali bili su dovoljno dobri da su pokrenuli sve zanimljive razgovore koje vjerovatno ne bismo imali. Prisutnima sam razgovarao o čudovištima iz Gile, zvečarima, meduzama, programskom održavanju eksponata utemeljenih na softveru i širokom rasponu cinizma koji je iskliznuo u akademsku informatiku.

U četvrtak ujutro doručkovala sam s Brendanom Murphyjem, Laurie Williams i doktoratom iz UW-a. student Calvin Lončarić u našoj hotelskoj sobi za doručak. Imali smo široku raspravu o dva velika izazova draga mom srcu: usklađivanju formalnih sustava poput programskih jezika s ljudskim i socijalnim sustavima i usklađivanju statističkih sustava poput strojnog učenja s ljudskim i socijalnim sustavima. Po mom mišljenju, ovo su dva najvažnija velika izazova u računalnoj znanosti, a ipak ih većina ljudi u računalnim računalima ignorira. Brendan je imao puno toga za reći o složenosti objedinjavanja analiza podataka i strojnog učenja s stvarnim projektima, Laurie je puno govorila o istim izazovima s računovodstvom sigurnosti u razvoju softvera, a Calvin je te probleme razmatrao u svom radu na sintezi strukture podataka, pri čemu su otvorena pitanja razmatranja razumljivosti sintetiziranog koda i naučenosti njegovog jezika specifikacija.

Fred Brooks Jr., tumačeći povijest.

Bila su dva glavna zvučna pitanja u četvrtak ujutro. Fred Brooks, Jr., autor seminara The Mythical Man-Month o upravljanju softverskim projektima, daje retrospektivu. Fred je govorio o evoluciji programa, softvera, softverskih sustava, softverskih proizvoda. Potom je definirao softverski inženjering kao disciplinu izrade softverskih proizvoda. Govorio je o velikim idejama u povijesti softverskog inženjerstva, uključujući von Neumannove programe kao podatke i programske jezike visoke razine poput COBOL i FORTRAN. U 60-ima, softverska kriza (izazov izgradnje velikih sustava) dovela je do ideje softverskog inženjerstva kao inženjeringa. Veliko je priznanje ovdje bilo da rast složenosti projekta nije linearan. Dosta toga dovelo je do doprinosa u sustavima, poput interaktivne otklanjanja pogrešaka Toma Kilburna i operativnog sustava za dijeljenje vremena Fernanda Corbatoa, sustava baza podataka, ideja formalne provjere Roberta Floyda i Tonyja Hoarea i orijentacije objekta na Simulu. U 70-ima su se pojavile informacije Davida Parnasa, apstraktne vrste podataka Barbare Liskov, pojačana preciznost Harlan Mills-a i Niklaus Wirth, inspekcija koda Michaela Fagana i upravljanje softverskim projektima. Barry Boehm je također postavljao pitanja o zahtjevima i potvrđivanju zahtjeva. Izuzetno preporučuje ACM Webinar Grady Booch-a o povijesti softverskog inženjerstva i doprinose za cijeli život Barryju Boehmu.

Margaret Hamilton dijeli priče o programiranju glavnih okvira.

Drugog četvrtka ujutro glavna govornica bila je Margaret Hamilton, koja je zamislila rečenicu "softverski inženjering". Bila je studentica matematike kada je odlučila da stažira na MIT-u, razvijajući vremenski softver na LGP30, i razvila zanimanje za softver, te je na kraju izgradila Apollo softverski sustavi koji su omogućili Sjedinjenim Državama slijetanje na Mjesec. Njezin je govor, "Jezik kao softverski inženjer", govorio o velikim problemima: integracija, evolvabilnost je teška, ponovno je korištenje teško, a softver ne uspijeva. Pitala je: zašto smo tako malo napredovali u 50 godina? Tvrdila je da ih je bilo. Prije nije bilo polja; sada postoji. Definirali smo pojmove. Ali stvarnost je da je softverski inženjering izrazito ljudski, izrazito društveni i izrazito intelektualni rad, a mi se još uvijek ne borimo s većinom tih faktora. Dala je primjere osnovnih HCI izazova stvaranja interaktivnih sustava između ljudi, softvera, grešaka i oporavka pogrešaka i kako su oni bili središnji za slijetanje na Mjesec. Shvatila je da su sustavi u prirodi asinhroni, distribuirani i na događaje te da to trebaju odražavati i jezici koji se koriste za pisanje softvera. To je izbalansirala raspravom o potrebi planiranja kroz arhitekturu kroz pouzdane uzorke koji se mogu ponovo upotrijebiti. S ponosom sam vidio u Q&A prepoznavanje povijesti zajednice, njezine vrijednosti i dalekog porijekla nekih od najvećih ideja na terenu.

Miryung Kim iz UCLA-e govorio je o fascinantnom istraživanju uloga podataka o znanosti podataka.

U četvrtak sam predsjedao sesijom pod nazivom „Studiranje softverskih inženjera“ koja je imala četiri fascinantne empirijske studije, uključujući dvije publikacije TSE-a u prvom časopisu. Prvo, „Razumijevanje potreba programera za deprecijacijom kao jezičnom značajkom“ (autor Anand Sawant iz TU Delft) otkrio je mnoge korisne trendove o korištenju i zlouporabi značajki deprecijacije, identificirajući potrebe za datumima uništenja, upozorenja o strogosti i više raznolikosti vrsta upozorenja. Drugi rad, "O dihotomiji ispravljanja pogrešaka među programerima" (autor Moritz Beller iz TU Delft), otkrio je da se u praksi alati za uklanjanje pogrešaka rijetko koriste, da "printf uklanjanje pogrešaka" ostaje dominantan, a znanje o alatima za uklanjanje pogrešaka prilično niska. Prvi članak iz sesije, „Mjerenje razumijevanja programa: Obimna terenska studija sa stručnjacima“ (Xin Xia, Lingfeng Bao, David Lo, Zhenchang Xing i Shanping Li), otkrio je da programeri provode većinu svog vremena shvatajući koji koriste web preglednike i uređivače za razumijevanje koda, a što više iskustva ima programer, to manje vremena troše na razumijevanje. Posljednji rad u sesiji, „Znanstvenici podataka u softverskim timovima: stanje umjetnosti i izazovi“ (Miryung Kim, Thomas Zimmermann, Robert DeLine i Andrew Begel), proveo je anketu na 793 profesionalnih znanstvenika podataka i otkrio je zaista zanimljivu skup od 9 vrsta uloga podataka o znanosti: polimatima, evanđelistima podataka, pripravnicima podataka, oblikovateljima podataka, graditeljima platformi, mjesečarima različitih stupnjeva i uvidima, koji su podatke tumačili i koristili ih za donošenje odluka. Ova bogata dekonstrukcija ili različite uloge izgledaju zaista moćno za informiranje o obrazovanju podataka o znanosti.

Posljednja sjednica u četvrtak bila je proslava 50 godina softverskog inženjerstva. Brian Randell dao je retrospektivu na prvom softverskom inženjeringu 1968. godine. Brian je govorio o tome koliko je dosad izumljeno malo računalstva; nema interneta, nema mreža, nema ponovne upotrebe. A ipak, sva pitanja bila su tu: testiranje, ispravnost, upravljanje itd. Brian je razlikovao između programiranja i softverskog inženjerstva definirajući softverski inženjering kao "Razvoj multi-osoba s programima za više osoba". (Ne sjeća se da je to rekao , ali David Parnas inzistira na tome). Zaključio je da je polje poraslo više nego što je sazrelo, postavljajući pitanje jesmo li dovoljno učinili da se to naziva inženjerskom disciplinom, harajući zajednici da izmisli još jedan jezik i još jednu tehniku.

Brajanov govor uslijedio je panel od četiri izvorna sudionika konferencije 1968. godine. Jedno pitanje o kojem su razgovarali bilo je ono za čim žale posljednjih pedeset godina. Izdvojili su nedostatak usredotočenosti na inženjering zahtjeva, nedostatak pozornosti na dezinformacije, nedostatak pozornosti na održavanju softvera. Razočarani su u 60-ima, a sada su razočarani. Neki od panelista bili su uzbuđeni formalnim metodama, ali razočarani zbog njihovog nedostatka usvajanja. Razočarani su i zbog toga koliko smo malo otkrili o tome kako voditi dizajnerske odluke u odnosu na kvalitete softvera. No sve u svemu, izgledalo je da postoji malo konsenzusa oko toga jesu li se stvari poboljšale ili ne. Sigurno gradimo složenije stvari, ali jesu li one bolje, vremenom više?

Ribe, cover bend i prezentacije

Blagdan u četvrtak navečer bio je u brodogradilištu i bio je čudan užitak aktivnosti. Bilo je jelo u banketu, otvorena pozornica s doktoratom. studenti koji pjevaju rock glazbu, i švedski bend koji je pjevao pop-pjesme 90-ih i 2000-ih tijekom večere, dok je voditeljica slavila zajednicu softverskog inženjerstva i pozvala razne organizatore konferencije na pozornicu da kažu hvala. Tijekom večere prikazan je dijapozitiv sa svim vrstama proizvoljnih logotipa softverskog proizvoda iz povijesti računarstva, s povremenim retrospektivnim videozapisima s intervjuima o svjetiljkama softverskog inženjerstva. Bilo je otkačeno, neskladno i dezorijentirajuće, pogotovo kad je gomila polaznika isklesala jedan dio prostora za događaje kako bi plesala.

Plesna zabava softverskog inženjerstva!Robert McClure, jedan od sudionika konferencije NATO-a 1968. godine.

U petak ujutro pronašao sam jednog od panelista iz četvrtak, Roberta McClurea, koji je sjedio sam za vrijeme pauze i tako sam odlučio započeti razgovor. Bio je jedan od izvornih sudionika konferencije 1968. i aktivan vođa misli u industriji koja se zalagala za napredak. Pitao sam ga što se promijenilo u 50 godina, šta nije i što je njegova koncepcija napretka. Imali smo fascinantan, široki razgovor o mnogim temeljnim pitanjima u programskoj inženjerstvu. Započeo je raspravom o nekim kritičnim razlikama između dizajna softvera (za koji je potreban razumijevanje problema i konteksta), inženjerskog dizajna (za koji je potrebno pažljivo navođenje rješenja) i inženjerstva (što je čista implementacija te specifikacije). Robert je uspoređivao softverski inženjering i druge inženjerske discipline pa sam ga pitao što vjeruje u temeljne razlike, ako ih ima. Rekao je da je to pitanje stupnja. Nagađao sam da je kritična razlika u stupnju u kojem dizajner ili inženjer može biti siguran u svoje razumijevanje problema ili specifikacije; razumijevanje mjesta na kojem gradite most oslanja se na prirodne znanosti, koje su predvidljive do stupnja koji nije istinit za ljudske, socijalne i organizacijske sustave za koje je softver obično dizajniran. Ovaj nedostatak samopouzdanja stvara potrebu za prototipiranjem, povratnim informacijama i evolucijom koji nisu potrebni za ostale inženjerske discipline (a isto tako nisu izvedivi). Također smo razgovarali o obrazovanju potrebnom za sve ove vještine, te o brzini promjene koju je očekivao. Očekivao je mnogo više promjene u posljednjih 50 godina nego što je promatrao i nagađao da je ljudska priroda puno otpornija na promjene nego što je ikada vjerovao. Nagovijestio sam da bi to mogao biti samo neuspjeh učinkovite edukacije, u kombinaciji s brzim porastom broja programera s oko 10 000 unazad 1968. na 30 milijuna u 2018. Potaknuo me da ublažim svoja očekivanja o promjenama; Rekao sam mu da sam kao zasluženi profesor sljedećih 40 godina u tome i bit ću strpljiv.

Brian Randell, povjesničar softverskog inženjerstva.

Slučajno sam zatekao i Briana Randela, četvrtka 50-godišnjeg govornika softverskog inženjerstva koji sjedi sam. Pitao sam ga zašto vjeruje da je druga NATO konferencija tako razočaravajuća i kakav je njegov utjecaj na naredna desetljeća istraživanja i prakse softverskog inženjerstva. Ustvrdio je da je veliki problem u tome što su u drugoj godini postojale podjele duž dvije. Prvo, neki su zamislili svijet u kojem bismo mogli isporučiti potpuno neispravan softver, a drugi su vjerovali da takvo što nije moguće i da bismo to trebali planirati. Uz drugu dimenziju, neki su bili zainteresirani za dekonstrukciju problema softverskog inženjerstva, a druge su zanimali alati, tehnike i druga rješenja za koja su vjerovali da bi ih mogli poboljšati. Sudionici podijeljeni na tim linijama jednostavno se nisu mogli slagati. Idealisti i realisti nisu znali kako surađivati ​​i problematično su trošili previše vremena kritikujući rješenja ljudi usmjerenih na rješenje, dok su ljudi usredotočeni na rješenja bili otporni na povratne informacije. Predložio sam da mnoge od tih podjela postoje i danas u suvremenim istraživanjima softverskog inženjerstva i zahvalio sam Brianu na pomoći u rasvjetljavanju povijesnog podrijetla tih odjela.

Ivar otvara svoj glavni govor s pričom.

Ivar Jacobson, glavni suradnik UML-a i Racionalnog jedinstvenog procesa, održao je predavanje pod nazivom „50 godina softverskog inženjerstva, pa što sad?“ Počeo je s anegdotom o jednom od svojih prvih projekata softverskog inženjeringa, gdje je morao priznati , nije znao ništa o inženjerstvu softvera. Ipak, još uvijek je vodio jedan od najuspješnijih švedskih proizvoda u povijesti. Njegova je interpretacija softverskog uspjeha u konačnici rezultat poslovnih modela i programera, a ne softvera i ne procesa. Njegovo je mišljenje da je nakon 50 godina to još više zanat nego inženjerska disciplina. U stvari, u povijesti, on tvrdi da nas moda mnogo više pokreće nauka: orijentacija na objekt, UML, CMMI, Agile i sve što slijedi bilo je i bit će sva moda. Ivarov argument je bio da su sve metode ratova odvraćanje. Pravi problem, prema Ivaru, jest taj što su metode doista sastav prakse, a metode su monolitne i zarobljene u zatvorima koje čuvaju gurui. Prema Ivarovom mišljenju, ovo je nezrelo i bezumno.

Njegova je preporuka bila usredotočiti se na pronalaženje zajedničkog stajališta o metodama, modulariziranju metoda i slobodnoj praksi od metoda. Govorio je o tijelu za standarde koje je predviđalo pojam prakse koje imaju aktivnosti, koje imaju neke kriterije uspjeha i radne proizvode koji potječu od aktivnosti koje se ocjenjuju prema ovim kriterijima uspjeha. Njegova je ključna točka, međutim, da sve to zahtijeva da programeri imaju kompetentnost u svim tim stvarima. Kriteriji za uspjeh svode se na potrebe korisnika, rješenje koje se proizvodi i tim koji ga treba postići. Iznio je još nekoliko detalja o stanjima kroz koja prolazi u svom modelu. Ono što mi je opisao zvuči poput znanstvene teorije procesa i skupa procesnih ideja proizašlih iz te teorije; nešto što treba testirati i rafinirati, a ne evanđelje. Na kraju ga je zapravo nazvao opisnom teorijom i pozvao istraživače da je dalje razviju u teoriju prediktivnih i objašnjenja.

Odmah nakon Ivarovog razgovora dao sam svoj ICSE najutjecajniji papir o nagradama. Usred sesije za dodjelu nagrada mogao sam reći da su ljudi umorni i spremni za kraj tjedna. Moj je govor imao mračan, reflektirajući ton, ali ohrabrujući ton, i iako je tišina nakon razgovora bila zaglušujuća, brbljanje na Twitteru bilo je poticajno, pokazujući zajednicu koja zaista vjeruje i cijeni ono što sam imala reći, i gladuje smjernice o kako to učiniti.

Andreas započinje svoj razgovor o nagradi

Andreas Zeller govorio je odmah nakon mene nakon što je primio nagradu za istraživanje SIGSOFT. Ispričao je tri priče o svojoj karijeri, a sve je usredotočeno na utjecaj. Prva priča odnosila se na njegov prvi projekt i prezentaciju u kojem je pružio rješenje u potrazi za problemom. Nezadovoljan povratnim informacijama, usporio je usredotočivši se na program za uklanjanje pogrešaka GNU DDD, koji je imao stvarni praktični utjecaj. Njegova prva epifanija bila je da je pronalaženje stvarnih problema toliko bitno, ali i izvrstan način utjecaja. Njegova druga priča bila je o jednostavnosti. Netko na konferenciji bio je zgrožen da je njegova ideja uklanjanja pogrešaka delta bila tako jednostavna. To je dovelo do sindroma nemoćnika, osjećaja intelektualne inferiornosti. Ali s vremenom je shvatio da je jednostavnost moć; složenost je bila neuspjeh. Njegova posljednja priča bila je o poslu koji je započeo s Tomom Zimmermannom na rudarskim spremištima softvera. Primijetio je da strahovi od rezultata njihovog ranog rada naprosto nisu bili bitni, jer je činjenica da je djelo novo. Inovacija govori o proučavanju mračno nedovoljno proučenih, ali relevantnih dijelova svijeta. Naposljetku, Andreas je tvrdio da je jedino što je stvarno važno utjecaj. Završio je nadahnjujućim pozivom da slijedimo svoje snove i da ustrajemo.

Zbogom od Geteborga, izazovno je sumirati sve što sam naučio na ovogodišnjem ICSE-u. Ali pokušajmo svejedno:

  • Konačno, svi smo u ovoj zajednici da poboljšavamo softver. Usredotočimo se na to, a ne na kratkoročne metrike.
  • Potrebne su nam veće ideje, najvjerojatnije u obliku teorija, da bi nas usmjerile i usmjerile naš utjecaj.
  • Moramo razmišljati o važnosti, a ne o publiciranosti kako bismo postigli gore navedene ciljeve.
  • Zanemarujemo ljudske faktore u programskom inženjerstvu na našu opasnost.

To su lekcije koje svaki član naše zajednice na kraju mora internalizirati. Prošlo je 50 godina od kada smo shvatili njihovu važnost, a tek ih počinjemo shvaćati ozbiljno.