TDP003 Projekt: Egna datormiljön UPP-gruppen Inst. för datavetenskap Linköpings universitet Filip Strömbäck, Anton Sundblad Filip.stromback@liu.se, anton.sundblad@liu.se Slides av Klas Arvidsson klas.arvidsson@liu.se
Översikt Om kursen Allmänt om projekt Kort om portfolioprojektet ABC i social kompetens
Om kursen Du hittar allt om kursen på aktuell kurshemsida: http://www.ida.liu.se/~tdp003/current
Kursmål Få kunskap om och erfarenhet av Att konstruera och arbeta i en fungerande datoromgivning för utvecklingsarbete Att konstruera en webbsajt och stödprogram för hantering av projektportföljen, som exempel på ett fullt ut fungerande mindre programprojekt
Kursens organisation Vecka 36 Fö: Introduktion Fö: Om projektet Portfolioprojektet + handledning + inlämningar Fö/Le: Webbutveckling Dagbok + git-log Portfolioprojekt Sem: redovisning Munta Vecka 43 Reflektion
Planering/Schema Se kurshemsida!
Lärare Torbjörn Jonsson (Examinator) Filip Strömbäck (Kursledare) Anton Sundblad (Kursledare) Pontus Haglund (Assistent) Kimberley French (Assistent) John Litborn (Assistent) Ta upp frågor och problem på schematid! Det går bra att fråga vem som helst!
Kurslitteratur * Reflektion/terminsbok: Code Complete, 2 nd Ed. Steve McConnell Microsoft Press 2004 Part I, III och IV * Övrigt kursmaterial på kurssidan
Examination I genomsnitt betyg G på inlämningar Individuell reflektion baserad på dagbok, Code complete och revisionslog Aktivt deltagande på seminarie och redovisningar Godkänd individuell munta
Individuell reflektion Egen programmerardagbok Valfritt textdokument snyggt och prydligt med namn och datum etc. Blogg valfri blogg med bra stöd för uppslagning via datum En skriftlig reflektion görs baserat på dagbok och Code Complete Läs CC Part I, Part III och Part IV Välj ut teman i CC som du känner ni kommit i kontakt med i projektet eller som intresserar dig och arbeta med dem extra noga
Muntlig tenta Kommer ske under vecka 43 Tider kommer komma upp senare Sker enskilt, inte i grupp Ni diskuterar er kod och svarar på frågor
Om IP-projekt
Vad är din dröm att kunna? Webbutvecklare Java-guru Egen företagare Välbetalt IT-jobb Jobb på häftig firma
IP-projekt Erövra din självständighet Egen erfarenhet av programmering Utveckla sin kreativa förmåga som programmerare Kräver ett öppet sinne prova på nya tekniker samarbeta med andra människor Utbildar dig på projektkompetens: självständigt tekniskt hantverkskunnande förmåga att fungera i ett team Lärling -> gesäll -> mäster
Team IP Studenter och lärare på IP bildar vårt totala team Målet är att utbilda kompetenta programmerare Inom ramen för IP-projekt bildar ni underteam Läraren, terminsansvarig och programansvarig är era direkta och indirekta team-ledare Tänk på IP som ett företag/organisation! Lärare och studenter arbetar ihop Konstruktivt förhållningssätt till lärare och medstudenter Lärare är mer coach/ledare än ämnespedagog
Projektdriven undervisning Ökat krav på social förmåga jämfört med vanlig utbildning Närvaro på schemalagd tid förutsätts Inga närvarolistor men vi håller koll på närvaron informellt Jmf. ett modernt kontor: förutsätts vara där 9-16 normalt sett Den som inte är närvarande kommer inte bli godkänd Projektkompetens är kompetens i kombinationen människor och teknik
Hantverksmodellen: Erövra din självständighet Egna projekt efter IP... Din dröm/du är mäster Interaktivt system Eget datorspråk Spel: OO-system Portfolio Första projektet/lärlingsnivå
Vad är projektmetodik? Methodology: the development of methods, to be applied within a discipline (källa: wikipedia) Programutvecklingsmetodik: metoder för att utveckla programvara på ett strukturerat sätt. Ibland kontrollerat kaos men aldrig bara kaos Att bara koda på...är ingen bra väg framåt Metodens arbetstyngd måste stå i proportion till projektet som helhet lätta metoder för små projekt; tunga för stora
Aktivitetsdiagram (enligt UML) [Grupp 2] Registrera er på webreg [Grupp 1] Diagram för Handledaraktivitet Även kallat flödesschema (eng flowchart) Både för system och projektprocesser (Ofta) tidsmässigt flöde Handledning med X Handledning med Y Noder/rutor: aktiviteter Bågar/pilar: flöde [x]: villkor på flöde Oklarheter Oklarheter Utklarat Utklarat
Portfoliosystemet Systemidé Ett webbaserat system för att visa upp gjorda projekt listar de projekt ni gjort och egna projektsidor med mer information om projektet Ett verktyg åt er själva ni är själva beställare av systemet Ni och andra som ni visar era projekt är användare Kursledningen är projektledare som dragit upp riktlinjer för arbetsordning (som ni har att acceptera som givna krav) Inom givna ramar har ni fria händer
Portfoliosystemet - Systemskiss Fyra webbsidor med URLerna: /list / /project/id /techniques
Portfolioprojektet - Genomförande Förberedelse: undersök existerande system och fundera hur ni vill ha det Leverabler: skisser på systemet, projektplan Konstruera: design och implementation av systemet Två delsystem ska byggas: Presentation och Data Leverabler: fungerande system och dokumentation Överlämna: färdigställande och inlämning av projektet Uppföljning: reflektion, testning av varandras system, utvärdering av hur projektet gått
Portfoliosystemet - arkitektur Två delsystem med olika ansvar Presentation Data Fil med data Presentation: användarhändelser Data: datahantering Standariserade källkodsgränssnitt (API) till delsystemet Data
Portfolioprojektet - Kravspecifikation Funktionella krav (what... do):... Ickefunktionella krav (how... be): Fil med json som lagringsformat mallar för html-generering Arbetsordning: Arbete i par Revisionslogg med meningsfulla kommentarer Ytterligare person(er) gör systemtest
Om att arbeta i par Enklaste formen av samarbete Vanligt även i skarpa (större) projekt Säkerställa kvalitén: 4 ögon istället för 2 Dela upp eller arbeta ihop Axel-mot-axel-modellen: enkel men ibland ineffektiv 1/2-fart Dela upp men arbeta överallt båda två iterera ihop er Sociala roller: båda måste få utvecklas Dominera inte / göm er inte Skifta paret (i senare projekt) lär er jobba med fler än en person
Tidsplanering 100% Nybörjare Gör en tidplan ligger ni efter öka takten! Tänk procentuellt: 5 d = 100% -> 1 d = 20% 100% Tid Arbeta i början Dela ner problemet 100% Tänk gör tänk gör... Sikta på professionell kurva! Professionell 100% Tid Arbetsinsats Leverabler
ABC i social kompetens
Projekt = Människor Datorer
Människor är som kristallglas Människors känsloliv är svåra att reparera Människor har egna unika syften/livsmål Var rädd om andra människor! Empati förståelse, inlevelse, känslomässig förmåga
Tänk positivt kommunicera positivt Usch vilken gräslig källkod det blev...speciellt din! Wow, tänk att vi fick ihop det...och systemet blev riktigt bra!
Beröm är bättre än kritik Tänk positiva tankar Du kan bara ha en tanke i taget - Håll den positiv Tänker du positivt kommunicerar du positivt Uppmuntra styrkorna Negativ kritik behövs oftast inte (destruktivt) Utveckla det som är lovande (konstruktivt) Hitta inte fel hos andra/dig själv hitta intressanta saker istället Leta berömvärda saker hos andra Förbättra dig själv i första hand
Ditt perspektiv är inte Enda Sanningen Nu har du haft en grå tröja varje dag i tre veckor. Prova gärna med något i färg istället det är snyggare Stackarn han måste vara färgblind...
Alla har rätt ur sin synvinkel Vi befinner oss alla i olika situationer Vi har olika fokus i olika ögonblick (sjön suger) T ex: Fokus på innehåll inte språklig form Fokus på teambyggande inte presentationsteknik Ingen kan ha fokus på allt hela tiden men väl brist på fokus... Skillnad att spela hockey på läktaren och på plan
Undvik/arbeta bort negativa beteenden... Besserwissern Gnällspiken Omogenhet Jag säger detta utan att någon bett mig och i all välmening: -ni borde gjort på mitt sätt... Ååh vem har kommit på det här dumma namnet Det är väl inte mitt fel läraren sa ju åt mig... Skyll på någon annan Soffliggaren Jag? Gäsp! Äh jag bryr mig inte... det ordnar sig alltid (det har det alltid gjort) Ryktesspridaren Nu när dom gått ska jag berätta vad de gjorde...
Förstå olika personligheter DISC/DISA: http://thomaserikson.com/beteendevetens kap-disa/william-moulton-marston/ Möt andra på deras villkor det är du som måste anpassa dig! Speciellt när du vill få andra åt ditt håll. Läs gärna Omgiven av Idioter av Thomas Erikson (eller varför inte hans skönlitterära böcker om Alex King)
Uppgifts och sakorienterad Introvert Passiv Avvaktande Extrovert Aktiv Genomförare Relationsorienterad
Respektera din och andras integritet Eftersom skolmaten blivit så dyr tvingas mamma och jag göra oss av med två av er......eller: Varför Chefen inte beter sig som en förälder
Integritet Olika skikt har olika sociala syften Du Familj Vänner/privat sfär Var tydlig i dina roller Skydda dina sociala sfärer Du behöver inte svara! Kollegor Yrkesliv
Sammanfattning 5 tumregler Människors självkänsla är ömtåligt - var empatisk Tänk positivt uppmuntra hellre än kritisera Inse att du bara ser ett Perspektiv inte Hela Bilden Undvik negativt beteende var ingen Besserwisser Lär känna och respektera din och andras integritet ABC i social kompetens är en förutsättning för allt projektarbete. Annars fungerar inga metodiker alls.
Summering Samarbeta! Håll deadlines! Satsa på hög kvalité! Ha roligt och tänk positivt!