Fai diverse domande.
Dovremmo cercare il codice bugiardo?
Ovviamente!
Dovremmo confrontare [codice] con qualsiasi documentazione esistente?
Ciò non potrebbe mai far male, anche se come menzionato in altre risposte, il più delle volte questo ti porterà a trovare problemi nella documentazione , non nel codice .
O il [codice] di solito è la migliore fonte per ciò che deve fare?
È sempre la migliore fonte per quello che sta facendo. La migliore fonte di ciò che il codice dovrebbe fare può essere (una combinazione di) cose diverse, le principali sono:
- Il codice stesso;
- Il codice chiamante;
- Commenti in quel codice;
- Documentazione;
- Test unitari;
- Test di integrazione e regressione;
- Il programmatore;
- L'utente finale;
Qual è la fonte "migliore" (o la sua combinazione) dipende dalla tua situazione.
Se è un codice agile, ha meno probabilità di mentire o quel codice non può mentire affatto?
Non sono sicuro di cosa intendi con "codice agile", AFAIK "agile" di solito si riferisce al processo di codifica. Supponendo che tu intenda "codice creato in un processo di programmazione agile", allora penso che sia sicuro dire che può ancora mentire. Quanto è probabile mentire, rispetto al codice creato ad esempio in progetti in stile cascata è una questione soggettiva (personalmente non penso che ci sia una grande connessione).
Nota a piè di pagina
Tutto quanto sopra presuppone che il codice possa mentire e che questo sia un esempio di base (anche se un po 'forzato):
public int DivideByTwo(int input)
{
return input / 3;
}
Questo è solo un esempio in cui direi "Il codice giace", @ user61852 ne ha alcuni altri (codice irraggiungibile, complessità del codice che non corrisponde alla complessità del problema, cattiva denominazione), e penso che ce ne siano molti altri. Wikipedia ha un sommario abbastanza decente di bugie , molte di esse possono essere trovate in codice.
Nota che se stai litigando con qualcuno, assicurati che l'altra persona non significhi che "il codice non può mentire" che "il codice fa quello che fa". In sostanza, l'altra persona qui sta definendo usando una definizione di "menzogna" che è così stretta che può dichiarare l'affermazione "il codice non può mentire" come un assioma / verità di base. In questo caso è probabilmente meglio concordare con il suo assioma.