Always Open

Ha ha … man alive. Tonight I got my Transaction History code down from 4 hours to 4 minutes. 4 MINUTES!

How you ask? Well, it begins and ends with my stupidity. And the crazy thing is, even with code i wrote, the 4 hours was quicker than at the beginning. Strange.

A while back, when I was trying to speed up this Transaction History (Batching) functionality, i read up on stream() and flush(). This progressed to logout() and commit(). So I put them in, and as said, this sped up the operation (runs through a handful of files, which each have a few thousand records). But it wasn’t very quick. I mean, 4 hours is okay once, but I found myself needing it done quite a lot. Which might be a problem in and of itself.

Anyway, then, the other day, i discovered something.

Wait for it. It’s a kicker.

I hadn’t opened (.UseFile() is what i use lately) the files used in the batching before calling them in logout().

Like i said, crazy stupid.

What’s even more bizarre is that not opening the files, but calling logout() still had some effect on the speed. Anyway, chalk that one up to needing more cranial capacity. Such a simple thing, so obvious, yet i missed it for so long.

The Beginning

When looking at direction, before development of a System, you have to think about the consumer. This should play very heavily in the minds of those that do the pre-development … the direction of the development.

So where does it begin? There are heaps of things I would suppose … you have to get inside the head of the consumer, you have to target a specific type of consumer, you have to know your market place, research the latest movements amongst that market place … etc etc.

In our line of work, generally, it will involve computers somewhere. Most hopefully, that will be without a doubt.

I have had a couple of ideas lately that while definately not unique, are still going to change the way the industry we work in … works. It’s going to mean getting in front of the competitors in a big way, unless they’re doing the same thing. It’s also going to mean a new kind of website. Not new to the web, but new to our industry.

I may be barking up the insanity tree, or the hopeful tree, or the tree that will lead to just another couple of ideas on the wayside. But right now, I think not.

So we’ll see.

If you have a computer, where’s the best place to beat the competitor? At the beginning. I must confess, this thought probably was sparked by an article talking about how Google is taking over the desktop. This led me to think about how to use the internet without "using" the internet. A great mindset to have the consumer gain. Imagine being able to search for "stuff" without being on the net. You just have to have your computer on. No going to a website (that happens after the search), no firing up IE or Firefox (or Opera/Mac Stuff (you know what I mean Brett :))) … but being able to access information RIGHT NOW from the desktop. Single click.

It’s gonna rule. RULZ.

Levels/Tiers of Development

What are the tiers of Development? Should they be ranked more highly than each other? A conversation Bill and I had today sparked my brain off.

When we look at Development, how do we approach it? There are a few levels, or tiers.

1. The Functionality

This is where the majority of coders lie, most probably. This is where most people start i guess. This is also the place that can bog down a lot of good Development.

"I’ve got this AWESOME idea for a piece of software/hardware!"

Like Joel on Software states I think it’s more important to build an environment where Development can be best fostered is better than coming up with a great idea and getting some people together to get it done. This (the second thing) has it’s importance, and does happen, but it probably comes best underneath the environment.

2. Support

"How do I support this Development to the Customer?"

Where the developer/development team start thinking about Support systems, help desk, ways to get feedback from the Users etc.

A very vital part of development. Once again, it comes best through having the environment in place. I guess too, that we should clarify this "environment" i keep bantering about. I’ll do that at the end.

3. How to Sell the System (the solution)

"How do I market/sell this piece of beautiful creation?"

This is where the rubber hits the road. You get this right, and BAM, a lot of the hurdle is gone. Client’s are there, the money is flowing. You get this wrong (like I have done), and -boing-, you’ve got nothing but a cool piece of solution that has a couple of users who will haunt you until you pass from this earth. Which is not ideal.

4. There is no spoon.

–==–

Environment:

This is where all the above tiers should come under. What we should have is a structure where we look at solving problems AND thinking up cool ideas. Not going overboard on anything. Balance our longing to dream up supa-software with looking at where we are as a team, what we have to get done, what problems are being faced right now.

A place (mostly where the people are, not a physical location) where we work smart (and hard, but smart first) and where we seek enjoyment. I love it when, after a couple of hours reading code, looking at the problem, it clicks. That’s a great thing, and it means that on a sub-conscious level i enjoy work. But also, I enjoy work because I know we can share ideas. We can push each other to think in different ways. Each of us comes at a problem with a different face. My talent lies in my inability to quickly grasp the obvious :) … so explaining to me has to be simple and straightforward, which in turn makes the explain-er think through what their talking about.

Anyway, this post is a mumble-jumble of ideas. But it’s on the right track i think.

‘Nuff Said.

p.s. Bill, if you read this, i think i mashed together the middle two points we talked about … can’t remember exactly :).