A fundamental difficulty faced by groups of agents that work together is how to efficiently coordinate their efforts. This paper presents techniques that allow heterogeneous agents to more efficiently solve coordination problems by acquiring procedural knowledge. In particular, each agent autonomously learns coordinated procedures that reflect her contributions towards successful past joint behavior. Empirical results validate the significant benefits of coordinated procedures.