SLUTRAPPORT RUNE TENNESMED WEBBSHOP -05-30
Abstrakt Under 10 veckor har jag och Oskar Norling arbetat med att ta fram en webbshop-applikation till företaget Rune Tennesmed i Kalmar. I denna rapport tänker jag gå igenom de positiva och negativa erfarenheter jag har fått under projektperioden. Genom projektet har jag utökat mina kunskaper inom databashantering, ASP.Net web forms och även C#. Jag har även erfarit hur testning, uppskattning av tid, riskhantering, prioritering och framför allt dokumentation är en stor del av mjukvaruutevecklingsprojekt.
Förord Idén till att göra en webbshop åt Rune Tennesmed fick vi någon månad innan projektstart genom att Oskars släkting, som jobbar på företaget, kom med förslaget att vi skulle uppdatera deras hemsida då den känns gammal, statisk och utdaterad. Efter lite diskussion så kom vi fram till att vi även skulle utveckla en webbshop för dels stärka företagets position på marknaden och dels för att vi fann det väldigt intressant att kombinera de kunskaper vi har samlat på oss under första året på webbprogrammeringsprogrammet till en och samma applikation.
Innehållsförteckning Innehåll Sida Inledning/bakgrund 5 Positiva Erfarenheter 6 Negativa Erfarenheter 7 Sammanfattning 8
Inledning/bakgrund Målet med projektet var att skapa en webbshop åt smedföretaget Rune Tennesmed som finns lokaliserat i Kalmar. Jag fann uppgiften väldigt intressant då jag var osäker på om jag hade plockat på mig nog med kunskaper för att ta fram en applikation av denna form. Applikationens klient-sida är skriven i JavaScript, CSS3 och HTML5 men tanken var att applikationen även skulle fungera i de äldre webbläsare som inte stödjer HTML5 och CSS3, därför försökte vi minimera användningen av detta. Användargränsnittslagret är skriven ASP.NET Web forms som vi valde av den anledning att det är där vi har mest kunskaper för tillfället och även för att vi ville fördjupa våra kunskaper yttligare. Affärslagret och Dataåtkomstlagret skrev vi i C# även detta för att vi kände att de kunskaper vi har plockat på oss under programmets gång var en stadig grund att stå på. Datalagret är framtaget i MSSQL vilket kändes som ett naturligt val då vi arbetat mycket med denna innan. Då kursen började fick vi reda på att det skulle vara ett individuellt projekt vilket gjorde att våra planer fallerade lite. Men efter vi pratat med kursansvarig så kom vi fram till lösningen att jag skulle fokusera på databas-biten av applikationen och att Oskar skulle lägga mer tid på gränssnittets utformning. Jag började mitt arbete med att skapa ett databasdiagram över hur databasens tabeller skulle se ut, detta för att man enkelt kan se själva uppbyggnaden framför sig samt att det är enkelt att ändra de olika tabellerna. När jag fått fram den databasmodell som jag trodde skulle passa för applikationen så började jag skapa tabellerna och dess relationer i MSSQL. När detta var klart så började jag att skriva de lagrade procedurer som applikationen behövde för att hämta/ändra/skapa data i databasen. Sen började själv implementationen i applikationen där jag började med att skapa dataåtkomstklasser i C# för alla databastabellerna. Det som var kvar nu var att få applikationens alla funktioner att fungera samt att testa så att allting fungerade.
Positiva erfarenheter Först och främst har jag lärt mig att man ska börja testa de olika delarna tidigt för att på så sätt slippa att oväntade fel dyker upp senare i utvecklingen, vilket gör att det är betydligt svårare att hitta vart felet har uppstått. Har man det testat så gott det går innan man arbetar vidare med det så minimerar man risken för oväntade och jobbiga fel som ofta tar tid att identifiera och lösa då man har betydligt mer kod att gå igenom. Jag har även fått en djupare förståelse om hur man använder en webbläsares session. Då jag började fundera på vad som skulle hända då en kund la en produkt i varukorgen kom jag på ganska snabbt att det inte skulle vara optimalt då kunderna kanske ångrar sig och inte vill köpa något alls vilket resulterar i att det ligger onödig data i databasen. Då kom jag på att man skulle kunna använda sig av en session som sparar den nödvändiga information om de produkter som kunden väljer och sen inte spara det i databasen för än kunden slutför köpet. Då företaget har en målgrupp som är av den äldre typen så kom fick man lära sig att tänka på att det ska vara ett användarvänligt gränssnitt där det skulle vara enkelt att hitta och köpa de produkter man är intresserad av. Jag har även fått mer kunskaper inom Visual Studio då större delen av projektet spenderades i denna miljö. Nu har jag mer förståelse hur debuggen fungerar vilket underlättar otroligt mycket då man felsöker och kodar rent generellt. Detta kommer jag ha stor nytta av i framtiden. I övrigt så har man fördjupat kunskaperna inom C# och MSSQL programmering. Ju mer man sitter och kliar sig på huvudet, svär och hamrar tangenter desto mer förstår man. Slutligen vill jag säga att man blir förvånad över hur mycket man kan efter bara ett år på programmet. Det känns nästan som man skulle kunna göra vad som helst, webbapplikations-mässigt. Ska bli kul och spännande att se vad nästa år har att erbjuda.
Negativa erfarenheter Innan projektet började trodde jag att jag hade full koll på hur det skulle se ut samt hur jag skulle gå tillväga för att allting skulle fungera som vi hade tänkt. Detta resulterade i att man tog det ganska lugnt i början av projekttiden. Efter lite mindre än halva projektets gång började problem dyka fram och man började genast fundera på hur man skulle hinna med allt. Detta resulterade i att när projektet började närma sig sitt slut så fick vi stryka massa viktiga krav och applikationen blev inte färdig. Nu har jag lärt mig att det är bättre att sätta igång stenhårt direkt så man får en klarare syn på hur lång tid saker och ting tar och därefter kunna planera arbetet bättre. Även testningen har varit väldigt dålig under projektets gång och det var inte för än i slutet som man verkligen fokuserade på testningen. Detta resulterade i att det var bra mycket svårare att identifiera alla felen som uppstod. Det mest optimala hade varit att så fort man implementerar något så skriver man testfall för dom olika infallsvinklar som kan hända och testar det direkt. Då kan man, om något fel uppstår, nästan utesluta att det är där felet har uppstått. Så till nästa projekt blir det att lägga betydligt mer vikt på testningen. Slutligen vill jag säga att i projektet början såg man all dokumentation som något negativt och jobbigt, därför sköt man upp det till slutet av projektet. Men när man satte igång och börja skriva det så upptäckte jag att detta var något som var användbart och faktiskt kunde ha underlättat projektet i helhet, så till nästa gång så blir det att börja med dokumentationen från dag ett.
Sammanfattning Jag skulle tagit projektet mer seriöst från början så kanske vi hade kunnat uppnå alla våra krav och kunnat leverera en färdig applikation. En anledning till att man halkade efter lite var att företaget som vi gjorde applikationen till hade tappat intresse efter ungefär halva projekttiden, då ägaren inte riktigt visste vad han skulle göra med företaget. Detta gjorde att man genast tappade lite intresse i projektet och man var inte lika motiverad. Applikationen som vi levererar är jag ändå nöjd med då vi har fått med de viktigaste kraven och det är en snygg och enkel applikation. Det som återstår är att implementera ett orderhanteringssystem för administratören samt att fixa inloggning mellan applikation och databas. Även en betalningslösning behöver implementeras. Jag vill fortsätta jobba på applikationen tills den är klar då det känns som en väldigt bra erfarenhet att ha byggt upp en webbshop från grunden och detta är något man kan ha nytta av i framtiden. Dels för att man kan visa upp det för eventuella framtida arbetsgivare som en referens och dels för att jag tror det finns många små eller stora företag som idag inte har någon webbshop, att man då kan ta kontakt med dom och då leverera en lösning till dom. Jag tror helt enkelt att intresset för webbshoppar är stort.