Det här är en statusrapport från sprint 1 (första sprinten var sprint 0).
Eftersom målet vid tillfället för sprintdemot är att ha en produkt som, om kunden skulle önska, går att släppa i produktion med en gång är det viktigt att teamet slutför de stories de åtagit sig i alla avseenden. Inga knappar som inte gör något, “dynamiska element” som är statiska för att backenddelar saknas eller ofullständig design tillåts. Det medförde att vi direkt fick djupdyka på i princip alla områden; CSS och responsive design, webbläsarkompatibilitet, MongoDB och dataaccesslager, etc.
Kortfattat om sprinten
Talangprogrammet är ett utbildningsprogram på Valtech som riktar sig till juniora ingenjörer och studenter i slutskedet av utbildningen. I programmet ingår en blandning av utbildningar, certifieringar och projekt.
Projektet den här omgången är att utveckla en webbapplikation för att presentera konsult-CV:n och projektteam till kunder i samband med offerter.
Under början av sprinten gick därför en hel del tid åt till att (förutom att studera inför det WCF-certifikat vi skulle ta samma vecka) sätta upp bra grunder för HTML/CSS/Javascript och databaskommunikation som vi sedan ska kunna återanvända och bygga vidare på. Vi skapade en masterpage för att samla de delar som är gemensamma för de olika sidorna, lade upp Module pattern för Javascript och abstraherade MongoDB bakom ett generiskt IRepo med CRUD-funktionalitet.
Backendmässigt låg mycket fokus på att få kod både i MVC4-kontrollerna och dataaccesslagret testbart med enhetstester. Genom vår handledare och utbildare Tobias Hasslebrant som är kung på området fick vi lära oss om RhinoMock, IOC och Ninject, vilket visade sig mycket användbart tillsammans med MVC4.
Enhetstestning av MVC4-kontroller
Ett exempel: vår ProjectsController. ProjectsController används för att skapa projektteam av konsult-CVn som kan presenteras som förslag till en kund. Den behöver därför tillgång både till konsultprofiler och projekt från databasen. För att kunna skriva enhetstester som testar logiken endast i själva kontrollern måste vi kunna mocka dess beroenden. Vi skickar därför in dessa i konstruktorn enligt nedan.