Rune Tennesmed Oskar Norling Individuellt Mjukvaruutvecklingsprojekt Webbprogrammerare H12 Oskar Norling 2012-05-30
Abstrakt Denna rapport handlar om mitt mjukvaruutecklingsprojekt som jag och en klasskompis gjorde i ämnet Individuellt Mjukvaruutvecklingsprojekt parallellt med delar ur Gränssnittsutveckling. Den kommer att belysa de personligt relevanta delar som berör projektet på ett eller annat vis, alltså hur det har påverkat mig och hur jag känner för det jag har gjort. Men det kommer givetvis också att handla om applikationen i sig, både de positiva och negativa delarna. Detta för att denna rapport skall kunna fungera som ett underlag för mig i framtiden och eventuellt kommande elever som känner för att läsa den och därmed skapa sig en uppfattning om vad kursen innebär. En kort sammanfattning kring mina slutsatser rörande projektet kan inledas med order tid, något som jag för första gången tycks ha underskattat och till viss del slösat med. Ett projekt på 8-10 veckor är inte något jag är van vid då det kommer till implementation, speciellt inte när vissa delar inte ligger i synk med rester av projektet. Jag har förstått att vid dessa typer av projekt så är det lika viktigt att jobba med dokumentationen som med implementationen, just för att den lägger grund många vitala delar kring projektet likt tid, risk, prioriteringar m.m. En annan nämnbar punkt kring den personliga sammanfattningen är att satsa stort och brett, desto mer lärorikt blir projektet, i detta läge tycker jag inte deadline väger mer än den kunskap man kan få.
Förord Idén till detta projektet fick jag från en släkting som själv jobbar på Rune Tennesmed, som personligen kom med ett förslag om att uppdatera och och få igång en riktig webbsida med en webbshop, just eftersom företaget gick ganska så trögt framåt. Jag och min klasskompis tog tillfället i akt och fortsatte i samma spår från den tidigare kursen ASP.NET Webformst med C# där vi gått igenom alla de grundläggande delarna som skulle krävas för projektet. Det blev också så, att vi använde språken C# med ramverket ASP.NET Webforms med databasen Microsoft SQL 2008 och körde igång direkt.
Innehållsförteckning Innehåll Sida Abstrakt 2 Förord 3 Inledning/Bakgrund 5 Positiva erfarenheter 6 Negativa erfarenheter 6 Sammanfattning 6
Inledning/Bakgrund Målet med det här projektet var mellan kunden och oss att få företaget att lägga i en högre växel, då det för närvarande endast gick runt med nöd och näppe. Rune Tennesmed startade 1952 av Rune själv i Kalmar, som då var en modernistisk konstnär som främst jobbade i tenn blandat med andra material, så som glas, silver, trä osv. Företaget var inte bara nationellt känt utan hade även många kunder från en mängd olika länder. Företaget hade en webbsida från 2001 som endast innehöll statiskt material, likt kontakt och information kring företaget. Efter att ha undersökt denna så förstod vi genast att vad som helst i dynamisk form rörande företaget skulle få dem att klättra uppåt, speciellt då företaget är så lokalt samtidigt som de har en så stor global kundkrets. Att få dem att nå ut till kunderna och tvärtom blev alltså vårt mål, samt att skapa en webbshop för att göra det komplett. Vad som innefattades i detta projekt var att skapa en dokumenterad grund med vision, krav, iterationsplaner samt persona. Själva implementationen skulle göras i databasen Microsoft SQL 2008 och kopplingen däremellan skulle skrivas i C#, mot gränssnittet valde vi att använda ramverket ASP.NET Webforms med de övriga språken HTML, CSS och JavaScript. Då vi jobbade i iterationer så innebar det att vi jobbade upprepat med alla delar under hela projektets gång, mer eller mindre. Tanken med projektet var ju till stor del att lära sig att jobba iterativt, varför alla delar kanske inte riktigt följde detta arbetssätt. Eftersom vi var två om detta projekt så innebar det också att vi var tvungna att dela upp det jämt mellan oss, för att kunna få en rättvis bedömning av läraren. Uppdelningen blev som följande, att jag skulle stå för gränssnittet och presentationen av all data medan William, min kompanjon, skulle sköta databasen, kopplingen mot denna genom C# samt Webbshoppen. Men eftersom detta med webbshop var något nytt för oss båda så sa vi från början att vi skulle försöka jobba mycket tillsammans, just för att inte gå miste om kunskapen att skapa en webbshop. Min arbetsgång började först med att mentalt bygga upp ett gränssnitt i huvudet och skissa i en enkel HTMLprototyp samt i Adobe-programmen Illustrator och Photoshop. Detta genom att besöka en rad olika designshoppar på nätet med liknande utbud och samla idéer, något jag alltid gör innan jag påbörjar någonting som har med gränssnitt att göra. Jag har också lärt mig att genom detta arbetssättet så får man en enkel och snabb design att testa och ändra i, när man väl är nöjd sedan så kan man mer eller mindre bara implementera denna i det språk/ramverk man valt att jobba i. Just så gick det också till, efter att ha tagit fram en prototyp som både jag och William var överens om så implementerade jag den i ASP.NET Webforms. Nämnvärt här är också att jag och William inte var kunderna, utan Rune Tennesmed och deras kunder var ju de riktiga kunderna, vilka vi egentligen skulle ha tagit i kontakt med innan något av detta skulle skett. Orsaken till att vi inte gjorde detta var att vi i den andra kursen Gränssnittsutveckling några veckor senare skulle göra gränssnittet från grunden, dock inte med kunderna ute på företaget utan med våra klasskompisar. Detta gjorde det hela lite svårt, för gränssnittet kunde inte direkt vänta då vi delat upp arbetet och vår kund (företaget) förmodligen ville se någonting. Så det blev ju så att vår design blev färdig innan vi egentligen skulle gjort den och vi jobbade med att utvärdera den istället, vilket faktiskt var nyttigt. Vår prototyp som vi visade för företaget fick vi tyvärr ingen feedback på, förmodligen eftersom de själva sa att de förmodligen siktade på att lägga ner verksamheten inom en snar framtid, fick vi tyvärr veta några veckor in i projektet. Vårt arbetssätt gick hand i hand då vi hade lite att säga om varandras delar hela tiden, detta resulterade också i att vi spenderade en del av tiden till att programmera tillsammans, parprogrammera, vilket visade sig vara väldigt effektivt. Gränssnittet som implementerat var dock fortfarande inte färdigt under projektets gång då det ofta tillkommer en hel del, varför det ändock blev väldigt iterativt. Allt eftersom våra krav blev tydligare för oss så innefattade det också att det blev lite extra programmering för gränssnittet, mest stilar och funktioner med hjälp av CSS och JavaScript. Våra grundmål med projektet var att skapa en fungerande webbshop med de vitala delar som bör finnas med, liksom en kundvagn, utveckning och (egentligen) en betalningsfunktion. Eftersom det finns mycket gratis att använda för vissa delar så valde vi att inte gå in på djupet på det, utan att helt enkelt göra grunden för vad som skulle kunna bli en komplett webbshop. Jag tycker vi uppnådde de primära och viktiga mål vi satte för oss själva, liksom att kunna visa varor, läsa och titta på dem och köpa dem samt att det skulle finnas ett estetiskt tilltalande gränssnitt och även erbjuda användaren en viss användarupplevelse.
Positiva erfarenheter Vad jag tycker ha varit mest positivt i detta projekt är lärdomen jag fått av hur det är att jobba i ett projekt med detta arbetssättet. All dokumentation, uppdelningen av arbetet, versionshantering. Jag ser på detta mer som ett lärorikt projekt än något jag kommer hänga på väggen, alltså som en kunskap jag kommer att ha i min ryggsäck inför kommande projekt. Då vi inte har haft någon kontinuerlig handledning kring problem vi stött på utan snarare hur vi har planerat och jobbat med våra iterationer så har vi fått lösa många problem på egen hand, vilket har medfört mer kunskap. Fel- och hjälpsökning har ständigt pågått, både då i applikationen och på nätet, på något vis blir man alltid bättre på att hitta fel och lösningar i och med detta. Vad jag tycker blev lyckat med själva projektet var i helhet enkelheten bland det kanske mer avancerade bitarna. Hur en administratör i gränssnittet kan skapa ny produkt och ändra bland produkter och detta utan några problem. Presentationen och designen är jag ganska nöjd med, även om det inte ser så mycket ut när man tittar på det, men detta kan också bero på att det egentligen inte fanns eller behövde vara så mycket mer att visa än det vi hade. Jag tycker att användarupplevelsen finns där, funktionaliteten är lagom och stilrent utformad och applikationen är relativt stabil och säker. I framtida projekt skall jag absolut planera min tid bättre och inte slösa med den som vi faktiskt gjorde i detta projekt emellanåt. Jag skall se till att ha all nödvändig dokumentation klar innan jag påbörjar något och sikta högre. Nu var det ju så att vi trodde, några veckor in i projektet att vi skulle få göra denna skarpt mot företaget som sedan också skulle användas skarpt, varför vi planerade att slutföra en del under sommaren. Motivationen föll dock en del när vi fick reda på att de istället planerar att lägga ner, vilket kanske var anledningen till att det "bara blev detta och inte mer". Tills nästa projekt skall jag absolut se till att sikta högre som nämnt, att skapa något innovativt med nya möjligheter till att lära sig nya språk. Negativa erfarenheter Först och främst har vår tid inte utnyttjats helt så mycket som den borde gjort, vi har heller inte varit särskilt innovativa och skapar något nytt, anledningen till detta kan nog vara som nämnt ovan, företagets plötsliga beslut att lägga ner. Jag tror att när vi jobbar i samma språk och ramverk från tidigare kurs så borde vi ha kunnat lägga mer tid åt hur vi skall använda oss av all data, göra mer funktionalitet genom användarupplevelser och till slut få fram en mer unik produkt. I framtida projekt skall jag se till att strikt följa arbetssättets rekommendationer och inte underskatta tiden utan gå in för projektet med full kraft och som sagt sikta högre. Sammanfattning Min sammanfattning kring detta är egentligen att med den grunden och tidsåtgången vi har haft så borde något större och mer innovativt kunna skapas. Det är även så att dessa två kurserna som gick parallellt och skulle utgöra varandra inte riktigt var synkade, hade detta varit mer anpassat så hade det givetvis underlättat. Med andra ord, hade vi haft alla instruktioner från början istället, så hade vårt arbetssätt förmodligen sett annorlunda ut. Att jobba i grupp har varit lärorikt och kul, det gick bra att dela upp arbetet, även om det ibland blev lite "o-synk" mellan oss. Detta gjorde dock att vi istället intresserade oss för vad den andre gjorde och engagerade oss mer i det. Jag gillade att jobba i grupp, främst för att det är en bra lärdom då jag troligen kommer att få göra det i framtiden, men även för att det är kul att ha någon att bolla idéer och tankar med. Kursen i helhet har varit rolig och utmanande, kanske inte lika utmanande som jag hoppats på, men det beror helt och hållet på hur man lägger upp det för sig. Summa summarum; siktar man högt och följer instruktionerna samt inte underskattar tiden så tror jag absolut att man kan göra lite bättre ifrån sig än vad vi gjorde, men motivationen är nog den som ändock väger högst av allt, vilken ibland kan fallera lite tyvärr.