lu.se

Denna sida på svenska This page in English

Förslag

Nedanstående förslag är bara exempel och tänkta som inspiration. Egna förslag är mycket välkomna (diskutera med Görel).

DESIGN/ARKITEKTUR

Design by Contract
Med design by contract, t.ex. med JML, kan man ange pre och post conditions för metoder och invarianter för klasser. Hur kan detta användas och kombineras med testning? Gör en utvärdering av metoden för PVG-projektet.

Big ball of mud / Technical debt / Large refactorings
Felix Glas
Många system liknar efter hand en "big ball of mud", med massor av "technical debt", och man skulle behöva göra stora refaktoriseringar. Hur kan man hantera eller undvika detta? Finns det systematiska metoder eller mönster för detta? Gör en utvärdering baserat på PVG-projektet.

Agil arkitektur
Hur kan man arbeta med arkitekturen i ett agilt projekt? Vilka råd finns i litteraturen? Kan detta anpassas till PVG-projekten? Hur kan man arbeta med metaforer/ubiquitous language/domain-driven design för att få en bra design?

TESTNING

TDD Code katas
För att lära sig TDD har det föreslagits att man skall arbeta sig igenom "code katas", konkreta exempel enligt en mästares anvisningar, och man skall gärna repetera samma exempel flera gånger. Utvärdera iden. Kan man som coach bli bättre på att lära ut TDD genom att förbereda sig genom att arbeta sig igenom sådana katas? Kan man få utvecklarna att ta till sig TDD lättare genom att låta dem köra igenom sådana övningar? Kan man hitta på egna katas som passar just för PVG kursen?

Avancerad användning av JUnit
David Meyer och Adam Wamai Egesa
Einar Holst

Sedan den först allmänt spridda versionen av JUnit (3.8.1) har ramverket utvecklats på en rad sätt med stöd för t.ex. mock objects, theories, categories, etc. Hur fungerar dessa mekanismer? Hur skulle de kunna utnyttjas i PVG-projekten? Testa eventuellt även JUnitMax, en Eclipse-plugin för kontinuerlig testning.

Generering av enhetstester
Det finns verktyg som stödjer automatisk generering av enhetstester. Exempel är Symstra, DART, och CUTE/jCUTE. Hur fungerar dessa verktyg? Hur skulle de kunna utnyttjas i PVG-projekten?

Testning av användargränssnitt
Jimmy Assarsson
Hur kan man testa användargränssnitt på ett automatiserat sätt? SwingUnit och Abbot är två exempel på verktyg som stöder automatiserad GUI-testning. Hur fungerar de? Finns det andra? Vilka för- och nackdelar finns? Passar de för PVG-projekten?

ScalaTest
Ramverket ScalaTest är implementerat i Scala och kan användas för att unit-tests av såväl Scala som Java-program. Undersök hur ScalaTest fungerar och gör en jämförelse med JUnit, t.ex. för PVG-projekten.

Analysverktyg för kod och test
Emil Einarsson
Undersökning av verktyg för analys av kod och testfall

KOD-KVALITET

Kodkomplexitet
Arvid Lindell
Det finns definierade mått för att avgöra hur komplex en programvara är. Ett välkänt exempel är cyclomatic complexity. Två forskare, Chidamber och Kemerer har tagit fram en serie mått för Java-kod (the CK metrics suite). Finns det andra vanliga mått? Vad är det man mäter? Finns det verktyg som man kan använda? Prova något verktyg och jämför koden i olika PVG-projekt. Är måtten användbara? Hittar man problematisk kod med dem?

Code smells / Refaktorisering
Stefan Johansson och Martin Larsson
Finns det verktyg som kan upptäcka "code smells", dvs behov av specifika refaktoriseringar? T.ex. duplicerad kod, för stora metoder, etc. Vilka verktyg finns? Hur fungerar de? Är de användbara för PVG-projekten?

SOFTWARE CONFIGURATION MANAGEMENT

Är du intresserad av djupstudier om SCM, kontakta Lars Bendix (bendix AT cs.lth.se). På http://www.cs.lth.se/home/Lars_Bendix/Research/ASCM/ kan du hitta tidigare djupstudier om SCM plus forskning kring SCM och agila metoder.

GIT
Patrick Ivarsson & Kristofer Jacobson
GIT har de senaste åren blivit mer och mer populärt som versionshanteringsverktyg, inte minst inom Open Source projekt.
Det kan användas på projekt i alla storlekar och fokusera på snabbhet och effektivitet. Vi vill jämföra hur bra det fungerar
i jämförelse med SVN/CVS som annars är standard i PVG-kursen. Vi vill dels själva sätta oss in i det då vi har stött på det
vid flertalet tillfällen och med plugin som t.ex. EGit (till Eclipse) se hur lätt gruppen kan använda sig utav det.

Implementation av SCM-plan
Oscar Präntare & Edward Linderoth-Olson
Implementation av en SCM-plan som för närvarande är under specifikation.

AGIL METODIK

Parprogrammering
Hur kan man få parprogrammering att fungera bra? Hur skall den coachas? Hur bör programmerarna agera? Hur kan man hantera situationer när programmerarna är på mycket olika nivåer kunskapsmässigt?

Tekniker för estimering
Fredrik Stål
Det finns olika sätt att estimera hur lång en story eller funktion tar att implementera. Vilka tekniker finns i litteraturen? Vilka för och nackdelar finns med dem? Vilka skulle kunna tänkas passa bra ihop med agil utveckling? Utvärdera dem på ditt team.

Kundens roll i XP
XP säger egentligen inte så mycket om kundens roll. Hur hanteras kundrollen i verkliga projekt? Läs om undersökningar av t.ex. Martin, Biddle, Noble, publicerat på konferensen Agile 2009. Finns det andra modeller för kundrollen? Vilken modell följer kunderna i PVG-teamen? Skulle man vilja ändra på detta?

Lean Development
Toyotas modell för "Lean Production" har anpassats till mjukvaruutveckling under benämningen Lean Software Development. Undersök denna metod närmre och identifera några delar som skulle kunna vara användbara i PVG-projekten, och utvärdera dem på PVG-projekten.

Scrum Master
Undersök Scrum närmre, och speciellt rollen som Scrum master. Finns det tekniker i Scrum som är användbara för coacher i PVG-projekten? Försök tillämpa dem på ditt team och utvärdera teknikerna.

Scrum of Scrums
Hur använder man Scrum för stora projekt och distribuerade team?

LEDARSKAP OCH TEAM

Agila reflektion och retrospektiver
Hur får man teamet att utvecklas med hjälp av reflektion och retrospektiver? Vilka råd finns i litteraturen? Hur kan man anpassa detta till de nedskalade PVG-projekten?

Självorganiserande team
I många agila metoder talar man om att team ska vara självorganiserande. Hur menas med detta? Vad blir då coachens roll? Finns det dokumenterade erfarenheter av sådana team?

Att introducera förändringar
Daniel Nilsson och Mattias Nordahl
Att införa en ny metod som XP kan vara svårt på många sätt. Det krävs acceptans hos de inblandade och det är samtidigt svårt att ändra på befintliga arbetssätt. Vad är viktigt att tänka på som coach i en sådan situation? Hur kan man gå tillväga?

Teamteori
Fördjupning i teamteorier. Läs noggrannare om en eller flera teamteorier och försök applicera på ditt team.

Delat ledarskap (Dual leadership)
David Everlöf och Niclas Unnervik
Hur kan man se på delat ledarskap? Vilka modeller finns i litteraturen? Hur hanteras det dubbla ledarskapet i de olika teamen? Kan man ge råd om detta till framtida coacher?

Delat ledarskap och teambuilding på vägen mot ett effektivare team
Daniel Lehtonen och Emil Selinder
Vilka modeller för delat ledarskap finns?
Hur hanteras det delade ledarskapet i de olika teamen?
Hur kan vi uppnå vad Svedberg kallar ett effektivare team genom att använda delat ledarskap?
Går det bättre / sämre för vissa? Har de aktiviteter för teambuilding?
Applicera teambuilding i teamet, vad funkar bra och vad funkar mindre bra?
Vi tänkte att vi även kunde ge lite råd till framtida coacher baserat på våra resultat.

Business coaching
Fördjupning i business coaching och dess relation till programutvecklingsprojekt.

Sidansvarig: