Inhoudsopgave:
Video: Adverteren op Facebook en berichten promoten (November 2024)
Op 19 juli 2019 pleitte contractprogrammeur David Tinley schuldig aan beschuldigingen dat hij opzettelijk computers van Siemens Corporation had beschadigd. Volgens de dossiers in de zaak, plaatste Tinley logische bommen in de code die hij voor Siemens ontwikkelde op de locatie Monroeville, Pennsylvania. Die logische bommen, die secties van code waren die getimed waren om verstoring te veroorzaken weken of maanden nadat een project was voltooid, waren bedoeld om ervoor te zorgen dat Tinsley een constante stroom van inkomsten had door de problemen waarvan werd aangenomen dat ze bugs waren, op te lossen. Toen hij werd ingeschakeld om een probleem op te lossen, wijzigde Tinsley eenvoudig de datum op de logische bom zodat deze later weer zou afgaan.
Het inhuren van back-upcoders
Waarom vertel ik je dit allemaal? De kansen dat u een programmeur inhuurt die opzettelijk logische bommen in uw aangepaste code plaatst, zijn niet groot. En hoewel die kansen niet nul zijn, zijn er nog een aantal andere dingen die mis kunnen gaan wanneer iemand code voor uw organisatie schrijft.
"Wat gebeurt er als die persoon dood vertrekt of valt?" vraagt Jack Gold, Principal Analyst bij J. Gold Associates. Goud suggereert dat wanneer je iemand inhuurt om ontwikkeling te doen, je altijd een back-up nodig hebt. Aangepaste code is tenslotte uw code. Er is geen derde partij tot wie u zich kunt wenden als er iets misgaat, tenzij u van plan bent. Hij suggereerde ook dat er een paar andere stappen zijn die bedrijven moeten nemen om zichzelf te beschermen tijdens het ontwikkelingsproces, waarvan de belangrijkste verplichte beoordelingen zijn.
"Een codebeoordeling is waarschijnlijk de beste manier om erachter te komen wat er in uw code staat", zegt Alan Zeichick, hoofdanalist bij Camden Associates, "inclusief zaken als logische bommen, beveiligingsproblemen of domme fouten."
"Er zijn andere redenen om code reviews te doen, " voegde Zeichick eraan toe. "Het helpt uw ontwikkelingsteam om een beter inzicht te krijgen in hoe ontwikkeling werkt, helpt junior programmeurs om een beter begrip te krijgen. Code-beoordelingen zijn ook goed om de teammanager te helpen grip te krijgen op de kwaliteit van het ontwikkelingsteam en een schatting te krijgen van hoe lang het zal duren om de klus te klaren.
Code-beoordelingen uitvoeren
Zeichick zei dat er een aantal manieren zijn om code reviews uit te voeren. "Je kunt een team hebben waar twee mensen aan werken of je kunt in een vergaderruimte vergaderen om de code te bekijken."
Teams waarin elk lid de code van iemand anders beoordeelt, worden steeds populairder naarmate programmeurs moeilijker te vinden zijn. Maar in grotere organisaties zijn periodieke vergaderingen om de code te beoordelen nog steeds nuttig, omdat dan meerdere ogen kunnen helpen bij het beoordelingsproces. Zeichick zei dat zelfs de meest senior programmeurs hun code moeten laten nakijken.
Dus, waarom stond Siemens Tinley toe om al die jaren zonder codecontrole te gaan? Volgens opmerkingen van zijn advocaat tijdens het proces beschouwde Tinley zijn code als eigendom en gebruikte hij dat als een excuus om zijn code niet te laten beoordelen.
Waarom dit mocht gebeuren, is onduidelijk, maar zowel Zeichick als Gold wijzen erop dat een vereiste voor code-beoordelingen onderdeel moet zijn van elk contract tussen een bedrijf en een onafhankelijke programmeeruitrusting. Goud suggereert dat in het contract niet alleen code reviews worden vermeld, maar ook wordt aangegeven hoe en wanneer deze plaatsvinden.
Zeichick merkte op dat sommige grote ontwikkelingswinkels hun eigen code-beoordelingen kunnen doen, wat volgens hem logisch is. "De beste mensen om de code te beoordelen zijn de mensen in het ontwikkelteam, " zei hij.
Schadelijke coders vermijden
Code-beoordelingen bestaan bijna altijd. Toen ik een team van programmeurs leidde voor een grote overheidsfaciliteit, zouden we elke vrijdagmiddag over geestdodende regels COBOL gaan. Hoewel het vervelend was, vonden we vaak vergissingen, fouten, misplaatste referenties of andere coderingsfouten. Het feit is dat we allemaal fouten maken en een verstandige beoordeling maakt de code voor iedereen beter.
Helaas hebben programmeurs soms een hekel aan codebeoordelingen, omdat ze denken dat ze tijdverspilling zijn. Anderen zeggen dat ze niet willen dat mensen hun code opnieuw raden. Maar het feit dat een weigering om code te laten beoordelen, een rode vlag moet zijn. Als u betaalt om de code te schrijven, kan uw contract redelijkerwijs een vereiste voor beoordelingen bevatten. Weigering om dat te doen is reden tot ontslag.
Helaas is het tegenwoordig moeilijk om goede programmeurs te vinden. De vraag is groot, en in sommige gevallen hebben contractprogrammeurs het gevoel dat ze kunnen specificeren dat ze zich niet hoeven te onderwerpen aan het laten nakijken van hun code, zelfs als hun contact zegt dat het zal gebeuren.
De beste manier om dergelijke problemen te voorkomen, is om eerst om referenties voor eerder werk te vragen en deze vervolgens op te roepen. Ten tweede, voer codebeoordelingen uit vanaf de eerste dag. Op die manier worden ze een gewoonte en kunnen programmeurs die weigeren beoordelingen te krijgen onmiddellijk worden afgewezen - voordat ze kritisch worden voor het ontwikkelingsproces.
- Wat te doen als je bent gehackt Wat te doen als je bent gehackt
- 6 dingen die u niet moet doen na een datalek 6 dingen die u niet moet doen na een datalek
- Florida City betaalt $ 600.000 aan hackers na Ransomware-aanval Florida City betaalt $ 600.000 aan hackers na Ransomware-aanval
Helaas kunnen de risico's in het ontwikkelingsproces groot zijn. Gold wijst erop dat een onethische programmeur achterdeuren in uw code kan invoegen, manieren kan vinden om uw klantgegevens of intellectueel eigendom te stelen, of kritieke gegevens kan doorgeven aan een ander bedrijf of buitenlandse macht.
De manier om dit te voorkomen, is door continu te beheren, het werkproduct van uw programmeerpersoneel te controleren en code te controleren voordat deze door uw codebeheersysteem wordt geaccepteerd.