I generally don’t have any plans for developing specific software. What I do create is more stuff I find or think would be useful. My Lightroom plugin started from there – I saw that dA published an API, and so I thought about working with said API in Lightroom. Sounded like something fun to do, and I had some free time at that point.
So, in general, my process goes like this:
- Come up with idea.
- Toss it around mentally, think if it’s possible
- Wonder if I even want to implement it – will I make use of it myself?
- Sketch out the general flow of the program on paper – at this point, think of input/output, edge cases and data structures.
- Look up language features/API functions that I’ll use, and put them into the paper design.
- Implement and test the barebones of the program – just the basic functionality at this point.
- Add new features/optimise the existing code as necessary.
Now, it’s not cut and dried – if the idea sounds sufficiently cool then I might jump straight to step 4. Of course, what generally ends up happening when I do that is me getting through designing the program, and then while researching how to write it, putting it on the backburner and forgetting about it.
So, the point of all this? I should probably start documenting my ideas, and I thought I should think about how I think about ideas first…