Ohjelmistokehitysprojekti

Tällä sivulla on kerrottu lyhyesti miten fullstack-projektin läpivienti oppilaitoksella tapahtuisi.

Työajanseuranta

Aloittakaa suunnittelemalla Excel-taulukko työajanseurantaa varten. Voitte käyttää annettua esimerkkiä pohjana ja muokata sitä tarpeen mukaan.

GitHub-repository

  • Luokaa uusi GitHub-repository Tredu-organisaation sisälle.
  • Nimetkää repository seuraavasti: `fs-projekti-tiimin-nimi`
  • Kutsukaa kaikki ryhmän jäsenet mukaan repositoryyn: Settings → Collaborators

Kansiorakenne

Luokaa repositoryyn seuraavat kansiot:

/
├── documents/
│   ├── UI-suunnitelma
│   ├── tietokantasuunnitelma
│   ├── sprint1.md
│   └── loppuraportti.md
│
└── project/
    ├── backend/
    ├── frontend/
    └── database/

documents/-kansioon tallennetaan projektin dokumentaatio.

project/-kansioon tulee projektin lähdekoodi. Jakakaa lähdekoodi esimerkiksi backend-, frontend- ja database-kansioihin.

Projektin suunnittelu

Ennen varsinaisen ohjelmoinnin aloittamista suunnitelkaa sovelluksen rakenne ja käyttöliittymä.

Tietokantasuunnitelma

Suunnitelkaa sovelluksen tietokanta ja tehkää siitä visuaalinen tietokantakaavio.

Voitte käyttää esimerkiksi:

  • Microsoft Visiota
  • drawSQL-sovellusta

Tietokantakaaviossa voidaan käyttää esimerkiksi kukonaskel-mallia (Crow's Foot).

Tallentakaa valmis tietokantasuunnitelma `documents`-kansioon.

Käyttöliittymän suunnittelu

Suunnitelkaa sovelluksen käyttöliittymä eli tehkää rautalankamalli (wireframe).

Voitte käyttää esimerkiksi:

  • Figmaa
  • Adobe XD:tä

Yksilöprojekti

Suunnitelkaa vähintään:

  • yksi desktop-näkymä
  • yksi mobiilinäkymä

Ryhmäprojekti

Jakakaa käyttöliittymän suunnittelu ryhmän jäsenten kesken. Sopikaa, kuka suunnittelee mitkäkin näkymät.

  • Suosituksena on käyttää Figmaa ja jakaa sama työtila koko ryhmälle.
  • Tallentakaa valmis UI-suunnitelma `documents`-kansioon.

User storyt ja projektin hallinta

Suunnitelkaa projektin user storyt ja lisätkää ne GitHubin Projects-osioon.

Luokaa projektia varten Kanban-taulu.

Kanban-taulun sarakkeet

Taululla tulee olla vähintään seuraavat sarakkeet:

Sarake Tarkoitus
Backlog Kaikki suunnitellut user storyt
Current Sprint Tämänhetkiseen sprinttiin valitut user storyt
In Progress Työn alla olevat tehtävät. Tehtävälle on määritetty tekijä.
Done Valmiit user storyt
Daily Päiväpalaverien tiedot

Daily-sarake

Kirjatkaa päiväpalaverista vähintään:

  • päivämäärä
  • paikalla olleet henkilöt
  • mitä kukin tekee tai mitä on työn alla
  • mahdolliset erityiset huomiot tai ongelmat

Sprintit

Jakakaa projekti esimerkiksi kahteen sprinttiin.

Suositeltu sprintin pituus on noin 2–3 viikkoa.

Sprintin aikana seurataan tehtävien etenemistä GitHubin Project-taululla.

Sprintin päättäminen

Jokaisen sprintin lopussa tehkää sprintin päätösmuistio.

Tallentakaa muistio `documents`-kansioon esimerkiksi nimellä: `sprint1.md`

Sprintin päätösmuistion sisältö

Kirjatkaa esimerkiksi:

  • Milloin sprintti alkoi?
  • Milloin sprintti päättyi?
  • Mitkä user storyt saatiin valmiiksi?
  • Mikä onnistui?
  • Mikä ei onnistunut?
  • Oliko kommunikaatio riittävää?
  • Saitteko tarvittaessa apua muilta tiimin jäseniltä?
  • Oliko työnjako toimiva?
  • Oliko jollakin liian paljon tai liian vähän tekemistä?
  • Mitä tehdään seuraavassa sprintissä paremmin?
  • Sprintin päätyttyä täydentäkää myös projektitaulua.

    Käykää yhdessä tiimin kanssa läpi, mitä seuraavaan sprinttiin kannattaa ottaa mukaan.

    Projektin loppuvaihe

    Kun sovellus on valmis, tehkää sille systeemitestaus.

    Testauksen voi toteuttaa esimerkiksi:

    Testatkaa, että sovelluksen keskeiset toiminnallisuudet toimivat suunnitellusti.

    Loppuraportti

    Projektin lopuksi tehkää loppuraportti ja tallentakaa se `documents`-kansioon.

    Esimerkiksi: `loppuraportti.md`

    Käyttäkää loppuraportissa annettua loppuraportin mallipohjaa.

    Loppuraportissa kuvataan muun muassa projektin toteutus, eteneminen, lopputulos ja projektin aikana tehdyt havainnot.

    Projektin eteneminen lyhyesti

    Projektin eteneminen voidaan tiivistää seuraavasti:

    1. Suunnittelu

    • Työajanseurannan suunnittelu
    • Tietokantasuunnitelma
    • UI-/rautalankamallit
    • User storyt
    • GitHubin valmistelu
      • Repository
      • Kansiorakenne
      • Tiimin jäsenten lisääminen
      • GitHub Project / Kanban-taulu

    2. Sprintti 1

    • Tehtävien toteutus
    • Päiväpalaverien kirjaaminen
    • Tehtävien seuranta Kanban-taululla
    • Sprintin päätösmuistio

    3. Sprintti 2

    • Uusien tehtävien toteutus
    • Projektin viimeistely
    • Testaus

    4. Projektin päättäminen

    • Systeemitestaus
    • Loppuraportti
    • Projektin dokumentaation viimeistely