Is Developing Just About Writing Code?
A couple of colleagues and I went to dinner a few weeks ago. As it does so often, we chatted about work stuff. It drifted to various topics, some more, some less on the personal side of life.
One of the things I mentioned (or complained) was my unhappiness with my working knowledge of .net development work. Which is to say I went on about stuff I couldn't figure out due to a lot of stuff. Since my day job isn't really about writing code I have only my free time to learn .net. And being mostly self taught there is a big barrier standing between the idea and the text I need to look for - namely names of things.
But another approach was mentioned. Development isn't about code. It is about the process. Working on an application is about a great many more steps than sitting down, firing up Visual Studio (or insert editor of your choice) writing a control to do X and a database (insert your data store here) to hold your information.
Development starts with an idea, a need, a thing to get done. It starts with a piece of paper to jolt down the purposes, ideas and improvements of existing applications out there. If you ever looked into starting a company it is very much like that. You start with two business plans - a long one and a short one.
An application should start like that. Writing down a short business plan, a summary you can show to people and make them understand why you need to write it, why it is an improvement on an existing version of the same thing (and odds are it already exists). It is your pitch to yourself and anyone interested. I like to grab non IT friends and talk to them because I have to explain things to them to make them understand, and they pose simple questions users might ask - it is like getting user feedback before you have anything to hand out to users.
The long business plan of an application is the long term projection. It needs to be harsh and realistic, slacking off time included. Writing down the phases and time frames. Expected growth and goals. Will it be released to the general public, will it be open-source, which licensing option will you use, how will you (will you) generate any income?
Doing pre development planning offers a great deal of benefits, or I'd like to think. It allows you to set realistic goals for yourself. It should provide you with time frame to keep to. Looking into tools to use sets your framework and can help build new skills. Most of all it will keep you in focus.
And development, be it for fun or profit, needs its focus.