They say you learn something new every day.

Posts tagged ‘problems’

Lost in the Noise (23/03/2012)

It scares me when I don’t have a way of checking whether something has been done.

At work, my Software Team claim they’d migrated all of an old database into a new database. They did it just before I started, and they said it had all been done.

Today, I went into the back end of both databases, did an export into excel, and then just a vlookup on one of the key columns.

What do you know, of the 47,000 records in the original, 15,000 were missing from the new system.

I’ve picked a dozen or so, and asked them to check them to see what they say. It’s a bit difficult, but they seem to key a lot of things manually, and keying 15,000 records manually is an awful prospect. Particularly since they’re about to get a consultancy company in to review how they’ve set up their system. It’s all wrong.

The difficult thing is, when you know it’s wrong, how do you package it up in such a way that it gets fixed. My co-worker has been ranting and raving ineffectually for the last nine years and nothing ever gets fixed.

I think what I’ve learnt here is that you need to be able to check results thoroughly, and if they’re not right, you need to have a way of packaging it all up into a project and then get it fixed. I’m good at checking things. Scripts, deltas, that sort of thing is fine. The packaging it up and getting it fixed is the harder thing. And if I’ve learnt anything about that, it’s that you have to go to an equivalent manager on the other side to get it fixed, and present it as a complete piece of work with definite deliverables. Anything else and it gets lost in the noise.

Even More Basic (22/03/2012)

Somewhat ironically, given yesterday’s post, I found a way of making my application even simpler today.

I don’t want to go into the specifics, because this site is about general lessons, but I didn’t notice this simplification yesterday.

It involved changing one of the dependencies, and in my head yesterday I’d viewed them just as “fixed” points that I had to work around. Luckily, I was able to change them, and so make what was coming in simpler.

Once I could do this, it simplified the whole internal workflow – basically rather than splitting something into two arrays and searching either of them, I just left it as one and searched it all as once.

I think the lesson is, when you look at a problem, look at all parts of it. A friend of mine at work often says, “What’s the exam question here?”. I think it’s a good way to look at it: often people get so bogged down in the detail, they forget what it is exactly they’re trying to do.

Couldn’t give a Flying Duck (15/03/2012)

There’s a great post on CodingHorror about solving problems by explaining the problem very clearly.

Bob pointed into a corner of the office. “Over there,” he said, “is a duck. I want you to ask that duck your question.” 

I looked at the duck. It was, in fact, stuffed, and very dead. Even if it had not been dead, it probably would not have been a good source of design information. I looked at Bob. Bob was dead serious. He was also my superior, and I wanted to keep my job.

I awkwardly went to stand next to the duck and bent my head, as if in prayer, to commune with this duck. “What,” Bob demanded, “are you doing?”

“I’m asking my question of the duck,” I said.

One of Bob’s superintendants was in his office. He was grinning like a bastard around his toothpick. “Andy,” he said, “I don’t want you to pray to the duck. I want you to ask the duck your question.”

I licked my lips. “Out loud?” I said.

“Out loud,” Bob said firmly.

I cleared my throat. “Duck,” I began.

“Its name is Bob Junior,” Bob’s superintendant supplied. I shot him a dirty look.

“Duck,” I continued, “I want to know, when you use a clevis hanger, what keeps the sprinkler pipe from jumping out of the clevis when the head discharges, causing the pipe to…”

In the middle of asking the duck my question, the answer hit me. The clevis hanger is suspended from the structure above by a length of all-thread rod. If the pipe-fitter cuts the all-thread rod such that it butts up against the top of the pipe, it essentially will hold the pipe in the hanger and keep it from bucking.

I turned to look at Bob. Bob was nodding. “You know, don’t you,” he said.

“You run the all-thread rod to the top of the pipe,” I said.

“That’s right,” said Bob. “Next time you have a question, I want you to come in here and ask the duck, not me. Ask it out loud. If you still don’t know the answer, then you can ask me.”

It’s a really good point. Too often, we just haven’t sorted through things clearly enough in our head and that’s why we struggle to come up with the solution.

I read this, this morning. And while I haven’t had chance to try it out yet, I can think of times when I’ve done it. And now that I’m aware of it, I’m going to make a greater effort to think through the question when I’m facing a problem.

Tag Cloud