# Projektplan ## Översikt projekt ### Projektuppgifter Projektnamn: **Askit** Partnerorganisation: LNU IT-avdelning Kontaktuppgifter partnerorganisation: Susanne Larsson <susanne.larsson@lnu.se> Fredric Wigren <fredric.wigren@lnu.se> Rikard Björkman <rikard.bjorkman@lnu.se> Kontaktuppgifter uppdragstagare: Denni Wernersson <dw222fy@student.lnu.se> Maria Olsson <mo223id@student.lnu.se> Sanna Doolk <sd222si@student.lnu.se> Sebastian Åkerblom <sa224ny@student.lnu.se> ### Projektorganisation Arbetsgruppen består av fyra studenter från programmet Webbprogrammerare vid Linnéuniversitetet: * Denni Wernersson * Maria Olsson * Sanna Doolk * Sebastian Åkerblom Handledare för gruppen är Tobias Ohlsson, kursansvarig från Linneuniversitetet. ### Tidsplan #### Faser * Inception v. 03 - v. 08 * Elaboration v. 06 - v. 12 * Constraction v. 09 - v. 18 * Transition v. 18 - v. 23 #### Deadlines * V. 07, 16/02/23 - Inlämning av vision och projektplan för Peer review 1 * V. 09, 27/02/23 - Presentation av inceptionfas * V. 11, 16/03/23 - Peer review 2 * V. 13, 27/03/23 - Presentation 2 * V. 14, datum kommer - Inlämning av fördjupningsrapport * V. 17, datum kommer - Peer review 3 * V. 19, datum kommer - Presentation 3 * V. 22, datum kommer - Presentation 4 * V. 22, 02/06/23 - Kursen avslutas * V. 23, 09/06/23 - Slutgiltig inlämning av projekt ### Bakgrund till projektets uppkomst Under termin sex på programmet Webbprogrammerare läser studenterna en kurs som heter Verksamhetsförlagt projekt som går ut på att genomföra ett projekt i grupp åt någon typ av organisation/kund. Uppdraget i den här gruppen är att genomföra ett projekt tillsammans med IT-avdelningen på Linnéuniversitet som är i behov av att undersöka möjligheten att automatisera delar av sin IT-support med hjälp av AI. ### Syfte med projekt Syftet med projektet är att få kunskap om att genomföra ett större projekt i grupp, samarbeta med en partnerorganisation samt att i slutänden ta fram en fungerande produkt som kan hjälpa partnerorganisationen att avgöra om de vill gå vidare med projektet i större skala. ### Övergripande mål - Ge studenterna kunskap om att arbeta i grupp för att genomföra ett mjukvaruprojekt - Genomföra ett samarbete mellan studenter och partnerorganisation - Ta fram en fungerande slutprodukt - Möta partnerorganisationens önskemål kring slutprodukt - Ge svar på om projektets sluprodukt uppfyller partnerorganisationens vision om hur tekniken ska kunna användas #### Use cases för ett lyckat projekt - Use case 1: Anna, lektor i praktisk filosofi på Linneuniversitetet (LNU) behöver förlänga tiden för sitt Zoom-möte i MyMoodle. Anna går in på LNUs intranät skriver i Chatboten Askits inputfönster. Anna: - Hur gör jag för att förlänga tiden på ett zoom-möte? Bot: - Hej! Använder du zoom i webbläsaren, som applikation på datorn eller i MyMoodle? Anna: - Använder mymoodle Bot: - Det enklaste är att skapa ett nytt möte för den tiden som saknas. - Use case 2: Sean jobbar på distans på LNU och besöker inte sin arbetsplats så ofta. Han blir osäker på sin kod till sitt passerkort när han sitter på tåget på väg dit. Han skriver i Askit: Sean: - Är osäker på min kod till mitt passerkort. Finns det nåt sätt att kolla om jag kommer ihåg rätt? Bot: - Du kan prova att ändra din kod på kortet. Gå in på lnukortet.lnu.se och följ instruktionerna. Fungerar inte det så kontakta Säkerhetsavdelningen, sakerhetsavdelningen.lnu.se ### Mätbara mål - Kunden får en redogörelse vilka tekniker och verktyg som testats samt motivering med plus- och minuslista på de som gruppen valt att gå vidare med. - Kunden får en ekonomisk kalkyl på användningen av chatboten. - Kunden får dokumentation över resultatet av chatbotens användartester. - Kunden får deltajerad information om hur chatboten är uppbyggd. - Har manuell handhavande av frågor minskat i antal och hur är feedbacken från användartester. - Kan den mänskliga supporten minskas i antal timmar. ## Verktygsstöd - HackMD för projektets dokumentation - Google Docs för andra gemensamma dokument - Zoom-rum för planerade eller spontana möten i gruppen - Gemensamma repositories på GitHub - Gemensam grupp i Slack för enklare frågor och planering - Teams för möten samt chatt mellan gruppen och partnerorganisationen - Jira för hantering av iterationsplanering ## Kommunikationsplan Avstämning/handledning tillsammans med kursledare måndagar klockan 10.00 varje vecka under kursens gång med undantag för ev. helgdagar. Mötet är ej obligatoriskt men det är önskvärt att alla i gruppen deltar i så hög utsträckning som möjligt. Övriga möten inom den interna gruppen planeras in delvis efter behov men som regel minst en gång i veckan eller mer. Vid dessa möten bestäms dag och tid för när nästa möte ska äga rum. Möten inom gruppen och/eller med handledare sker via det Zoom-rum som skapats för projektet. Länk till Zoom-rummet finns i gruppens Slack-kanal. Möten tillsammans med partnerorganisationen planeras även de in efter behov. Hur ofta dessa möten sker beror på hur lång tid gruppen/partnerorganisationen anser sig behöva för att samla information och undersöka/lösa problem etc kring det som tagits upp på mötet, samt när både den interna gruppen och partnerorganisationen är tillgängliga. Detta bestäms gemensamt vid respektive möte. För dessa möten används Teams och det är partnerorganisationen som står för den tekniska inbjudan till dem. För alla möten, både inom den interna gruppen och tillsammans med partnerorganisationen, gäller att den som inte kan delta i ett möte meddelar någon annan inom gruppen om detta så att det kan vidarebefordras till övriga deltagare. ## Iterationsplaner Projektarbetet är agilt organiserat i formen av scrum sprints, vilket är en form av arbetsiterationer. En sprint varar en kalendervecka och inleds på måndagar. Varje sprint inleds med analys och diskussion kring föregående iterationen, för att sedan gå vidare till planering av veckans nuvarande sprint. Veckans mål och planering bryts ned i hanterbara arbetsuppgifter och placeras på gruppens sprint-board. Arbetsuppgifter baseras på sådant som projektets krav, identifierade risker och resultaten från reflektionen av föregående sprint. Gruppen använder [Jira](https://verksamhetsforlagtprojekt.atlassian.net/jira/software/projects/P1/boards/1) för att organisera och planera iterationer, samt för att fördela arbetsuppgifter mellan projektmedlemmar. Vid slutdatum för en passerad sprint samlas gruppen till möte för att i Jira avsluta föregående sprint samt planera och starta upp kommande sprint. Vid mötet tas följande upp: * Vilka arbetsuppgifter från föregående sprint är klara/icke avklarade * Vilka uppgifter ska ev. flyttas till kommande sprint * Vilka arbetsuppgifter ska kommande sprint innehålla * Tilldelning av uppgifter till respektive gruppmedlem * Utvärdering av föregående sprint Under sprintens gång arbetar respektive utvecklare i gruppen med de uppgifter som utvecklaren tilldelats. När arbetet med en uppgift påbörjas ändrar utvecklaren status från 'Att göra' till 'Pågående' i den backlog som finns i Jira. När uppgiften bedöms som klar ändras status till 'Klar'. På så sätt kan övriga gruppmedlemmar göras medvetna om status på uppgiften. De arbetsuppgifter som inte tilldelats någon utvecklare vid mötet tilldelas löpande under sprintens gång efter samråd i gruppen. I händelse av att en oplanerad arbetsuppgift upptäcks under en pågående sprint kan den tilläggas till iterationens sprintboard och tilldelas till en utvecklare efter behov. I händelse av att en arbetsuppgift inte blivit färdig under avklarad sprint flyttas den till nästa sprint, om den fortfarande är relevant. ## Tidsrapport Varje projektmedlem rapporterar sin arbetade tid manuellt i ett gemensamt Google kalkylark. Tidsrapporten innehåller arbetad tid i projektet per person, per dag. Målet är att varje projektmedlem ska arbeta i genomsnitt 20 timmar per vecka i projektet, antal timmar per vecka kan dock komma att variera något under projektets olika faser. Det är varje projektmedlems eget ansvar att arbeta med projektet den tid som avses per vecka samt att rapportera sin tid. [Google kalkylark](https://docs.google.com/spreadsheets/d/1Lr9fTsUwLyRnOD3GaapGKRK-aw9ttxQj17Vyxu6OMUI/edit#gid=0)