# ICT-toimeksiantoprojekti - Ryhmäarviointi (Hanne)
## Ryhmäarviointi
### Projektin vaiheistus, tavoitteisiin pääsemisen varmistus.
Tässä osiossa keskitytään arvioimaan ryhmän projektin etenemisen tarkastelua.
**HUOM! Osa on ns. kirjoittamattomia sääntöjä ja ne, mistä on dokumentaatiota ovat sellaisia, joihin ei voi viitata, koska kyseessä ovat yrityksen sisäiset asiakirjat**
**TASO 1**
- [x] Ryhmän toiminta on suunnitelmallista
* Dailyt päivittäin
* Sprintin suunnittelut ([Viikko 19 / tiistai](https://hackmd.io/IBizxZcdQ_C36SUljm-zzg?view#Viikko-19))
* Retrot (ei sattunut yhtään tälle aikavälille)
- [x] Ryhmä on dokumentoinut keskeiset prosessit ja inkrementtien tuloksen
* Dokumentointiin on käytössä Confluence, inkrementtien tulokset löytyvät JIRAsta
- [x] Ryhmän käyttämät työkalut tukevat toimintaa
* Projektinhallinnassa JIRA
* Versionhallinta Bitbucket
* Kehitystyökalut (Visual Studio Code, IntelliJ, Docker, jne.)
- [x] Inkrementeille on asetettu laadulliset vaatimukset
* Definition of done -määritys, joka sisältää muun muassa testauksen määrityksen ja ohjeita kauniin koodin kirjoittamiseen sekä tarkistukseen
- [x] Iteraatiojako määritelty
* Kahden viikon sprintit, ellei ole esimerkiksi kesälomat tai muu lomakausi sotkemassa
- [x] Yhteistyötapa on määritetty
* Ei juurikaan etätyötä, vaan tiimi on samassa tilassa, jotta viestintä on tehokasta ja 'esteetöntä'. Muussa viestinnässä käytössä sähköposti sekä Slack
- [x] Työkalujen hyödyntäminen on määritelty
* Tunnit on kirjattava JIRA-tikettien alle
* Kehityksessä käytettävät työkalut ovat vapaasti valittavissa kunhan ne ajavat asiansa
- [x] Tehtävien hallinta on määritelty
* Kun tehtävä otetaan työn alle, se siirretään In progress -tilaan JIRAssa
* Kun pull request on hyväksytty ja koodi on mergattu masteriin, tehtävä on Done
**TASO 3**
- [ ] Ryhmän toimintaa on mitattu ja analysoitu säännöllisesti
- [ ] Ryhmän toimintaprosessit on dokumentoitu
- [ ] Ryhmän käyttämät työkalut tukevat toimintaa todistetusti
- [ ] Inkrementtien laatua seurataan säännöllisesti
- [ ] Ryhmä on osallistunut laatuauditointiin
- [ ] Iteraatiojaon toimivuutta on mitattu ja arvioitu.
- [ ] Työkalujen hyödyntämistä on mitattu ja arvioitu.
- [ ] Tehtävien hallinnan laatua on mitattu ja arvioitu.
**TASO 5**
- [ ] Ryhmän toiminnan tehokkuutta on mitattu ja arvioitu suhteessa muihin projektiryhmiin (benchmarkkaus 1-X projektin kanssa)
- [ ] Ryhmän käyttämät työkalut tehostavat ryhmän toimintaa erityisen hyvin (yhtenevät työkalut, hajautettu kehitys huomioitu)
- [ ] Inkrementtien toteutumista seurataan lähes reaaliajassa (automatisoitu testaus, CI/CD)
- [ ] Ryhmän toimintaa on kehitetty ja puutteita korjattu järjestelmällisesti (nouseva trendi läpi projektin)
- [ ] Ryhmä on läpäissyt laatuauditoinnin (ulkopuolinen auditointi: opettajat tai toinen projektiryhmä)
- [ ] Iteraatiojakoa on pyritty parantamaan todettujen tulosten perusteella.
- [ ] Työkalujen hyödyntämistä on pyritty parantamaan todettujen tulosten perusteella.
- [ ] Tehtävien hallinta on pyritty tekemään tehty järjestelmällisesti ja hyvillä työkaluilla.
### Tehtävien jakaminen ja roolitus
Tässä osiossa keskitytään arvioimaan ryhmän keskinäisen työnjaon toteutumista iteraatioittain. Lisäksi arvioidaan ryhmän kykyä tunnistaa muutostarpeita ja reagoida niihin. Ryhmä toimii mittauksen ja arvioinnin suhteen itsenäisesti.
**TASO 1**
- [x] Roolit ja roolituksen toimivuus on määritelty.
* Meidän COO toimii Product Ownerina
* Tiimin vetäjä on Scrum Master
* Tiimistä löytyy myös henkilö, joka sekä kouluttaa että auttaa asiakkaita sovelluksemme käytössä
* Back-end kehittäjät
* Front-end kehittäjät
* Roolit ovat olleet toimivia
- [x] Tehtäväjako on määritelty.
* Sprintin suunnittelupalaverissa käydään läpi sprintille tulevat tehtävät, joista front-end ja back-end kehittäjät poimivat omansa sitä mukaa kuin edellisen tehtävän on saanut tehtyä
**TASO 3**
- [ ] Roolituksen toimivuutta on mitattu ja arvioitu.
- [ ] Tehtävien toteutumista on mitattu ja arvioitu.
**TASO 5**
- [ ] Tehtävien toteutumista on pyritty parantamaan todettujen tulosten perusteella.
- [ ] Roolitusta on pyritty parantamaan todettujen tulosten perusteella.
### Saadut tulokset / toimeksiannon toteuttamisesta varmistuminen
Tässä osiossa keskitytään arvioimaan ominaisuuksien toteutumista iteraatioittain.
**TASO 1**
- [x] Laatutavoitteet on määritelty tuotteelle.
* Tavoitteena on hyvin testattu ja toimiva tuote
* Back-endissä testauskattavuus on helpommin määriteltävissä
* Front-endissä tehdään jatkuvasti lisää selaintestejä
- [x] Laatutavoitteet on määritelty työskentelylle
* Definition of done, pull requestit tarkistetaan kollegoiden toimesta
**TASO 3**
- [ ] Tuotteen laatua on mitattu ja arvioitu.
- [ ] Työskentelyn laatua on mitattu ja arvioitu
**TASO 5**
- [ ] Tuotteen laatua on pyritty parantamaan todettujen tulosten perusteella.
- [ ] Työskentelyn laatua pyritty parantamaan todettujen tulosten perusteella.
### Asiakasvaatimusten hallinta
Tässä osiossa keskitytään arvioimaan vaatimusten hallintaa projektissa kokonaisuutena alusta loppuun saakka.
**TASO 1**
- [x] Asiakkaan vaatimustenhallinta on määritelty.
* Asiakkaalta tulleet vaatimukset dokumentoidaan ja niistä valitaan sopivat sprintille toteutettaviksi
**TASO 3**
- [ ] Asiakkaan vaatimustenhallintaa on mitattu ja arvioitu.
**TASO 5**
- [ ] Asiakkaan vaatimustenhallintaa on pyritty parantamaan todettujen tulosten perusteella.
### Kehitysmenetelmä
Tässä osiossa keskitytään työskentelyn arviointiin menetelmän näkökulmasta.
**TASO 1**
- [x] Kehitysmenetelmän käyttö on määritelty.
* Tällä hetkellä kehitysmenetelmä on Scrum, josta näkee hyvin tehtävien siirtymisen Todo-listalta Done-listalle. Sprintin pituus on tavallisesti kaksi viikkoa.
**TASO 3**
- [x] Kehitysmenetelmän käyttöä on mitattu ja arvioitu
* On huomattu, että kesken sprintin Todo-listalle nousee uusia tehtäviä. Tämä on antanut aihetta mietinnöille, onko 'puhdas' Scrum oikea menetelmä kehityksellemme. Tiimissä on alkuvaiheessa ollut käytössä Kanban, mutta siitä luovuttiin. On pohdittu, voisiko menetelmä olla jotain Scrumin ja Kanbanin väliltä.
**TASO 5**
- [ ] Kehitysmenetelmän käyttöä on pyritty parantamaan todettujen tulosten perusteella.
### Testaus
Tässä osiossa keskitytään arvioimaan projektin kehitystyöhön liittyviä testauksen menettelytapoja.
**TASO 1**
- [x] Testaus on määritelty (esim. yksikkö-, integrointi- ja järjestelmätason testaus).
* Kun puhutaan front-endistä, Definition of done sisältää myös kommentteja testauksesta. Frontissa on tarve testata
* Eri käyttäjäroolit
* Eri väriteemat
* Eri kielivalinnat
* Useampi eri selain
* Erikokoisilla ruuduilla
* Selaintestien määrää on lisätty ja lisätään jatkuvasti
**TASO 3**
- [x] Testauksen kattavuutta on mitattu ja arvioitu.
* Frontissa testauskattavuus on vaikea arvioida, mutta automaatiotestien kattavuus on vielä melko olematonta (noin 30%-40%)
* Manuaalinen testaus on työlästä, koska testattavia kohteita on jo nyt paljon ja lisää tulee jatkuvasti
**TASO 5**
- [x] Testausta on pyritty parantamaan todettujen tulosten perusteella.
* Automaattisiin selaintesteihin panostaminen (Nightwatch)
### Projektin tekniset valinnat
Tässä keskitytään arvioimaan työkaluja ja ympäristöjä joita hyödynnetään projektin tekemisessä.
**TASO 1**
- [x] Keskeisimmät käytettävät projektinhallinta-, viestintä- ja kehitystyökalut on määritelty.
* Projektinhallinnassa JIRA
* Viestintä hoidetaan pääosin suullisesti tai sähköpostilla, Slackilla
* Kehityksessä mm. Docker, Visual Studio Code
**TASO 3**
- [ ] Käytettävien työkalujen toimivuutta on mitattu ja arvioitu.
**TASO 5**
- [ ] Käytettäviä työkaluja on pyritty parantamaan todettujen tulosten perusteella
### Hajautettu kehitystyö
Tässä osiossa keskitytään arvioimaan miten ryhmä on huomioinut ja varautunut hajautetun kehitysmallin erityispiirteisiin.
**TASO 1**
- [x] Hajautetun kehitystyön keskeiset työvaiheet ja -menetelmät on määritelty.
* Hajautettu kehitys perustuu versionhallinnan käyttöön. Uudet ominaisuudet kehitetään omissa haaroissaan, jotka valmistuttuaan mergataan masteriin. Mergaus tehdään pull requestien kautta, jolloin vähintään yksi muu kehittäjä tarkistaa tuotoksen.
* JIRA on oleellisessa roolissa, koska suuremmat kokonaisuudet palastellaan sinne pienemmiksi tehtäviksi.
* Back- ja front-endin yhteistyö on tärkeää.
**TASO 3**
- [ ] Hajautettua kehitystyötä on mitattu ja arvioitu
**TASO 5**
- [ ] Hajautettua kehitystyötä on pyritty parantamaan todettujen tulosten perusteella
### Projektiryhmän tiedonkulku
Tässä osiossa keskitytään arvioimaan projektiryhmän työskentelyyn liittyvää tiedonkulkua. Tiedonkulkua arvioidaan ryhmän sisäisen viestinnän sekä toimeksiantajan ja ohjaavien opettajien kanssa tapahtuvan tiedonkulun kannalta.
**TASO 1**
- [x] Tiedonkulku ja viestintä on määritelty.
* Product owner viestii asiakkaaseen päin
* Scrum master toimii välittäjänä Product ownerin ja kehittäjien välillä ja tuo kehittäjien tietoon työskentelyn kannalta tarpeelliset asiat.
**TASO 3**
- [x] Tiedonkulkua ja viestintää on mitattu ja arvioitu
* Yhteisössä on tehty kyselyitä viestinnästä ja sitä on toivottu lisää erityisesti eri tiimien välillä sekä johdon ja työntekijöiden välille.
**TASO 5**
- [x] Tiedonkulkua ja viestintää on pyritty parantamaan todettujen tulosten perusteella.
* Eri tiimien välistä yhteistyötä on lisätty ja yleinen käsitys on se, että viestintä on mennyt parempaan suuntaan.
### Projektiryhmän ongelmienratkaisu
Tässä osiossa keskitytään arvioimaan projektiryhmän käytänteitä työskentelyyn liittyvien ongelmien huomioinnissa, vaikutusten arvioinnissa ja kehitystoimissa.
**TASO 1**
- [x] Projektityön ongelmien ratkaisu on määritelty.
* Yksittäisen kehittäjän ongelmien ratkaisussa auttaa ensisijaisesti oma tiimi
* Tiimin ongelmista viestii eteenpäin tiimin vetäjä
**TASO 3**
- [ ] Projektityön ongelmien ratkaisua on mitattu ja arvioitu.
**TASO 5**
- [ ] Projektityön ongelmien ratkaisua on pyritty parantamaan todettujen tulosten perusteella.