Gillakampen av Merkur Hoxha WP12 2013-06-09
Innehållsförteckning Abstrakt...3 Inledning...4 Vad som gick bra...5 Vad som gick dåligt...6 Sammanfattning...7
Abstrakt Gillakampen är en Facebookapplikation utvecklad i Asp.net Web Forms och som lagrar persistent data i en MSSQL databas genom att hämta det ifrån Facebook. I denna rapport kommer jag att ta upp mina nyvunna erfarenheter med detta utvecklingsprojekt; allt ifrån arbete med Facebook:s API till hur projekthanteringen i Scrum har fungerat.
Inledning Jag har alltid fascinerats över gilla -fenomenet med Facebook. Att någon uppdateras sin status och kan få flertalet så kallade gilla-markeringar, likes, för det. För något år sedan så släppte Facebook även något som heter polls. Ett slags omröstning där man kunde svara (gilla) ett favoritalternativ för en ställd fråga i en omröstning. Därigenom föddes idén för gillakampen, men istället för att ha flera olika svarsalternativ så ville jag göra det ännu enklare - och bara ställa två frågor emot varandra; i en kamp, eller duell om man vill kalla det, och därigenom låta registrerade användare för appen rösta på sin favoritsida av en given kamp. Då själva konceptet var så pass genomarbetat redan från början så återstod bara val av teknik och att lära sig hur Facebooks: API (för att sköta registrering och inloggning av användare genom Facebooks databas) fungerar. Jag valde att arbeta med Asp.net Web Forms som programmeringsspråk eftersom jag kände mig bekväm med det, men vill även utöka mina kunskaper inom.net ramverket. Facebook:s API däremot, var något helt nytt för mig och något jag aldrig jobbat med förut. Så det blev ett väldigt lärorikt projekt, med nyvunna kunskaper jag kommer ha nytta av även i framtida projekt.
Vad som gick bra Det som gick förvånansvärt bra med projektet har varit att lära sig Facebook:s API. Men nu när jag ser tillbaka på detta så beror det främst på att jag använde mig av ett SDK som heter Facebook SDK for.net. Det vill säga att jag har jobbat gentemot Facebook direkt inom.net ramverket där kommunikationen med Facebook redan skötts för mig i bakgrunden och jag bara behövt fokusera på den egna applikationens funktionalitet. Även fast jag hade svårt att komma igång med dokumentation kring projekthanteringen från början, så var det egentligen värt all den extra tid jag la ner de inledande veckorna på det. Eftersom i fortsättningen så hjälpte Scrum hanteringen mig att sprint för sprint veta hur pass långt gången applikationen var och vilka krav som redan var delvis eller helt uppfyllda.
Vad som gick dåligt JavaScript och Web Forms blev ingen bra kombination(!). Ingen jätteviktig lärdom jag kan dra av detta eftersom jag inte tänker ha framtida projekt kodade i Web Forms, men alltid bra att ta me sig. Det som å andra sidan gick anmärkningsvärt dåligt var mitt arbete med css under projektet. Eftersom utvecklingen gick hand i hand med kursen Gränssnittsutveckling så hade jag alltid en skiss på hur applikationen skulle se ut i huvudet och utsatte därför inga timmar till css-arbete under sprintarna. I de två sista sprintarna i projektet satt jag där med en helfungerande applikation utan något egentligt gränssnitt. Vilket gjorde att istället för att arbeta med förbättringar så fick jag lägga ner all tid åt den kosmetiska biten. Så insikten redan under de sista veckorna i projekten var självklar; att jag i framtiden tänker även bygga på den kosmetiska biten av en applikation inkrementellt istället för att låta den komma sist.
Sammanfattning Detta är varken det första eller sista skolprojektet som har jag gett mig så mycket. Men eftersom man har haft så pass fria händer under de här tio veckorna så har det ändå tagit fram både mina bra och dåliga sidor. Bland mina bra sidor, tycker jag att jag är väldigt strukturerad av mig och även när det har varit som jobbigast med projekt och jag har stött på hinder så har jag kunnat ta mig vidare genom att stanna upp och läsa på ännu mer och försöka se problematiken ur ett annat perspektiv genom att ta självdistans. Bland mina dåliga sidor så kan jag nämna alla gånger jag har insett att jag måste skapa en bättre framförhållning i min projekthantering. Ett tydligt exempel på detta var mina försök att få in enhetstestning under de sista sprints i projektet. Varje gång jag insåg att en task som hade med enhetstestning att göra aldrig skulle hinnas färdig under aktuell sprint så valde jag att skjuta fram den till kommande sprint istället för att redan då påbörja med enhetstestning och på så sätt pressa fram bättre kvalitet på testerna. I övrigt så anser jag att det finns en stor potential med Gillakampen som koncept. Mina framtidsplaner är att även lägga till ett bildformat för gillakamper, vilket jag tror många kommer att uppskatta bättre än textformat. Utöver det så vill jag även vidareutveckla själva konceptet genom att ha tidsinställda gillakamper och främja fler röster (t ex Rösta på "Volvo" vs "Saab" röstning avslutas om 23 timmar 10 minuter).