Minutes

October 13th, 2009

Today was mostly meetings. That means I have little to write about.

One of the meetings was “Next week we will tell you what you have to do for plant-wide physical inventory.” That’s great. Next week I am not in this state. So let me ask some questions. “We are still working on that. Next week we will have it figured out.”

My boss wants to know either today or tomorrow where this late shipment analyisis is going. I told him I hadn’t had much time to work on it. So within the next 30 minutes he gave me something to do all day Thursday and Friday. Okay. But now please don’t ask me where my project is going, because you already made that decision.

We also had a meeting where we asked the customer service folks, the ones who answer phones and talk to customers, not to expedite orders that don’t need to be expedited. And then we (by “we” I mean my boss because I didn’t know what he was going to commit us to today until he did it) promised that for every order we would do everything we could do to find a way to ship it. No, not every order; about 80 to 90% of the expedites that I see.

An example would be checking for the necessary item or component as contained in some other item. On our system, this means using one screen to run the list of where the item could be used. This will include items that are hardly ever or never made. Oddly, it will also almost always include the same item several times. I am not quite sure why. But you must mentally drop the duplicates out, or repeat your work. You need to use a different screen to check whether there are any of these various items actually in stock.

If I am going to do that for 80% of my expedites, that pretty well takes care of my flexible time. But I have the lightest load of expedites of anyone on the team. I don’t know what my team-members were thinking when our boss said we would do this for most expedites, but I can guess. I wish he had asked our opinion before he promised it publically to everybody.

Permission and responsibility

October 12th, 2009

Today I resolved:

  1. Why a tool could not be received into stock as finished. Someone had mistakenly gotten the impression that a whole line of tools was discontinued and had merrily set them as such. Nobody in the building knew what was going on, initially. I referred the matter to the guy who is supposed to manage that line of tools because somewhere, sometime, I learned his name. (Note: I have not yet succeeded, about a month on, in getting the guy who is supposed to make a certain component obsolete to do so. Such is ying and yang of the universe.)
  2. Why the system still thought it could drop intracompany orders for a part that had more allocation than stock on hand. Hundreds of pieces had been written off and the allocation had been left high and dry. But there were still as many pieces left as were allocated on this particular intracompany order, so it still got through the logic. And no, it was not a problem with the new program I am responsible for that is meant to make intracompany orders easier.
  3. Whether we could ship a nut, bolt, and washer from our factory to a customer, or whether it would be necessary for us to buy the parts, put them in a baggy, and ship them several states away to a warehouse before they could ship. It was not enough to ask the planner of the “assembly” order why it was scheduled to take so long (December). I had to follow up and specifically tell him that we actually had the nut, bolt, and washer in stock; so could he please release the order? And I had to make sure that they did in fact ship to the customer, and not on an intracompany order.
  4. Why we were so often finding it necessary to adjust intracompany order picked quantities and our inventory on hand, and why the intracompany orders wouldn’t ship. Actually I am blending in bit of a problem from last week into this one. But anyway it was intracompany orders. And no, it wasn’t a problem caused by the new program for intracompany orders that I am responsible for, although that program was used in the perpatration of the crime. Equal parts user error and a really failure-prone systems process. Too complicated to explain further.
  5. What we were going to do about a really important, nay vital, critical, crucial requirement for shipments going directly to any overseas location; which said requirement we had never heard of before and didn’t entirely understand; and that, in conjunction with a shipment that was to go directly overseas which was absolutely hotly needed to ship today. I said to just ship it the way we have been. (Please send the bail money now. I didn’t realize customs laws were so serious.)
  6. Why one of the locations that should have been on my report about expedite requests across the division was not on the report. There were actually some smaller ones that were also missing that I didn’t notice. I am the sole officially reporter on expedites in the division, the only one capable of figuring out how to turn the data into information, but nobody told me when they changed the name of some of the locations on the system and thus broke my reporting process. It was not hard to fix. It was just puzzling to discover.

I am not quite sure whether any of these things except the last is actually my job. I know I didn’t resolve what was wrong with the late shipment analaysis program I was supposed to have completely and uttery resolved by October 2nd. Or if not then than at least by July 31st. Oops wait… heh. Um. So anyway.

Oh, one more thing about the first thing. There are only two people in the plant who can change the status of an item and neither of them work here anymore. They got downsized or reorganized or opportunized or whatever it is that we call it. There is maybe a third person who can do it; also gone. There is still someone else who can do it–on vacation. Gone to a wedding. There might even be a fourth person–but gone. Another guy, the egineering manager, he might–except no, all he does is ask the guy who is at the wedding.

But! There is, actually, still one person in the plant–today! Who has the systems permissions to change item status. As long as you send someone else (who does not have the permission and also who is not me because I don’t have that kind of credibility, apparently) to show him how to do it.

You could poke your eye out

October 11th, 2009

(Note: this post was due Friday, but delayed.)

I received by e-mail notice that one of our plants in another country had experienced a near-miss. A hoist being operated had failed, causing the load to fall to the ground. The problem was that a safety stop that limited the highest (shortest line) point of the hoist had worn out because the hoist had been topped out on a regular basis, and then whithout this stop the tackle on the hoist had knocked into the anchor point on the hoist until that broke, too.

I think it is quite a good idea for Acme to communicate these safety incidents throughout the entire company. It brings home that all those hazardous things that could happen sometime do happen sometimes. Some time ago we heard that a forklift operator in another plant had knocked into one leg of some racking, and the failure of that one leg brought down the whole row in a chain reaction. We are not talking about retail store racking; we’re talking industrial racking with steel verticals bigger and stronger than the structural members of your house.

You know what? I’ve knocked into something on a forktruck before.

Just show up and save the day

October 8th, 2009

Today I fretted about what I was going to do more than a week from now.

The initial reason for my trip was to help another location learn how to manage intracompany orders. Intracompany orders are very tricky; you can do too much with them. For instance, if you order 100 pieces from me, I can confirm that will send you 80 pieces. From then on, all of my system reports and schedules will only show that I owe you 80 pieces. Or I can confirm that I will send you 500 pcs. And then that’s what I owe you; you do not have to approve it.

Now, if the system on your site thinks you need 100 pcs and I  confirm only 80, your system will automatically add a new request for the other 20.  But that gets into another whole bit on how request appear, show due, and automatically adjust both date and quantity, and I am trying to keep this simple. So back to confirming quantities.

The new supervisor in shipping has been confirming only what she currently has on hand to send. I told her she should stop doing that because (notwithstanding what I hinted at above) it was prevent the requesting site from getting what they really wanted.

Then the shipping supervisor had an order which was created for the express purpose of moving the entire quantity of inventory from our site to their site. Between the time the order was placed and when it was ready to ship, a customer sales order had been placed to take one piece. So then I told the supervisor that she should confirm the request for one less piece than it was originally entered for.

Intracompany orders are hard to explain, and the “right” way to do something depends on how you want to manage them. And we are trying to change several parts of the system, too. Trying to envision how I can best explain this to people I have never met before, and also best capitalize on this to get more useful documentation together for all the four or so sites I know of that are affected by this process, took a lot of my imagination and energy. Not to mention lining up the other things I am also supposed to accomplish on this trip.

The entire schedule may have to be re-done, though, because that site I am supposed to help hasn’t actually said which day is good for me to show up and enlighten them. I was kind of waiting for my boss to tell me that. I would have just asked them myself but I am not entirely sure who they are. And the day that I arbitrarily picked to be at that site, other people who are supposed to go with me aren’t available. So I will probably spend tomorrow too fretting about what I am going to do on the week of the 19th.

Why data doesn’t mean anything

October 7th, 2009

Today I finished a report that my boss wanted as soon as possible at the beginning of the month, or at least no later than end of business on Friday. Last Friday, I mean. He even told me to get it done ahead of several other things that he wanted immediately at the beginning of the month (or at least by the end of Friday).

It took so long–beside of course the fact that it wasn’t the only thing I was working on–because it require combining multiple incongruent data sets. The primary data concerned how often we changed the promise on orders. To get the different perspectives on this that my boss wanted, it was necessary to compare the primary data with both shipment records and open order records. And shipment records and open order records are different because an order can ship several different times (as partial shipments) but there is only one record for the open (balance of the) order. All that we wanted was permanent information about the order like what item was ordered on a particular line and where the order was shipping to, but we don’t store that information by itself (where I can access it) so I have to skim it off of open and shipped orders.

And we actually store the current month’s shipments in a different place than rest of the current year. So I had to combine month to date shipments with year to month shipments and combine those (which had multiple records per line) with open orders (with only one record per line).

And that is when I found out that in our system you can book a particular line, ship it completely, then book the exact same line number for a completly different item. Not to mention that you can change the shipping information at any point–even while lines are partially shipped. And you can move lines from one site to another.

So I had to use union queries to combine the shipments records (just the quasi-static fields such as order, line, item, and shipping address), then another union query to combine that union with the open order records, adding a “preference date” (date of shipment or date of open order snapshot). Then I had to pour that into a new table,  sorted by order, line, and preference date, so that I could query and group by order and line taking only the last record (by prefernce date) for the other fields. The idea of “last by date” doesn’t seem to work if you try to do it from a query that’s sorted; from my experience the records have to appear in order in the table for the concept to work (using Microsoft Access).

Some of the data never associated at all because a promise on and order had been changed and then later the order had been cancelled (or some other exception) so that while we had a record of changing the promise on the order, I from my sources did not have any record of the order ever existing.

And then after that I had to do the actual analysis my boss wanted, including comparing my results to analysis done by my bosses’ peer, who is considered less of an expert on the data extraction, and explain any differences. And that’s when I found out Access doesn’t have built-in functions for Mode and Median–only Mean.

Safe from the unknown

October 6th, 2009

Yesterday I told my boss I needed to talk to him and then I told him I wasn’t sure what kind of message he was trying to send in talking about my job six to nine months down the road, but I wasn’t going to relocated and I wouldn’t feel comfortable having the company pay for my training if we were going to part ways. I think it seemed abrupt to him.

In the summer when I was talking to someone about my current job and my future career and how a different baccalaureate degree could help me get a position that I did not think I could get with my present company–but believed my company would pay for, per their policy–he advised me personally not to do such a thing. Even if the company would pay, by dint of some policy, he said I should consider if I wanted to take their money knowing full well I wasn’t going to use the training for their benefit.

I realized I agreed with him, and I had for a while been turning this idea over in my head to see if I could find a way to make it look appealing and justified. Now this present training I am trying to get paid for is not four years of college, but I found myself thinking that if the future of my job was in doubt I really needed to make sure I secured this training now to establish my future career.

But my boss said he sees my future role as a resource for all sites; special reinforcements or general substitution,  whatever may be needed. I can readily picture what that job will be like.

Not guilty

October 5th, 2009

Today I rescheduled my travel. I was supposed to be on a plane about six in the morning tomorrow at an airport about an hour away. I spent last week hacking and snorting snot. I was at work, yes, and I was embarrassed to be so contagiously ill. I started feeling really seriously sick the Friday before and thought I was going to get over the worst of it on Saturday and Sunday. But I kept right on feeling lousy all week.

I used to save up my vacation so I could take time off if I got sick. But my boss–everyone’s boss–has really been after us to schedule all our vacation and not carry it over. So in early September most of my vacation got used up. I have a few days left, two or three, but it wouldn’t have covered for all last week. And this week.

I think I finally turned the corner (no, really, this time I really did). But I went and got a prescritption anyway. The last think I want is to still be coughing — feeling better, maybe, but still spreading germs — when I actually travel two weeks from now.

But I am guiltless on rescheduling this week’s travel. My boss already wanted to amend how long I would be down there and that was already going to incur the rescheduling fee. And two weeks later is a cheaper fare, partially offsetting the fee. The plane doesn’t come back in on Friday until about 11 p.m. but I get paid travel time.

It occurs to me that at the current air fares I probably get paid enough in travel time to pay for an earlier flight back. Oh well. The cheap tickets are partly due to the long layover in Detroit this airline is treating me too, so it’s hard to get an earlier flight without leaving midway through the work day at best.

Dissecting and sorting

October 2nd, 2009

Yesterday I helped someone check our inventory. We have plantwide physical inventory coming up at the end of the month and we are trying to clean out all the really obvious garbage from our system. By “garbage” I mean things like Part A in location 8 with a quantity on hand of 0, and in location 2 with a quantity on hand of 4, and location 5 with a quantity on hand of 326.

This fellow B. E. who works in the stockroom asked for my help getting a list of what the system thought  was in a certain area so he could consolidate things and elimate null locations and so forth. Retrieving the locations, part numbers, and (nominal) quantities on hand was straightforward, but then he wanted the results sorted in a specific way.

The location designations are in the following format: O4GH9. For our area of interest, the first letter (O) never varies and the second letter (G) never varies. Both of the numbers could be two digit numbers (4 could be 14, 9 could be 11). B.E. wanted the locations sorted first by first number, and then by the last letter and number.

For MS Access, a number is a different “thing” than a letter, a different type of data. But numerals can be used in text (as letters, so to speak). A string of characters that contains letters and numbers will be considered letters, and the numbers will not be recognized as numbers per se. What this means is that if you have three strings, 1A, 2A, and 11A, Access will consider each ‘1’ to come before any letter and before the number two, resulting in this sort: 1A, 11A, 2A. You may have seen this kind of behavior when you were working in Excel or some other program, too.

So I had to add some extra columns in my query that broke out bits of these locations and used them to sort. And I did it, pretty quickly too. Here’s what I did:

I actually constructed the second sort first because that’s the first sort he told me about, and I use a bit of the second one in the first one. First, I found the second letter that never changes by using the InStr() function, which returns the number of characters into the string that the searched character is found: InStr([location], “G”).

To get my sort key I took a piece of the string starting with that letter using the Mid() function, which begins at the specified number of characters into the string and continues for the specified number of characters (or until the end if you do not specify. I did not specify an end location and I am repeating the function above (which gives me my starting location) inside this formula:

Mid([location], InStr([location], “G”)). On our example location, this would result in “GH9.”

The second sort I built (which ultimately was the first-priority sort) was more complicated. I started with the Mid function to get a piece of the string,  skipping the first letter which was always the same (so starting on the second character): Mid([location], 2, ….

Then I needed to know how many more characters to go forward. To know that I needed to know how far away the next letter than never changed was. Finding that next letter means I need to use InStr: Mid([location], 2, InStr(…

But I don’t want to use InStr to search my whole entire location string. I only want to search the part ahead of that first letter. So that would be the entire string starting from the second charcter, using Mid: Mid([location], 2, Instr(Mid([location],2)…

And what I am looking for is that second letter that never changes:  Mid([location], 2, Instr(Mid([location],2), “G”) …

Close off our original Mid function: Mid([location], 2, Instr(Mid([location],2), “G”))

Running this gave me a result the included the second letter that never changed: from our example, 4G. This is because I was starting my search after the first letter that never changed, on the first character of the number. So 4 = 1st character, G = 2nd character, and that tells the mid function to proceed from the starting point 2 characters. So I told it to back up one: Mid([location], 2, Instr(Mid([location],2), “G”)-1)

Now I had my number, but because the numeral came out of text-numeral string, Access still thought of it as a letter. So I converted it to an integer using CInt(): CInt(Mid([location], 2, Instr(Mid([location],2), “G”)-1))

And that was easy. Today’s job was hard. So I won’t explain it.

Guru

October 1st, 2009

I was going to write about a clever sort of a mixed alphanumeric string that I did, and congratulate myself (not for the first time) on how quickly I did it, but I got all confused trying to remember what I did. So that story will have to wait.

Almost every day these days I get at least one call from someone in shipping. With all the people who have left I have some of the broadest knowledge of technicalities in shipping. I was called today because an order that was supposed to be out for pick couldn’t be found, and C. M. wanted to make sure it was okay to delete it. C. M. was working with the very newly trained semi-clerks (the clerk positions are gone so he’s not a clerk) and they said they had checked both the main Orders system and the shipping software and they had no record of the shipment, nor could they find the paperwork.

I couldn’t remember the screen on the orders system that I wanted and I felt like a dunce because it was one of my favorite screens for troubleshooting. It was this cold I have, I think. I had to look it up on the cheat sheet I wrote for C. M. last week. I was going to use the screen to look up the shipment number. As I did so C. M. told me they already had the shipment number. But they didn’t; they had the shipment number for an earlier shipment on that order. “This is why we call you,” C. M. said.

Lately I have been touching a lot of old databases I have built over the years, as far back as the first year I was here. I love it. It makes me feel so special, so appreciated and needed.

The Boss

September 30th, 2009

Today was the endof the month and the end of the quarter. I worked late because of this.

It’s been a long time since I worked late because of the end of the month. At least, if I was sick and would rather have gone home at any point during the day. It’s been a while since my boss specifically asked me to get involved with the end of month games.  Actually I was working closely with the manager mentioned in my last post, both sharing the same pupose.

I’m not sure if I was supposed to be all along or what. My boss asked me what I usually did, so I told him: “Nothing.” If the orders get properly booked then they will ship and it will all be happy.

This month, though, it became important that we interfere. For months we’ve been working to get the majority of our product shipped from the distribution warehouse several states away, and we’ve had plenty of opportunity to see that we can’t easily decide to ship the product direct; it takes a considerable amount of intervention to pull this off. But this is what I was asked to do with everything I could get my hands on. I was also told to follow some exceptional rules in deciding which orders to ship.

I believe it is substantially and seriously true that we do not operate our business around the customer; we operate around the shareholder. Shareholders are the real customers of public companies and especially of the managment of public companies. In crunch time, it is not customer priorities that matter, but shareholder priorities.

I have a lot of trouble working for my current boss. I try sometimes to start off with an open mind and a positive attitude but if there is anything much going on he usually handles it in a way that disgusts me. He did it again today.  I got this boss the same way I got my last boss whom I liked and respected: doing nothing. In both cases I was reorganized without my prior consultation and wound up with a new boss.

This happens all the time everywhere–getting new bosses, I mean. Promotion, firing, job hunting, retirment, politics in general; it’s vain to plan your career around a personality.