I was presented with a new problem recently, to provide an estimate for a project in which I must use a framework (and potentially bits of another framework) that I am unfamiliar with. It's much easier for me to provide estimates when I'm at liberty to use what I'm familiar with, but it was as though a crippling paralysis by analysis had kicked in when an estimate was requested for work in unfamiliar territory.My solution, in retrospect, was wrong. I merely began working.How might I better estimate projects and tasks when I am required to work with unfamiliar languages/technologies/frameworks?
Providing Estimates When working With Unfamiliar Technology?
time estimation
The standard answer from the agile textbook is to perform a spike. A spike is a time-boxed task to explore the unknown, so that at the end you have (hopefully) sufficient information to provide a useful estimate or you have a better idea of how much more time you'll need to get to that point. Spikes can last anywhere from 1 hour to several days or even longer. Since they are time-boxed, there is no risk involved for either party, and the expenditure is strictly limited.Ideally during the spike you would identify a few simple things that needed to be achieved with this new framework and set about very simplistic solutions using it. As you go along, you learn, and that's what spikes are all about.