Loppuraportti - SnakeRule/TTOS1000-ohjelmistotuotanto-loppuraportti GitHub Wiki
1. JOHDANTO
Tässä dokumentissa käsitellään projektin SymbIoT toteutusta ja sen lopputulosta. Dokumentin tarkoituksena on selventää mitä ja miten tehtiin, miksi tehtiin, missä onnistuttiin, mikä meni pieleen, miksi ja miten ongelmat ratkaistiin ja mitä opittiin.
Dokumentista on jätetty pois vaitiolosopimuksesta johtuen yksityiskohtaiset tekniset toteutukset sekä vaatimukset projektin asiakkaan/tarkoituksen paljastamisen estämiseksi.
Projektin organisaatio
Projektiryhmä
- Lauri Moilanen
- Email: [email protected]
- Juuso Jokio
- Email: [email protected]
- Tero Björkman
- Email: [email protected]
- Jere-Joonas Valtanen
- Email: [email protected]
- Tiia Aarnio
- Email: [email protected]
Projectin ohjaajat
- Marko Rintamäki, aka Narsu
- Email: [email protected]
- Jarno Teivas
- Email: [email protected]
- Pasi Lantiainen
- Email: [email protected]
- Timo Relander
- Email: [email protected]
2. TEHTÄVÄ, TAVOITE, TULOKSET
2.1. Yhteenveto projektin toteumasta
-
Projektin toimeksiantajana toimi Digia ja asiakkaana vaitiolovelvollisuudesta johtuen anonyymi yritys. Tavoitteena oli toteuttaa asiakkaalle määritysten mukainen prototyyppi. Projektin toteutus pyrittiin tekemään työelämän toimintamallien mukaisesti käyttäen työkaluja ja toimintatapoja, jotka vastaavat oikeata työelämää. Lisäksi projektin edetessä toteutettiin sivuprojektina tutkimuksellinen prototyyppi/raportti AWS IoT-palvelusta. Tavoitteena oli tutkia AWS IoT toiminnallisuuksia Digian tulevia projekteja varten.
-
Teimme tuotteesta toimivan prototyypin
-
Käytetyt komponentit:
- AWS EC2-instansseja
- InfluxDB
- Grafana
- TestLink
- Robot Framework
- AWS-IoT
-
Projekti onnistui hienosti sekä toteuttajien että toimeksiantajan mielestä. Tavoitteisiin päästiin ja tehtiin myös hieman lisätöitä tuntien täyttämiseksi. Sekä alkuperäinen toimeksianto, että lisätyö tuottivat lisäarvoa toimeksiantajalle.
2.2. Suunnitelma vs. toteutuma
- Projektin alkaessa ryhmän käsitys erosi lopullisista vaatimuksista. Vaatimusten selkiydyttyä edettiin suunnitelman mukaisesti ja päästiin tavoitteisiin. Työkalujen aiheuttamat ongelmat dokumentoitiin toimeksiantajalle tulevaisuutta varten. Alkuperäisiin tavoitteisiin päästiin n. 375h etuajassa, jonka vuoksi toimeksiantaja tarjosi tiimille lisätyön. Projektin aikataulullisista muutoksista johtuen AWS IoT-lisätyö ei tullut suunnitelmien mukaisesti kokonaan valmiiksi.
3. ONGELMAT JA NIIDEN RATKAISUT
3.1. Ongelmat suunnittelussa
- Työkalujen valinta (Tämä selkeni vaatimuksien pohjalta)
- Lopullinen tehtävänanto erosi alkuperäisestä
3.2. Ongelmat toteutuksessa
- Työtehtävien jakaminen tasaisesti ajoittain hankalaa
- Työkalujen rajoitteellisuus vaatimusten toteuttamiseen
- Ajallisen resurssin puute (ei riittävästi aikaa viikossa tekemiseen)
4. YHTEENVETO
4.1. Keskeiset opit
-
Dokumentointi tuottaa toimiksiantajalle lisäarvoa projektin toteutusta tarkastellessa sekä tulevia projekteja suunnitellessa. Dokumentoinnin kirjoitusasun tulee olla selkeää ja asiassa pysyvää. Liian pitkä selittely ei ole tarpeen.
-
Järjestelmällisyys ja kommunikaatio ovat tärkeitä työkaluja projektityöskentelyssä. Aamupalavereissa tiimin jäsenillä oli mahdollisuus kuunnella mitä muut ovat tehneet, jolloin kaikki ovat mukana projektin etenemisessä.
-
Aikataulutus toimi pääasiassa sovitun aikataulun ja yhdessä samassa tilassa tekemisen ansiosta. Tästä johtuen aikataulussa pysyttiin hyvin.
-
Oikeassa työympäristössä toimiminen alan ammattilaisten kanssa tarjosi tiimille hyvän ikkunan työelämään ennen harjoittelua.
-
Grafana tarjoaa ilmaisena työkaluna hyvän alustan datan visualisoinnille, mutta on toiminnoiltaan rajoittunut useassa suhteessa.
-
InfluxDB on toimiva aikasarjatietokanta, joka tarjoaa perusominaisuudet suurien datamäärien käsittelyyn. Tiimi havaitsi kuitenkin useita ongelmia
-
AWS on laaja pilvi-infrastruktuuri, joka tarjoaa suuren määrän palveluita käyttäjälleen. Tarkoitus ei ole ymmärtää kaikkia AWS -toimintoja, vaan valikoida tarvittavat palvelut, ja aktivoida ne projektissa.
-
Robot Framework on erinomainen automaatiotestaustyökalu, jonka selenium2-kirjasto tarjoaa laajan valikoiman toimintoja testaukseen.
4.2. Kehitettävää kurssin järjestelyille
4.2.1. Järjestelyt koulun puolesta
- Yhteistä koemateriaalia tulisi vähintänkiin kuratoida tiedon oikeelisuuden varmistamiseksi
- Yritysvierailijat tuntuivat irrallisilta kurssin sisältöön nähden
- Kurssin ohjeet esitettävä selkeämmin. GitHub-wiki on epäselvä
- Aikaisempi puuttuminen ryhmien vajaisiin tuntikertymiin
- Tilajärjestelyjen parantaminen, mahdollisesti lisää yritysten tarjoamia työskentelytiloja
4.2.2. Järjestelyt toimeksiantajan puolesta
- Toimeksiantajien tulisi tarjota tilat, työkalut sekä asiantuntijoiden tukea
- Mahdollisimman selkeät toimeksiantojen kuvaukset ja vaatimukset
- Digia toimi esimerkillisesti toimeksiantajana ja täytti tiimin odotukset
4.3. Itsearviointi
4.3.1. Ryhmätyö
Ryhmän keskeinen dynamiikka toimi projektin aikana hyvin. Tekeminen oli yhdessä suunnitelmallisesti toteutettua ja apua sai aina tarvittaessa.
Ryhmätyön arvosanaksi ryhmä ehdottaa 5.
4.3.2. Vuorovaikutus
Vuorovaikutus toimi hyvin laajalti sen ansiosta, että työt tehtiin saman pöydän ääressä suunnitellun aikataulun mukaisesti. Tällöin tiimi oli aina paikalla ratkaisemassa ongelmia. Kynnys avun pyytämiseen toimeksiantajan asiantuntijoilta oli matala.
Vuorovaikutuksen arvosanaksi ryhmä ehdottaa 5.
4.3.3. Asenne
Tiimin jäsenien asenne ja motivaatio olivat korkealla. Konkreettinen toimeksianto, joka tuottaa aitoa lisäarvoa motivoi ryhmän jäseniä tekemään laadukasta työtä aikataulussa.
Asenteen arvosanaksi ryhmä ehdottaa 5.
4.3.4. Tulos
Ryhmä ja toimeksiantaja olivat molemmat toteutuneeseen työhön tyytyväisiä.
Loppuarvosanaksi tuloksen sekä muiden osa-alueiden perusteella ryhmä ehdottaa 5.