Some years ago I was doing some simulation work for a company that had a problem with the creation of the wiring looms (some say ‘harnesses’). It was a bottleneck job, and they wanted a means of working out how many looms they could make each week.
Although flexible ribbon connectors are increasingly common, particularly in small-scale applications, you still find wiring looms in everything from PCs to railway locomotives, and just about everybody makes them the same way: lengths of wire are laid out on a board (the “loom board”), wrapped together and terminated with various connectors. Constructing wiring looms is quite a difficult task because they have to be done neatly and consistently, so they fit well and they don’t snag or fray. If my VW Polo is anything to go by, it would appear that Volkswagen are attempting to cut costs by having colour-blind chimpanzees do all the electrical work, but for most manufacturers, looms remain quite expensive because putting them together is a skilled manual task.
Now, a key problem here is that some looms are very complex, and that demands a large loom board. For the company I was working with, some of the larger ones spread over several workbenches, and strict certification requirements meant that only a single person could work on any one item, so they had large areas of bench space occupied for long periods of time.
Initially I set about developing a simulation that showed each of the benches as a workcentre, and developing an algorithm to determine the routing for each job. This was a classical simulation, representing a top-down view of the facility where cables were assembled. It worked – sort of – but the representation didn’t actually assist with the most important task, which was choosing which jobs would be done where, and when. Some ‘rules’ suggest themselves immediately: for example, it’s generally a bad idea to send a small job to a large bench, and it’s a bad idea to send a job to a ‘middle’ bench as it might prevent a large job being fitted in… but these things can be done, if circumstances (looming deadlines, if you will pardon the pun) require it.
Coming up with a smart way to choose what went where, and when, was complicated. Good scheduling requires that work commitments are considered in a holistic sense, not just reasoning along the lines of “OK, this bench has just become free: what shall we make next?” but thinking ahead. Making any decision based upon a snapshot of time is highly simplistic, and doesn’t produce an effective schedule. That a bench happens to be unoccupied and big enough is a terrible reason to allocate your capacity. Waiting just ten or twenty minutes might allow you to send a job to a much more appropriate place.
Complicated! If only there were a way to ‘see’ time…
Well, there is. After all, why does a simulation have to show the floor plan of a factory? What real benefit is there to showing the arrangement of workcentres on screen? Instead of plotting x against y, to show the physical boundaries of each loom board, which isn’t terribly interesting, my colleague Allan Hodgson suggested plotting x (bench width occupied) against t (time) in such a way that future jobs appear further up the screen, ready to commence when previous jobs end.
I’d recently bought a shirt that came in a nice box, and this formed the basis of a prototype. I made wooden boxes that represented each job, with the width showing the bench space that would be occupied, and with height denoting the time for which the job would stay on the bench. With the shirt box suitably calibrated (packed out with spacers, such that its width represented the total space in a row of benches while its height represented a week of on-shift time) scheduling became a simple game of seeing what you could fit in the box.
Anybody who tried fitting a job into the box by rotating it through ninety degrees was either an idiot, or deserved a Nobel prize for having discovered a way to turn space into time, and vice-versa. (But probably an idiot.)
“Shirt-box scheduling” was positively embraced: it made sense to virtually everybody who saw it. One objection to the approach was that gravity had an influence: there’s no guarantee that you want everything to drop to the bottom of the box (ie, to begin as near to first thing on Monday morning as possible). We talked about adding Velcro strips to the back of the boxes, so planners could practice Just In Time (JIT) instead.
Now, having established the basic principle, I decided to get back to software. After all, what did my box-filling approach resemble, if not what students of computer science call a “suitcase packing algorithm”? I wrote a program that would read in a list of jobs and due dates from a spreadsheet, assign them to an array of ‘virtual shirt boxes’ and do its best to fit everything into the time available. A key feature was that the software allowed the planner to drag jobs around, so they weren’t simply dependent upon what the computer generated, but could tinker as much as they wished. I tried to preserve the original ‘shirt box’ feel as far as I could.
It worked pretty well. In fact, the approach won me a minor award: best applied research in industry at the ICMR 2004 conference (Farr et al, 2004). But here’s the thing: companies don’t like unfamiliar software tools. You can perform a one-off simulation exercise and make recommendations in a report, and everybody’s happy, but actually getting a tool into regular usage in a company is much harder. I installed the software on a PC and placed it with the partner, wrote a manual, gave training… and they returned it a few months later. It seems it just didn’t ‘take’. But they kept the shirt box and the wooden boxes.
Sometimes, it seems, you don’t need a fancy computer system telling you what to do; just a real-world tool that everybody can understand, and a bit of common sense.
Farr R, Hodgson A and Gindy N (2004) “A highly interactive user interface for work scheduling” Proceedings of the 2nd International Conference on Manufacturing Research (ICMR 2004) 7–9 September 2004, Sheffield Hallam University, UK