Organizing, documenting, and distributing scientific code