I would use:
1. Code management
GIT (and the awesome reference), a distributed source code manager, for managing my code, and host it on GitHub as a private project if I want to keep it off limits.
(There are A LOT of options here, just google for source code management, you don't even NEED to use GitHub or any other website, Git will work just fine on your local computer, but using GitHub will make the pain of managing backups a lot easier.
If you have two computers you can create a repository on one that you'll call your backup machine, then you clone that repository over the local network and use it for development, when you're done with a feature you can push it to the backup machine and you'll have a 1:1 backup!)
2. Issue & Feature management
I would use Trello or GitHub's built-in issue management to keep track of bugs and things to do.
3. Have a Design Process
I would design my game first;
- first in my mind,
- then on paper,
- then probably use GameMaker or PyGame to prototype my idea, and iterate over 1-3 until I have something that I enjoy playing.
4. Use my Prototype as a Guide and Develop my Game
Then I would put my prototype aside and pick a platform I wish to develop for. Then look for existing engines and pick the one that's the best fit for my game idea. Then I would make clear goals for my project, structure them into small tasks and then begin working to finish the tasks. When you've reached this state, you'll most likely find that you have your own way of working that suits you the best, so go with that!
There are several different methodologies/philosophies that you can apply on your development style, XP, Waterfall, etc. Just go with the one you feel makes you progress the fastest.
5. Have a lot of Game Testers!
When you have something playable, ask your immediate friends to try it out! Make it easy for them to help you by setting up quick installer packages if they're running Windows or write some shell script that can automate the process for them if they're using Linux/Mac. Take much care in the feedback of your testers, and don't forget to inform them about your game design and what kind of game it is you're trying to build.
6. Make a website for my game
As soon as I have something going well I would probably make a website for my game - to keep my creativity and content flowing when it can't be applied to the progress of my game, for instance, if I'm focusing on my studies or need a break from development!
If I use GitHub, I would set up a project page for my game, otherwise host a WordPress/Jekyll blog or something similar and write my posts with that.
This will keep yourself motivated as well as having a place to refer potential gamers/testers to!
7. Join contests
There are lots of game dev contests going on almost all the time. I would try to join one of these with my game if the rules permit. This increases motivation and makes everything even more fun - who doesn't like winning!
(If you are developing under a strict deadline, you can skip this point at least.)