Archive for the ‘Cube Life’ Category

The Ultimate Pawn

Friday, November 15th, 2002

I've had about the worst 48 hrs. of my professional life. It's brought me as close to impulsively quitting a job as I've ever come. Wait... there was that time in grad school that I was afraid I was going to hit my major professor, so this would be the second time in my life.

Two days ago I was asked to import an Excel file into a database and then use the web-based tools that another group has built to put this data on the web. I started the parsing of the file, but then the manager of that other group said his people had tools to read Excel files directly (I was exporting it as text and then parsing that) and when I talked to this manager he and I agreed that his people could do the importing easily, and then just as easily throw up a web page. I said "Seems reasonable."

When I went to my manager to explain that this other Team had it all taken care of, his response was "I gave it to you to do. That means I want you to do it - not them." Hmmm... I thought... why does it matter? They know their tools and environment, they'll be faster, what's the big deal?

So I told the second manager that I had to do it. This was OK with him, and when I said "Just put it in a database, and I'll use PHP to write the page." his response was "But look at what we have! You can't do this as easily in anything else. It'll only take you 5 minutes to use our stuff." I knew this was a stretch, but given that I was going to be using his database, I gave in and said "OK, I'll do it your way eventhough I know it's no 5 min job for me." I was right about that.

After a day and a half, I got the page working reasonably well. It was exactly what my manager had asked for, but the second manager had come to the idea that I was now working on his Team, and as such I should take direction from him. When we clashed, he wasn't happy.

He then proceeded to tell my manager that I was difficult, arrogant, and not someone he could ever work with in the future.

So when I was asked this morning by my manager if all the historical data was loaded into the database, and my response was "They told me they have it.", his response was "My original intention was to have you work on this." I went to talk to him about this clear communication problem.

You see, there's no reason that this should have been this difficult. I didn't add much to the mix because I spent so much of my time on the learning curve and so little in the efficient developer mode. It was clear to me that the right thing to do was to leave this with the group that had the tools and experience. So I had asked my manager why it wasn't being handled that way. His response was basically that the other group didn't work fast enough and he didn't have any control over those people. Me, on the other hand, he had control over, and if I could learn what they do, then he wouldn't have to ask them to do these things any more.

When I went and talked to him about this I was prepared to say that this just wasn't something I understood. It didn't seem logical at all that I should be a useful addition to this process unless there was a change in the direction of our group, and we had to move this way. What I got was a completely unprofessional yelling at. Nothing short of amazing.

You see, it turns out that this second manager's comments about not being able to work with me had hit him in a sensative place. He was telling me how I needed to work on being nicer, kindler, gentler... I was accused of thinking too much - as if that's possible. I went from that meeting to talk with the other manager to clear the air. What I found there was very enlightening.

It seems that as things stand now, my group is going to be dissolved. That's too bad, but it happens. This would leave my manager with nothing to do. The other manager, however, is doing fine and will not receive cuts. That makes his group one to be a part of. Now, my manager wasn't doing this for me, he was doing it for him. He wanted to have someone on the inside that could handle the technology if it came down to a war between himself and the other manager. He believes that if he's successful, and the other manager leaves or tries to do a 'scorched earth' policy on him, then I'm his ace in the hole.

While normally politics just makes me uncomfortable, this kind of spying and game play makes me realize that this place is going to get a lot worse before it gets even a little bit better. This means that I really have to look for another place to work.

In the meantime, I've patched things up with the second manager and he's certainly willing to work with me, and looks forward to having me help out his team on a few things. My manager, is, quite frankly, at the end of his mental and emotional rope. I'm not sure that he's stable, and I know he's not someone I want to be around.

Until I get another job, however, I have to keep him happy. And I will. But it's also clear that this place is so far gone that logic and reason aren't even considered anymore. It's jockeying for position and power on a sinking ship. In a few years things may be nice again, but the carnage of these next 8 months will be nothing short of horriffic.

Unprofessional Professionals

Wednesday, November 6th, 2002

Like a lot of people, I have a hard time understanding people wit whom I have very little in common. For example, I can't understand many people born and raised in a foreign country simply because my background is so compeletly different that there are precious few points of common ground that we might share. I've never seen my country ravaged by war, and don't know what it's like to be afraid of land mines. So there's an understandable disconnect that I can try to bridge by creating common reference points, but without that effort, there's a lot that will simply be a total surprise.

I find myself in a curious place. Management wants to believe that by keeping me out of certain meetings that I won't learn of them, and understand the context of those same meetings. They want to believe that for these meetings I'm not as smart as they expect me to be all the rest of the time. They believe that if I'm not in a meeting I won't know of it's existence, it's attendance list, and from that infer the context of the meeting and why they want to exclude me.

So I'm in the position of being close ot being re-assigned onto another project. That's life, and in and of itself isn't so bad. I've built a system that looks easier to maintain than it is, but they'll learn that as they transfer it to someone less competant, but that person will either get up to speed or they won't.

No, my biggest gripe about this is the way in which they believe that I'm simply a tool that doesn't care what it's working on, so long as it's just working. This dehumanization of me bothers me a lot.

Sure, back at the turn of the century I'd be lucky to get fresh bread, but that's not the point. The point is that they expect me to behave
professionally towards them and their projects, but at the same time, they don't believe that they need to behave professionally towards me. The source of my greatest frustration on this is that it is my honor that keeps me from dealing with them in-kind. It is precisely because of this honor that they believe I'm so valuable, and professional. So I'm having my own good nature used against me by less honorable individuals.

I can't control any else's actions... only my own.

Life is Certainly Funny

Tuesday, November 5th, 2002

OK, so just when you think you have a slight bit of control on things, life throws you a curve and you realize that you don't have the first clue as to what's really happening.

So things are going pretty well these days... the running I'm doing at the incredibly early hour of 3:40 am is still working. With the TV I installed into a nice little built-in shelf unit right in front of the treadmill it promises to be a reasonably enjoyable winter as I run my 2+ miles each morning.

Liza and the kids are doing really well... the weather is typical Fall in Chicago - lots of cold, rainy weather, but soon enough it'll be cold and snowy.

Work is work, and that's where the curve comes from.

I'm not sure if this is intentional or accidental, but since the downturn in the economy - due in some part to the incredible losses these guys have posted, work has been an exercise in The Unknown that would rattle a Zen Master. I mean really. First things are going to be OK... then it looks like they aren't... then they are... then we're going to wait for a couple more months and then look at things... then we're going to do things right now... Needless to say, it's the management that's the big problem - and most of it is due to the lack of good management.

It's perfectly understandable to have the back-and-forth on the decision to continue with certain things. The financial markets are as down as they've been in a very long time. Things happen, and not all of them are good. But still... you'd think that managers would take a few pointers from military commanders that were considered successful even when they lost the battle. Communication is the key... you have to let people know what's expected of them, and what their role in the organization is. If they are front-line troops don't tell them they're on KP... they'll get their heads blown off - for no good reason. Tell them what to expect as best you understand the situation, and then give them a job to do and trust that their professionalism will keep them from running off the battlefield.

But if you're a commander (manager) that doesn't believe in giving out useful information you're going to end up with people under you not really all that sure that they should follow what you have to say. Certainly, not after they see a few people getting greased due to lack of information that was certainly known to the managers well in advance of the fight.

Respect. That's all it comes down to.

When you're in a job where you're not really respected it's a constant struggle to find a good sense of worth. It's tough when you hear the words "You're appreciated... You're respected..." and see actions that totally fly in the face of those statements. At first, you want to believe that there's a good reason that for this instance the words and actions didn't match up. But after it happens time and time again, you start to think that these managers may say they're on your side, but they really aren't. And then everything they do is brought under suspicion - even when they may honestly be looking out for your interests.

So I guess I'm at that last phase... thinking that I'm really working for some very bad men, and wondering if it's just a few bad data points, or if it's really bad men looking out for themselves and using and disposing of people as they feel needs to be done in order to protect themselves from harm.

And the big question to me is if I've gotten into this place where there are so many questions, what should be my stance? The job market is clearly hard, but it's not that hard. If I'm working for people that I don't trust, am I really doing a good job? Or have I taken that first step back and lost the commitment to the organization that's so very important when times are really tough.

Frustration Mounting

Wednesday, October 23rd, 2002

OK, today is unusually frustrating for me. Don't quite know why. Maybe it's because I had a few emails this morning about other very poor developers saying something was wrong with their code and it's my job to figure it out for them.

As a part of all that I've accomplished, there's an API that tests out fine, and is in use by several groups. This one group is the only one having problems and they are insisting that it's something in my code that's at fault. However, I've never been able to reproduce the problem - yet they seem to be plagued by it nightly... I've had a third party look over the code and they say there's nothing wrong with it... yet still this one group of developers are insisting that it's not their responsibility to find out what's wrong.

Finally, this morning, after dealing with them for weeks on this issue, I've decided to give them some of their own attitude. I've produced tests that work in all conditions time and time again. I then sent these to the group and explained that while I can see their log files, here are the tests I've run and the results under the different conditions. This, then, leads me to believe that it is unlikely that the problem is in the API. I'll let them figure it out for once.

I've gotten burned out... and it's showing. The fun is gone and what's left is a goal just to do enough to get by.

I need to find something that will bring back in the fun in work. I know what's worked in the past, and I'll try to find that again, but finding an interesting thing to do is not always easy when you're burned out and looking for a new job.

Good Times and Bad

Tuesday, October 1st, 2002

Well... the great times at O'Connor are gone, and may not be seen again for a very, very long time. This year O'Connor has lost nearly two-thirds of the capital it had at the beginning of the year. Most of this is from the flight that occurred after some traders lost millions and millions on bad speculative trading. Someone got the money... don't know who... but WorldCom didn't help us any, either.

This means that as a result of bad trading - really caused by the excessive greed and arrogance of the traders involved, we're facing cuts in IT in excess of 50%. This isn't good... not good at all. And while I've been told my position isn't at risk, how can anyone really believe that in light of such massive cuts. It's only prudent to be looking for another position if the entire organization is undergoing a halving.

But what this really means is uncertainty. Lots of it.

Not that I'm a person that has to know everything... I've learned over the course of the 17 years I've been married that there are plenty of things that I can live without knowing - what's for dinner each night... what the kids have done wrong today... what's on the schedule for this weekend - they all effect me in one way or another, but I don't have to know about each and every detail of the life that swirls on around me. It's enough for me to know that if there's something important going on somewhere someone whom I trust is going to tell me what I need to be thinking about or at least yell "Heads Up!".

The problem here is that although the cuts aren't coming for another few months (first of the year), the place has taken on a Deathmarch-like atmosphere. People are all talking very quietly in groups... lots of news about who's hiring and who isn't... all the things of a place undergoing a mass exodus. This means the one thing that isn't getting done is work.

Normally, this wouldn't be a problem... I mean really... everyone has to be able to let off steam, but work is the one thing that helps me take my mind off issues that I can do nothing about. And this issues of whether or not I'll have a position here in three months is certainly one of those that's out of my sphere of control. Influence - maybe, control - most certainly not.

So there's a lot of playing around trying to ignore the generally bad environment in the IT sector for Financial Institutions in the Chicago area, and that helps, but there's a lot of worry that's not healthy at all. Today The Boss came by to say that we could start work on a project that we've wanted to get going on for a while. Immediately we thought "Hey, maybe this means we're going to stay!", but right away the point was made that this may just be a diversion tactic to keep us busy at something we like until the axe falls. Afterall, there's no value in having us worry, and as long as this project at least keeps us busy it isn't a waste - even if they have no intention of using it.

So we're stuck... with three months to go.

I'd rather have the cuts announced and those that need to move on be given the support that they deserve. Those that stay can then get to the task of getting things squared away for the new year. This, as opposed to waiting for the new year and then trying to make things 'right' as if we had all the time before this to plan...

I know that when I owned a business I may not have been a better boss, but I always put my employees first, and never lied to them.

Corporate Spending

Thursday, September 12th, 2002

I have to laugh at the Corporate Folks that administer almost every network I've come in contact with. They treat disk space as if it were gold - each user gets a quota that's smaller than even the smallest easily available hard drives, and then adding extra space is considered to be the last resport as opposed to the first thing to do. I can't imagine why they don't proactively add disk space to file and database servers just to make sure that no matter what's needed, there's space available.

Yes, this adds cost. I know, I've bought lots of drives, and owned a company where I had to watch every penny, but that's no excuse - I still never ran into the lack of disk space that I've seen in every "big" organization I've been a part of. It's just ridiculous. People use their machine's local drives because the quotas on the file servers are too small to allow them to really function. This means critical data isn't backed up, and the risk exposure is greater than anyone seems to want to believe.

Oh well... I can only do what I can do... I believe in having lots of free disk space, and I do. I think my fullest machine may be up to 50%, but that's it. Most are below 25%. Yes, I could have purchased less, but with the costs being so cheap, the incremental cost is so low, it just doesn't make good sense.

So I deal with database servers that crash because they can't find the local disk space for their files, and queries don't run because of insufficient log space... it's a waste of my time, and the company is paying a lot more for my time than they would for a new disk or two... Penny wise, Pound foolish...

Keeping Busy

Wednesday, July 10th, 2002

There's a lot going on these days and it's hard to make time to write in the Journal, but I'm taking a little time out now to fill in a few details.

Apple is making some seriously foolish moves with charging $129 for the upgrade to Mac OS X 10.2, and removing the free iTools email accounts that Steve has promised will be free for life. Since Apple exists due to the loyalty of it's customers, and only those same customers are going to be hurt by these moves, it just doesn't make any sense that they'd charge so little to offset the horrible public relations that this will cost them. But then again, smarter people have made dumber mistakes... I guess Steve's just due for a couple of big ones.

I've taken the time to reformat my iBook to use the HFS+ filesystem from the UFS filesystem. I'd heard that the performance is better, and there are certainly a lot of programs that can't be installed on UFS, so I decided to take the time and reformat the box. At the same time, I used the iBook image disks to make it out-of-the-box compatible. Not bad at all. The CD-RW made it pretty easy to back up what I had and re-install it on the new build. Not bad at all.

The performance improvements are significant. Installing new software used to take a long time. Now it's exceptionally fast. The change is very minor to me - mostly in case-handling of filenames, but I can live with that for the speed. Very nice upgrade.

Work is going well - at least as well as can be expected when I have to deal with the kinds of people that I have to deal with. For the most part, the people at the company are OK, it's the vendor's people that are almost too hard to believe. This vendor has an 'in' with a powerful person in the company and because of that they feel that they can pretty much have free run of the place. They can't, and they're learning the hard way, but I'll make sure that Karma is conserved... they'll have to change how they deal with us sooner than later.

Home additions/remodeling is going slowly. Liza has decided to add a pool to the backyard this year, so she's trying to get everything coordinated and get it in before the first snowfall :). I'm sure we'll love it and the kids will be in it every single day they can. It's a big bonus for all the parties that the kids will have. I'm really looking forward to it.

I was approached by a headhunter for a company here in Chicago. It's doing something I really like - cluster computing. Golly... I do love having machines solve really big problems - even if it's for the financial industry. It's certainly a possible move, I'll have to see what they look like in the phone interview and see how much of the job is in the face of clients and what their expectations of the job are. Could be really nasty if the face-time is most of the job, and it's a suit-world. That would make me quit no matter what the job was. But I'm trying to keep an open mind when people come calling with jobs.

The Waiting Game

Tuesday, April 30th, 2002

OK, I'll admit it... I'm not the best waiter in the world.

I'm most comfortable moving right along, getting things done and feeling like I'm making progress even if I'm not doing a lot of really important stuff. I like cleaning up the House - it's not the most exciting thing, but it beats being bored. Don't get me wrong, there's a time for relaxing and I wish I had more 'down' time, but while I'm at work, I'd rather be busy.

If I'm not busy, I think about all the time I could be spending on another activity, project, thing, that I could be working on. It's almost like I'm trapped - I can't leave work and I can't do anything other than work at work. When there's nothing to do, it leaves large gaps in the day and those are pretty hard to fill.

Sure, I can catch up on a little surfing, but that's not something I'm going to do for hours on end - I just don't have that much fun following links. I could read a book, but that's a little obvious, and I don't want the folks I work with to think "Hey! Why does he get to do that and I have to slug it out!" Well... the answer is clear - I've gotten everything done that I can do and I'm waiting for others to complete their work before I can move on. But that's still a confrontation that I'd rather avoid if at all possible.

So I wait.

In the end, things will pick up but until then, it's a painful thing
to do.

Why do I get so upset?

Monday, April 15th, 2002

Last Friday I was dealing with a vendor that I haven't had the best luck with when dealing with problems in their code. Typically, their company policy has been that we (meaning I) must be the problem and we just aren't using it in the way it was intended. This in interesting as we are their only customer, but let's forget that for now and get to the real problem - me. I get way too bent out of shape when I deal with these people. I get upset because their calm, cool, demeanor as they say it's all my fault reminds me of the sales person in the Monty Python skit The Pet Shop. And I'm the guy with the dead bird!

OK... there it is. I've been able to find why it bothers me so much. I love Monty Python, and I can so understand the incredible frustration of the guy with the dead parrot. Here he is, trying to get someone who sold him a dead bird to care that he sold him said, dead, bird. Put in these terms it's clear why the person is calm - he knows that there's nothing he has to do. He has all the cards - the other guy has the dead parrot and he has the money. All he has to do is to not say or do anything illegal and chances are, the guy will leave. Give them nothing to fight against, and there will be no fight.

This is such an interesting philosophy! I have to agree that prior to writing this down I hadn't seen it in this light. Now that I see it in this light, I'm not sure what the best approach is to solving this problem of mine is. You see, I still have the horribly built code (dead parrot) and unfortunately I can't just bury it in the backyard. I have to live with it.

If I were to take a page from their playbook I'd pass this along as a nice, living parrot and let the users figure out that it's dead. But this has a problem - the customer won't ever go into that Pet Shop again, and I can't have the users thinking I'm no smarter than the Pet Shop employee, so I need a better alternative. Hmmm... what can it be?

What I need is to have something that the vendor wants - that I can control, be just as dead (useless) as my parrot and then we can trade - I'll give you a live cat if you give me a live parrot. Interesting idea... now what can they want that I can say is alive when it's as good as dead to them? Hmmm...

Got it! I did some tests on their code and it's in a terrible state - memory problems, and their hurried design of the new updating scheme has got some serious problems. So I've suggested another way to achieve the same ends, and all they have to do is to unroll the changes due to the new updating scheme and put in a new feature for me and it'll be working like a charm. Wonder if they'll take it...

What really helps is that I know I'm the guy with the dead parrot... whenever they start to get to me now, I just have to giggle as I know I'm the guy holding the dead parrot, and the trick is to try and have at least a little fun with the ex-parrot... the one that is no more...

People really are funny

Friday, April 12th, 2002

I was sitting here thinking about the status of a project I'm working on and I had to giggle to myself a little. Now I've written in the past about the company that provides the basic framework/infrastructure and how it's not the most incredible piece of engineering I've ever seen, but today's got to be a new high (or low) point in the saga of this project.

We have been facing a real problem with stability that, in my opinion,
has been brought on by the lack of careful development design that Java seems to breed. Not that I've got anything against Java as a language, but whenever you have a language that tries to do so much for you, you run into folks that this this is some sort of magic Genie that will take care of a lot of other things as well.

But I suppose Garbage Collection is a good thing - if you understand the limits of technology. It's not perfect after all. Let's take the example of an event-driven system. A good design might be to have each event source capable of sending one event through the system, and buffering up the others in some sort of compressed queue, until the handlers of the event are done with the one you've already sent. Then there's the magic Genie model that says "Hey, let's generate a new Event Object for each event and pass them on as they are generated." This is the incredibly bad design that Java so easily allows that I'm talking about.

On the surface, both seem the same. Both handle all events - one buffers them at the source, the other somewhere in the event processing loop. But the enormous difference is that the first one allows for such ideas as "too busy" while the other simply allows for excessive memory usage that will lead to crashes.

If you don't exercise some level of common sense in the insertion of events into the stream, you can't be upset when the stream can't keep up with the flow of events - and the Garbase Collector can't keep up with disposing of all these created objects. Yes, it should in a perfect world, but this isn't, so it can't. With one Keyboard Event Object (say) that you reuse again and again for the different events, you don't have a problem with excessive memory usage. Also, in the Keyboard Event Filler you can say "OK, I've got 50 keyboard events in my buffer - that's enough, throw the rest out." or something similar. In any case, you can easily control the number of events since you're controlling them at the source. It's this kind of systems thinking that I'm seeing so completly absent in so many Java development projects these days.

C, Obj-C, C++ - they all made it hard to allocate and free memory and objects so you were pretty darn careful about what you created, where you passed it around and who freed it. Yes, this lead to memory leaks and this, in turn, lead to memory profilers. But the problem of
over-generation of objects seems to lie clearly at the feet of Java as it makes it too easy to create without any knowledge or care about the consequences, and lifetimes of these created objects.

In some ways, in the hands of good developers, Java's Garbage Collection is a good thing. But it doesn't absolve you from thinking that it's not magic. And that's where you get into all the trouble. In this regard, it'd be better to write in a little more complex a language just to force all the developers to think before writing.