If you’re an enthusiastic developer, sure you have done a lot of personal projects. The problem is that what you will do when you want to start a serious medium size project (which could take month(s)). I don’t think there is a best way to start a project however there always is a better way. I’m not talking about all steps in textbook for software engineering ; I’m talking about what you actually do.

I have done a lot of personal projects. Some is quite useful, but most is useless, unfortunately. I want to share what I have done and hope I could get the advice from you to improve it. Not just for me but also for many newbie like me who’s thinking about starting a new project.

The scenario is you are surfing web/playing game/or even having dinner then suddenly a new idea of a software/website light up in your head, what will you do?

Traditional pen and paper

Well it’s sound a bit un-cool because developers should start a project with a project planning software. Despite of a lot of project planning software in the market right now, I still feel pen and paper is the most flexible way to start planning anything.

Start with drawing some thinking path - some blocks, circles, arrows... to express my idea on the paper. It should contain the features, functions the project should have... (even benefit it bring to me, if necessary).

Interview the targets

Interview sounds a bit big for a personal project. What I actually do is, I’m normally ask my friends, forums briefly about my idea, if they think it’s useful or not. I don’t want to spend a few weeks or months to do something and end up with only me using it. If I get a positive result, I will carry on my next steps. If not, I’m save the idea somewhere, maybe someday it become useful.

Proper planning

I’ll prepare a proper project plan which includes scenario, benefit, functional and non-functional features, a brief design of database if needed, interfaces... Don’t need to make it so long though. Why do I need that? First to keep track of what I’m doing to make sure I’m going the right way. Moreover, I could draw more friends to join force with me if needed. It’s always fun to work in team.


Beside the coding stuff, which is sure mandatory for this stage, I also thinking about how to draw users in.

Start basic website or blog for it. Put briefly what it’s about. Whenever anyone asks me, how I am lately, I just say: Oh, I’m working o a new project, check it out... And try to make them sign up for my mail list or feeds. Make sure to update web site regularly so they will come back to my side. I only do a brief updates because I can’t spend so much time for that in developing time.


Then after that is all the normal stages beta release, open release, advert as much as possible. If it’s unsuccessful or I have been bored with it. I just leave it and do something else. It’s a personal project after all.


This is how I do before I actually start coding a serious project. It’s working for me so far, but yes, there is always a better method, a better idea which I hope you could help share it with me and every viewers of this post at the comment area. Thank you.

Small projects flex more, in a bigger project you need to have a clear view before you start.

Wether you use a digital design system, or notepad, or a pen and paper, at the end of it you need to work out a lot of symantecs before you start, or you will waste a lot of time and energy.