# Harjoitustyön sisältö

## Harjoitustyön toimeksianto

**Lue** [**harjoitustyön toimeksianto täältä**](/scrum-harjoitustyoe-2020-01/harjoitustyoe-matkalasku.md)

Sen jälkeen tutustu alla olevaan ohjeistukseen mitä sinun tulee tehdä.

## Huomiot harjoitustyön tekemisessä

Harjoitustyön avulla on tarkoitus näyttää opittua osaamista sekä myös syventää sitä. Aikaa on rajoitetusta käytössä ja **tavoitteena ei ole suoriutua kaikista** toimeksiannon vaatimuksista.

Tekemisen aikana **sinun tulee priorisoida työntekoasi**. Kuten työelämässä, aina ei ole mahdollista saada kaikkia ominaisuuksia valmiiksi annetussa ajassa. Priorisointi tapahtuu SCRUM mallisesti käyttäen tuotteen- ja sprintin kehitysjonoa.

Kun olet saanut **kehitysjonon (tehtävälista)** valmiiksi, priosioi siis tärkeimmät ominaisuudet ensimmäiseksi ja mieti aina mitä voit saada yhdessä sprintissä aikaiseksi.

**Sprintin tavoitteita pohtiessa,** mieti mikä olisi pienin mahdollinen asia, jonka voit saada valmiiksi ja esitellä asiakkaalle. Sen ei tarvitse olla aina täydellinen vaan tarkoitus on oppia näyttämään myös lyhyet edistykset.

## Harjoitustyön aihealueet&#x20;

[**Projektinhallinta (SCRUM)**](https://www.scrumguides.org/scrum-guide.html)

SRUM soveltamisessa keskitytään toimintamalliin kuinka harjoitustyön tavoitteet ja tehtävät suunnitellaan.

**Lataa suomenkielinen** versio SCRUM oppaasta täältä: [SCRUM opas suomeksi](https://www.scrumguides.org/docs/scrumguide/v2017/2017-Scrum-Guide-Finnish.pdf).

[**Versionhallinta**](/versionhallinta/opas-gitin-perusteisiin.md)

Versionhallinnan käyttöä hyödynnetään lopullisen harjoitustyön palauttamisessa sekä myös ohjelman kehityksen aikana.

[**Yksikkötestaus**](/yksikkoetestaus/ohjelmistotestauksen-periaateet.md)

Yksikkötestien käytössä keskitytään niiden soveltamiseen harjoitustyössä.

## Harjoitustyön palautettavat tuotokset

Ohjaaja tarkistaa seuraavat osa-alueet arvioinnin yhteydessä.

**Githubissa oltava:**

* **README -tiedosto**, jossa tekijöiden nimet ja lyhyt kuvaus ohjelman tarkoituksesta. Lisäksi voit lisätä kaiken oleellisen tiedon mikä auttaa ohjaajaa tarkistamisen yhteydessä. (README tiedosto näkyy oikein tehty Githubin repositoryn etusivulla, esimerkki <https://github.com/nyluntu/hacksummit-forecast>)
* **Tuotteen kehitysjono** (Github Issues on hyvä vaihtoehto)
* **Sprinttien kehitysjonot** (Github Issues ominaisuudella voi vaikka merkitä sprintin tai vaihtoehtoisesti käyttää Projects välilehteä)
* **Ohjelman lähdekoodit** (Kerro README tiedostossa mistä löytää harjoitustyön, jos Github repository sisältää useita eri harjoituksia)

**Ohjelman sisällön osalta ohjaaja tarkastaa:**&#x20;

* Ohjelman toimivuutta.
* Versionhallinnan käyttöä tekemisen aikana.
* Yksikkötestien soveltamista ohjelman tekemisen aikana.

**Lyhyt video (Max 10min),** jossa näytät harjoitustyön aikana syntyneen lopputyön tilanteen. Lisää linkki README tiedostoon, josta videon voi katsoa.

Tuo esille seuraavia asioita:

* Missä onnistuit?
* Mikä oli haastavinta?
* Miten jatkaisit nykyisestä pisteestä ohjelman tekoa, jos käytössä olisi enemmän aikaa?
* Saitko hyödynnettyä testejä ohjelman teossa? Jos kyllä niin miten?

Kuvaruutuvideon tekotavalla ei ole väliä. Jos et tiedä mistä lähteä liikkeelle niin ilmainen versio [Screencast O Matic-ohjelmasta](https://screencast-o-matic.com/) on ihan pätevä.

Videon voit jakaa Onedriven, Dropboxin, Google Driven tai muun vastaavan avulla. Käytä haluamaasi ohjelmaa.

##


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://book.sovelluskontti.com/scrum-harjoitustyoe-2020-01/harjoitustyon-sisalto.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
