Wednesday, October 14, 2009

Some rantings from a programmer

I thought to begin with the methods, the workload or other techie issue. Alas NO. The first thing is M$ Word. To be more precise it's the dictionary built into the bloody thing. I know I make lots of typos when writing, the "nice" feature of doing things behind my back is annoying (and turned on by default.) Yet it doesn't come close to the "missing" words, misspelled words and grammar markings which do not have anything to do with grammar.

Now for the real part of the blog. The preface was just because of some red and green lines appearing on my screen for reasons that Ol' Bill markets as gold. Though I guess it's your gold.

When building a program there appear to be lots of methods to "get it done". While some methods focus on speed, others are focused on scalability. At the bottom line it's about a "customer" and a "product". The usual implementations apply, customer doesn't want to pay too much, product has base cost.

For most cases (meaning the small needed programs) the cycle is
1. Get a list of requirements
2. Set the price (based on the list)
3. Build a demo
4. Show the demo
5. Build a real model
6. Customer gives a list of rejects
7. Fix rejects
8. Put final version
9. Get the paycheck
Note that some customers repeat steps 5 & 6 for a very long time.

Strangely enough this cycle is the base for large projects too. Even if a few other things like milestones, meetings and committees are added.

From my own experience I can tell that the steps involving the customer's decision are the worst. And the closer you are to the customer the worse it gets.
I did a small app for my dad once; he just forgot to mention that the check numbers should be up to 8 digits with a possibility for leading zeros. He mentioned it after he was using the program for a few months, by then he already found a way to bypass it: put 1 instead of a leading 0. Once the checks with the 1 came it was very messy business… Of course I couldn't charge him for the hours spent fixing this problem (he's my dad after all.)
At the current time I'm trying to get another family computer, it's the only explanation to putting Hebrew UI (the family.) It's not that I don't know Hebrew or have problem reading it. It's just that Windows Hebrew UI is at best inconsistent; the terms change from version to version, sometimes the translation is ludicrous, at other times the translation does not exist, and to top it all M$ tested it on a bunch of apes which have nothing to do with Hebrew. If it was a paying customer I'd put the price high enough for him to run away for someone who's shameless. But when it's from your family you can't, thus you end up trashing a newly bought computer with a UI that's not better than a Linux UI (sorry fellows, but that's the point Linux is missing.)

That's all for today, no source code, no punch line, just some rantings and an insight to how they can be reached.

No comments: