Sprint 1

Tiimin täytyy ymmärtää projektin koko tekninen toteutus, joten käyttäkää generatiivisen tekoälyn työkaluja (esim. ChatGPT tai Copilot) harkiten. Sprintin katselmointi -tapaamisissa opettaja voi pyytää tiimiläisiä kuvailemaan ja perustelemaan teknisiä ratkaisuja, ja teknisen toteutuksen ymmärrys vaikuttaa arviointiin.

Sprintin tavoitteet projektille:

  • Sprintille on määritelty ja valittu user storyt, jotka löytyvät backlogista. User storyista on myös jossain määrin lisätty backlogille taskeja, jotka kuvaavat teknistä toteutusta, kuten “REST API viestien listaamiselle”. Työn alla olevista backlogin user storyista ja taskeista tulee käydä ilmi, kenen vastuulla ne ovat.
  • Backlog on pidetty ajan tasalla koko sprintin ajan ja sitä on hyödynnetty sprintin edistymisen seuraamiseen.
  • Ainakin osa toiminnallisuudesta on kehitetty pääharasta erillään olevissa feature-haaroissa (enintään yhden user storyn laajuus haaraa kohden), jotka on mergattu päähaaraan toiminnallisuuden valmistuttua.
  • Sprintille on tehty GitHub release.
  • Sprintin katselmointia varten on valmisteltu lyhyt demo sprintin aikana toteutetuista toiminnallisuuksista.
  • Fullstack-projektissa (frontend kutsuu backendin REST API endpointteja) kannattaa hyödyntää token-pohjaista autentikaatiota. Esimerkkisovelluksesta löytyy esimerkki frontend- ja backend-toteutuksesta.
    • On myös mahdollistaa toteuttaa autentikaatio hyödyntämällä palveluita, kuten GitHub tai Google, jotka tarjoavat OAuth-protokollaan perustuvan autentikaation palvelun kautta.

Viikko 1

  • Valitkaa sprintille scrum master. Scrum master mm. valvoo, että projektin backlog pidetään ajan tasalla ja fasilitoi tiimin tapaamisia.
  • Viimeistelkää backlog sprintin aloitusta varten user storyjen ja taskien osalta.
  • Päättäkää sprintin alustavasta työnjaosta ja alkakaa toteuttamaan user storyja. Merkitkää backlogille työn alla olevien user storyjen ja taskien tekijä(t). Pitäkää backlog ajan tasalla koko sprintin ajan ja hyödyntäkää sitä sprintin edistymisen seuraamisessa.
  • Kerratkaa tarvittaessa versionhallinnan ja Gitin käyttöä esimerkiksi tämän materiaalin avulla.
  • Alkakaa toteuttamaan backlogin user storyja.

Viikko 2

“The core idea behind the Feature Branch Workflow is that all feature development should take place in a dedicated branch instead of the main branch. This encapsulation makes it easy for multiple developers to work on a particular feature without disturbing the main codebase.”Git feature branch workflow (Atlassian)

  • Pitäkää ensimmäinen daily scrum -palaveri, jossa seuraatte sprintin edistymistä. Hyödyntäkää tapaamisessa backlogia. Aloittakaa jatkossa jokainen tiimin tapaaminen daily scrum -palaverilla.
  • Lukekaa Git branching ja Git feature branch workflow -ohjeet.
  • Toteuttakaa ainakin joitain toiminnallisuuksia erillisissä feature-haaroissa. Yhdistäkää feature-haarat päähaaraan pull requestin avulla. Jos haarassa on konflikteja päähaaran kanssa, ne voi ratkaista tämän ohjeen mukaisesti. Pitäkää feature-haarojen muutokset pieninä (enintään yhden user storyn toteutus) ja yhdistäkää ne päähaaraan, kun toteutus on valmis. Näin vältetään nk. “Merge hell”.
  • Voitte halutessanne tehdä pull requesteissa jo koodikatselmointeja.
gitGraph
   commit
   commit
   branch user-registration
   checkout user-registration
   commit
   commit
   checkout main
   commit
   branch message-list-search
   checkout message-list-search
   commit
   commit
   checkout main
   merge message-list-search
   commit
   merge user-registration
   commit

Pull request

Viikko 3

“Releases are deployable software iterations you can package and make available for a wider audience to download and use.”About releases (GitHub)

  • Valmistelkaa lyhyt demo sprintin tuotoksista seuraavan opetuskerran sprintin katselmointia varten, johon osallistuvat tiiminne ja opettaja. Kertokaa lyhyesti projektistanne (mm. projektin tarkoitus, tärkeimmät toiminnallisuudet, toteutuksessa hyödynnettävät teknologiat) ja esitelkää sprintin aikana toteutetut toiminnallisuudet.
    • Pyrkikää saamaan projektissa valmiiksi jokin pieni toimiva kokonaisuus.
    • Käyttäkää mielekästä testidataa, “Foobar”, “Lorem ipsum”, “Testi” ym. täytesanojen sijaan. Tekoälyn hyödyntäminen testidatan generoinnissa on erittäin suositeltavaa.
    • Päättäkää etukäteen, kuka tiimiläisistä esittelee sovellusta. Varmistakaa, että hänellä on toimiva versio sovelluksesta ennen seuraavaa opetuskertaa.
  • Tehkää sprintin päätteeksi sprintille GitHub release. Releasen voi nimetä sprintin numeron perusteella, esim. “Sprint 1”. Tehkää releasen yhteydessä commit-historiaan uusi tagi, esim. “sprint1”. Lisätkää releasen kuvaukseen lyhyt kuvaus sprintin aikana toteutetuista toiminnallisuuksista.
gitGraph
   checkout main
   commit
   commit
   commit
   commit tag: "sprint1"
   commit
   commit
   commit
   commit tag: "sprint2"