← Alla inlägg
Schemaläggning

Så uppstår en dubbelbokning

Två bilar på samma adress är aldrig ett misstag. Det är tre, och de sker i en bestämd ordning. Här är kedjan, och de fyra kontroller som bryter den.

TCThe Closepact team8 min läsning

TL;DR

Två lag på samma adress samma timme är aldrig ett enskilt misstag. Det är en kedja: något lovades utanför systemet, schemat hade grenat sig, och ingenting kontrollerade personens dag innan uppdraget sparades. Nedan står kedjan, de fyra kontroller som bryter den, och det designbeslut som betyder mest — att rapportera i stället för att vägra.

Var de kommer ifrån

Tre källor, ungefär i frekvensordning.

Grenen. Veckan bor i en fil eller på en whiteboard. Två personer planerar ur två kopior. Kopiorna är oense i fyra timmar, och fyra timmar räcker. Det här är inget schemaläggningsfel; det är ett lagringsfel som ser ut som ett schemaläggningsfel, och ingen konfliktkontroll i världen lagar det så länge det finns två kopior.

Löftet. En kund ringer. Någon säger "vi kan vara där på torsdag förmiddag" stående i en korridor. Det hamnar i ett block, eller i ett huvud. Torsdag förmiddag var redan lovad bort. Tavlan fick aldrig veta om någotdera.

Avtalet. Ett löpande avtal genererar nästa tisdags besök under natten. Tisdagen har redan ett engångsjobb på sig, utlagt för hand i februari. Ingenting tittade, eftersom genereringen skriver arbetsorder — den placerar inte personer på dem.

Bara den andra och tredje är programmets att fånga, och bara efter att den första är löst. En konfliktkontroll som körs mot ett schema som inte är sanningen rapporterar konflikter ni inte har och missar dem ni har.

Kontrollen

Givet en person, en start och ett slut: fyra frågor.

Är hon redan någon annanstans? En fråga efter personens arbetsorder vars planerade tidsfönster överlappar det som prövas. Avbokat arbete räknas bort, eftersom avbokat arbete inte är arbete och att låta det ligga kvar gör att varje omplanerat jobb ser ut att krocka med den bokning det ersatte. Uppdraget som just redigeras räknas också bort, annars skulle en flytt på tio minuter rapportera jobbet som krockande med sig självt.

Är hon anställd det datumet? Anställningens start- och slutdatum, prövade mot dagen. Det är den kontrollen som fångar nästa månads avgång och bemanningslaget vars uppdrag började den 15:e.

Är hon noterad som frånvarande? Semester, sjukdom, ledighet eller utbildning som överlappar fönstret.

Ligger det utanför de tider hon normalt arbetar? Veckodagens arbetstidsregler, hopslagna, jämförda med jobbet.

Två allvarlighetsgrader, och varför uppdelningen är hela designen

De två första är fel. De två senare är varningar.

Det är inget gränssnittsbeslut om märkesfärg. Det är ett påstående om vad systemet får dra för slutsatser.

En person kan inte vara på två ställen. Det är ett faktum om världen, och ett fel. Den som inte är anställd det datumet kan inte skickas, och det är ett faktum om avtalet.

Att arbeta under sin semester är något annat. Det händer, det är ibland överenskommet, och planeraren vet det oftast före systemet. Att arbeta utanför sina normala tider är likadant. Båda är värda att säga högt och ingendera är värd att vägra.

Får du uppdelningen fel åt andra hållet — gör allt till fel — händer något förutsägbart. Planeraren som blir nekad lagar inte schemat. Hon skriver jobbet på ett papper. Och i samma stund papperet finns slutar schemat vara där sanningen bor, vilket är det enda det någonsin var till för.

Rapporterat, inte framtvingat

Alltså: ett fel stoppar sparandet och kommer tillbaka med krocken beskriven — vilket ordernummer, vilken titel, vilka planerade tider, så att planeraren kan titta på det andra uppdraget i stället för att leta. Samma begäran kan sedan skickas igen med en uttrycklig åsidosättning, och då skrivs den.

En varning stoppar aldrig något. Den följer med det lyckade svaret, eftersom planeraren fortfarande behöver se att hon just bokat in någon mitt i andra semesterveckan.

Den åsidosättningen är inget kryphål. Den är ett erkännande av att planeraren regelbundet vet något systemet inte kan veta: att kunden flyttat tiden utan att någon uppdaterat raden, att de två adresserna ligger i samma trappuppgång, att "jobbet" klockan fyra är en tjugo minuters nyckelöverlämning. Ett system som inte går att åsidosätta är ett system man går runt.

De två detaljerna som gör varningarna läsbara

Halvöppen överlappning. Ett jobb som slutar 12:00 och ett som börjar 12:00 krockar inte. Jämförelsen är start-före-andras-slut och slut-efter-andras-start, inte inklusive i båda ändar. Utan den rapporterar varje rygg-mot-rygg-dag i företaget sig själv som trasig, och listan blir brus.

Hopslagen arbetstid. Tiderna 08:00–12:00 och 13:00–17:00 rymmer ingen enskild regel som täcker ett vanligt jobb 09:00–15:00. Att fråga varje regel för sig skulle flagga varje heldag på den veckodagen. Därför slås dagens regler ihop först, och pass som skiljs åt av högst sextio minuter behandlas som en arbetsdag. Lunchrasten slutar vara ett hål i dagen. Ett verkligt delat pass — 06:00–10:00 och 18:00–22:00, åtta timmar isär — slås inte ihop, och ett eftermiddagsjobb rapporteras fortfarande korrekt som utanför.

Båda finns av samma skäl: en varning som utlöses på vanligt arbete är sämre än ingen varning alls, eftersom den drar med sig de riktiga i fallet.

Att hitta dem ni redan gjort

Att fånga en krock i sparögonblicket hjälper bara från den stund ni börjar spara i systemet. Tavlan ni ärvde på måndagen har fortfarande gårdagens misstag i sig.

Därför körs samma fyra kontroller skrivskyddat över ett datumfönster och svarar med allt som är fel med tavlan som den står: varje tilldelad person på varje planerat uppdrag i fönstret, varje fynd märkt med arbetsordern och den anställde. Avbokade, avslutade och fakturerade uppdrag lämnas utanför — en krock på arbete som redan hänt är historia, inte ett beslut.

Det är bannern överst i kalendern. Den är värd att läsa en måndagsmorgon före allt annat.

Vad den inte kontrollerar

Vi är tydliga här, eftersom det är den lucka folk antar är täckt.

Den vet inget om körtid. Två jobb fyra mil isär med tio minuter emellan är ingen krock enligt den här definitionen, och ingenting kommer att säga något annat. Ruttoptimering är planerad och inte beviljad på någon nivå i dag.

Den vet inget om kompetens. Du kan filtrera personallistan på kompetens när du tilldelar, och tjänstekatalogen håller reda på vilka kompetenser ett jobb kräver, men att tilldela någon obehörig vägras inte. Den bedömningen stannar hos planeraren.

Den vet inget om fordon, utrustning eller nycklar. Behöver två jobb samma lift kommer schemat inte att berätta det.

Den vet inget om vilotider enligt kollektivavtal. Det här är inget löneprogram och ska inte låtsas vara ett.

Den organisatoriska halvan

Ingen av de fyra kontrollerna hjälper mot löftet i korridoren. Det är inte ett programvaruproblem och det är den vanligaste orsaken.

Den enda lösning som fungerar är en regel alla i företaget går med på: en tid är inte lovad förrän den står på tavlan. Inte "jag kollar och återkommer" — på tavlan, med kund och adress, även som ett oplacerat uppdrag utan tider. Ett oplacerat uppdrag är ett synligt åtagande. En anteckning i någons huvud är det inte.

När den regeln håller är de fyra kontrollerna värda något. Innan den håller kontrollerar de en fiktion.

Vidare läsning

Fortsätt läsa

Vill du se det här på din pipeline?

Boka en 20-minutersdemo. Vi bygger upp ett Deal Room med en av dina pågående affärer före samtalet.

Boka demo