I am currently working on a project of my own for a little over 2 months (not much time on my hands). The purpose of this project is to be able to remotely update all of my Linux systems from one graphical application. 

The problem I am having is I am building two applications: the client and the server. As the size of both the programs increases, I am finding it harder to manage what needs to be done. 

While coding I am trying to think of things that need to be done and with the addition of another program it's starting to make my head spin. 

**Is there any technique by which I can track the features: yet to be implemented and currently under development features in a big project?**