Dove dovrebbe essere tracciata la linea tra manutenzione e nuove funzionalità?Ciò che si qualifica come manutenzione rispetto all'aggiunta di nuove funzionalità?
L'Oxford English Dictionary definisce la manutenzione come:
(7.a) L'azione di tenere qualcosa in ordine, di riparazione, ecc .; il mantenimento di un edificio, di un'istituzione, di un corpo di truppe, ecc., fornendo mezzi per l'equipaggiamento, ecc .; lo stato o il fatto di essere così tenuti; mezzi o disposizioni per la manutenzione.
Sto lavorando con un'applicazione client-server e mantenendo il client. In linea con la definizione, mi sarei aspettato da eseguire:
- Bug fixing
- Adattamenti API (piccole modifiche necessarie per il cliente di continuare a lavorare con il server)
- di ottimizzazione per problemi di performance individuati
non mi aspetterei da eseguire:
- nuovo sviluppo (l'aggiunta di nuove funzionalità)
La Wikipedia Software Maintenance pagina riferimenti correttiva, adattiva, perfective, e la manutenzione preventiva, che sembrano cadere in linea con ciò che mi aspettavo, ma la natura client-server genera complicazioni.
MODIFICA: Con applicazioni autonome che non hanno dipendenze, se il software funziona dovrebbe continuare a funzionare. Con le applicazioni client-server, il client potrebbe interrompersi quando il server cambia. Sebbene ciò non cambi la definizione di manutenzione, implica che ci sono più opportunità e occasioni in cui saranno necessarie modifiche all'applicazione client.
Se due parti devono concordare un contratto di manutenzione, deve essere soddisfatta una comprensione reciproca di ciò che qualifica e manutenzione e ciò che si qualifica come nuove caratteristiche, quindi la domanda.
In che modo l'architettura dell'applicazione influisce sulla definizione di manutenzione? Una nota a parte, 'manutenzione' nel mondo del software a volte include nuove funzionalità. –
@ Harper Shelby - Vuoi approfondire la tua nota a margine? – JeffH
@JeffH - Immagino che stia parlando di un contratto di manutenzione. Molte volte un cliente pagherà a uno sviluppatore un canone di manutenzione mensile/annuale che include alcuni tempi fissi per nuovi sviluppi o modifiche. –