A late answer that might only be relevant if you split projects into User Stories or equivalent.
the developer is working on building a product on top of the new API's.
First let me summarize my understanding of the situation. There is a project. I mean there is an actual software that needs to be developed, the developer must implement a list of features into the software, the features might already have been split into stories, etc. The problem is that implementing these features requires the developer to learn a new technology. As a consequence it is quite impossible to schedule work or estimate the completion time of the project. More, there is no visibility for the stakeholders on the current research part.
In this situation I would recommend using spikes. Spikes are a particular kind of story introduced in XP. They are meant to reduce risk and uncertainty in a part of the project while being themselves estimable and schedulable. They must be time-boxed. In short, there are generally two kind spikes : functional spikes and technical spikes.
Functional spikes are designed to solve functional problems. For example we don't know what the best user interaction is for a story, we create a spike to prototype several possibilities before implementing the actual story.
Technical spikes are the kind of spike you might need. Use them when you need more technical input before implementing a story, a feature or a project. This input might be learning a new technology, choosing between several implementations, choosing between building a solution or buying it, etc.
When a product needs to be built on a new technology that we don't know about at all, I would recommend using three levels of stories:
- A research-inception spike (maybe a real name exists). We don't even know how to learn. We don't know if there is any documentation, etc...but we know how long it will take to learn about how to learn. The goal of this spike is to gather enough information to build the second type of story.
- Technical spikes. Now that we know how to learn, we know what precise facets we need to learn to implement the needed features. Create a spike for each one of them. You can estimate the difficulty/time of learning each of these facets based on the information gathered from the research-inception spike.
- User Stories. Classical user stories can now be estimated.