Quando si è nella fase di creazione del programma (nel senso di scrittura del codice) a mio avviso la difficoltà nasce per via del tempo; una cosa è più difficile di un'altra perchè ti richiede più tempo.
Se si avesse, per assurdo, tempo infinito uno andrebbe avanti finchè non va bene, senza preoccuparsi.
Non essendo ovviamente così la difficoltà di base che ogni team di sviluppatori ha è capire quanto tempo impiegherà a fare una cosa, e poi rispettare questo tempo. Bisogna tenere conto che i clienti che commissionano progetti pagano basandosi sulla stima fatta, quindi fare un ritardo eccessivo non rappresenta solo un posticipare le date di consegna ma lavorare fuori copertura (uso di tempo non pagato dal cliente).
Ovviamente uno sviluppatore senior può andare abbastanza vicino alle stime giuste, ma per averle molto precise ci vuole come detto una approfondita fase di analisi; ed è qui che nasce il problema di base: il cliente ti conferma il progetto solo dopo che le stime propostegli non gli portano un costo per lui eccessivo, ma per avere stime precise devi fare una approfondita analisi che richiede a sua volta tempo, che di certo non puoi regalare.
Quindi secondo me il difficile è capire cosa è difficile e ti richiederà più tempo, e cosa ti arriva a gratis.
Dopo questo sicuramente l'analisi ha una difficoltà non da poco che è quella di immaginare il software senza starci mettendo veramente le mani, aggravata dal fatto che, come dicevo, spesso viene fatta prima di aver venduto il tempo al cliente.
|