Strukturering

Tillfälligheter, ordet får karaktärisera mitt val att öppna dörren till databranschen och dess kodverkstad i mitten av 80-talet. När jag gräver i minnet hittar jag ingen bättre beskrivning för mitt beslut. Ordet strukturering poppar också upp. En ständig följeslagare sedan inträdet i kodandets labyrinter med utbildningens JSP-strukturer. Få ordning på koden genom uppdelning i mindre block. Frågor som infinner sig är varför och hur? Första frågan är lättare att besvara. Kod kan vara svår att följa och förstå. Genom uppdelning i mindre enheter så underlättas förståelsen. Viktigt om programvaran ska underhållas, rättas eller tillföras nya funktioner. Här vill jag också inflika att kod ska vara vacker. Det finns något tilltalande i enkelheten. Aha-upplevelsens skönhet. Hur uppdelningen ska göras är däremot inte lika självklar. Från mitten av 80-talet har jag kunnat följa många sidospår och återvändsgränder men också trendbrott.

Då i mitten av 80-talet var all datorkraft centraliserad. Alla program exekverades i en centralt placerad dator och därifrån skickades en dataström till dåtidens desktop, terminaler. IBM:s minidator S/38, som senare blev AS/400, var den miljö som gällde för mig. Uppdelning i kodblock var inte självklar. Den hade sitt pris sas det, försämrad prestanda. I diskussionen om struktureringen urskiljde jag två olika linjer. Först hade vi uppfattningen att program alltid genomlöper vissa faser. Koden grupperades efter dessa cykler. Operationer som var nödvändiga innan användargränssnittet presenteras samlades i ett block och fasen därefter utgjorde ett annat block. Den andra idén var händelsestyrning. Lyfta fram användardialogen. Låta den bli synlig i koden. Försök med standardisering gjordes också. Programpaket som med färdiga programblock lyfte bort detaljer. Programmeringen skulle gå snabbare och betala de kostsamma paketen. Synon och Asset är namn som dyker upp. Lovvärda försök men som det visade sig en återvändsgränd då användargränssnittet var teckenbaserat. Åttio tecken på 24 rader.

PC:ns intåg rörde om i grytan. Ett verkligt trendbrott. Till en början var de dyra. En statuspryl för chefspersonerna. Men med fallande priser fanns de snart på alla skrivbord. Hur skulle denna decentraliserade datorkraft tas tillvara? Med PC:ns grafikkort där pixlar var adresserbara var ett helt annat och mera tilltalande användargränssnitt möjligt. MicroSoft med sitt Windows firade stora triumfer. Frågan om strukturering och uppdelning av koden fick ställas på nytt. Nya förutsättningar gällde. Vad skulle hanteras centralt och vilken roll skulle tilldelas datorkraften på skrivbordet?

Från centralt håll brottades man med ett olösligt problem. Hur behålla den centrala kontrollen men utnyttja PC:s möjligheter beträffande användargränssnittet. Kommunikationen med klienten på skrivbordet var problemet. Försöken var många. Befintlig dataström omvandlades på en rad olika sätt för att utnyttja grafikens möjligheter. Vi har också försök med egna kommunikationsgränssnitt med allt var halvmesyrer, återvändsgränder. Den centrala lösningen hade gått in i väggen.

Lägga all kod lokalt, decentraliserat i PC:n, var inte heller problemfritt. Lokala enanvändarsystem fungerade bra men om flera användare skulle dela på samma uppgifter så sneglades åter på centrala lösningar. Gemensam server för lagring. Ett annat problem med decentraliserade lösningar var administrationen. När varje klient hade sin egen installation krävdes många timmar för att hålla ordning på alla klienter. Inte heller den decentraliserade lösningen var tillfredsställande.

En lösning som överbryggade svårigheterna fanns i protokollet http. På klientens förfrågan svarade den centrala servern med en html-sida. Från serversidan sett var kommunikationsproblemet löst. Kontrollen över koden kunde ligga kvar centralt. På klientsidan svarade standardiserade browsers för att omvandla html-sidan till en tilltalande användaryta. Netscape var tidigt ute och dominerade browsermarknaden men krossades av Microsofts penningmuskler. Firefox och Chrome är numera de två stora. Automatiska uppdateringar var svaret på administrationsproblemet. På serversidan får strukturering av koden enligt MVC-modellen stort genomslag. Bokstavskombinationen MVC står för model-view-controller. Koden delas upp i tre huvuddelar. Modellen står för den variabla datadelen medan view-delen är användargränssnittet. Controllern håller ihop det hela.

Det fanns mer att hämta i klientdelen. Än en gång flyttas fokus. Programmeringsspråket som användes i klienten, javascript, betraktades inte riktigt rumsrent. Åter korsas olika ide´er. En linje försöker lämna javascript och bygga plugins. Med dessa plugins kunde kodningen ske i ett annat språk. Flash och Silverlight är två sådana linjer. Men när browsertillverkarna nu börjar dra tillbaka stödet för dessa plugins är linjen ett sidospår som fasas ut. En annan ide är att skriva kod i ett språk som sedan konverteras till browserns javascript. Här har Google varit aktiva med GWT och Dart. Coffescript är ytterligare en ide. De försöker komma tillrätta med javascripts krångliga syntaxen.

Alla förkastade inte javascript som språk. Däremot skapade browsertillverkarnas olika implementering av språket problem. Alla hade sin version. Variationer i standardiseringen. En rad javascriptbibliotek försökte överbrygga skillnaderna och underlätta kodningen i javascript. Först i raden var Prototype. jQuery har nu lagt beslag på en dominerande marknadsandel.

Första generationens javascriptpaket hade inget stöd för strukturering av koden. Andra generationens paket försöker ta Model-View-Controller strukturen från serverdelen till klienten. Här har vi paket som Backbone, Ember, Knockout och AngularJs. Just AngularJS har tilldragit sig mitt intresse. Det underlättar för klient-utvecklaren. Bindning, kopplinen mellan javascriptkoden och html-sidan löses elegant. Koddelar isoleras i block via controllers. Det finns också direktiv som möjliggör komponentbyggande. På nätet finns rikligt med exempel vilket underlättar när inlärningströskeln ska passeras.

Posted in Programmering | Leave a comment

Förvaltning och byggande

Det hamras och bankas i mitt bostadsområde. Byggjobbare kliver omkring på taket till grannhuset. De river, de sliter och byter ut taket då 60-talsplåten inte längre håller tätt. Bostadsrättsförenings styrelse har tagit in företaget Umeå Plåt för åtgärderna. Åtskillnaden mellan föreningens förvaltning och byggåtgärderna i det här fallet omläggningen av taket är tydliga. För alla naturligt och självklart.

I min erfarenhetsbank från datavärlden är inte separeringen mellan förvaltning och byggande av programvara lika självklar. Den borde vara det för de egenskaper som krävs och den kunskap som behövs är helt olika. Förvaltning har ett tydligt användarperspektiv. Hur programvaran hålls flytande och används på rätt sätt. Byggandet däremot försöker åstadkomma något nytt som tillför värde. Men gamla organisatoriska strukturer är starka. Befintliga revir ska upprätthållas. Rubbas maktbalansen skapas osäkerhet vilket innebär besvärliga problem som måste lösas. Föråldrade strukturer ställs mot branschens förändring. Hur ska framtiden mötas?

När jag läser Andreas Berghs artikel “Det obegränsade reformutrymmet” i VK inser jag att samma mönster även finns i politiken. Förvaltning contra byggande fast på samhällsnivå. Varje år ska miljarder fördelas. Budgetbeslut ska klubbas av politiker på statlig, landsting eller kommunala nivå. Största delen av verksamheten är förvaltning. För visst är skola, vård och omsorg förvaltning av den så kallade välfärden. Verksamhet som varken är något nytt eller tillfälligt. Vi får backa flera generationer för att hitta dess ursprung och visst får vi hoppas att det även finns i en framtid. Samhällets viktigaste hörnpelare är solidaritet, omtanke och respekt för unga, gamla och de som dragit livets nitlott.

I artikeln argumenterar Bergh för en smart indexkonstruktion. Jag är beredd att hålla med. För visst går det att ta fram lämpliga index för den samhälleliga förvaltningen istället för segdragna budgetförhandlingar när pengarna ska fördelas. Index som kompenserar för alla kostnadsförändringar. Verksamheten kan upprätthållas på samma nivå och borta är allt tal om besparingar som innebär större barngrupper och lägre bemanning. Det som återstår när den samhälleliga förvaltningen fått sitt är reformutrymmet. Något helt annat än dagens märkliga begrepp som trollas fram när valår närmar sig och väljarna ska bjudas på något extra.

Men det finns en hake. Politiker tappar sin guldsits. Kopplas förvaltningen av löpande samhällsfunktioner till index så försvinner en stor del av politikernas manöverutrymme. Beloppen som finns kvar i budgetdiskussion och ska fördelas blir betydligt mindre. Med mindre belopp att besluta om tappar politiker mycket av sin maktställning. Det finns inte längre lika mycket att hämta genom att springa i politikerkorridorer och köa utanför deras dörrar. För oss andra dödliga finns dock fördelar. Politiska frågeställningar blir tydligare om löpande förvaltning separeras från samhällets nybyggnationer.

Posted in Okategoriserade | Leave a comment

Äldreboende

Jag har med ett halvt öra följt TV-serien “Sveriges bästa äldreboende”. Aktuellt då jag själv tillhör fyrtiotalisterna. De som nu börjar knacka dörr till boende som organiseras via kommunerna. Antingen i egen regi eller via upphandling av privata alternativen där riskkapitalbolagägda Carema och Attendo tar en allt större andel. Åldringarnas situation har förändrats och om man får tro prognoserna kommer den också att förändras. Var finns tryggheten när hjälp behövs för att klara de grundläggande behoven. Vems ansvar? Är det kommun, landsting, familjen, kyrkan eller privata företag? Betungande … så här diktade Helmer Grundström på 40-talet:

Sur är veden på spisen
Och dolsk står skuggan i vrån.
Och tjockare blott blir isen
som glimmar i vattensån.

Det rosslar i gummans lunga.
Hon skakar på sängens halm.
Och ingen har tid att sjunga
för henne en aftonpsalm.

Alla drar sig för vården.
Ingen ser eller hör.
Och det skall bli ljust på gården
och trivsamt den dag hon dör.

I bondesamhället var det vanligt att barnen tog hand om de äldre. För de som saknade barn och egendomar var det fattighuset. Alternativen var auktioner där de gamla auktionerades bort till lägstbjudande eller så kallad rotegång där de fattiga gick mellan gårdarna efter en uppgjord plan och där de fick sin försörjning. När fattigvårdslagen kom 1918 förbjöds fattigvårdsauktioner och rotegång. Fattigstugorna döptes om till ålderdomshem. Frågan är om dagens upphandling av omsorgsplatser kan jämföras med gårdagens fattigvårdsauktioner. Allt till lägsta pris!

Ivar Lo-Johansson gjorde tillsammans med fotografen Sven Järlås en reportageresa i slutet på 40-talet för att dokumentera förhållandena inom äldrevården. Där beskrevs vanvården och sysslolösheten. De äldre berövades sin identitet och förnekades mänskliga behov. Var ålderdomshemmen bättre än de tidigare fattighusen.

Åter till nutid och TV-serien. Geriatrikprofessorn Yngve Gustafsson tar upp en företeelse som förundrar mig, övermedicineringen. Mediciner som är avsedda för hjälp och lindring blir till sin motsats. Försämrar de gamlas livssituation och utgör också i vissa fall en direkt fara. Varför? Vad är orsaken och finns någon lösning? Sitter förklaringen i prestige och revir mellan läkare. En läkare kan inte ändra eller ifrågasätta en annans ordination. Känner de inte till eller har de ej tillgång till programvara som kan avslöja olämpliga läkemedelskombinationer. Vill läkaren kunna erbjuda något konkret och inte stå hjälplös inför åldrandets alla krämpor. Ur ett individualistiskt perspektiv sitter läkarna inne med svaret. Är orsaken bristande kunskap? Vad blir effekten av organisationsförändringen där ansvaret flyttas från geriatrikens specialister till vårdcentralens allmänläkare? Naturligtvis går det också att vända på frågeställningen och ställa frågan vem som tjänar på övermedicineringen. Finns förklaringen i den mäktiga multinationella läkemedelsindustrins mörka skugga. Övermedicinering innebär ökad försäljning och högre omsättning. Vinsterna stiger. Drivkraftens ursprung. Hur ser i så fall sambanden ut till läkemedelsförskrivningen? Yngve Gustafsson är onekligen mycket tydlig och vill lyfta frågan. Skapa debatt och öka kunskapen. Han har i alla fall lyckats övertyga mig om att övermedicineringen är en viktig fråga.

Personalens engagemang och hur de äldre görs delaktiga i det dagliga livet är två viktiga frågor som också tas upp i programmet. Just personalens engagemang är en generell fråga som gäller för alla typer av arbetsplatser. Hur skapas en miljö med engagemang? Vilken typ av ledarskap behövs? Jag vill peka på en faktorer som tar bort arbetsglädjen och engagemanget. Påbud uppifrån som görs till verksamhetens övergripande målsättning oavsett om det är privata vinstkrav som ska uppfyllas eller statistik som ska redovisas så förminskas personalen. Ju fler mål som ska uppnås desto mer kringskärs personalens initiativmöjlighet. Ansvariga politiker som ansätts i media svarar med en utbyggd kontrollapparat. Åldringsvården ska kvalitetssäkras. Effekten på arbetsplatserna blir passivisering. Personalen blir robotar. Bara målen uppfylls och siffrorna är godkända blir alla i hierarkin nöjda. Åldringarna kommer i tredje hand.

Så här skriver den nu 86-årige Jan Myrdal om åldrandet:

Roligare kan man ha än att bli åldring i Sverige. Nå, jag är privilegierad. Mår hyggligt. Är rätt nygift. Sitter vid min dator, sorterar mina böcker, går mina promenader, talar med min hustru och kliar min katt. Men rätt som det är en dag åker jag över kanten. Blir åldring med vårdbehov. Och då tar fan bofinken!

Posted in Okategoriserade | 1 Comment