There's already a lot of good info here so I'll try not to re-iterate too much.
I use Google Docs to keep track of pretty much everything these days.
Spread sheets are the most useful format for how I like to lay out information.
It's cool because everyone on the project has access from any computer.
When we want to figure stuff out we do a Skype call to communicate faster. (we work offsite)
It's what me and my team mate like to call "Multiplayer SpreadSheeting".
It can be surprising how simple and fast it is to make something like this with 2 dudes typing stuff in at the same time.
And extremely useful.
Some example images for you.
I've censored out the sensitive information with black bars.
Measure your game with different scales of time.
Make a Milestone timeline that prioritizes what is important at each stage of the project:

We send this to our publisher at the end of each week.
Theres also a Next Week list below not shown:
It helps us keep track of what we did and need to do next, and it keeps them happy.

Make an asset list with simple notes about function.

Everything in a game has purpose.
Purpose can be incredibly important such as "Allows player to open locked door".
But it can also be as simple as "Ambiance".
With purpose clearly defined creating assets is much more fluid.
If the assets purpose is unclear, work on something else that is more defined.
If the purpose continues to remain undefined, then there is no need for it.
I try to boil almost everything I design down to a single keyword.
Types, Classes, Actions, etc.
It makes it easier to define the objects in your game and talk about it with your team mates:
"So how about that
Suicide Robot?"
"Yah we should balance his speed and damage radius"
They will also become the words you use to teach players how to play the game:
"
Fire defeats
Undead, and
Hammers defeat
Robots"
"The
Gold Door is locked, you'll need to find a
Gold Key"
I may feel the first animations are sub par to the latest ( this will inevitably be true if the likes of pixel piledriver keeps dropping wisdom bombs on my thread)
Sorry!
My advice is somewhat out of context.
I'm explaining pure animation technique in isolation, not in relation to production time or how to finish a project.
It's not my intention to be pushing you to redo the same animation over and over.
There is definitely a balance that must be struck between time, speed, quality, education, and experimentation during a project.
With practice you'll be able to use animation techniques in bite sizes.
It's not important (or time effective) to force EVERY principle into EVERY animation.
It's a bit like trying to use EVERY composition technique in a single piece of art.
Doing passes over multiple assets is good practice.
Even if your latest stuff is out of sync with older stuff, that's normal.
Just find simple ways to improve the stuff you aren't satisfied with.
It's almost always better to error on the side of "That's probably good enough".
I mentioned this somewhere else but, a couple projects ago we did an ASCII game.
We were able to get away with 0 animations for the player.
Instead he would flash colors, make sound, and spit out particles.
Under time constraints simple solutions can be very effective.
Your first complete game on your own can be really hard.
Creating a personal project is a privilege but also a curse.
There's no pressure to meet deadlines.
You have complete creative control.
These are good things of course, but can easily lead to the project stretching out unlimited.
All the stuff everyone else said.
Simplify, organize, communicate, prototype etc.
There's plenty of other things to consider.
But I don't want to suffocate you.
Game projects are a lot of work.