Hey all. I would like to get some insight on a question that I have been trying to find some information about. **If you are the solo developer that is building a project from ground up, how do you manage the project?** In the past, I have worked on a few personal projects that have grown into fairly large projects. In almost all of those projects, I have tried to wear the hats of all the roles that would *normally* be in place during a *normal* software development project (i.e. Product Owner, developer, architect, tester, etc.). It seems that when I leave the project for some time and come back, it is extremely hard to get back into the rhythm of what I was doing. So with that, I have some questions:

* If I know the requirements (at this
current time), do I record them
anyways? If so, how do I go about
doing this, and how do I manage these
requirements? *Product backlog,
features list, etc*?
* If this is the case, are full blown product backlogs or use cases a little overkill?
* How does one efficiently appropriate
his/her time to each respective role?
* What would be a normal flow of events
that one would follow? *Start coding
immediately, write down user
stories/use cases, then go into
[OOA/D](http://en.wikipedia.org/wiki/Object-oriented_analysis_and_design)*?
* What diagramming/modeling would be sufficient for this level? *Domain model, class diagram, etc*?

Basically, I was curious how everyone out there in the SO community would go about developing a project from inception to deployment when you are the lone, solo developer. What steps, documentation, and other project related activities are needed to help bring this project from an impractical, hobby project to something more professional? Any help, references, or suggestions would be greatly appreciated. Thanks in advance.