Well, after a eight weeks of globe-trotting it’s been back to more mundane locations this month. Effing Jeff, bless him, had recommended our services to his friend Bob who owns several factories. As a friend of Jeff’s Bob shares similar linguistic tendencies although he’s not yet attained Jeff’s superlative standard for swearing. If my dear Auntie Margaret, who could have given morality instruction to Mother Theresa, had heard him Bob would only get a good tut-tutting two sentences out of three whereas Jeff would score 100% every time.
Bob needs some software. When I visit to ask what the project needs to cover I’m told “Stock” as if that’s all I need to know. Now, stock control systems come in any number of “flavours” with some best suited to retail situations, some to storage & distribution and some to manufacturing – there’s no one size fits all solution that really works in all circumstances. I try to explain this to Bob who quickly gets bored with the level of detail I want to go to and “asks” me to “B*** well get on with it”. Where Jeff effs Bob blinds. I protest that there’s much more we need to know before you can even start to determine what’s a good solution but, as Christopher Duncan (author of last month’s book of the month) remarks, I’d have more success teaching calculus to our cat.
Anyway, Blinding Bob, like any good businessman has an eye for a good cost-saving wheeze and has taken to providing employment opportunities for our EEC brethren - he has any number of Czech workers in his Lancashire factories. He says that they’re willing to work longer and for less money than English guys and will work week-ends as well. He also introduces me to Katja a Finnish girl he’s employed who’s going to be in charge of the stock control project. And Health & Safety. I’m surprised he doesn’t follow Mr Mean’s lead and throw in web site design and fork lift truck driving as well.
Katja turns out to be intelligent, pretty, enthusiastic and very keen to do a good job. We explore alternatives that include using an off the shelf general purpose package like Sage, looking for something more specialist that already exists or starting from scratch. The general purpose alternative doesn’t really stand a chance. The nature of the materials we’re recording and what we need to know about them precludes that. Anyway Bob wants us to use bar coding to track ins, outs, usage and inventory checks and Sage doesn’t support that directly. He went into detail (for him) with this instruction – “use bar-coding” !
I search the net and find one existing “package” that has many of the features required. It’s missing a few of the things that are quite desirable and has a pile of stuff that we don’t need at all. How much ? Twenty four grand for the base licence plus sixteen for some add on bits plus £2000 per year per user. That’s per location of course so we need to multiply that by three to cover each factory. If I suggest that I think Bob’s language usage status might undergo an upgrade.
So Katja & I begin a dialogue about a design for a custom program. Being keen and enthusiastic she keeps thinking up useful new features and phones me to discuss them. A lot.
The phone rings - Mrs R answers it and transfers the call to me. “It’s your Finnish girl-friend” she says. “Again”. She says this in a jokey kind of way, but there’s a hint of something lurking there in the voice. Any man who’s had that “What’s the matter dear ?” “NOTHING” conversation with a woman will know exactly what I mean.
We decide to use a variant of my Vladivostok barcoder program (see issues 212 & 215) to produce the stock labels and a custom design for managing the stock items. The problem is that sometimes you need to look at stock as individual items (packs) with specific characteristics and sometimes group packs together but in a “fuzzy logic” kind of way based on dimensions and material characteristics. And sometimes to break open the pack & manage the contents. Everybody knows what they do now but they know that’s not good enough but they’re not sure what extra bits they want. This is a classic XP (as in Extreme Programming) project where you start off with the simplest design that will do part of the job then keep adding to it and modifying it in the light of experience. I know this sounds like “making it up as you go along” but it’s really more organised than that – take a look at www.drsaxon.co.uk where you’ll find links to sites with descriptions of Agile Programming and XP techniques plus a review of eXtreme dot Net this month’s book of the month. As you’ll have gathered due to custards with low attention spans and “cat calculus syndrome” we do a lot of XP projects.
One of the main drawbacks of the XP approach is that it’s impossible to sensibly define what the cost will be at the start of the project. The person doing the paying has several options……….
1. Define a budget – this means that the project is over when the money runs out regardless of whether it has what are, at that time, deemed to be all the desirable features.
2. Leave the budget open until the protagonists declare the job finished – few are willing to do this
3. Abandon the XP approach and define exactly what they want up front. This includes paying for the requirements definition. Of course the lack of willingness to do this is what makes it an XP project in the first place.
Bob did say “Just get on with it” - so I keep a detailed log of everything the program does & contains so I can justify the bill. It has 459 features, 14 reports, nearly 5000 lines of code and that’s without our specialist libraries that get linked in that could take the total past 20000 lines. The bill is likely to work out at close to a pound a line but the way I see it is that’s way cheaper than the off the shelf package would have been for even one factory.
Well into the live development phase we discover a snag. The stock that’s been coming from suppliers using our labelling program is fine. The opening stock Katja labelled herself and, at one point got width and height confused so that the measurements she put in were transposed (width instead of height & vice versa). One of the stock searches is all about finding materials of a specific width so, with this data, it doesn’t give the right answer. Production staff are annoyed. Katja is embarrassed. Such a simple mistake but how good, I ask myself, is my Finnish ? Let he who is without sin and all that……
Thank goodness the whole system is based on a SQL database so a simple script finds the offending items and swaps the width & height parameters round. Katja is very grateful & leaves a voicemail message on my phone saying THANK YOU, THANK YOU, THANK YOU.
Mrs R is in the office when I play it back. On the speakerphone. Ooooops.