Archive for the ‘Cube Life’ Category

It’s Amazing How Much Work a System Can Take

Wednesday, October 29th, 2008

SwissJupiter.jpg

Today has been nothing more than one little task after another. A million cuts. Nothing that hard - assuming you know this particular system, but it's amazing that there's nothing in this multi-million dollar system that allows you to "update" it's components en masse. There are some tools, but as evidenced by what I've done today, they aren't very good, and everything has to be verified to see if it actually worked. That's no way to work.

Then there's the tech support... virtually non-existant, and when they do try to help, you're lucky if they answer the question. OK, they have the easy ones covered, but those, by definition, aren't what you need help with. The hard ones like how are messages passed in this single-threaded model of yours? or I can see the data in the GUI client, but how can I get at it programmatically? - those, well... I've found that it's important to ask, only to have a written record of them not answering. In the end, you have to figure it out.

But what has struck me today is the mountains of work that this system - so very close to production status, is taking. It was supposed to make things easier... reduce the staffing requirements... eliminate systems... but it's having the complete opposite effect. New processes and applications are being built to interface it to systems it's not replacing. The number of people keeping it going make me think of the building of the great pyramids of Egypt... thousands of people toiling for their entire lives to build something one person is going to use. Kinda sad, in a way.

So today has been that kind of day that we move bricks. Nothing impossible, just lots of little bricks.

DataGraph and Framework Updates to 1.6.1.1

Tuesday, October 28th, 2008

DataGraph1.5.jpg

I noticed this morning that DataGraph had been updated to 1.6.1.1 with several bug fixes regarding the inclusion of multiple y-axes on the same plot. Since I love to play with DataGraph, I decided to get the update for the app and the Framework - who knows, maybe I'll get around to playing more with it today and checking out the differences.

Micromanagement 101: Never Trust Anyone – Even Your Staff

Wednesday, October 22nd, 2008

PHB.gif

I can handle being questioned about the work I do. I know to many it's a series of rules that ends up with numbers that seem to defy explanation. But they all make sense, and when I put them in front of people, they all agree. "Oh... now I get it." is very common for me to hear. And for the most part, I don't mind explaining the way things work to people. Sure... if this is the fifth time I've explained the same thing to the same person, I'm going to get a little miffed because they clearly aren't listening, but barring that, I can explain this stuff to anyone.

Today, however, there have been a ton of questions from folks that aren't careful with what they are saying, or what I'm saying in return. If you're sloppy with the wording of your question, and I read it literally, then you might not get the answer you're looking for. I don't apologize for this, it's important - ask me what you want to know - and be accurate with your choice of words.

So we end up with these horrendous email chains. Even this, I see value in because it's teaching people that I'll be glad to answer their questions, they just have to be careful about what they ask. Better to be more general with the question than too specific. But what really gets me chapped is the complete and total bungling of a project my micromanagement.

If you're smart enough to be able to effectively micromanage, then that's OK... you're a partner to me in the process. I can live with that. It's a division of labor. But if you're not that smart, or well-versed in the topic, then you had better back off a little as you're going to mess things up and make both of us look bad.

Case in point - this long email chain. It started out by a user asking what's changed. In my mind, nothing. Since I was point on this project, I answered - Nothing. Then the micromanager that decided not to tell me what's going on chimes in saying "Well... this and this have changed." Nice... now we both look stupid. He's not able to effectively answer questions without me as he's not got the domain knowledge, and I can't force him to keep me in the loop on his other changes as he's the manager.

So to the others, we look like Keystone Cops. What a joke.

It doesn't matter that the changes didn't effect the quality of the data, they were changes that the user can believe might have changed the quality and it's just another thing we have to battle for no good reason. If you're going to micromanage, then you have to be really capable of it.

So the upshot of this is that I refuse to take point with this guy again. He can field all the questions, ask me what he wants, I'll answer him, and then he can answer them. If he wants to be a manager, then he had better be a manager. I'm not going to take any more heat for his mistakes - including mistakes in miscommunication, again.

Your Disaster is My Picnic

Tuesday, October 21st, 2008

cubeLifeView.gif

I've been dealing with some users in London, and while I haven't worked with them in the past, I hadn't expected what I received either - near paralyzing panic towards any change. It was almost funny, if it weren't so sad, and they have the final sign-off on the deployment of the work I've been doing of late.

They want to think of themselves as "clued-in"... you know, aware of the ins and outs, the whys and wherefores, of everything that's going on. They are, after all, the users, the Big Cheese. You don't get much more important than that. But in reality, they are people, no more, no less, and have limited attention spans, and finite memories, and make just as many mistakes as the rest of us do.

So when one of the users doesn't like the price my injector is sending in, he calls it a "bug". Fair enough, he doesn't know it's acting exactly as it's supposed to - he sees something acting different from what he expects and it's a problem. So I explain it to him. I explain that there are rules that are followed, and why. I explain all this to him so that he understands that it's not a bug, it's a conscience decision. I feel that he may not be happy about the outcome, but at least he knows it's not a mistake.

Or so I thought...

Next he starts talking to other folks about the "bug" he's working on. Sigh... it's not a bug, I explain again, this time to a larger audience, it's a design choice made by the heads of the business, and not to be changed lightly. But it can be changed, if necessary. At this point, I think it's explained well... with examples and reasons for the individual rules.

Sigh...

I see it coming up again. Now I know this guy is not dumb... he's probably just not paying attention to the things I'm saying. Ignoring the details of my messages and just reading what he wants to read -- "You're not going to get it." From there, it's a simple "Oh yes I am!" and we're off to the races.

In other situations, this guy is probably a decent guy. But here and now, he's making me realize that I need to use smaller words, and treat him as I would a child. I have no desire to do this, but it's the only way to keep from wasting both our times. It's working the way it's meant to work, so it's not a "bug"... please stay with me, here, people.

One of Those Days You Wish Never Happened

Monday, October 20th, 2008

cubeLifeView.gif

I try to have a decent attitude about the day, but from the first moments of today, all I've wanted to do was to go back to bed and forget about work. I did my run and got to work - I even got reasonable gas this morning - $3.099/gal... but it's been a struggle just to keep going.

I need to have something to look forward to. Maybe that's a weakness of mine, and a co-worker called it my need to have something to complain about, which may seem true, but I think it's the need for a challenge... a fight. Something to struggle against and overcome. That's what makes a day great.

Today has been a struggle just to keep going. I sure hope that this evening helps to refresh me and make it all seem better. At least something to look forward to.

ScribeFire – Decent Blogging from Firefox

Friday, October 17th, 2008

Firefox.jpg

I have been having a lot of issues trying to get a blog editor on Windows and Linux that's decent. In fact, the only editing tool I've been able to use is really the WordPress editor. The others I've tried mess with the date/time stamp and make it impossible to really do what I need. But there's hope - ScribeFire.

I was looking for something about the date/time issues with Deepest Sender, and came across a link for ScribeFire, and decided to give it a try - couldn't hurt. I was very happy I did.

It's not exactly the UI I'd have chosen, but then again, it's not the worst I've seen. It works, and amazingly, it doesn't mess with the posting dates. That's great. Don't get me wrong, it's not MarsEdit, but then again, most of the postings I use Windows and Linux for are work-related, and that's easy stuff.

Anyway... I have a new blogging client and I'm hoping it works every bit as well as I hope.

Having a Pretty Decent Day

Thursday, October 16th, 2008

smiley.jpg

It's pretty amazing... I think it was the movie Hellraiser where the "bad human" (as opposed to 'Pinhead') said that the ultimate pleasure was the cessation of ultimate pain. I hate to think of having a good day as the absence of having yet another horrible day, but maybe it's just that easy.

I've been able to do a few things today that have nothing to do with the project that would make 'Pinhead' scream and I have to say it feels very good. I've done a lot of work on that 'puzzle box', but even in doing that, I was able to actually make some progress as opposed to being foiled by users not being specific on what they want, or the docs and tools making it virtually impossible to get what they ask for to work.

So it's a 'smiley' day... now if I can just leave before it turns bad again...

MarsEdit Fixes Little Bugs and Releases 2.2.1

Wednesday, October 15th, 2008

MarsEditIcon128.jpg

Once again I got a nice little tweet from MarsEdit that it was ready to go with lots of little fixes for version 2.2.1. Many, it seems, are specific to the Atom publishing protocol, and the tweet said that it was happily speeding towards 2.3.

Good enough. Got it, and am using it right now. Super.

The Return of an Old Favorite – iTerm 0.9.6.1012

Tuesday, October 14th, 2008

iTerm.jpg

In the days of Mac OS X 10.4 - when the Terminal.app didn't have tabs, I was a big fan of iTerm. But when OS X 10.5 arrived and Terminal.app had tabs and workspaces and seemed to be just as nice, then I stopped using iTerm and went back to strictly using Terminal.app. But it hasn't been perfect. iTerm has much better control of the rendering of the window than Terminal.app does, and while speed is no longer an issue, the ability for iTerm to remove the scroll bar from the window is still a big plus to me.

I've tried several hints off the internet to remove the scroll bars on the Terminal.app windows - even going into Interface Builder and seeing if I can remove them there. Unfortunately, no. It's not something that's supported any more. I can see the reason - the resize handle. If you want to have a resizable window then you need to have the resize widget. If you have that, then it's going to have to exist in the left border or the bottom. So you might as well have it in the left and not make problems for yourself.

Of course, iTerm solves this by simply removing the resize handle with the scollbar. If you're going to be looking at an undecorated window then chances are you're a guy that's going to set the size of the window and leave it. I can see the trade-off. I just wish Apple agreed and put something into Terminal.app to remove the scroll bar and resize widget.

Until then, when I really want to have a terminal window without the scrollbar and resize widget, I'll pull up iTerm. With the new version, it's better than it was, and maybe worth another serious look. After all, for all of 10.3 and 10.4, I used it instead of Terminal.app.

UPDATE: I started playing with it again and I have to say I'm a little disappointed in iTerm - it's memory usage with one window open is more than Terminal.app with nine windows open. While I'd really like to skip the scrollbars, and I will still keep it on my box, it's not worth the memory footprint. Shucks.

Getting Folks to see Their Work Objectively isn’t Easy

Monday, October 13th, 2008

cubeLifeView.gif

Today I had to clean up a mess of code that another developer made. He started with a xmlrpc python server/script that a co-worker wrote, and modified it so that it wasn't really working anymore. I then fixed that up to work, but didn't work on optimizing it for speed. I just needed to get it working first. Then, as I worked on a simpler case to get the speed up, he worked on adding a few features.

I finally got an sub-set implementation that promised to have a solid improvement in the speed and put the changed code into my version of the server. He tried it, but the changes he'd made on his end had been too much to work as-is, and he asked me if I could retrofit my changes into his current code base. I had a look at it and the code was a horrible mess.

This guy is not a trained developer. In fact, his development experience is really scripting for the last several years and that's it. No real significant formal training. He's typical of those developers that hack, print variables, hack some more... copy/paste... never really trying to see what he's doing and try to have a cohesive body of code. But in the end, more times than not, they hack something together that technically works.

I spent over two hours this morning cleaning up his code to get it into a maintainable state. Not adding new features, mind you - just cleaning up the crud. When I told him this was a mess, he got quite defensive, as I expected he would. It's something I've run into time and time again. People know the truth, but they want to deny it because "it works".

Well... it may work, but it's a mess. It's not maintainable. It's going to get worse and worse until at some point it'll be impossible to make a change to it. It's brittle, overly verbose, and lacking any real design. In short, it's a disaster waiting to happen.

I don't enjoy saying it's a mess to people doing the best they can do. But in the end, if they don't see it themselves, someone has to tell them or the overall product will suffer. And suffer badly. It took about twenty minutes but I talked him back from his anger/defensive position, so that he realized that I wasn't commenting about him, only the work. He needed to call in help earlier to minimize the work in this kind of merge. I'm not sure he got it all, but I'm hoping he did... at least enough so that he asks earlier next time.