Friday, November 17, 2006

Friday - Wandering the Labyrinth of my so-called mind

Well, now isn't this an interesting development ...

I've been in tech support long enough to know a couple of things: you have to really stay on top of it to keep up, and I don't like technical support.

Technical support was interesting, fascinating, and easy at one point. There are a specific set of things that a computer had in it, there weren't radically different flavors of it, there weren't any discrete components, and not too many things could go wrong. When they did, it wasn't hard to figure out what it was and how to fix it. Over time, the operating systems for the computer became more and more complex, and hardware was quickly outstripped in performance demands. Soon, the computer became extremely complex, even though there were still only a few things you could have in them. Now those things come in all shapes, sizes, and with myriads of performance options and various controls, and each of those things is an area of failure. Hardware is now the weakest link in a computer's chain of operation, where it used to be the strongest. With as much as can go wrong with software, the hardware still can't keep up.

To be in technical support now, you have to know so much about so many aspects. It used to be easy -- if the software failed, you reinstalled it and off on your merry way you went. If the hardware failed, you pulled it out, put in a new one and off on your merry way you went. Now, who knows what's failed? It could be hardware, but it's not likely; it could be software, but reinstalling it may not be the solution because the operating system has spread the installation all over the computer. If the installation procedure sees that one of the files it needs to write is already there, it won't prompt you, and maybe it will overwrite and maybe it won't. Things are just so complex now. Troubleshooting a computer is a lot of work today, and I don't envy desktop or phone support people trying to figure things out.

The worst part, though, is that you're not allowed to just work on a problem anymore. Now, it's all about logging your time, how much time did you spend on what, how many tickets did you close, and matters that are either metrically or monetarily driven. When I was a new tech, companies courted me from all over the United States -- Boston, Austin, Dallas, Atlanta, San Jose and the silicone valley, etc. Companies wanted to hire techs and maintain an army of support folks, because they knew the computers were their lifeblood as businesses. Now, there's no shortage of tech support people, and the only game businesses have to play is for how small an amount of money will they work. I'm not a hot commodity any longer, but I don't flex very far in my salary requirements either. I don't negotiate very much any more and I am actually not as good technically as many of my counterparts and colleagues. I don't care; if they want someone else, fine, go get them. I'm not interested in being a whipping boy anyway.

So, here I am, doing support work again. I'm trying to make an external 300GB USB drive bootable, and I've had to resort to going to the Internet for help. There's a fair amount of work done in the field, and that's good news. I've got a lot of help. The bad news is, I don't really care. It's just not fun anymore.

You know what I have fun doing? Writing code in VBA. I bet I'd like writing it in VB, too, but haven't really been brave enough to just dive in and start doing it. I've played, but playing isn't going to get me far. I've invested in books and actually worked through some of them, but VBA is so ready-made and readily available -- just hit ALT+F11 in any MS Office program, and BANG! -- you're in the VB Editor, ready to code. I find Excel especially relaxing to code in; it's fun to watch numbers and data move about on the spreadsheet. I've been working on getting specific data copied from one location on the spreadsheet to another, and eliminating any empty cells along the way, so that the column's data is stacked neatly and cleanly. Nothing particularly useful, but like I said, I really enjoy it. Now, it may be another matter completely for me to have to write code for someone else's use, and work out all the bugs, and do things that are kind of scary. Oh, and the deadline part; that whole thing kind of sucks too. I like methodically solving problems and making the code work. Okay, in all honesty, I like typing the code in and having it work without having to debug it, but that never happens.

The coding is cool because it's me and the machine. I type some stuff in, I click F5, and I wait for the error message. When it comes, I click on F8 and step through it until I see what blew up. I fix it. I hit F8 again and walk through the code again. Does it work? If so, great; onward. If not, DARN -- now what? And so it goes. No one bothers me, no one cares. And it's relatively easy. I found some old files I was working on when first I endeavored to write VBA code, and I realized how long it'd been since I'd done anything with it. I just opened the file, which was my first attempt at capturing user input from a text box and placing it backwards onto the underlying spreadsheet. The idea was to have what Excel calls a UserForm that would present the user with a consistent, easily understandable interface, and would gather the data and do things with it -- total up currency, write specifications into specific cells, and print up a receipt or invoice, that sort of thing. There were a lot of things that didn't work on it, but to try and figure out the best way to get data from the form back onto the spreadsheet, I'd made a tiny form with nothing but three labels (which display data/captions), a text box (in which the user would provide input) and a button (which executed the code to move the user data back onto the spreadsheet). It worked fine, but I was curious how I'd done the work, so I opened the VBE and took a peek.

I was appalled. My code was horrible to say the least. I had the user input passed to a variable (fine, no problem), which then passed the value to another variable (oooo-kay -- WTF was I thinking here?), and then the two variables were written into to separate spots (EH?? What's going on?? Are you sure I wrote this code?) -- into the spreadsheet and then from the spreadsheet to a separate variable that was then dumped into a display label on the form (HUH??? What're you, STUPID???). Ugh; I didn't get it at ALL.

So, I commented out all the code I'd created, then wrote new stuff. I took the user's data and put it DIRECTLY into the spreadsheet; then I made the display label show what was in that cell. Two lines of code; just two. No variables needed; no passing values around from right hand to left hand and back. Just BOOM. Do it. It worked fine. The form displayed what was actually in the cell, and the value from the user was placed nicely on the spreadsheet. Yay.

That doesn't sound like a big deal, but you know what? It is; it's a big deal because it shows that, somewhere along the way, something good happened in my brain. Something sifted down and into place, and it clearly showed that I was learning and understanding this stuff better than when I was reading a couple of books a month on it and trying to assimilate everything. I don't know why, but suddenly something clicked and I was a better VBA programmer than I was a year ago.

Of course, I've forgotten some things. I've stumbled across things (like finding the last cell with data in it in a particular row or column, for instance) and haven't been able to figure out how to do them, only to return home and find that I've saved a spreadsheet with that exact problem solved in it. Or that I was struggling with that same issue back in March of '04, or something like that. It's funny; it's almost like a time capsule. I can go backward in time (to a point) and see what I was working on back when; how I was progressing. It made me wonder what I'll see in my code five years from now, or even two years from now. Will I be as appalled then as I am now? Will I be programming still? I suspect so; I think I enjoy it enough to really want to work at it. I think it's enough fun that I won't set it aside, even when I'm not doing it for a living. Hell, I'm not doing it for a living now and I'm still pursuing it.

I wonder if doing it for a living would ruin it for me?

Anyway, I have a database file - it's a Microsoft Access database, if that's important - and I was working on this back in Sept. and Oct. of 2005. I never got a chance to finish it, for reasons I won't go into now, but when I look at that database, I wonder what might have been. I wonder where I'd be now if I'd just stuck with it (more accurately, had been allowed to stick with it)? I wonder what my skill level would be, where I'd be working, what my salary would be ... so many things. Perhaps nothing would be different; perhaps I'd have ended up here anyway, floundering for my next contract, praying every night as I fall asleep for the protection of my children, the sanity of my wife, the security of a real job. I suspect that, even if I had mad skills with VBA, I wouldn't be a full-time employee. In fact, most VBA contracts I see are short-term -- six months or less. Who knows? Maybe for the sake of steady work, this was the best path for me to follow. Only the Lord knows, and as far as I can tell (which isn't far, by the bye), He ain't talkin'.

So anyway ... I like programming. I also like SAP (that's "Systems Applications and Processes" for those wondering, and no, it's not pronounced "Sap" like the goo that comes out of a tree; it's "Ess Ayy Pee", just like it's spelled). So, imagine my joy when earlier this week I was approached by a young recruiter offering me a $10 an hour raise to do work in SAP, which would take me just a TAD deeper into it technically -- and probably increase my demand ration by 10, too! WOO-HOO!! FINALLY!! Yes, a $10 and hour RAISE -- as in $10 per hour MORE than I make NOW. I was elated, to say the least. Of course, I don't relish the drive to the location -- in excess of 30 miles each way in a car with more than 130,000 miles on it -- but for that kind of dough, I'll do what I have to do. I bet that it will add another half-hour or forty-five minutes to my commute. My wife feels it's worth it. I wonder if she's grown tired of me? That's a three-hour differential overall; three hours of my life irrevocably spent getting to and from work. Still ... it IS good money, and an opportunity like this is not likely to come along again any time soon.

Thus, I was happy; but they haven't gotten back to me, and that's usually a bad sign.

So, while I was wondering and worrying, I kept reminding myself that it would only be until the end of the year. Yes, it's possible that it could be extended in three-month increments for however long the client wants me, but that's not guaranteed. All they'd guarantee ("they" being the recruiting firm) is that it would be an end date of 12/31/2006 initially. That's the same end date I have here, where I am currently, doing a lot of hardware work and failing miserably at it. The money is still a draw, though.

Then, this morning, I got another call from an English gentlemen (he's been in the US for 4 years now, and loves it -- he found cars here to be ENORMOUS, and the roads WIDE, initially; now he has a Jeep Cherokee and doesn't turn left into the oncoming traffic any more) offering me a job doing almost EXACTLY what I was doing before with SAP (not a technical jump up, but still SAP). I told him, politely, about the other company, and he told me what his client was offering for pay -- a five to eight dollar an hour increase over where I am now, AND it was even closer to home than I am now (which is, by the way, about 19 miles, give or take). WOO-HOO!! A $5-8 per hour RAISE!! That's almost as good, and it's doing something that I know I can do with minimal training!! (There is a caveat, however; familiarity with "all aspects of SU01 is required", and that frightens me. I know how to use SU01 [it's easy], but I don't think I'd qualify as "familiar with all aspects of SU01" in anyone's definition.) Of course, I told him to please submit me at once, and I would naturally follow up with an email and my consent to work exclusively with this firm -- which coincidentally is located in Virginia, one of my favorite places in the world -- for this position. He was careful to specify that I wasn't obligated to work with this firm for other positions within this client company, just this particular job. I said that was fine. Then he dropped a bomb on me -- he said that this position was for no less than twelve months. Yes, ladies and gentlemen, a LONG-TERM offer at last!! I had to stifle the joyous ejaculation that threatened to emanate from deep within me. I cleared my throat and casually answered that this was an acceptable duration. He appended with a standard line about how it could go permanent, but that wasn't guaranteed; I countered that, no problem, but it was guaranteed to be at least one year, right? And he said that was correct, yes, no less than one year. Again, I did the Cabbage Patch Happy Dance internally, and said fine, would he please submit my resume for consideration. He agreed to do that. I hung up feeling like there was a new sense of justice to the world, and I was happy for the first time in a while. In a good while, actually.

Now, time will tell. So to pass the time, I've done some programming today, and looked at some of my older code, and done things like that while I struggle with the problems I'm facing on this job. I'd like the record to show that I'm grateful for this job; I really am. I thank God in Christ every day for what I have, and I will continue to get up and get in here and do my best. But it's not what I love; it's not even what I like, and I realized how deeply this is impacting me yesterday when I caught myself in a deep depression. My wife's defensiveness at my depression (how that happened I'll never know) only made matters worse. But I've got a new sense of hope today, and I hope I can sustain it. Now, I leave it in the hands of God Almighty, to do what He wills with both of these potential offers. There are birds in the bush; we'll see if any of them end up in the hand.

And that's the end of that story for now. God bless, all!