Creating new software project is like raising child, you need to do it step by step, not all at once.