Skrivet av zonar:
Hej!
Jag blir jättenyfiken på varför du tror att "chefen" tappar tron och bestämmer sig för att lägga ner projektet?
Funderingar,
- har ni släppt någon MVP som gör att det går att "uppleva" projektet på något sätt?
- handlar de tom förtroende att ni inte kan slutföra projektet eller att det varit för mycket omvägar på vägen?
- Bedöms det vara för mycket jobb kvar för att få ihop kalkylen på projektet?
/z
Jag kan ju förklara lite om det största projektet. Vi bygger en mjukvara som styr hårdvara, som mitt företag också bygger (i ett annat bolag visserligen). Så vi har hela stacken från PLC:er och liknande på själva hårdvaran via en lösning med micro services och en webb-frontend upp till att integrera mot kundernas system långt upp. Förutom en liten bit mellan hårdvaran och systemet liksom. Den köper vi in från ett annat företag och den är inte bara dyr, jobbig att använda och byggd på uråldrig teknik utan också väldigt begränsande i vad vi kan göra med vår hårdvara och mjukvara. Dessutom tvingar denna mjukvara (eller snarare villkoren antar jag) oss att köpa dyr teknik från företaget som bygger den istället för på "öppna marknaden" eller direkt från tillverkarna, som säkerhetssensorer, positioneringssensorer, diverse "datorer" som sitter på hårdvaran och så. Ett stort problem med denna lösningen är att varje situation måste liksom vara specificerad hur den ska lösas i förväg. Vem ska "gå först" i denna "korsning"? Det måste man tänka kring och specificera specifikt, sen samma för alla andra hundratals liknande situationer. Vårt projekt hade löst detta dynamiskt istället utan att någon behövde tänka på varenda ställe, vilket hade minskat tiden för en installation från veckor till dagar.
Projektet jag jobbade med syftade till att ersätta en stor del av denna mjukvara och på sikt helt bli av med den. Anledningen till att vi inte satsade på att helt ersätta den från början var att den var säkerhetsklassad på ett sätt som var ganska komplicerat och vi ville fixa funktionaliteten främst så att vårt system fungerade mer "modernt", mer reaktivt, tog hänsyn till mer än en sak när den fattade beslut, möjlighet att ändra beslut eller instruktioner som redan skickats och så. Att helt få bort den hade sparat pengar och underlättat på många sätt, men rent funktionellt så hade vår första lösning hjälpt väldigt.
Detta projekt påbörjades innan jag var anställd där och jag blev anställd specifikt för att jobba med det. Vi tog också in en del konsulter som var experter på detta område som hamnade som utvecklare i mitt team och så. I ungefär ett år från att jag blev anställd, så jobbade vi på med bara mjukvara, vi hade en egen simulator för tredjepartsdelarna vi behövde behålla, men körde också med den faktiska mjukvaran i ett simulerat läge. Sen testade vi i vårt lab, vilket gjorde att vi insåg att verkligheten var mer komplicerad än en simulerad verklighet, trots att labbet är ganska simpelt jämfört med en kundinstallation. Så vi körde en del i labbet, löste problem som hittades och så, sen fick vi tag i en testkund. Detta var en ganska liten installation. Om labbet var 1X så var detta kanske 4X i storlek och komplexitet. Igen hittade vi saker som vi inte hade sett innan och löste dem allteftersom de poppade upp. Sen kom det ett säljcase med ett megaprojekt som hade varit omöjligt att lösa med den befintliga lösningen, men som passade oss som hand i handske. Den befintliga lösningen kunde hantera kanske 15-20X i komplexitet men här var det mer 60X, med extrema krav på prestanda och throughput. Kunden var väldigt tveksam till att vi skulle lösa det då de hade "köpt" en lösning från en leverantör som hade tre år på sig men som inte lyckats på den tiden, och som de nu hade stämt för kontraktsbrott. Men jag sålde in vår lösning, att den närmade sig release och att den kunde hantera komplexiteten och prestandakraven, så det blev så.
Vi var inte färdiga med den första "pilotkunden" men vi hade löst de problem de hade som gjorde dem villiga att låta oss testa där, så vi släppte det och hoppade på megaprojektet istället. Så vi satsade hårt på det, körde tester mot deras flöden och så, och emellanåt spenderade vi väldigt mycket tid hos denna kund (i ett annat land) och testade på hårdvara i den faktiska miljön men innan anläggningen var klar. Kundens projektledare, eller inte slutkunden utan den som var ansvarig för helhetslösningen mot slutkund (vår del var "bara" några hundra miljoner i ett mångmiljardprojekt), var extremt petig och nitisk dock.
Vi fick aldrig köra systemet mer än några minuter innan han skulle in och peta, ställa till problem, täcka för sensorer, sparka på grejerna och så. Så vi fick skifta fokus från "prestanda" till "stabilitet" trots att det var väldigt osannolika saker som de "testade". Vi la kanske ett halvår på att bygga om hela vår huvud-algoritm så att den, så fort något problem uppstod, liksom kastade ut allt och räknade om hela lösningen på situationen. Vi fick allt att funka, systemet var superstabilt, man kunde blockera uppemot hälften av maskinerna och de övriga snurrade ändå på (trots att allt påverkar allt annat), men prestandan hade ju dippat en aning av denna effort och således nådde vi bara 90% av deras förväntade peak. Den peaken låg dock flera år bort så vi var ju helt säkra på att vi hade löst det långt innan dess.
Men. Samtidigt som detta pågick så hade mitt företag, utan att vara öppna med det, satt ett annat team på att bygga en helt annan lösning specifikt för denna kund. Den byggde på ännu äldre teknik och det teamet var tvungna att översätta kod från tjugo är gamla saker och språk och så. Och den var ju verkligen byggd bara för detta projektet, med hårdkodade saker överallt och så. Sen fick de någon att köra prestandatester, bakom vår rygg, och han kom fram till att vår lösning var aningen långsammare i dagsläget. Vart beslutet sen fattades vet jag inte, men nedläggningen kom inom kort i alla fall.