1. Ho incontrato molti ingegneri del software che credono di essere in qualche modo superiori agli ingegneri del controllo qualità. Penso che possa aiutare a placare questa convinzione se fanno il lavoro di un ingegnere addetto al controllo qualità per qualche tempo, e si rendono conto che si tratta di un insieme di abilità unico e prezioso.
Una buona ingegneria del software ha un background in termini di qualità, inclusi test, metriche e statistiche. Chiunque esegua qualsiasi tipo di sviluppo software deve essere consapevole (se non ha familiarità) mantenendo un codice sorgente di qualità e producendo / mantenendo casi di test efficaci. Con il passare del tempo, sospetterei che qualsiasi sviluppatore di software comprenda le diverse sfaccettature della qualità: qualità del codice, portabilità, manutenibilità, testabilità, usabilità, affidabilità, efficienza e sicurezza.
Gli ingegneri del software potrebbero concentrarsi su un aspetto particolare del ciclo di vita: ingegneria dei requisiti, architettura e progettazione, costruzione, test e manutenzione. Tuttavia, indipendentemente dalla tua attenzione (sia come lavoro che nella fase corrente del progetto), è importante ricordare la qualità.
2. Meglio un ingegnere del software sta testando i propri programmi, minori saranno i costi nel tempo in cui il loro codice si presenta durante il resto del ciclo di vita dello sviluppo del software.
Questo potrebbe essere vero. Ma alcuni problemi sono meglio visibili più avanti nello sviluppo. Ad esempio, i problemi di prestazioni ed efficienza potrebbero non essere visibili fino all'integrazione. Avere un buon codice solido ed efficaci test unitari sono solo l'inizio. La qualità deve iniziare con i requisiti e seguire fino in fondo le attività di manutenzione.
3. Più tempo un ingegnere del software trascorre pensando a come un programma può rompersi, più spesso devono considerare questi casi mentre li stanno sviluppando, riducendo così i bug nel prodotto finale.
È un'affermazione totalmente vera. Ma ancora una volta, spetta anche agli ingegneri dei requisiti verificare che non vi siano conflitti nei requisiti, gli architetti a garantire che il progetto risponda effettivamente ai requisiti e così via. Tutti dovrebbero cercare di creare buchi nel loro lavoro e quindi lavorare con le persone appropriate per sigillarli bene e in modo stretto.
4. La definizione di "completo" di un ingegnere del software è sempre interessante ... se hanno trascorso del tempo come ingegnere addetto al controllo qualità, forse questa definizione corrisponderà più da vicino al progettista del software.
"Completo" può essere misurato solo rispetto ai requisiti. O i requisiti sono soddisfatti e il progetto è completo, oppure ci sono requisiti incompleti e il progetto non è completo. Qualsiasi altra misura del completo è inutile.