Yrityksesi kooditehdas

Modernia full-stack Python ja Django-kehitystyötä Vue-rungolla ja allaolevalla infrastruktuurilla

Materiaalien toimittaminen ja useamman toimittajan projektit

1 Johdanto

Noviaria tekee yhteistyötä mm. mainostoimistojen, ohjelmistotalojen, konsulttien kuin loppuasiakkaiden toimittajien kanssa. Noviarian toteuttamat projektit voidaan usein jakaa pienempiin kokonaisuuksiin, jolloin kukin toimittaja voi keskittyä omaan ydinosaamisalueeseensa.

Projektin sujuvaa läpivientiä silmällä pitäen on äärimmäisen tärkeää, että kaikki projektissa vaikuttavat osapuolet käyttävät samoja muotoiluja, ohjelmointikieliä, käytäntöjä, versioita ja tiedostomuotoja. Listaamme tässä ohjeistuksessa Noviarian käyttämiä, standardien mukaisia ja hyväksi todettuja kehitystapoja ja -tekniikoita. Pyydämme, että projektin tilaaja tutustuu tähän ohjeistukseen ja jakaa sen sekä oman teknisen henkilökuntansa kanssa että mahdollisesti käyttämiensä kolmannen osapuolen toimittajien kanssa.

2 Työskentelytavat

2.1 Projektimalli

Noviarian käyttämä projektimalli perustuu Scrumban-projektinhallintatapaan, jossa yhdistetään Kanban- ja Scrum-metodien parhaat puolet. Scrumban on hallinnollisesti kevyempi kuin täysimittainen Scrum-malli, mutta asettaa tarkemmat rajat kuin pelkkä Kanban-mallin käyttö. Lopputuloksena on malli, jossa projektilla on;

  • tarkkaan määritellyt roolit
  • ajoittaiset statuspalaverit
  • retrospektiivi, jolla pyritään parantamaan prosesseja
  • iteraatiot, eli määritellyt ajanjaksot, joiden sisällä toteutetaan kulloinkin työvuorossa olevia tehtäviä

Noviarian henkilöstö on maantieteellisesti hajautettu ja toimii pääsääntöisesti internetin yli.

2.2 Projektipäälliköt

Erityisesti usean toimittajan projekteissa on erittäin suotavaa, että tekniseksi projektipäälliköksi määrätään vähintään yksi henkilö, joka vastaa sekä projektin suunnittelusta, aloituksesta, edistymisestä, eri komponenttien ja tekniikoiden yhteensopivuudesta, lähdemateriaalien saatavuudesta, aikataulusta, yhteydenpidosta eri osapuolten kesken ja projektin päättämisestä.

Ehdotamme, että objektiivisuuden säilyttämiseksi määrätty projektin johtaja ei kuulu tilaajan henkilökuntaan, vaan on riippumaton toimittaja. Projektipäälliköllä tulee olla erittäin syvällistä tietoa ja kokemusta paitsi IT-alan tekniikoista, myös liiketoimintaprosesseista, projektijohtamisesta sekä tilaajan ja loppukäyttäjien toimintaympäristöistä. Ideaalitilanteessa projektipäälliköllä on IT-projektijohtamisen sertifikaatti kuten Certified Scrum Master (CSM) tai SAFe-sertifikaatti.

Mikäli kontaktipiiristänne ei löydy tehtävään sopivaa henkilöä tai toimittajaa, voimme ehdottaa omasta yhteistyöverkostostamme kuhunkin projektiin sopivaa projektijohtajaa. Tarvittaessa myös Noviarian nimetyt henkilöt voivat toimia projektipäällikön roolissa tilaajan näin halutessaan.

2.3 Sopimusmallit

Noviaria voi myös erikseen sovittaessa toimia konsortiosopimusmallin mukaisena puheenjohtajana tai jäsenenä, kuten on tyypillistä mm. julkishallintorahoitteisissa projekteissa.

3 Aineistojen toimittaminen

3.1 Projektin osapuolten yhteystiedot

Projektin tilaaja sitoutuu toimittamaan kaikkien projektiin osallistuvien osapuolten tiedossaan olevat suorat yhteystiedot (etunimi, sukunimi, yrityksen nimi, sekä suora puhelinnumero ja suora sähköpostiosoite tai suora pikaviestinyhteys) Noviarialle sähköisesti heti tilauksen yhteydessä tai välittömästi tilauksen teon jälkeen, kuitenkin ennen projektin aloittamista. Mikäli näissä tiedoissa on salassa pidettäviä yhteystietoja esimerkiksi lain nojalla tai yrityssalaisuuksiin rinnastettavia tietoja, sitoutuu projektin tilaaja määrittelemään yhden tai useamman henkilön toimimaan yhteyshenkilönä tai -henkilöinä Noviarian ja salaisen osapuolen välillä projektin päättymiseen asti. Noviarian on kuitenkin tunnettava tämän salassa pidettävän osapuolen rooli projektissa.

Tilaaja sitoutuu myös ilmoittamaan välittömästi Noviarialle mahdollisista muutoksista projektin osapuoliin tai heidän yhteystietoihinsa koko projektin keston ajan. Noviaria käyttää oikeuttaan kieltäytyä projektin toteuttamisesta, mikäli kaikkia projektin julkisia osapuolia ei ole saatettu sen tietoon. Noviaria sitoutuu vastaavasti toimittamaan henkilöstönsä yhteystiedot niiden henkiöiden osalta, jotka osallistuvat projektiin, ja joiden yhteystiedoissa ei ole salassa pidettäviä tietoja. Esimerkiksi asetettu turvakielto voi estää Noviariaa toimittamasta tiettyjä yhteystietoja.

3.2 Aineistojen toimitustavat ja -kanavat

Noviaria vastaanottaa projekteihin liittyviä aineistoja ja materiaaleja, kuten kuvia, asiakirjoja, tietokantoja, ohjelmistokoodia, dokumentaatiota, ym. pääasiassa sähköisesti ja kohtelee vastaanottamiaan aineistoja ehdottoman luottamuksellisesti eikä luovuta niitä kolmansille osapuolille ilman aineiston omistajan Noviarialle sähköisesti toimittamaa lupaa.

Noviaria ei ole minkäänlaisessa vastuussa kadonneista lähdemateriaaleista ja kehotamme, että aineiston lähettäjä säilyttää itsellään varmuuskopion lähetetyistä aineistoista tarpeelliseksi katsomansa ajan, kuitenkin vähintään projektin päättymiseen asti.

Mikäli Noviarialle toimitettava aineisto on arkaluontoista, esim. henkilöitä identifioivaa aineistoa kuten asiakasrekisteri tai liiketoimintasalaisuuksia, kehotamme salaamaan aineiston ennen sen lähettämistä. Ilmoittakaa tämän jälkeen Noviarialle salauksen purkuun tarvittava salasana tai salausavain eri viestissä ja mieluiten myös eri kommunikaatiokanavaa käyttäen kuin itse aineisto (esimerkiksi: salattu aineisto sähköpostitse ja purkuun vaadittava salasana puhelimitse tai turvallisena pidettyä viestisovellusta käyttäen).

Noviaria varaa oikeuden veloittaa erikseen aineiston käsittelyyn ja muokkaamiseen liittyvät kulut kulloinkin voimassaolevan tuntityöhinnastonsa mukaisesti. Näitä kuluja voi syntyä esimerkiksi vaadittavista A/D-muunnoksista (esim. aineiston skannaus, ääni- tai videotallenteiden digitointi) tai tiedostomuotojen muunnoksiin vaadittava aika (esim. kuvamateriaalin kohdalla PSD → JPEG).

Aineiston omistajan velvollisuus on määritellä, mitä Noviaria tekee sille lähetetyllä aineistolla projektin päätyttyä. Ellei muutoin sähköisesti sovittu, hävittää Noviaria aineistot turvallisesti projektin päätyttyä mutta eri sopimuksella ja eri maksua vastaan voi Noviaria myös säilöä toimitettuja aineistoja sovitun määräajan.

3.2.1 Pienet aineistot sähköpostitse

Kooltaan alle 5 megatavun kokoiset aineistot voi lähettää zip- tai tar.gz-pakattuna sähköpostin liitetiedostona. Sähköpostipalvelinten rajoituksista johtuen ei ole taattua, että tätä suuremmat tai muun muotoiset tiedostot toimitetaan perille asti. Nämä ovat teknisiä rajoituksia, johon Noviaria ei voi vaikuttaa, ja suuremmille aineistoille suosittelemme lataamista Noviarian tarjoamaan pilvipalveluun sähköpostin liitetiedoston sijaan.

Noviaria vastaanottaa aineistoja sähköpostitse osoitteeseen [email protected]. Tämä sähköpostiosoite on jaettu Noviarian asiakaspalveluryhmän kesken, jotta aineistonne käsittely olisi mahdollisimman nopeaa. Mikäli aineistonne on arkaluontoista tai jos erillinen salassapito- tai NDA-sopimus määrittelee ainoastaan tietyt henkilöt, jotka ovat oikeutettuja käsittelemään aineistoa, suosittelemme että lähetätte aineiston suoraan kyseisten henkilöiden sähköpostiosoitteisiin. Varmistakaa Noviarian henkilökunnan suorat sähköpostiosoitteet projektikohtaisesti.

Kaikkiin Noviarian sähköpostiosoitteisiin voi lähettää GPG-standardilla salattuja viestejä ja voimme myös salata paluuviestit samaisella tekniikalla ilman eri maksua osapuolten näin erikseen pyytäessään.

3.2.2 Suuremmat aineistot Noviarian tarjoamaan pilvipalveluun

Sähköpostiliikenteen rajoitusten johdosta suurten aineistojen lähettäminen ei välttämättä ole mahdollista tai käytännöllistä. Suuremmat aineistot pyydämme toimittamaan suoraan pilvitallennusalustaamme. Noviaria toimittaa tilaajalle sähköisesti henkilökohtaisen linkin tallennustilaan projektin alkaessa. Tallennustilaan osoittavaa linkkiä ei saa jakaa projektin ulkopuolella oleville osapuolille. Tallennustila on jaettu Noviarian asiakaspalveluryhmän kesken, jotta aineistonne käsittely olisi mahdollisimman nopeaa.

Linkki tallennustilaan vanhenee ja lakkaa toimimasta viimeistään projektin päättyessä eikä Noviarialla ole velvollisuutta säilöä sinne tallennettuja aineistoja projektin päätyttyä ellei erillisellä sopimuksella ja eri korvausta vastaan toisin sovita. Noviaria vastaa tallennustilan riittävyydestä kyseisen projektin tarkoitukseen.

Suosittelemme materiaalien lataamista Noviarian toimittamaan pilvipalveluun, koska se on kytketty automaatioon, jonka avulla voimme käsitellä sinne ladattuja materiaaleja massana ja nopeammin.

3.2.3 Suuremmat aineistot muuhun pilvipalveluun

Tilaaja voi halutessaan myös toimittaa Noviarialle linkin omaan pilvitallennusalustaansa. Noviaria varaa tällöin oikeuden veloittaa erikseen sellaisista töistä, jotka koituvat kyseisen alustan käytöstä, kuten palveluun rekisteröitymiseen käytetty aika, teknisten yhteensopivuusongelmien ratkaisemiseen käytetty aika ja pilvitallennustarjoajan asiakasohjelmistojen asennukseen, asetusten tekemiseen ja asennuksen poistoon käytetty aika. Noviaria varaa myös oikeuden veloittaa erikseen sellaiset kulut, jotka liittyvät valitun pilvitallennusalustan käyttöön, kuten siihen mahdolliset liitetyt lisenssi- ja/tai käyttömaksut.

Tilaaja vastaa pilvitallennustilan riittävyydestä kyseisen projektin tarkoitukseen ja sitoutuu pitämään pilvitallennusalustaan ladatut aineistot Noviarian saatavilla vähintään projektin päättymiseen asti. Tilaaja sitoutuu myös ilmoittamaan Noviarialle välittömästi, mikäli hän tai jokin muu projektin osapuoli muokkaa, poistaa tai tallentaa uudemman version mistä tahansa kyseiseen pilvitallennusalustaan ladatusta, kyseistä projektia koskevasta aineistosta.

3.2.4 Postitse, kuriirin välityksellä

Noviaria voi erikseen sovittaessa vastaanottaa aineistoja myös postitse esim. CD- tai DVD-levyllä tai paperisena. Huomioittehan, että tietoturvasyistä emme vastaanota USB-muistitikkuja tai vastaavia tallennusmedioita. Veloitamme erikseen kulloinkin voimassaolevan tuntityöhinnastomme mukaisesti töistä, jotka liittyvät aineiston käsittelyyn ja muokkaukseen kulloinkin määriteltyyn käyttötapaukseen soveltuvaksi.

Huom! Noviarialla on useampi toimipiste. Mikäli lähetätte aineistoja postin tai kuriirin välityksellä, tarkistakaa Noviarialta mihin toimipisteeseen kyseinen aineisto tulee toimittaa. Aineiston lähettäjä vastaa aineiston lähetyskuluista Noviarian kulloinkin määrittelemään toimipisteeseen. Pyydämme myös huomioimaan että kaikki Noviarian toimipisteet eivät sijaitse Suomessa, jolloin lähettämiseen saattaa liittyä suurempia kuluja, tullausmuodollisuuksia tai pidempi toimitusaika.

Suomen Posti on toistuvasti osoittautunut erittäin epäluotettavaksi logistiikkakumppaniksi, joten suosittelemme että toimitatte aineistoja ainoastaan kuriiriliikkeiden välityksellä. Noviaria ei voi antaa minkäänlaista toimitusaika-arviota projektille, mikäli toimitatte siihen liittyviä aineistoja Suomen Postin välityksellä. Mikäli tästä huolimatta päädytte toimittamaan aineistoja Suomen Postin kautta, suosittelemme lähettämään seurantakelpoisen lähetyksen, ei siis tavanomaista kirjettä. Noviaria varaa oikeuden laskuttaa projektin tilaajalta erikseen kuljetuksessa kadonneiden aineistojen tai viivästyneiden lähetysten selvitystyöstä aiheutuvat kulut.

Noviaria laskuttaa erikseen sille lähetettyjen aineistojen palauttamiskustannuksista, mikäli aineiston toimittaja tai omistaja haluavat aineiston palautettavan projektin päättyessä. Noviaria sitoutuu tällöin palauttamaan aineiston mahdollisimman pian, mutta pyytää kuitenkin huomioimaan, että aineiston sijaitessa Noviarian ulkomaalaisessa toimipisteessä, saattaa aineiston lähettämisessä Suomeen liittyä pidempi toimitusaika ja suuremmat kulut. Noviaria valitsee parhaaksi kokemansa logistiikkakumppanin, jonka välityksellä se palauttaa aineiston, riippuen aineiston sijaintimaasta.

4 Ohjelmistokehitysympäristö

Noviarian kehitysympäristö on rakennettu kulloinkin uusimman Debian Linux-käyttöjärjestelmän päälle. Tästä syystä voimme käyttää vain sellaisia kolmannen osapuolen järjestelmiä ja ohjelmia, joista löytyy Linux/Unix-versiot. Noviaria on tarkoituksella rajannut pois tarjonnastaan Microsoft Windows-ekosysteemin, koska se ei kuulu ydinliiketoimintaamme, emmekä ylläpidä sen vaatimaa infrastruktuuria tai omista sen ylläpitoon vaadittavia ohjelmistolisenssejä.

Käytämme avointa OCI-standardia paketointiin, jonka avulla toteutamme internetsivujen ja -ohjelmistojen kehittämisen tarvittavan alustan. Alusta koostuu sovelluspalvelimesta, johon on asennettu PHP- ja Python-ohjelmointikielien tulkit.

Noviarian ohjelmistokehitysalusta ei koskaan sisälly projektin toimitukseen. Noviaria ei myöskään voi jakaa omaa kehitysympäristöä kolmansien osapuolien kanssa sellaisenaan, koska se sisältää mm. luottamuksellista ja liikesalaisuuksiin verrattavissa olevaa tietoa Noviarian omasta infrastruktuurista sekä tunnistetietoja, joita käytetään ainoastaan Noviarian sisäisessä ympäristössä. Voimme kuitenkin eri sopimuksesta ja eri maksusta toimittaa myös kolmansille osapuolille vastaavan, yhteensopivan kehitysympäristön projektin tilaajan näin halutessaan.

4.2 Selainyhteensopivuus

Johtuen selainten ja päätelaitteiden hyvin suuresta määrästä, on internetsivustoja ja -sovelluksia mahdotonta testata kaikilla selainversioilla tai kaikilla ohjelmisto-/laitteistoyhdistelmillä.

Ellei muutoin sähköisesti sovita, toteuttaa Noviaria internetsivustot toimimaan seuraavien, projektin aloitushetkellä uusimpien julkisesti saatavissa olevien selainversioiden kanssa;

  • Mozilla Firefox
  • Vivaldi (kattaa myös mm. Google Chrome, Chromium)
  • Microsoft Edge

Tilaaja hyväksyy, että internetsivusto tai -ohjelmisto ei välttämättä ole käytettävissä kaikkein vanhimmilla päätelaitteilla tai selainohjelmistoilla, ellei projekti eri sopimuksella nimenomaisesti ole suunniteltu tietylle selainversiolle tai laitteelle.

Tilaaja hyväksyy myös, että internetsivuston tai -ohjelmiston toiminta saattaa olla kokonaan estetty, virheellinen tai puutteellinen, mikäli sivuston tai ohjelmiston käyttäjä on määritellyt laitteeseensa poikkeuksellisen tiukat tietoturva-asetukset, käyttää kolmannen osapuolen selainlaajennosta joka vaikuttaa sivuston tai ohjelmiston toimivuuteen (esim. estää evästeet), käyttää ilman laitevalmistajan tukea olevaa kolmannen osapuolen käyttöjärjestelmää, käyttää palomuurilla, haittaohjelmien torjunnalla tai välityspalvelimella suodatettua yhteyttä, tai jos hän käyttää heikkolaatuista tai nopeudeltaan riittämätöntä tai sensuroitua internetyhteyttä. Noviaria ei voi teknisillä ratkaisuilla vaikuttaa päätelaitteisiin tehtäviin asetuksiin, mutta voi tarpeen tullen tarjota käyttötukea oikeiden asetusten tekemiseen.

Ellei erikseen sähköisesti toisin sovita, varaa Noviaria oikeuden veloittaa kulloinkin voimassaolevan tuntityöhinnastonsa mukaisesti tilaajalta erikseen kaikesta;

  • käyttötuesta, jonka se tarvittaessa toimittaa tilaajalle, projektin toiselle osapuolelle tai projektin loppukäyttäjille (esim. selainasetusten tekeminen, yhteysongelmien ratkonta, sivuston tai ohjelmiston käyttöön liittyvät asiat kuten sisäänkirjautumisongelmat)
  • työstä, joka liittyy tietyn selainversion toimimattomuuteen tai yhteensopimattomuuteen internetsivuston tai -ohjelmiston kanssa, kun käytetty selainversio on vanhempi, kuin mitä projektin aloitushetkellä on julkisesti saatavilla, tai jonka yhteensopivuudesta on erikseen sovittu
  • työstä, joka littyy tietyn päätelaitteen toimimattomuuteen tai yhteensopimattomuuteen internetsivuston tai -ohjelmiston kanssa

Tilaaja antaa Noviarialle luvan testata internetsivustojen ja -ohjelmistojen selainyhteensopivuutta ohjelmallisesti, tarkoittaen, että Noviaria saa käyttää mm. emulaattoreita, virtualisointia ja etäyhteyksiä parhaaksi katsomallaan tavalla testatakseen yhteensopivuutta eri selain- ja/tai laiteyhdistelmien välillä. Noviarialla ei ole velvollisuutta hankkia päätelaitteita tai maksullisia selainohjelmistoja yhteensopivuuden testaamiseksi, ellei toisin erikseen sähköisesti sovita.

4.3 Responsiivisuus ja adaptiivisuus

Ellei muutoin mainittu projektisuunnitelmassa, käyttää Noviaria kulloinkin uusinta pääversiota Tailwind CSS-alustasta toteuttaakseen internetsivujen ja sähköpostiviestien ulkoasun responsiivisesti. Oletusarvoisesti responsiiviset sivustot ja sähköpostipohjat suunnitellaan toimimaan älypuhelinten, tablettien ja pöytätietokoneiden kanssa.

Eri sopimuksesta ja eri maksusta voimme toteuttaa myös responsiivista sisältöä muille päätelaitteille, kuten älykelloille, tiedotusnäytöille ja upotettuihin järjestelmiin kuten autoihin ja julkisen liikenteen viihde- ja tiedotusjärjestelmiin.

4.4 Python-ohjelmointikielen koodi

Ellei muutoin mainittu projektisuunnitelmassa, toteuttaa Noviaria Python-ohjelmointiprojektit kulloinkin uusimmalla Pythonin pääversiolla. Emme toteuta vanhan Python 2-version koodia lainkaan emmekä käytä versiota 2 vaativia kirjastoja.

Tiedostojen sisennykset tehdään välilyönnein 4 kpl ryhmissä. Tiedostojen merkistökoodaus on UTF-8 ilman Byte Order-merkkiä (BOM) ja rivien enimmäispituus on 120 merkkiä Unix-tyylisin rivinvaihdoin (”\n”). Kommentit, funktioiden, metodien ja luokkien nimet ja ovat englannin kielellä. Muutoin sovelletaan PEP-8 -standardia.

Modulit (tiedostot) nimetään pienaakkosin ja tarvittessa alaviivoin. Paketit (hakemistot) nimetään pienaakkosin ilman erikoismerkkejä. Luokat nimetään CapWords-muotoilulla.

Python-sovelluskehyksistä käytämme Djangoa.

Ellei muutoin mainittu, käytetään ASGI-sovelluspalvelimena uvicornia.

Noviaria käyttää Python-projektien toteuttamiseen JetBrains IDEA ja PyCharm-kehitysympäristöjä.

4.5 PHP-ohjelmointikielen koodi

Ellei muutoin mainittu projektisuunnitelmassa, toteuttaa Noviaria PHP-projektit olio-ohjelmointina kulloinkin uusimmalla PHP:n pääversiolla. Noviaria ei toteuta lineaarisella tai funktionaalisella tyylillä ohjelmoituja PHP-tiedostoja edes komentotulkkeja varten, siitä yksinkertaisesta syystä, että PHP:lle suunnitellut testausjärjestelmät tukevat parhaiten oliotyylistä ohjelmointia.

Noviaria käyttää kulloinkin uusinta PHPUnit-kirjaston pääversiota yksikkötestien toteuttamiseen. Riippuvuuksien automaattinen hallinta ja luokkien automaattinen lataaminen on toteutettu avoimen lähdekoodin Composer-kirjastolla.

Tiedostojen sisennykset tehdään välilyönnein 4 kpl ryhmissä. Tiedostojen merkistökoodaus on UTF-8 ilman Byte Order-merkkiä (BOM) ja rivien enimmäispituus on 120 merkkiä Unix-tyylisin rivinvaihdoin (”\n”). Kommentit, funktioiden, metodien ja luokkien nimet ja ovat englannin kielellä. Koodikommentit toteutetaan PHPDoc-syntaksilla.

PHP-sovelluskehyksistä käytämme Laravelia.

Noviaria käyttää PHP-projektien toteuttamiseen JetBrains IDEA-kehitysympäristöä.

4.6 CSS-tyylitiedostot

Ellei muutoin mainittu projektisuunnitelmassa, käyttää Noviaria CSS-koodin esikäsittelyyn Sass-kirjastoa ja elementtien nimeämiseen BEM-käytäntöä. Sisennykset tehdään välilyönnein 4 kpl ryhmissä. Tiedostojen merkistökoodaus on UTF-8 ilman Byte Order-merkkiä (BOM) ja rivien enimmäispituus on 120 merkkiä Unix-tyylisin rivinvaihdoin (”\n”). Kommentit ja elementtien nimet ovat englannin kielellä.

4.7 HTML-tiedostot

Ellei muutoin mainittu projektisuunnitelmassa, käyttää Noviaria HTML5-muotoa. Sisennykset tehdään välilyönnein 4 kpl ryhmissä. Tiedostojen merkistökoodaus on UTF-8 ilman Byte Order-merkkiä (BOM) ja rivien enimmäispituus on 120 merkkiä Unix-tyylisin rivinvaihdoin (”\n”). Kommentit ja elementtien nimet ovat englannin kielellä.

4.8 Tietokannat

Ellei muutoin mainittu projektisuunnitelmassa, käyttää Noviaria relaatiotietokantajärjestelmänä kulloinkin uusinta pääversiota PostgreSQL-ohjelmistoista. Eri tilauksesta tai sovellusalustan näin vaatiessa voimme käyttää noSQL-tyylisenä tietokantana MongoDB-tietokantapalvelinta sekä totetuttaa MySQL-tietokannat sen kanssa täysin yhteensopivalla MariaDB-palvelimella.

MariaDB/MySQL-tietokantamoottorina käytämme InnoDB:tä ja merkistökoodauksena UTF-8:aa.

Tietokantojen, taulujen, sarakkeiden ja funktioiden nimet ovat englannin kielellä, pienaakkosin, sanat eroteltuna toisistaan alaviivoin. Varatut SQL-funktiot kirjoitetaan versaaleilla.

4.9 Versionhallinta

Ellei muutoin mainittu projektisuunnitelmassa, käyttää Noviaria avoimen lähdekoodin, hajautettua Git-versionhallintajärjestelmää. Noviaria käyttää sisäisesti GitLab-palvelinta Git-repositorioiden hallinnointiin.

Noviaria noudattaa Git-flow -nimistä työskentelytapaa. Haarojen nimeämiskäytäntö noudattaa tuolloin seuraavaa kaavaa;

  • uudet toiminnallisuudet: feature/TKT-123 jossa TKT-123 on koontitiketin numero
  • kiireelliset vikakorjaukset: hotfix/TKT-123

Commit-viestiksi tulee kirjoittaa sen tiketin numero, jota koodi koskee, ja lyhyt kuvaus tehdyistä muutoksista englannin kielellä.

Yhdistämisjärjestys on seuraava;

  • feature → develop
  • hotfix → main → develop
  • develop → main

HUOM: main-haaraan työnnetyt muutokset viedään oletusarvoisesti automatisoidusti CI/CD-järjestelmään, joka ajaa ohjelmistolle kulloinkin määritellyt testit. Mikäli testit onnistuvat, suorittaa kyseinen järjestelmä myös automaattisesti uuden ohjelmistoversion asentamisen tuotantojärjestelmään. Täten on äärimmäisen tärkeää, että koodin vieminen main-haaraan tapahtuu vain määrätyn integraatio- ja laadunvarmiustushenkilön tai -tiimin kautta.

Versionhallintaan ei koskaan viedä loki-, välimuisti- tai tilapäistiedostoja tai salaisuuksia kuten salasanoja tai salaisia avaimia.

Jokaiseen projektiin kuuluu käyttötarkoitukseen soveltuva .gitignore-tiedosto, joka sijaitsee projektin juurihakemistossa. Gitignore-tiedoston kommentit ovat englannin kielellä.

4.10 Hakemistorakenteet

Tietoturvasyistä internetsivuston projektin juuri ei missään tapauksessa saa olla sama kuin julkinen webroot.

Koska Noviaria toimii ainoastaan Linux/Unix-alustoilla, tulee kaikkien hakemistoviitteiden käyttää kauttaviivoja (/). Samasta syystä ovat myös hakemisto- ja tiedostonimien pienet ja suuret aakkoset merkityksellisiä. Noviaria käyttää hakemisto- ja tiedostonimissä ainoastaan kirjaimia a-z ja A-Z sekä numeroita 0-9 ja pistettä.

Absoluuttisia polkuviittauksia käytetään ainoastaan pakon edestä, ja tuolloinkin ainoastaan konttien sisällä.

4.11 Päivämäärät

Päivämäärät ja ajat noudattavat ISO8601-standardia. Noviaria käyttää sovellustason aikavyöhykkeenä paikallista aikaa, ellei toisin ennalta sovita.

5 Integraatiot ja CI/CD-järjestelmät

5.1 Kolmannen osapuolen kirjastot ja palvelut

Ohjelmistokehityksessä on tyypillistä, että siinä käytetään paljon kolmannen osapuolen toimittamia ohjelmistokoodeja, kuten esimerkiksi avoimen lähdekoodin koodikirjastoja, Wordpress-liitännäisiä tai integraatioita Googlen analytiikkapalveluihin.

Noviaria ei ole missään vastuussa kolmannen osapuolen ohjelmistokoodin toimivuudesta, tietoturvasta, liitettävyydestä, ylläpidettävyydestä, siirrettävyydestä tai soveltuvuudesta tiettyyn käyttötarkoitukseen.

5.2 Hosting-palveluntarjoajat

Internetsivustot ja -ohjelmistot tarvitsevat toimiakseen palvelinalustan, jonne ohjelmisto asennetaan, eli nk. web hotel- tai hosting-palveluntarjoajan. Noviaria ei ole vastuussa kolmannen osapuolen järjestelmien toimivuudesta, tietoturvasta, liitettävyydestä, ylläpidettävyydestä, siirrettävyydestä tai soveltuvuudesta tiettyyn käyttötarkoitukseen.

5.2.1 Noviaria palveluntarjoajana

Noviaria toimittaa mielellään kaikki Python- ja PHP-pohjaiset palvelinalustat kolmannen osapuolen infrastruktuurin avulla erittäin kilpailukykyiseen hintaan. Toimittajiimme kuuluvat saksalainen Hetzner, yhdysvaltalaiset Amazon, DigitalOcean ja Google. Noviaria asentaa internetsovelluksenne näiden pilvipalvelutarjoajien järjestelmien päälle. Tarjoamme myös rekisteröintimahdollisuuden yli 800:n eri verkkotunnuspäätteen välillä.

Pyydämme tutustumaan erillisiin palvelukuvauksiin hosting-palvelutarjonnastamme.

5.2.2 Noviaria järjestelmäintegraattorina

Mikäli tilaaja haluaa internetsivun tai -ohjelmiston asennettavan muulle, kuin Noviarian toimittamalle palvelinalustalle, tulee Noviarialle toimittaa tarvittavat tiedot asennusta varten, mikäli Noviaria toimii kyseisessä projektissa järjestelmäintegraattorin roolissa. Tarvittavia tietoja ovat palveluntarjoajan nimi ja jos tiedossa, yhteyshenkilön tai -henkilöiden nimi, hänen suora sähköpostiosoite ja suora puhelinnumero. Lisäksi vaaditaan teknisiä tietoja, kuten palvelimen osoite, palvelimen portti, yhteysprotokolla, käyttäjätunnus, salasana, salausavain tai muu käyttötunniste, joka myöntää tarvittavat käyttöoikeudet kohdejärjestelmään asennusta varten.

Noviaria suorittaa järjestelmäintegraatiot IPv4- tai IPv6-osoitteesta, joka kulloinkin vastaa nimeä sysint.ext.noviaria.com. Tämä tieto tulee tilaajan toimesta välittää etukäteen palveluntarjoajalle ennen asennusta, mikäli kohdeympäristöön käytettävä yhteystapa edellyttää palomuuriasetusten tekemistä.

Koska jokainen palveluntarjoaja käyttää eri menetelmiä ja toimintatapoja ja koska internetsivujen ja ohjelmistojen yhteensopivuus tulee varmistaa tapauskohtaisesti, veloitamme tämän tyylisistä integraatiopalveluista erikseen kulloinkin voimassaolevan tuntityöhinnastomme mukaisesti.

Noviaria tekee parhaansa varmistaakseen kohdeympäristön soveltuvuuden kulloinkin asennettavan internetsivuston tai -ohjelmiston kanssa. Koska kolmannen osapuolen järjestelmiin sisältyy aina olennaisena osana käyttö- ja resurssirajoituksia, ei lopullista yhteensopivuutta usein saada varmistettua muulla tapaa kuin suorittamalla asennus. Noviaria ei ole vastuussa katkoksista, internetsivustojen tai -ohjelmistojen toimimattomuudesta, tavoitettavuusongelmista tai muista vahingoista, jotka koituvat siitä, että valittu kohdeympäristö todetaan yhteensopimattomaksi kulloinkin asennettavan internetsivuston tai -ohjelmiston kanssa.

Jos kohdeympäristö ei sisällä mahdollisuutta ohjata liikennettä toiseen järjestelmään asennuksen ajaksi, kuten on tyypillistä budjettipalveluntarjoajilla, tai jos kohdejärjestelmä koostuu vain yhdestä palvelimesta, ei käyttökatkoksilta voida välttyä asennuksen yhteydessä.

Mikäli kohdeympäristöön on jo asennettu jokin internetsivusto tai -ohjelmisto, suorittaa Noviaria varmuuskopioinnin siitä ennen asennuksen tekemistä. Noviaria säilyttää varmuuskopiota ilman eri maksua omilla järjestelmillään projektin päättymiseen asti, jolloin se tuhotaan tietoturvallisesti. Varmuuskopioita voidaan myös säilyttää eri sopimuksella ja eri maksusta ennalta sovittu määräaika.

Noviaria varaa oikeuden veloittaa 50% varatun asennustyön hinnasta, mikäli asennusaika perutaan alle 7 vrk ennen asennusaikaa. Alle kaksi vuorokautta ennen asennusaikaa tehdyistä perumisista veloitamme asennustyön täysimääräisenä.

5.2.3 Siirto toiselle palveluntarjoajalle

Internetsivustoja ja -ohjelmistoja voidaan asennuksen yhteydessä myös siirtää palveluntarjoajalta toiselle, esimerkiksi kolmannen osapuolen palvelimilta Noviarialle tai toisin päin, tai kolmansien osapuolien välillä.

Mikäli Noviarian halutaan toteuttavan siirto, tulee tilaajan toimittaa käyttöoikeudet nimipalvelinjärjestelmään (DNS), jotta Noviaria voi tehdä tarvittavat tekniset asetukset. Mikäli internetsivusto tai -ohjelmisto siirretään toiselle palvelimelle yksinomaan nimipalvelinasetusten kautta, ei tarkkaa siirtoaikaa välttämättä pysty antamaan internetteknisestä syystä. Tällöin on myös tyypillistä, että sekä vanha että uusi internetsivusto tai -ohjelmisto toimivat enintään joitain vuorokausia samanaikaisesti, jolloin loppukäyttäjän internetyhteydestä riippuen näytetään joko vanha tai uusi versio. Tämä on tyypillinen internettekninen rajoitus eritoten budjettipalveluntarjoajilla, eikä Noviaria voi vaikuttaa siihen.

5.3 Noviarian toimitusjärjestelmät

Noviaria käyttää GitLab-alustaa CI/CD-järjestelmänä. .gitlab-ci.yml-tiedosto tulee sijoittaa projektin juureen, ei kuitenkaan missään tapauksessa julkiseen webrootiin. .gitlab-ci.yml-tiedoston kommentit ovat kirjoitettu englannin kielellä.

6 Erilliset dokumentit

Noviaria käyttää avoimen lähdekoodin LibreOffice-ohjelmistoa avatakseen mm. Microsoft Office-yhteensopivia tiedostomuotoja doc, docx, ppt ja pptx. Koska emme käytä Microsoft Office-ohjelmistoja, tuotamme ja tallennamme e.m. dokumentteja tiedostomuodoissa .odt ja .odp.

7 Auditoinnit

Noviaria varaa oikeuden veloittaa erikseen kulloinkin voimassaolevan tuntityöhinnastonsa mukaisen maksun, mikäli tilaaja haluaa teettää kolmannen osapuolen toimittaman auditoinnin.

8 Mobiiliapplikaatiot

Ellei muutoin mainittu projektisuunnitelmassa, toteuttaa Noviaria mobiiliapplikaatiot vue.js-pohjaisella Quasar-sovellusrungolla.

Noviaria ei voi taata, että kolmannen osapuolen sovelluskaupat, kuten Google Play ja Apple Store, hyväksyvät levitykseen kaikki niihin lähetetyt sovellukset. Sovelluskaupat voivat tapauskohtaisesti hylätä ladatut sovellukset omien käytäntöjensä mukaisesti, eikä Noviaria voi vaikuttaa tähän hyväksyntäprosessiin.

Tilaaja antaa Noviarialle luvan testata applikaatioiden laiteyhteensopivuutta ohjelmallisesti, tarkoittaen, että Noviaria saa käyttää mm. emulaattoreita, virtualisointia ja etäyhteyksiä parhaaksi katsomallaan tavalla testatakseen yhteensopivuutta eri ohjelmisto- ja/tai laiteyhdistelmien välillä. Noviarialla ei ole velvollisuutta hankkia laitteita tai maksullisia kehitysohjelmistoja yhteensopivuuden testaamiseksi, ellei toisin erikseen sähköisesti sovita.