on exploring 2-3 alternate framework/tool
A volte questo può accadere se hai dei requisiti speciali devi fare dei POC per scegliere lo strumento migliore per risolvere il requisito. Questo è il motivo per cui lo spike è perché, senza sapere quale framework utilizzerai, probabilmente non è possibile stimare la storia e il negozio senza stima non può essere pianificato e diviso in attività.
then on learning the framework we select for the project
Bene. Questo è abbastanza pericoloso. Quando il cliente ti paga per un SW, si aspetta che tu sia un professionista che già sa come usare i suoi strumenti. Il cliente non ti paga per l'apprendimento o per l'approccio di sviluppo trial / fail. È responsabilità dello sviluppatore apprendere nuovi strumenti nel suo tempo libero o in un momento speciale dedicato pagato dal suo dipendente non dal cliente. Spendere i soldi dei clienti per l'apprendimento senza informare il cliente non è professionale.
Se davvero devi usare qualcosa di speciale (ad esempio l'API di un cliente o il cliente di uno strumento selezionato) che non hai mai usato prima devi informare il cliente che il prezzo sarà aumentato di tempo necessario per imparare come usare l'API. Forse il cliente cambierà idea se l'aumento del prezzo sarà troppo grande.
Certo, non intendo la situazione in cui devi cercare qualche particolare nuovo problema nel framework che hai usato molte volte. Intendo la situazione in cui inizi a utilizzare nuove API o framework senza spendere un tempo significativo (al di fuori del progetto) per l'apprendimento.
Se violi questo sarà comunque visibile nella tua velocità perché fornirai una quantità molto piccola di valore commerciale per ogni iterazione. Se il cliente non è a conoscenza del motivo, molto probabilmente cancellerà il progetto.
Questo è ancora valido in caso di progetti interni - devi informare il tuo manager / azienda sul tempo necessario per l'apprendimento di nuove API o strumenti. Di solito ha conseguenze molto negative se il gestore conta sulla tua normale produttività e la tua produttività è solo una frazione a causa della nuova API che stai cercando di apprendere durante le tue attività. Ovviamente è anche peggio se alcuni addetti alle vendite calcolano con normale produttività quando hanno firmato un contratto con il cliente.
on setting up the servers (SVN, Databases, etc)
Questa è la tua infrastruttura e i costi interni. Quando avvii il progetto, è previsto che tu abbia preparato la tua infrastruttura. La configurazione del tuo ambiente di sviluppo non ha valore per il cliente e non dovrebbe far parte di alcun indicatore relativo al progetto, ad esempio velocity in Scrum. L'ho visto implementato come speciale iterazione pre-progetto utilizzata solo per configurare l'ambiente, creare un'infrastruttura di base, ecc.