Rapport - Sebastian Frank | Portfolio

Video og Database
Marc Vinther
Nanna Bak Eliassen
Christian Bertelsen
Sebastian Frank Andersen
Mikkel Borg Svendsen
Indholdsfortegnelse
Dokumentation af processen
4
Sprint Planning
4
Daily Scrum
5
Sprint Review
5
Sprint Retrospective
5
Burndown Charts
6
Backlogs
8
Attributtabeller
9
User Stories
11
Idé og koncept
12
Dramaturgi
12
Storyboard
13
Filmiske virkemidler
14
3 af 17
Dokumentation af processen
Vi har valgt at opdele et stort Scrum Team, i to mindre Scrum teams til henholdsvis video og
database. Da projektet blev udleveret, gik vi igang med at finde vores samlede Velocity. Ud fra
antagelsen, at hvert gruppemedlem arbejder gennemsnitligt 2 timer om dagen på projektet, opnår
vi en Velocity på 224 timer. I og med vi skulle levere to produkter, samt en rapport og en
præsentation, skulle vi uddele varighed af de enkelte produkter og elementer den samlede
aflevering skal indeholde. Vi kom frem til, at videoen fik tildelt 114 timer, databasedelen fik 75
timer, rapporten 34 timer og præsentationen har fået tildelt 5 timers arbejde. Ovenstående er
absolut utopi, i og med, at 40% af arbejdsopgaverne i en Sprint, er blevet opdaget undervejs i
Sprinten.
Som tidligere påpeget, arbejder vi efter Scrum, og benytter os derfor også af de 5 events der
finder sted under en Sprint;
- Sprint Planning
- Daily Scrum
- Development Work
- Sprint Review
- Sprint Retrospective
Hvorfor arbejder vi på denne måde? Det gør vi, for at opnå størst mulig effektivitet. Samtidigt, så
ved at holde ovenstående events, udnytter vi de 3 grundsøjler for Scrum; Gennemsigtighed,
Inspektion og Tilpasning.
Sprint Planning
Første event i Sprinten, er Sprint Planning. Her finder vi ud af hvad der skal laves og hvordan, og
estimerer de netop definerede arbejdsopgaver, så de matcher den samlede Velocity for Sprinten.
Sprint Planning er timeboxed til 8 timer, over en 30 dages Sprint. Det betyder, at den i vores
tilfælde er timeboxed til 6 timer, da vores Sprint kører over 3 uger.
Måden vi har estimeret arbejdsopgaverne på, er ved benyttelse af estimeringsmetoden Round
Robin. En tidskrævende, men præcis estimeringsmetode. Her bliver en arbejdsopgave bragt på
bordet, hvorefter første medlem fra Development Teamet giver sit estimat på den givne
arbejdsopgave. Når første medlem har gjort dette, videregives arbejdsopgaven til næste mand i
4 af 17
rækken, der giver sit estimat på samme opgave. Er andet medlems estimat højere eller lavere, end
første mands estimat, argumenteres der for de hidtil givne estimater. Når arbejdsopgaven har
nået hele holdet rundt, er alle blevet enige om et endeligt, og ganske præcist, estimat.
Vi har dog ikke estimeret arbejdsopgaverne tilfældigt. Vi har benyttet os af Fibonacci sekvensen,
som går ud på, at vi får indarbejdet usikkerhed i forhold til arbejdsopgaverne. Selve sekvensen
lyder på; 1, 2, 3, 5, 8, 13, 21, 34, 55 […].
Vi kan selvfølgelig ikke påbegynde en arbejdsopgave, der er estimeret til over en dags arbejde. En
normal arbejdsdag er defineret til 8 timer, og hvis en arbejdsopgave bliver vurderet som værende
mere end 8 timer, skal denne brydes ned i mindre arbejdsopgaver.
Daily Scrum
Ideelt set, ville Daily Scrum finde sted tidligst muligt på dagen, og have samme beliggenhed, hver
eneste dag. På denne måde reduceres kompleksiteten ved at afholde daglige møder. Det har
desværre ikke været en mulighed, i og med, at vi ikke har befundet os på en rigtig arbejdsplads.
Derfor har vi valgt at holde møderne online, hvor hvert medlem har besvaret 3 spørgsmål; Hvad
lavede jeg igår? Hvad skal jeg lave i dag? Samt, hvilke forhindringer har jeg i forhold til mine
arbejdsopgaver; er jeg afhængig af, at nogle færdiggør deres arbejdsopgave, før jeg kan komme
videre med min egen?
Sprint Review
Grundet projektets format, har det ikke været muligt at udnytte Scrum til punkt og prikke. Sprint
Review er det afsluttende event, der vedrører de tekniske elementer af Sprinten. Vi skal skrive om
vores brug af Scrum, og netop her, har disse to udmeldinger været modstridende.
Når det er sagt, afholdte vi stadig Sprint Review. Selve eventet var timeboxed til 3 timer. Det blev
grebet an, ved at demonstrere vores video og database strukturen; altså ved at vise de increments
vi har lavet undervejs i Sprinten. Umiddelbart ville næste skridt i et Sprint Review være, at finde ud
af hvad næste skridt skal være, men i og med at vi er færdige med projektet, giver det ikke mening
for os at bruge tid på dette aspekt af Sprint Reviewet.
Sprint Retrospective
Sidste event i Sprinten, er Sprint Retrospective. Dette event er timeboxed til halvanden time. Det
er her, vi snakker om personlige forhold på teamet. Vi satte os ned sammen efter Sprint Review og
5 af 17
gennemgik nogle spørgsmål i fællesskab; hvordan har samarbejdet været? Hvad har fungeret godt
i denne Sprint? Hvad har fungeret mindre godt? Slutteligt, hvad kan vi gøre anderledes til en
anden gang?
Burndown Charts
Vi har undervejs holdt styr på den samlede mængde arbejdsopgaver, der manglede at blive lavet.
Her har vi brugt Burndown Charts, da disse viser de netop ovenstående; hvor mange timers
arbejds venter, før vi kan kalde projektet for afsluttet.
Grunden til at vores Burndown Charts ser ud som de gør, er at vores arbejdsopgaver ikke er blevet
rykket over på sidste stadie og erklæret lukkede. Derudover har vi ikke brugt hele vores Velocity
undervejs, som også kan ses på nogle af vores Burndown Charts.
Som en sidenote, er vores Burndown Charts ikke lavet i Excel, da det ikke ville give mening for os,
at sidde og indtaste vores tal manuelt, men i stedet benytte os af et værktøj der udfører arbejdet
automatisk. På denne måde har vi kunne fokusere mere på andre elementer af projektet, og
undgået at bruge unødvendig tid, ved at indtaste tallene manuelt.
Alle fire diagrammer findes på næste side, hvor der medfølger en kort beskrivelse.
6 af 17
Rækkefølgen på vores Burndown Charts lyder således; først selve produktet. Næste Burndown
Chart er for databasen. Tredje mand i rækken befinder sig nederst til venstre, og repræsenterer
rapporten. Slutteligt, nederst til højre, befinder der sig en Burndown Chart for videoen.
7 af 17
Backlogs
Vi har under Sprint Planningen fået stablet en Product Backlog på benene, der viser alle
arbejdsopgaver og estimeringer af disse. Vi har valgt at opdele det yderligere, så vi har en backlog
til hvert produkt og element; en til video, en til database, en til rapporten og en til det samlede
produkt.
Vi har brugt Trello til at sætte boards op, til de enkelte produkter og elementer. Her har vi 4
scenarier til arbejdsopgaver:
- Backlog
- Selve backloggen. Her ses alle estimerede arbejdsopgaver. Det giver os et overblik over hvad
der mangler at blive lavet.
- In Progress
- Opgaver der bliver arbejdet på i øjeblikket, og er tildelt et gruppemedlem.
- Review / QA
- Er en arbejdsopgave rykket over på dette scenarie, betyder det at vedkommende der har
arbejdet på den, har vurderet den som værende færdig. Derfor er den sende til review, for at
et andet gruppemedlem kan kigge opgaven igennem. Grunden til at vi gør det på denne
måde, er at man kan komme til at stirre sig blind på sit eget arbejde efter en vis tid, og derfor
ved et uheld overse komplikationer.
- Done
- En arbejdsopgave der har været alle scenerierne igennem, og derved kan bedømmes som
værende færdig.
8 af 17
Attributtabeller
Client
Attributes
Type
Null
Default
idClient (Primary)
Int(11)
No
-
Client_Name
Varchar(45)
No
-
Client_Address
Varchar(45)
Yes
Null
Client_Contact_Person
Varchar(45)
No
-
Client_Contact_Phone
Varchar(45)
Yes
Null
ZipCode_idZipcode
Int(11)
No
-
Attributes
Type
Null
Default
idProject (Primary)
Int(11)
No
-
Project_Name
Varchar(45)
Yes
Null
Start-date
Datetime
Yes
Null
End-date
Datetime
Yes
Null
Project_detail
Longtext
Yes
Null
Client_idClient (Primary)
Int(11)
No
-
9 af 17
Project
Attributes
Type
Null
Default
Project_idProject (Primary)
Int(11)
No
-
Resource_idResource (Primary)
Int(11)
No
-
From_Date
Datetime
Yes
Null
To_Date
Datetime
Yes
Null
Hourly_Usage_Rate
Varchar(45)
Yes
Null
Attributes
Type
Null
Default
idResource_Type (Primary)
Int(11)
No
-
Resource_Type_Name
Varchar(45)
No
-
Project_has_Resources
Resource_Type
Resources
10 af 17
Attributes
Type
Null
Default
idResources (Primary)
Int(11)
No
-
Resource_Name
Varchar(45)
Yes
Null
Resources-Detail
Varchar(45)
Yes
Null
Resource_Type_idResource_Type
Int(11)
No
-
Attributes
Type
Null
Default
idZipcode (Primary)
Int(11)
No
-
City
Varchar(45)
No
-
Zipcode
User Stories
For at skabe overblik over hvilke kriterier der er til databasen, har vi udarbejdet en række user
stories, som er krav stillet fra brugeren til os, hvilket skal udforme databasen.
-
Som bruger, vil jeg gerne kunne indtaste mit navn.
Som bruger, vil jeg gerne kunne informere om min adresse.
Som bruger, vil jeg gerne kunne indtaste navn på en kontaktperson
Som bruger, vil jeg gerne kunne give information om kontaktpersonens telefonnummer.
Som bruger, vil jeg gerne kunne give information om mit projekt.
11 af 17
- Som bruger, vil jeg gerne kunne informere om hvilke ressourcer jeg bruger.
Idé og koncept
Selve projektet kan deles op i to dele. Videodelen og databasedelen. Videodelens hovedformål,
var at beskrive den kommunikation der rent faktisk finder sted mellem browseren, web serveren
og database serveren. Den kommunikation og den proces det er, har vi illustreret i vores film i
form af en rejse gennem hverdagen og det danske land.
Da målgruppen for denne film er andre multimediedesignstuderende, som måske ikke
umiddelbart kender til databaser og den kommunikation der finder sted mellem databasen,
browseren og web serveren, var det utrolig vigtigt for os, at målgruppen nemt kunne relatere og
forholde sig til forklaringen. Vi vurderede, at det ville være klart nemmest at forstå, hvis vi tog
udgangspunkt i hverdagen. Efter længere tids spekulationer, endte vi med at blive enige om, at
noget af det som allerflest studerende kan nikke genkendende til, er den offentlige transport. Så
det blev temaet for vores film.
Dramaturgi
Filmens hovedperson står på en station, laver en HTML request (via P.O.V. interface), dørene
åbner, og vi stiger ind og kører nu gennem PHP-land, hvor vi skifter sprog/tog til mySQL, der
leverer requesten videre til databasen, også kendt som endestationen. Vi kører herefter fra
12 af 17
databasen, tilbage til mySQL, tilbage til PHP og leverer en ”Succesfull request” tilbage til clienten,
som er vores hovedperson.
Ovenstående er en kort beskrivelse af filmens handling - hvor vi som sagt vil forsøge at forklare
den kommunikation der finder sted mellem browseren, web serveren og database serveren.
For at sikre filmens dramaturgi har vi opbygget vores film efter berettermodellen, som gerne skal
være med til at sikre at seerens opmærksomhed er fanget fra start til slut.
Berettermodellen består af 7 faser, der hver har sin funktion i den samlede fortælling. Filmens
første to faser er ”anslaget” og ”præsentation” og er her hvor seeren får en forsmag for filmens
handling samt en præsentation af filmens hovedpersoner og location. Disse to faser, finder sted i
filmens første scene hvor hovedpersonen og hans agenda bliver præsenteret. Filmens tredje fase
er ”uddybningen” og er her hvor seeren får mere af vide om filmens konflikter. Dette sker, da
filmens hovedperson laver en såkaldt ”HTML request”.
”Point of no return” er filmens fjerde fase, og er der hvor der sker en afgørende begivenhed.
Filmens hovedperson tager en afgørende beslutning, ved at hoppe ombord på toget. Der er derfor
ingen vej tilbage. ”Konfliktoptrapningen” er der hvor hovedpersonen bliver udfordret – og det sker
i en ret stor del af filmen, da hovedpersonen skal skifte tog en hel del gange.
Filmens ”klimaks” sker når konflikten løses og hovedpersonen når frem til databasen
(endestationen) mens ”udtoningen” finder sted, når hovedpersonen tager tilbage til
udgangspunktet. ”Congratulations, you have succesfully signed up for the newsletter”.
Storyboard
Et storyboard er en god måde at forberede sig på, når man skal filme. Har man forberedt sig
”hjemmefra” og lavet et storyboard – kan man spare tid og kræfter på at skulle diskutere, hvordan
handlingen skal være i næste scene, hvordan kameraindstillingen skal være, hvor langt klippet skal
være, hvilken lyd der skal være og så videre.
Vi har også lavet et storyboard, så vi netop var fri for at skulle tage stilling til om hvorvidt
kameravinklen skulle være den ene, den anden eller den tredje.
13 af 17
På vores storyboard kan man se, at filmens hovedperson starter med at stå på en togstation med
ryggen til kameraet. Kameraet zoomer ind i hovedpersonens hoved, og ender med at blive
hovedpersonens point of view – hvor et interface dukker op. Hovedpersonen stiger på det første
tog, og vi følger ham i toget. Hovedpersonen forlader toget, og vi ser en timelaps af stationen som
hovedpersonen befinder sig på. Vi følger hovedpersonen ind i næste tog, til han forlader toget
igen, inden han går ind i et nyt tog, som han også forlader. Hovedpersonen når frem til
endestationen, og POV interfacet viser at databasen arbejder og går fra blå til grøn.
Hovedpersonen skal nu tilbage til ”start”. Dette gøres i form af timelapse i de tre toge som
hovedpersonen skal igennem. Hovedpersonen stiger ud af det sidste tog, og POV interfacet viser
at HTML-requesten var succesfuld.
Ud fra vores storyboard, havde vi derfor en god fornemmelse af, hvordan den endelige film ville gå
hen og se ud. Dog med mulighed for enkelte ændringer, hvilket man også kan se i filmen. Det er jo
tilladt at blive klogere og få nye kreative idéer.
Filmiske virkemidler
Vi har valgt at stille fremvise vores brug af filmiske virkemidler ved at opstille hver scene, og
beskrive de enkelte virkemidler hertil; beskæring, synsvinkel, klipning, lyd og bevægelse.
14 af 17
Scene 1
Beskæring: Halvtotal
Synsvinkel: Normalperspektiv
Klipning: Krydsklipning
Lyd: Asynkron lyd
Scene 2
Beskæring: Halvtotal
Synsvinkel: Normalperspektiv
Klipning: Krydsklipning
Lyd: Asynkron lyd
Scene 3
Beskæring: Halvnær
Synsvinkel: Normalperspektiv
Bevægelse: Zoom
Klipning: Kontinuitetsklipning
Lyd: Asynkron lyd
Scene 4
Beskæring: Total / Point of view
Synsvinkel: Normalperspektiv
Bevægelse: Håndholdt
Klipning: Kontinuitetsklipning
Lyd: Asynkron lyd
15 af 17
Scene 5
Beskæring: Total
Synsvinkel: Normalperspektiv
Klipning: Krydsklipning
Lyd: Asynkron lyd
Scene 6
Beskæring: Total
Synsvinkel: Fugleperspektiv
Klipning: Krydsklipning
Lyd: Asynkron lyd
Scene 7
Beskæring: Supertotal
Synsvinkel: Normalperspektiv
Bevægelse: Håndholdt
Klipning: Krydsklipning
Lyd: Asynkron lyd
Scene 8
Beskæring: Halvtotal
Synsvinkel: Normalperspektiv
Klipning: Krydsklipning
Lyd: Asynkron lyd
16 af 17
Scene 9
Beskæring: Supertotal
Synsvinkel: Normalperspektiv
Klipning: Krydsklipning
Lyd: Asynkron lyd
Scene 10
Beskæring: Total
Synsvinkel: Frøperspektiv
Klipning: Krydsklipning
Lyd: Asynkron lyd
Scene 11
Beskæring: Total
Synsvinkel: Normalperspektiv
Bevægelse: Håndholdt
Klipning: Krydsklipning
Lyd: Asynkron lyd
Scene 12
Beskæring: Halvtotal
Synsvinkel: Normalperspektiv
Klipning: Krydsklipning
Lyd: Asynkron lyd
17 af 17
Scene 13
Beskæring: Halvtotal
Synsvinkel: Normalperspektiv
Klipning: Krydsklipning
Lyd: Asynkron lyd
Scene 14
Beskæring: Halvtotal
Synsvinkel: Normalperspektiv
Klipning: Krydsklipning
Lyd: Asynkron lyd
Scene 15
Beskæring: Halvtotal
Synsvinkel: Normalperspektiv
Klipning: Krydsklipning
Lyd: Asynkron lyd
Scene 16
Beskæring: Supertotal
Synsvinkel: Normalperspektiv
Klipning: Krydsklipning
Lyd: Asynkron lyd
18 af 17