# Frågor fördjupningsområden
## Maria - område DevOps
Frågorna nedan handlar om hur DevOps-processen ser ut under utveckling och driftsättning av en mjukvara.
* Svara och fundera gärna utifrån ett vidare perspektiv, det som passar för er verksamhet.
* 1. Hur hanterar ni samarbete och kommunikation mellan utvecklings- och driftteam?
Dels pratar, chattar eller e-postar teamen mellan varann. Vi använder IT-verktyget Easit för att skicka ärenden mellan teamen.
* Hur använder ni automatisering för att förbättra effektiviteten och hastigheten i er process?
Automatisering för vår del handlar om plaernings- och ärendehanterinssystem där vi skickar ärendet framåt i processen. Inget som sker med automatik utan när en person är klar skickar hen ärendet vidare.
* Hur hanterar ni säkerhetsfrågor och implementerar säkerhetsprinciper i DevOps-processen?
Vi hanterar säkerhetsfrågor som en typ av ändring/ny funktionalitet. Är det en stor säkerhetsrisk hanterar vi den omgående annars får säkerhetfrågor hanteras bland andra krav/behov som ska genomföras.
* Hur närmar ni er testning i en DevOps-miljö?
Först testar systemutvecklaren genomförd förändring, kan vara ex. ett rättat fel eller ny funktionaltet. Därefter någon typ av superanvändare som är duktig på applikationen. Ibland räcker det att denna person testar. Vid större förändringar som påverkar mycket funktioalitet i applikationen testar fler användare. De godkänner också den förändring som är genomförd.
* Hur hanterar ni buggar och problem som uppstår i produktion, och hur löser ni dem?
Är det allvarlig buggar "slänger vi oss över dem" annars försöker vi använda en workasround tills vi har tid att hantera felt.
* Har ni erfarenhet av molninfrastrukturtjänster som AWS, Azure eller Google Cloud? Berätta om detta.
Vi använder intern infrastruktur (egen datorhall) eller molntjänst. Kan vara infrastruktur hos annan levarantör i ex. Sverige eller ett "internationellt" moln som Google Cloud.
## Sanna - område Projektledning
(Susanne nämnde i ett tidigare möte att ni ej jobbar i projekt, men att hon hade erfarenhet av projektledning sen tidigare så har försökt forma frågorna utifrån det.)
STORA förändringar (ex. nytt system som ska införas) hanterar vi i projektform. Annars arbetar vi enligt en systemförvaltningsmodell som heter PM3 (vanlig i offentlig sektor). I denna modell hanteras buggar, mindre och medelstora krav/behov/önskemål som ska införas.
Det går att läsa om systemförvaltningsmodell PM3 på lnu.se/Medarbetare: https://lnu.se/medarbetare/organisation/it/forvaltningsmodellen-pm3-vid-lnu/
* Hur ser då processen ut när ni vill förändra något/införa något nytt? Tex: ni vill ha en chatbot att använda er av i ert daglig arbete, hur ser processen ut från idé till verklighet? Ingår några faser? Dokumenteras det på något sätt (tex vision, plan, utvärdering)? Vem är ansvarig tex för att processen blir genomförd, ekonomi etc?
Systemförvaltningsmodell PM3 är ganska komplex. Förvaltningsledare (kan jämföras med projektledare)jobbar i par och hanterar ett antal system. De leder arbetet, allt från behovfångst, krav, prioriterar, säkerställer ekonomiska frågor, deligerar arbete till systemutvecklare och testare, följer upp, rapporterar till styrgrupper mm.
* Finns det någon ambition att förändra den processen?
PM3 kommer vi använda, men vi diskuterar ständigt små förändringar som kan göras (ex. struktur på dokumentationskrav, hantering av säkerhetsfrågor)
* Utifrån tidigare erfarenheter (av projektledning), vilka förändringar/förbättringar skulle kunna göras i er organisation? Vi hanterar många av våra förändringar inom systemförvaltning PM3, ibland borde vi bryta ut mer tydliga projet för att skapa mer fokus på dem.
Han ni frågor om systemförvaltningsmodell PM3 får ni gärna kontaka mig: frida.portin@lnu.se
## Denni - område testning
De följande frågorna är formulerade utifrån perspektivet av mjukvaruutveckling & mjukvarutestning, men svaren behöver inte begränsas inom det området. Det betydelsefulla är att det går att knyta till någon vag/allmän definition av "testning", exempelvis kvalitetskontroll av inbeställd mjukvara. I avsaknad/brist av en process som benämns just *testning* inom organisationen kan termen istället ersättas med exempelvis: kvalitetskontroll, validering, verifiering, utvärdering, granskning, etc...
1. **Väldigt bred fråga:** Hur ser ur testprocess ut? Vad är det som testas, och hur?
- Vi har en testprocess och en teststrategi - bifogar dessa dokument och lägger i filmappen.
2. Finns det några automatiska (programmatiska) testprocesser? Isåfall, hur testar ni grejer för det mesta, manuellt eller automatiskt?
- Det är bara systemutvecklarna som skriver kortare programkoder för att automatsikt enhetstesta kod. Vi PRATAR om att testa mer automatiskt, men inte kommit dit än...
3. Använder ni några särskilda verktyg i er testningsprocess?
- Jag vi använder Dev.Ops för att till viss del skriva testfall.
4. Vad händer om ett test "misslyckas"? -- Hur reagerar ni, vem har ansvaret att åtgärda problemet?
- De flesta fel som upptäcks i testfasen rättas innan godkännande, några få (udda) kan vi behöva acceptera pga av ex. tidsbrist.
5. *När* sker testning? -- Efter bestämda intervaller, "efter behov", etc...
- En blandning, ibland efter behov. Är det större förändringar som ska testas är det ett testplaneringsarbete som styr när och vilka som testar.
6. Hur omfattande är er testning? Finns det sådant som går "otestat"?
- Ja, det finns en del som "slinker igenom"
## Sebastian - område Kravhantering
Då vi arbetar med ChatGPT och ni nämde under vårt första möte att ni inte arbetar med krav kommer här en kort förklaring av vad kravhantering är, skriven av just ChatGPT:
Vet ej vem som sa att vi inte arbetar med krav? Alla våra system/applikationer som vi hanterar finns det önskemål runt. Är det ett önskemål eller behov som ska genomföras behöver naturligtvis önskemålet/behovet redas ut, dvs. kravspecificeras och förväntingarna dokumenteras innan vi börjar att ändra kod.
> "Kravhantering handlar om att identifiera, dokumentera, validera och spåra kraven på en produkt eller tjänst. I mjukvaruutveckling innebär det att förstå vad användarna eller kunderna behöver och önskar av en produkt, och att översätta dessa behov till konkreta krav på funktionalitet, prestanda, användarupplevelse med mera."
Detta område går hand i hand med testning där man validerar att kraven är uppfyllda. Vad vi har förstått utvecklar ni ingen direkt mjukvara själva utan beställer i sådana fall från andra företag. Jag tänker då att kraven finns i en sådan beställning, det är det jag utformat mina frågor ifrån.
Vi har en blandning av egenutvecklade system till köpta, där vi anlitar leverantör eller konsulter att utföra förändrinar.
1. Hur ser processen ut för att ta fram kraven för de beställningar som görs? Önskemål, nya krav eller behov kräver alltid att en tydlig beställning/kravspecifikation görs. Ska den hanteras internt lämnas den över till våra egna systemutvecklare, och är det en extern part som ska hjälpa oss skickas beställningen till dem.
3. Hur hanterar ni ändringar av kraven under utvecklingsprocessen? Även om vi har som mål att ta fram så tydliga krav som möjligt innan vi börja justera i kod, är det alltid saker som dyker upp under utvecklingsfasen. Vissa av ändringarna genomförs andra prioriteras ner (görs senare) eller bort.
4. Hur säkerställer ni att mjukvaran som levereras uppfyller de krav som ställts? Vi försöker att testa mjukvaran så mycket som möjligt, speciellt inom de områden som har förändrats.
5. Hur dokumenteras kraven och hur säkerställs att den dokumentationen hålls uppdaterad? Vi har rutiner om hur dokumentationen ska se ut. Finns gånger då vi missat att dokumentera...
Som sagt har ni frågor, kontakta frida.portin@lnu.se