Coppia di programmazione e ISO 27001


16

Ho lavorato in un team di programmazione eXtreme e ho programmato la coppia per oltre 7 anni in un ambiente Windows. Quando abbiamo iniziato a farlo, qualcuno accedeva con le proprie credenziali di Windows e quindi tutti gli accessi alle risorse del dominio, e più specificamente il controllo della versione, sarebbero responsabili per quell'utente di Windows. Alla fine ci siamo evoluti per avere account di accoppiamento di Windows per stazioni di accoppiamento specifiche (ad es. PairA, pairB, PairC ecc ...). Tutti gli sviluppatori conoscono le password per questi account. La responsabilità per i commit (check-in) viene raggiunta inserendo le iniziali dei programmatori nel commento durante il commit.

Fino ad ora questo ha funzionato bene per noi, ma la mia azienda sta attualmente eseguendo un audit ISO 27001 e questo è stato segnalato dal revisore come un rischio. Ho una serie di possibili soluzioni come la creazione di un account di accoppiamento per ogni combinazione di coppie, ma vorrei davvero sapere se qualcun altro ha riscontrato questo problema e come lo ha risolto?

Quale soluzione era accettabile dai revisori?


11
Direi che la maggior parte delle persone che impiegano pratiche di programmazione in coppia pensano che tutto ciò che ISO fa è il formato della data e le codifiche dei caratteri.
Lars Viklund,

6
Perché è necessario disporre di account di associazione? Non funzionerebbe mantenere singoli account a cui è possibile accedere su qualsiasi macchina?
Garrett Hall,

Non è possibile utilizzare i singoli account perché cosa succede se qualcuno viene presto al lavoro / va in bagno ecc. E la macchina è connessa come l'altro utente?
John Sibly,

@JohnSibly Intendi nel caso di voler continuare con i lavori in corso su quell'account? Altrimenti dovresti essere in grado di aprire un'altra sessione sul computer come tuo utente.
Sinjo,

2
@JohnSibly, quindi il driver si disconnette e consente l'accesso peer. Se vanno in bagno, blocca la macchina se non ti fidi dei tuoi pari. Tuttavia, nessuna fiducia è un problema più grande che dovrebbe essere corretto.
CaffGeek

Risposte:


13

Suppongo che i revisori preferiscano che gli sviluppatori accedano come se stessi e non come una "coppia" che ha una password condivisa. Il rischio dovrebbe essere ovvio: uno sviluppatore aggiunge del codice dannoso come "PairA" e inserisce le iniziali di qualcun altro nel commento (o non lo commenta affatto). Come si fa a risalire allo sviluppatore dannoso?

Consiglio a chiunque stia guidando per primo (in una sessione) di accedere con il proprio ID e la coppia continui a inserire entrambe le iniziali nei commenti, in questo modo il codice rimane rintracciabile per uno sviluppatore reale.


+1, questo è ciò che viene fatto presso la mia azienda. Abbiamo la possibilità di scegliere la revisione del codice peer o la programmazione delle coppie. Il caso di programmazione delle coppie è solo un caso speciale di peer review, in cui il peer ha revisionato continuamente mentre il codice veniva scritto.
Daniel Pryden,

@Daniel grazie per aver condiviso la tua esperienza. Quando abbiamo iniziato l'associazione, è stato il driver a effettuare l'accesso. Tuttavia, le nostre sessioni di associazione sono ora più promiscue e molto spesso una coppia si scambia prima che un'attività sia completamente completata. Anche se questo non è l'ideale, a volte è necessario orchestrare i nostri swap poiché a tutti è richiesto di accoppiare il codice di produzione. Ciò significa che il "driver" originale deve allontanarsi e quindi disconnettersi. È possibile ottenere quel codice registrato senza di loro, ma l'interruzione della coppia, che è potenzialmente nel mezzo del debug dell'app, non è troppo leggera.
Martin Hughes,

7

Terrei gli account così come sono, in genere solo una persona sta guidando, e anche se l'altra persona utilizza la macchina (ufficiosamente) la persona che ha effettuato l'accesso dovrebbe comunque essere consapevole di ciò che sta accadendo sulla propria macchina.

I check-in avrebbero comunque bisogno di commenti per mostrare chi fosse la coppia.


Vuoi dire mantenere i conti di coppia ("mantenere i conti così come sono") o usare i singoli conti ("la persona che ha effettuato l'accesso")?
Caleb,

@Caleb, individuo come la persona che ha effettuato l'accesso che sta guidando
CaffGeek

6

Invece di creare account separati in modo che il lavoro non sia bloccato a un utente eventualmente assente, utilizzare il sistema di controllo della versione. Quando una coppia inizia a funzionare, crea un ramo di attività. Commettere il codice nel ramo delle attività ogni volta che i test passano. Al termine dell'attività, unire nuovamente e chiudere il ramo dell'attività.


5

Fino ad ora questo ha funzionato bene per noi, ma la mia azienda sta attualmente eseguendo un audit ISO 27001

ISO 27001 o meno, il tuo sistema attuale funziona solo perché sei una piccola azienda in cui esiste un alto grado di comunicazione e fiducia reciproca. Questo genere di cose non si ingrandisce molto bene, quindi probabilmente dovresti considerare comunque altre opzioni in futuro.

Creare un account separato per ogni possibile coppia sembra ancora meno pratico: avresti bisogno di 90 account per un gruppo di 10 sviluppatori e ognuno di quei 10 sviluppatori dovrebbe conoscere 9 diverse combinazioni login / password.

L'unica soluzione pratica è utilizzare account individuali, come altri hanno suggerito, e tenere traccia dell'identità della seconda persona nella coppia in altro modo (commento nel commit del controllo della versione, campo nel sistema di tracciamento dei problemi, ecc.).


2

Per amor di Pete, lascia che il membro trainante della coppia prenda credito / responsabilità per il push / commit. La prossima volta guiderà l'altro membro. Il "pilota" non farà nulla su cui non è d'accordo con il copilota.

La programmazione è uno sforzo collaborativo. Nessun atto di programmazione è individuale al 100%. Non è necessario essere esigenti nel voler riflettere sul fatto che un dato push / commit è stato fatto da Tom e Harry e non solo da Tom. I vantaggi della programmazione in coppia valgono la pena trascurare quella sfumatura.

Il revisore ha ragione, i conti "pool" dovrebbero essere evitati.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.