Similar to avoiding writer's block, sometimes you just need to start coding. Now, this should not mean simply hacking with no goal in mind. But occasionally, the overall design of some module just doesn't become clear until you start coding parts of it, at least for me. This is happening for me now in trying to code certain agent-based models as Markov chains. I wasn't getting a clear picture of how the overall module would work (although I knew it would), so I just began coding a single function at a time. And gradually, the entire picture has become clearer and clearer.