In my case, we have been practicing a variation in which one shares a live session, everyone else connects. And then, everyone writes and thinks on the same code at the same time.
Sometimes is to put down things that will come, others to write auxiliary functions meanwhile other codes the main algorithm. Others it is just discussion and fast prototyping before agree on the final result. Others is cleaning the recently written code while others advance.
And we usually never do more than one morning (in which we deliver like 2 or 3 days work). In afternoons we are stuck in meetings.