I've always enjoyed making computers do what I want them to - especially where it saves me doing the same work more than once. That's why I first learnt to program a computer.
It was actually an Excel Macro (which entailed pressing 'record' and excel created a visual basic script by itself) that I first used to save having to do by hand the same thing on 50 odd spreadsheets every month, setting them up for the next months data entry. Most of the visual basic that was recorded seemed pretty simple and the bits that didn't I found out what they did in the help file. I then started to find that I couldnt always record what I was doing, for example, if a value was more than 100 I wanted the colour to change to red. By reading some more of the help file I found ways of being able to do things based on other things.
This section will be somewhere to record all things I'm working on, and for the first time I'm going to make some notes on how long I've spent programming certain things. I know that sometimes it takes longer to program a computer to do something than to do something by hand and at the beginning there's many times when it isn't clear the best way to approach something.
One of the other tough decisions (for me anyway) is whether to find some existing software or write my own. OK, some things are quite obvious (I wouldn't want to write the equivalent of MS Word by myself!) but other things are tougher. A bit like the database that runs the kitchen shop. While it is possible now to buy software that does similar things (and in many cases a lot more), none of it does things exactly the way our business wants it done. For example, Sage (the accounting software we use) can also do order processing. Unfortunately to process an order you need to have an item in the 'stock control' module. As we frequently sell a product just once it is not practical to enter it into the stock control module just to create an order. However, it is useful to be able to call some frequently used products from a stock list and hand enter the ones that are not common. What sage doesn't allow, our own database does. Most important to ALL the systems I've ever looked at is the ability for them to import and export data. Mostly this is done in a 'report' format, and for many programs this stops at just a printed report. To make them really useful they need to export data that another computer system can read, as well as import data from other systems. When you are buying some software it may not always hold the data in the format you need, or even hold the data at all. One of the things Sage did not record that most annoyed me was the 'customer source' when an invoice was raised. How did that customer find us? Sage doesn't record it, our database does. Better still because I wrote our database as our needs have changed the database has changed with us. We noticed suppliers were delivering too soon because they didn't read the delivery date, so it was a simple thing to change the format of the purchase order to make it more obvious to them.
Anyway, enough of the reasoning between when and when to not write my own software... Off to start writing some new stuff!