RSS Feed!

About me

I am a business intelligence developer working at Bizware since August 2015. In this blog I will present code samples, primarilly in tsql but also findings in all other parts of the Microsoft BI-stack.


Disclaimer: All code should be considered as "as-is", i.e. badly tested and not working until extensive testing have been made by anyone reading the code. :)


Happy coding!

Archive for the ‘MISSILE’ Category

Admingränssnitt – att vara eller icke vara?

Sunday, November 29th, 2009

Jag funderade nyligen på det här med användargränssnitt för en publik webbtjänst, är det verkligen alltid nödvändigt att ha i bakgrunden?

Mina funderingar började när jag tittade tillbaka på hur tidsåtgången såg ut för utvecklandet av supportbetyg.se:

Total tid 100% (ca 200-300 h kodning)

  • 25% Grundkodning på front-end (Databas, php, affärslogik, MVC-mönster, funktionsfix)
  • 40% Finkodning på front-end (css, fixa småbuggar, jQuery-fix m.m.)
  • 25% Grundkodning på back-end/admin (Databas, php, affärslogik, MVC-mönster, funktionsfix)
  • 5% Finkodning på back-end/admin (css och största bugfixarna)
  • 5% annat, okategoriserat (SEO bl.a.)

Det var mycket svårt attuppskatta tiden det skulle ta att bli klar med sajten, främst genom önskedrömmar kanske?

Under en-två månaders tid sa jag att 90% var klart, tyvärr visade sig det att dessa 10% var ungefär lika stora som de första 90%. Lessons learned: När 90% är “klart”, återstår 90%!

För att återkoppla till utvecklingstiden, så gick ca 32,5% till att koda administrationsgränssnittet och göra iordning back-end funktioner.

32,5% eller ca 1/3 av tiden var ca 75-100 timmar av slit. Nu när sajten är igång och rullar, så använder jag ungefär 10% av alla de funktioner jag har gjort iordning. Överlag godkänner jag kommentarer och recensioner som folk har gjort, jag har skrivit lite bloginlägg samt faq, det är i princip allt.

I slutet av uppstarten la jag även in grundläggande info, kategorier, översiktskategorier samt företag. Jag la ner ca 6-7 h för att lägga in info.

Om jag istället hade valt att göra detta i phpmyadmin, skulle jag alltså tjänat in 2 och en halv heltidsarbetsveckor, eller en månads utvecklingstid (då jag pluggar samtidigt).

Varför kodade jag då ett admin-gui?

Genom lite självkritik inser jag att jag skrev detta mest för att det är så “man” ska göra! “En sajt utan admingränssnitt är inget alternativ”, “Det blir lättare att grafiskt få en överblick”, “Det är coolt” var nog saker jag tänkte på. Samtidigt så lär man sig att ett admin-GUI är en självklarhet, men ingen reflekterar om/när det behövs.

Fundera därför en extra gång när du utvecklar en publik webbtjänst från scratch, behövs verkligen ett admin-GUI? Jag tror att mycket tid går åt till detta, man gör allt mycket mer komplicerat än vad det behöver vara. Fråga dig därför om du inte kan göra samma sak direkt i databasen, utan mellanhänder, då sparar du tid och kan lansera din sajt fortare.

För att återkoppla till MISSILE: Kan jag skippa att koda detta utan att sajtens kvalité minskar?
För min del denna gång är svaret ett solklart ja.

En annan bra kontrollfråga att ställa sig:

Hur många funktioner behöver du, och hur komplicerade är dessa?
Jag har cirka 7-8 st SUDI:s (SELECT, UPDATE, DELETE, INSERT) för varje enhet i databasen, vilket gör att jag skrev 25-32 st olika funktioner, varav alla kunde enkelt göras i phpMyAdmin..

Slutsats: Det är lätt att vara efterklok..

MISSILE-modellens stöd vid kodandet av supportbetyg.se

Thursday, November 12th, 2009

Nu när jag har släppt en BETA-version av supportbetyg.se kan jag sammanfatta hur MISSILE-modellen hjälpte mig i byggfasen.

Lessons learned – Checklistan

Checklistan av MISSILE (som du kan läsa mer om här) var den del som jag hade mest nytta av, då jag nu är i lanseringsfasen av sajten.

Fråga 1: Kan det finnas något behov av webbtjänsten?

Denna fråga var antagligen något som dök upp i mitt huvud under mitten av sommaren, jag hade stora problem med avstängning av ett bredbandsabonemang och öppnandet av ett nytt av ett annat bolag. Jag var frustrerad och sur över den inkompetens som båda företagens supporter innehade. När jag snackade med vänner så hade de haft liknande erfarenheter, och jag kände att jag skulle vilja få utlopp och “skriva av mig”, så jag vände mig såklart till internet.

Det finns, grovt räknat, två webbsajter som tillhandahåller liknande tjänster kring recensioner och ytterligare tjänster som har recensionstjänst som ett tillval utöver sin kärnprodukt. Däremot fanns det ingen sajt som specifikt visade på hur ett företags support rankades gentemot andra liknande företag. Det fanns ingen statistik över detta heller.

Idén om en webbtjänst som tillhandahöll statistik, var enkel att använda och recensera, drömdes ihop.

Fråga 2: Hur snabbt kan du utveckla din idé, från behov till en lansering av prototypen?

Som tidigare sagts startade idén i huvudet på mig i mitten av sommaren. Jag kom igång ganska snabbt med att försöka förstå mig på cakePhP, men detta ramverk var alldeles för stort att lära sig, även om jag gillade MVC-mönstret skarpt. Jag kom igång på riktigt med kodningen i början av augusti och var klar till början av november, dvs ca 3 månader. Tiden som jag la ner på byggfasen var ca 200 timmar eller 5 veckors arbetstid. Detta gjordes såklart vid sidan om stuider och arbete.

Fråga 3: Kan du använda någon sorts ramverk eller färdigskrivna bibliotek för att snabba upp utvecklingsprocessen?

Genom det teoretiska stödet i MISSILE förordnade vi ramverk och färdigskrivna bibliotek för att snabba upp utvecklingsprocessen. Efter en del letande bestämde jag mig för att testa att bygga webbappen i cakePhP, men kom snabbt på att detta inte passade mig. Så jag utvecklade mitt egna ramverk byggt på ModelViewController-mönstret. Detta var ofta ganska frustrerande att bygga upp och förstå, men nu när allt är färdigt är jag glad att jag byggde det.

Ett annat bibliotek som jag använde var jQuery. Jag hade väldigt liten erfarenhet av jQuery sen innan, men det visade sig att det var ett mycket enkelt system för att få fram bra effekter. Något jag gillar är att man kan nästla olika selectors så att events kan ske, även om jag inte har gjort det så mycket på supportbetyg.se

Fråga 4: Hur kan webbtjänsten integreras med andra webbtjänster?

Supportbetyg.se kan inte integreras med andra webbtjänster just för tillfället. Detta för att för få använder tjänsten just nu. Denna fråga går just nu i antagoni mot affärsvärdes-principen, som jag skriver lite mer om nedan.

Fråga 5: Vilken sorts publik webbtjänst tänker du lansera?

Denna publika webbtjänst riktar sig till alla som någon gång kommit i kontakt med en supportavdelning hos ett stort företag i Sverige. Den är inget tekniskt underverk och kan därför inte marknadsföras selektivt.

Fråga 6: Skapar aktiviteten i utvecklingsprojektet affärsvärde?

Denna fråga är mycket intressant, och antagligen den viktigaste. Något som jag märkte när jag kodade var avvägningen om vad som behövs och vad som inte behövs, dvs vad ger kunden värde?

Frågan fick en annan form under utvecklingstiden: Kan jag skippa att koda detta utan att sajtens kvalité minskar?

Bland annat har jag inte lagt ner någon stor del av tiden på att validera koden. Hur många användare tittar på om sajten är validerad, den siffran lär vara under 1%, så så länge kvalitén på sidan är god så brydde jag mig inte om att validera.

IE6-testning och IE6-optimering. Ungefär 20% av alla webbläsare är IE6, men 80% är det inte, IE6 kommer att fasas ut mer och mer under nästa år och det känns onödigt att anpassa sajten och använda tid till detta.

Integration med facebook connect. Detta var en idé jag hade, att folk skulle logga in med sina facebook-konton istället för att skriva anonymt. Problemet, eller rättare sagt verkligheten, är att folk är mycket lata. Om alla användare måste logga in för att skriva kommentarer och recensioner kommer sajten inte organiskt att växa lika snabbt.

Dessa frågor har hjälpt mig oerhört till att snabba upp bygget och fokusera på det som är viktigt. Nästa steg blir att lansera sajten, vilket är mycket svårare än själva byggandet.