Hissalgoritm och funderingar på jobbet

Stället där jag arbetar på somrarna är sjukhuset i Värnamo, min position är vaktmästare vilket innebär att det inte direkt är mitt intellekt som krävs för att utföra arbetsuppgifterna. Det ger alltså ganska mycket tid för diverse funderingar.

På sjukhuset har det installerats två nya hissar (eller rättare sagt, uppdaterats) som sitter bredvid varandra. Dessa hissar är för transport av sängar, förråd och så vidare. Det vill säga: storleken större och används frekvent.

hissarna 1 Hissalgoritm och funderingar på jobbet

Hissarnas position till varandra.

Den senaste veckan har jag funderat ut exakt hur dessa hissar fungerar och varför de inte fungerar som de ska. Problemet är nämligen att (förenklat) ena hissen svarar på anrop att man vill uppåt och den andra på anropet att man vill nedåt. Hissarna kommunicerar inte heller med varandra vilket betyder att man hamnar i en slags kö på den hissen man blev tilldelad. Detta ger ofta (i teorin oändlig) lång väntan på en hiss när den andra väntar på nästa order.

Emellan hissarna finns det två knappar, en knapp för upp och en för ner. Låt oss nu säga att jag står på plan 2 (av sju) och vill upp på plan 5. Jag trycker upp, knappen börjar lysa. Startpositionerna för hissarna är att den högra är på plan 7 och den vänstra är på plan 1. Ingen av dem används för närvarande. Den hissen som kommer är inte den vänstra som kan kännas mest logiskt utan det kommer bli den högra som börjar jobba (display om vilken våning hissen är på finns).

Den vänstra som då finns på plan 1 får ingen order skickad till sig själv eftersom den för närvarande inte svarar på kommandot “upp”. Att den står en våning ned spelar ingen roll. Till råga på allt så finns också ett kö-system. Vilket menas att en order aldrig kan byta hiss utan hamnar i en intern kö för hissen som fick den första ordern. Om då någon bestämmer sig för att ta hissen före på ett annat plan betyder det en väntan som håller på tills kön är slut.

Man får fundera lite på hur de som utvecklat systemet har tänkt här, hade det inte varit bättre med en gemensam central som både läser av vilket plan en hiss står på och samarbetar med kö-bildningen? Det vill säga att en hiss kan inte stå arbetslös så länge ett jobb finns i den gemensamma kön. Hissarna borde också utrustas, vilket jag anser finns men knappt används, med en funktion som alltid “vet” vilket plan den står på och vilken av de två hissarna som logiskt och effektivast borde användas.

Ett bra hiss-system borde vara essentiellt för ett väl fungerande sjukhus, speciellt om något händer. Det jag berättat ovanför är en stor brist och har säkert hänt eftersom programmerare eller utvecklare inte tänker “hur” en lösning ska användas, mer att en lösning “ska” fungera. Det krävs tänkande utanför sin egna kunskap när det gäller de flesta projekt man gör, främst kunskap om vilka som ska använda lösningen och hur den är tänkt att användas.