When I was at High School in the 1980s I took it upon myself one summer to take the school's only computer (!) home and teach myself programming. By the end of the summer I had written a 3,000 line program (back in the days when lines of code mattered!) that managed the school's shop for snacks and drinks. I wrote to Apple, who were really impressed and suggested I entered a competition they were running, which I ended up winning 2nd prize in - Young Programmer of the Year.
However, what is more surprising is that the basic elements of quality control, getting close to the customer and applying simple arithmetic when I wrote that program still seem to be eluding multi-billion pound companies. It doesn't take an award winning program to sort it out, it's something that's easy for us all to understand.
Roll forward about 15 years. I was working for a very small company with no on-site canteen and when I went out for lunch I went to a very large supermarket for a sandwich. It was fine if you got there before 12 but as lunch wore on, if you got to the sandwich bar anytime after 1pm, your only choice was prawn mayonnaise on white bread. I have nothing against prawn mayonnaise and wouldn't be averse to having it with a meal, but the idea of trying to eat a sandwich of it and the prawns and or mayo oozing out between the bread and all over my desk and keyboard is a scary thought - why don't they have keyboards you can actually clean, there's a thought!
Anyway, here's the "rocket science secret formula" I devised at High School.
X is your current stock level of a product just before going to the shops.
Y was the stock level of the product at the same time last week
Z was the amount of stock you bought at the shops last week after the stock take.
So the amount you had at the start of the week was Y+Z.
The amount you've sold is this number minus X, or Y+Z-X.
Therefore if you know you go through Y+Z-X in a week the amount you need to buy is this amount minus what you've already got, or X
Hence, what you need to buy this week is Y +Z -X -X
So last Friday you had two boxes of crisps left (Z), you bought another 3 (Y) and at the moment there's one left (X). So this week you need to buy 2+3-1-1 or three.
It's not perfect, and doesn't deal with the fact you could have sold more if a stock ran out half way through the week. Nor does it deal with seasonal variations such as no-one wanting to buy creme eggs after Easter. But it does the job, and it does it a lot better than major supermarkets manage, hence the glut of prawn mayo at 1pm. Also, being aware of the shortcomings, it can be improved over time.
Genetic algorithms are the same. They are a way of trying lots of different ways of solving a problem and of trying to get close to the optimal solution but usually a good solution rather than the optimal solution is good enough. One example is playing chess - so long as the computer chooses a decent legal move within a reasonable time then it's good enough - there simply isn't the computing power available to wait for the perfect move. These algorithms are great at problems for where there are multiple correct answers and which are difficult or impossible to solve via more traditional means. However, they really score when all you want to do is make a good choice in a reasonable time frame, it doesn't have to be perfect.
The concept is just as true for delivering a completed project to a customer - it may not need a genetic algorithm to solve it, but cracking the core of the problem and coming up with a good solution in a reasonable time-frame is usually far more preferable then a great solution in a completely unrealistic time-frame and at astronomic cost. A good solution which delivers on time is what the customer wants. In XP terminology, it's do the simplest thing that works.
This customer wants a bit more choice and for supermarkets to look at their algorithm for making sandwiches. It doesn't have to be perfect, but three simple changes will be enough to improve it.
1. Note which type sells out soonest, and make more of these tomorrow.
2. Note which type sells out last, and make less of these tomorrow.
3. Listen to your customers and what they tell you.
Lettuce remember this, make no beef about it and remember which side our bread is buttered on.
The customer is king, and a happy customer keeps both supermarkets and programmers in business.
Food for thought.
By Craig Cockburn, IT Professional from Scotland. Digital Transformation, Agile Management, Politics and Social change
Total Pageviews
Subscribe to:
Post Comments (Atom)
Popular Posts
-
Find me on LinkedIn https://www.linkedin.com/in/siliconglen/ Medium https://siliconglen.medium.com/ thanks Craig
-
An article on how Agile can sit alongside PRINCE2 and where DSDM Atern fits in. In 2007, I put "used an Agile/PRINCE2 development str...
-
I typically get a lot of calls from Recruitment Agencies. Usually it's about 20-25 a week. At 5-10 mins a call plus the inevitable telep...
-
Having been on hold to the Orange contact centre (I guess that's what you would call it, I might call it a non-contact centre) for appro...
-
Your profile indicates you have been contracting recently, therefore you will only be interested in contract work then? Incorrect. Thi...
-
I first promoted Demon in June 1992, the month they set up. I joined them as a customer the following year. This is the first time I have mo...
-
Since 30th December, I've been doing a folk song of the day for the folk choir I am in, Morris . It's introduced the choir to new...
-
BBC NEWS | Politics | £141m benefits computer shelved : "It is the latest in a long series of computer problems for the government.&quo...
-
I use Iprofile which is the online CV designed to make life easier for recruiters. However, the system is extremely buggy, insecure and wor...
-
If I said that I know of a way in which Yahoo could dramatically improve its search capability, take on Google in areas that Google is curre...
No comments:
Post a Comment