Once in a while we can be a victim of our own development phase and pattern. After reading scirra's working in progress section (link here), I can see a couple of casual developers not being able to finish their game even with a foreseeable targets. Being a software designer for a living, I follow specific process, schedules and workflow standards. Software development process and guidelines are often missed or ignored by new game developers and hobbiest. These are my top five items to note of prior to writing any codes.
Identify goalsIn setting goals one should be specific and precise, some like I create an awesome game wont do.
Define your scopeEven experimental games has its scope. The scope will tell you if you have completed your game. If you realized that you game has some issues or lacks certain features or needs changes, congratulation you need to get a plus 1 on your change build or in your fix build ([major build number].[short release or enhancement number].[fix build number]).
Don't skip a design documentMost casual developers don't do this and jump directly into building something. This might work for a 4-16 hour game development cycle, but it will completely ruin you if you need days to work on it. Without a fix target you will be prone into adding and changing certain key elements, causing the unpredictable delay. At this section one should identify the total number of levels you will be doing, number of monsters, number of blocks, the story script, the flow and everything. This can written in a simple text sheet without all the fancy diagrams, you can follow my simplified template intended for Construct 2 Developers.
Have a project scheduleWe are always bound by time and it is finite. Hobbyist indie developers has their own threshold before they get bored in doing something, thus know thy self. To complete something you need to create a detailed check list and task list before you can fit them into your schedules. This will also help you foresee and plan your cycle and reduce wasted time.
Stick to your scope, goals and scheduleThis is the most important one, it just tells developers to develop a sense of self-restraint and commitment. Avoid adding something midway, at most drop anything you define to be not essential. Avoid diverting to the plan just because you think something is awesome to add. Stick to the plan and execute.
I would recommend solo or small teams creating an experimental driven game to use an agile development. It will greatly help segregation of scope and re-iteration of design changes.