• Ei tuloksia

Aikataulutustyökalun kehittäminen automaatiosuunnitteluun

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "Aikataulutustyökalun kehittäminen automaatiosuunnitteluun"

Copied!
41
0
0

Kokoteksti

(1)

Aikataulutustyökalun kehittäminen automaatiosuunnitteluun

Paavo Kujala

OPINNÄYTETYÖ Joulukuu 2020

Sähkö- ja automaatiotekniikan tutkinto-ohjelma Automaatiotekniikka

(2)

TIIVISTELMÄ

Tampereen ammattikorkeakoulu

Sähkö- ja automaatiotekniikan tutkinto-ohjelma Automaatiotekniikka

KUJALA, PAAVO:

Aikataulutustyökalun kehittäminen automaatiosuunnitteluun Opinnäytetyö 41 sivua, joista liitteitä 1 sivu

Joulukuu 2020

Investointiprojekteissa olevat aikataulut ovat yleisesti hyvin laajoja ja niissä esi- tetyt toimialakohtaiset aikataulut käsittelevät tehtäväkokonaisuuksia vain suur- piirteisesti. Aikataulutustyökalun avulla pyritään saamaan automaatiosuunnitteli- joille toimialakohtaista tietoa siitä, miten investointiprojektissa on edetty, mitä teh- täviä on tehty sekä mitä tehtäviä on tekemättä. Aikataulutustyökalu on tehty ti- lauksesta AFRY Finland Oy:lle ja se on tarkoitettu vain automaatio-osaston käyt- töön. Opinnäytetyön keskeisiin käsitteisiin kuuluvat investointiprojektin luonnolli- nen eteneminen, aikataulun luominen ja hallitseminen sekä ohjelmointi.

Opinnäytetyö sisältää teoriaosuuden, ohjelmointikielen esittelyn sekä yksityis- kohtaisen esittelyn työkalun toteuttamisen eri vaiheista. Opinnäytetyön teoria- osuudessa käsitellään investointiprojektin vaiheiden luonnollista etenemistä sekä aikataulun ja resurssien hallintaa. Aikataulutustyökalu on tehty Excel-tiedostoon ja sen ohjelmointikielenä käytettiin Visual Basic for Applicationia. Näin ollen se toimii vain Microsoft Office -käyttöjärjestelmässä. Aikataulutustyökalulle on tehty käyttöohje.

Opinnäytetyössä kehitetty aikataulutustyökalu helpottaa automaatiosuunnitteli- joita seuraamaan toimialakohtaisten tehtävien etenemistä investointiprojektissa.

Aikataulutustyökalun avulla automaatiosuunnittelija myös näkee kannattavan tehtävien toteuttamisjärjestyksen. Tulevaisuudessa työkalun toimintaa olisi tar- koitus laajentaa myös muille toimialoille, kuten sähkösuunnitteluun sekä mekaa- niseen- ja putkisuunnitteluun.

Asiasanat: projekti, aikataulu, suunnittelu, ohjelmointi

(3)

ABSTRACT

Tampereen ammattikorkeakoulu

Tampere University of Applied Sciences

Degree Programme in Electrical and Automation Engineering Automation Engineering

KUJALA, PAAVO:

Scheduling Tool Development for Automation Design Bachelor's thesis 41 pages, appendices 1 page December 2020

The aim of this thesis was to plan a scheduling tool for AFRY Finland Oy’s auto- mation department. Key concepts of the thesis include the natural progress of the investment project, the creation and management of schedules and program- ming. The schedules in the investment project are generally very broad and the industry specific schedules usually cover the tasks in a broad way. The purpose of the scheduling tool is to provide automation designers with industry specific information on how the investment project has progressed, what tasks have been completed and what remains to be done.

The thesis includes a theoretical part, an introduction to the programming lan- guage and a detailed presentation of different stages of making the scheduling tool. The theoretical part contains the natural progress of different stages in the investment project and the management of schedules and resources. The sched- uling tool was created in an Excel file and the programming language used was Visual Basic for Applications and therefore, it only works in Microsoft Office op- erating system. A user guide has been was created for the scheduling tool.

The scheduling tool developed in the thesis helps automation designers to follow the progress of industry specific tasks in the investment project. With this sched- uling tool automation designers can also see the recommended order of task completion. In the future the operation of the scheduling tool should be extended to other industries like electric engineering and mechanical and piping design.

Key words: project, schedule, design, programming

(4)

SISÄLLYS

1 JOHDANTO ... 5

2 PROJEKTI ... 6

3 PROJEKTIN VAIHEET ... 8

3.1 Projektin aloittaminen ... 8

3.2 Projektin suunnittelu ... 9

3.3 Projektin toteutus, ohjaus, seuranta ja raportointi ... 11

3.4 Projektin päättäminen ... 12

4 AIKATAULUTUS JA RESURSSIEN HALLINTA ... 15

4.1 Aikataulutus ... 15

4.2 Aikataulutustekniikoita ... 16

5 VISUAL BASIC FOR APPLICATIONS –OHJELMOINTIKIELI ... 18

6 AIKATAULUTUSTYÖKALUN SUUNNITTELU ... 20

6.1 Aikataulutustyökalun tavoitteet ja odotukset ... 20

6.2 Aikataulutustyökalun suunnittelu ... 20

6.3 Suunnittelutehtävien väliset riippuvuussuhteet ... 22

7 AIKATAULUTUSTYÖKALUN FYYSINEN TOTEUTUS ... 23

7.1 Aikataulutustyökalun etusivu ... 23

7.2 Ohjelmointi ... 25

7.2.1 Aikataulun laajuuden valinta ... 25

7.2.2 Esivalmistelut ja tehtävien tulostaminen ... 25

7.2.3 Päivämäärien tulostaminen ... 26

7.2.4 Päivämäärien tulostaminen tehtäville ... 27

7.2.5 Aikataulun solujen värittäminen ... 29

7.2.6 Aikataulun päivittäminen ... 30

7.2.7 Tallennus ... 34

7.3 Aikataulutustyökalun toimintakuvaus ... 35

7.4 Lopputulos ... 36

8 POHDINTA ... 38

LÄHTEET ... 40

LIITTEET ... 41

Liite 1. Automaatiosuunnittelun eteneminen dokumenteittain ... 41

(5)

1 JOHDANTO

Tässä opinnäytetyössä esitetään yleisesti investointihankkeen suunnittelun vai- heet ja niiden merkitykset projektissa sekä perusteita automaatiosuunnittelun projektin kulusta. Työn tarkoituksena on kehittää ja käyttöön ottaa automaatio- suunnittelutehtävien aikataulutusta tukeva työkalu AFRY Finland Oy:lle. Aikatau- lutustyökalun tarkoituksena on tukea automaatiosuunnittelijaa työtehtävien aika- taulutuksessa sekä kokonaisaikataulun hallitsemisessa. Siinä tulisi olla mahdolli- suus määritellä ja muuttaa tehtäväkohtaisia aikatauluja siten, että kokonaisaika- taulu pysyy dynaamisena ja tehtäväkohtaiset riippuvuussuhteet eivät muutu. Ai- kataulutustyökalu tulee AFRY:n automaatiosuunnittelijoiden käyttöön.

AFRY on kansainvälinen suunnittelu- ja konsultointiyhtiö, joka syntyi, kun vuonna 1895 Ruotsissa perustettu ÅF osti 1958 Suomessa perustetun Pöyryn helmi- kuussa 2019. AFRY:llä on globaalisti 17000 työntekijää, toimistoja 50 maassa ja projekteja 100 maassa. Suomessa yhtiön viidestä divisioonasta toimii neljä: Pro- sessiteollisuus, Energia, Infra ja Liikkeenjohdon konsultointi.

Opinnäytetyö tehtiin Kouvolan toimipisteessä, jossa tehdään töitä globaalien met- säteollisuuden projektien parissa sekä lähialueen teollisuuden paikallispalvelu- projekteissa.

(6)

2 PROJEKTI

Projektit ovat yleensä moninaisia kokonaisuuksia ja tämän takia kirjallisuudessa on projektille useita erilaisia määritelmiä, kuten hanke, tehtävä, työ tai suunnitte- lutyö. Vaikka jokainen projekti on uniikki, löytyy niistä myös yhtäläisyyksiä.

Projektilla on selkeä tavoite tai joukko tavoitteita, jotka saavuttamalla se saadaan päätökseen. Projekti ei ole jatkuvaa toimintaa, vaan sillä täytyy olla etukäteen määritelty päätepiste, joka voidaan realistisesti saavuttaa tavoitteet huomioon ot- taen. Projekti on loogisesti rajattu kokonaisuus, jonka vastuu on keskitetty yhteen pisteeseen, vaikka mukana on olisi useita erilaisia osapuolia. Sen tavoitteiden saavuttamisen edellytyksenä on hyvä ja tiivis ryhmätyöskentely. Ryhmän jäsenet voivat edustaa eri organisaatioyksiköitä, yrityksiä ja jopa eri kansallisuuksia.

(Ruuska 2012, 19-20.)

Projekti on aina myös oppimisprosessi, josta saatua kokemusta tulisi hyödyntää myös tulevaisuudessa. Jokainen projekti on ainutlaatuinen ja sitä ei voida toistaa samanlaisena uudestaan. Ihmiset ja ympäristötekijät muuttuvat ajan myötä, joten myös projektit muuttuvat ajan mukana. Projekti kokee elinkaarensa aikana lukui- sia muutoksia, joista osalla niistä ei ole vaikutusta projektin etenemiseen, kun toiset taas voivat muuttaa projektin etenemistä ja tavoitteenasettelua täysin. Me- neillään olevan projektin vaiheessa ei voida varmuudella tietää, mitä seuraa- vassa vaiheessa tulee tapahtumaan ja edellisen vaiheen tulokset vaikuttavat aina seuraavan vaiheen tehtäviin. (Ruuska 2012, 19-20.)

Projekti pohjautuu aina asiakkaan tilaukseen. Asiakas asettaa projektille vaati- muksia ja ehtoja, jotka rajaavat projektin toimintaa. Asiakas voi tulla oman orga- nisaation sisältä tai toisesta organisaatiosta riippuen siitä, onko kyseessä sisäi- nen kehityshanke vai ulkopuolinen toimitusprojekti. Projekti koostuu monimutkai- sesta joukosta lukemattomia eri muuttujia, jotka liittyvät teknologiaan, laitteisiin, materiaaleihin, ihmisiin ja kulttuureihin. Näillä muuttujilla on toisiinsa nähden loo- gisia riippuvuuksia. Mikäli riippuvuus puuttuu, muuttuja ei kuulu projektiin. Osa projektin tehtävistä hoidetaan aina alihankintoina, joko sisäisinä tai ulkoisina. Mitä laajemmasta projektista on kyse, sitä suurempi on alihankintojen osuus. (Ruuska

(7)

2012, 19-20.)

Jokaiseen projektiin liittyy riskejä ja epävarmuuksia. Ne ovat osa projektityön luonnetta. Riskien määrä riippuu siitä, miten projekti viedään sen eri vaiheissa läpi. Huonosti suunnitellussa ja epäselvästi rajatussa projektissa riskien määrä ja niiden toteutumistodennäköisyydet ovat suuret. (Ruuska 2012, 19-20.)

(8)

3 PROJEKTIN VAIHEET

Projekti on tehtäväkokonaisuus, jolla on selkeä alkamis- ja päättymisajankohta eli elinkaari. Elinkaarensa aikana projekti jakautuu useisiin eri vaiheisiin, jotka ominaisuuksiltaan ja työskentelytavoiltaan poikkeavat toisistaan. Jokaisella vai- heella on omat ongelmat, riskit ja toimintamallit. Vaikka projektin vaiheiden luku- määrästä löytyy useita erilaisia mielipiteitä, on malleista kuitenkin yleensä aina löydettävissä samat peruselementit. Projektin vaiheille on tyypillistä, että ne vai- kuttavat toisiinsa kuvion 1 osoittamalla tavalla. Päättyneeseen työvaiheeseen joudutaan usein palaamaan seuraavan vaiheen ollessa jo käynnissä. (Ruuska 2012, 22-23.)

KUVIO 1. Projektin eteneminen vaihe vaiheelta (Ruuska 2012, 23, muokattu)

3.1 Projektin aloittaminen

Ennen kuin ideaa tai kehitysehdotusta ryhdytään käytännössä toteuttamaan ja projektia pystyttämään, tulisi kohdealueesta tehdä esiselvitys. Esiselvityksen tar- koituksena on kartoittaa aiotun hankkeen teknis-taloudelliset edellytykset sekä varmistaa, että projektin ennakoitu lopputulos tukee organisaation toiminnallisia tavoitteita. Esitutkimuksen lopputuloksena projektin asettaja saa riittävät tiedot, onko projektin käynnistämiselle olemassa tarvittavat edellytykset. Esitutkimuk- sessa selvitetään ja kuvataan ainakin pintapuolisesti projektin toiminnalliset ja tekniset tavoitteet, keskeiset ongelma-alueet, tavoiteaikataulut, kustannusarvio ja resurssitarve, onnistumisedellytykset sekä lopputulos. (Ruuska 2012, 35-37)

Projektin aloittamisella eli käynnistämisellä luodaan pohja projektiryhmän yhte- näisyydelle, projektin sisäiselle tiedonkululle ja käytettäville työtavoille. Käynnis-

(9)

tämistoimenpiteisiin kuuluu tavoitteiden määrittely, projektiryhmän jäsenten teh- tävien määrittely, ryhmän yhteistyöilmapiirin luominen, projektihallintamenettely- jen suunnitteleminen ja projektisuunnitelman laatimisen käynnistys. (Pelin 2011, 74)

Projektin aloittaminen on siis projektin kulun kannalta erittäin tärkeä osa projektin kokonaisuutta. Mitä paremmin ja yksityiskohtaisemmin projekti pystytään aloitus- vaiheessa kartoittamaan, sitä sujuvammin projektin pitäisi edetä kohti haluttua päämäärää.

3.2 Projektin suunnittelu

Suunnittelu on projektia määrittävä työvaihe, jossa projektitoimittaja sopii asiak- kaan ja yhteistyökumppanien kanssa projektin tavoitteista, sisällöstä, toteutusta- voista, resursseista ja muista toteutuksen yksityiskohdista. Suunnittelusta vastaa projektipäällikkö. Suunnitteluun voi myös osallistua erilaisia sidosryhmiä, riippuen projektin sisällöstä ja suuruudesta. Suunnittelutyö päättyy projektisuunnitelmaan.

(Artto, Martinsuo & Kujala 2006, 105-106)

Projektisuunnitelma on projektinhallinnan keskeinen työväline, jonka ansiosta tehtävä työ ja projektinhallinnan osa-alueet voidaan pitää oikeansisältöisenä ja tasapainoisena kokonaisuutena. Suunnitelmassa kuvataan projektin sisältö, ta- voitteet, työt, toimintatavat ja johtamisperiaatteet. Suunnitelma on kuitenkin hyvä pitää suhteellisen suppeana, jotta se on selkeälukuinen ja kokonaisuutena mah- dollisimman helppo hahmottaa. Yksityiskohtaisempia työtehtäviä ja teknisiä rat- kaisuja voidaan esittää erillisissä ohjeissa ja suunnitelmissa, johon tarvittaessa voidaan projektisuunnitelmassa viitata. Prosessisuunnitelma kannattaa pyrkiä te- kemään yhdessä projektin tilaajan ja tärkeimpien tavarantoimittajien kanssa, jotta näkemys lopputuloksesta tulisi olemaan yhtenäinen. Projektisuunnitelmaa pide- täänkin yhtenä tärkeimmistä viestintävälineistä, jonka laatimisen, lukemisen ja si- sällön keskustelemisen myötä projektiryhmä ymmärtää yhteisen tehtävän. Pro- jektin toteutuksen aikana suunnitelmaa päivitetään vastaamaan todellista tilan- netta. Näin projektisuunnitelman avulla voidaan kommunikoida tapahtuneet muu- tokset tärkeimmille sidosryhmille. (Artto ym. 2006, 106-107)

(10)

Projektisuunnitelma kertoo, miten projektille asetetut tavoitteet on tarkoitus saa- vuttaa. Projektisuunnitelma vastaa kysymyksiin: mitä tehdään, kuka tekee, milloin ja miten? Koko projektin valvonta perustuu projektisuunnitelmaan ja projektin to- teutustapoja on useita. Projektin suunnittelu on moninainen tapahtuma, jossa tar- kastellaan erilaisien tekijöiden vaikutusta toisiinsa ja tehdään niiden vaikutusten perusteella päätöksiä. Projektisuunnitelman lopputuloksena tulisi olla realistinen toteutussuunnitelma, joka vastaa käynnistämishetken parasta tietämystä. (Pelin 2011, 83)

Projektisuunnitelmaan täytyy myös sisällyttää projektin riskianalyysi. Suurin osa projektien epäonnistumiseen johtavista riskeistä saadaan vältettyä hyvin arvioi- dulla aikataululla ja huolellisella suunnitelulla, mutta äkillisten katastrofien varalle on hyvä laatia varasuunnitelma. Lopuksi on hyvä pitää koko projektiryhmän yh- teinen suunnittelupalaveri, jossa varmistetaan, että jokainen projektiin osallistuva ymmärtää tavoitteet, vaiheet ja toteutussuunnitelman. Tyypillisen projektisuunni- telman sisältö on esitetty kuviossa 2.

KUVIO 2. Projektisuunnitelmalle tyypillisiä sisältöalueita (Artto ym. 2006, 107- 109, muokattu)

(11)

3.3 Projektin toteutus, ohjaus, seuranta ja raportointi

Toteutuksella tarkoitetaan tässä tapauksessa suunnitelman mukaista teknistä ja hankinnallista toteutusta ja projektiryhmänä työskentelyä. Tätä ei siis pidä sekoit- taa koko projektin toteutukseen. Tässä vaiheessa projektitiimin keskinäiset vas- tuut, toimintatavat, tehtävät ja niihin liittyvien töiden sisältö tarkennetaan. Näiden tarkennusten perusteella hankitaan toteutukseen tarvittavat resurssit ja toteute- taan työ suunnitelmien mukaisesti. Toteutus tarkoittaa resurssien kohdistamista oikeaan tekemiseen oikeaan aikaan sekä tarpeellista ja tarkoituksenmukaista työn dokumentointia. Projektissa toteutus ja ohjaus kulkevat ja toimivat rinnak- kain. Ohjausvaiheesta on takaisinkytkentä suunnitteluvaiheeseen. Ohjausvai- heessa projektin kustannus- ja aikatauluraporttien sekä teknisten spesifikaatioi- den vertailujen avulla seurataan projektin etenemistä. Raportointi on tyyliltään ennakoivaa, jolla pyritään saamaan parhaat mahdollisuudet havaita tarpeita tehdä korjaavia toimenpiteitä projektisuunnitelmaan. (Artto ym. 2006, 49-50)

Projektia täytyy ohjata siten, että sovitusta budjetista ja aikataulusta pidetään kiinni sekä sisällölliset ja laadulliset tavoitteet saavutetaan. Projektin ohjaus on projektin aikaista jatkuvaa toimintaa, jonka vaiheet tulisi käydä läpi säännöllisin väliajoin. (Pelin 2011, 293-294)

Projektin raportoinnin ja seurannan tarkoituksena on varmistaa projektin sujuva eteneminen suunnitelman mukaan sekä pitää huolta, että projektin tulokset täyt- tävät vaaditut odotukset. Tämän takia projektin seuranta ja raportointi on keskei- sessä osassa projektin ohjausta. Raportointia ja seurantaa tehdään oman yrityk- sen tarpeisiin sekä kohdistetusti projektin asiakkaalle. Seuranta on jatkuvaa tie- donkeruuta, jonka avulla saadaan hahmotettua kuvaa projektin etenemisestä ja voidaan tarvittaessa tehdä johtopäätöksiä tarvittavista toimenpiteistä. Raportointi on projektissa sovittua säännöllistä virstanpylväisiin, poikkeamiin tai aikaan sidot- tua seurantaa. Se myös kertoo aikataulutetun työn etenemisestä, kustannusten kertymisestä ja tuotteen tilanteesta. Projektin hallinnan kannalta on välttämä- töntä, että projektiryhmällä on mahdollisuus saada palautetta projektin tilasta, re- surssien käytöstä, tuloksista ja verrata näitä alkuperäisiin tavoitteisiin. Saadun

(12)

palautteen ja vertailun ansiosta voidaan tunnistaa projektin kulkua uhkaavia asi- oita ja näin ollen korjata niitä sekä saada projekti takaisin tavoitteiden mukaiseen suuntaan. (Artto ym. 2006, 248-249)

Projektiryhmän ja johtoryhmän välinen sujuva ja selkeä kommunikointi on yksi onnistuneen projektin kulmakivistä. Kommunikoinnilla ennaltaehkäistään projek- tia vaarantavien virheiden syntymistä. Toteutus, ohjaus, seuranta ja raportointi vaikuttavat kaikki toisiinsa. Näiden vuorovaikutukset toisiinsa on esitetty kuviossa 3. Jos jokin esitetyistä osa-alueista puuttuu, on projektin onnistuminen vaarassa.

KUVIO 3. Projektin raportointijärjestelmä (Ruuska 2012, 219, muokattu)

3.4 Projektin päättäminen

Kuten aikaisemmissa luvuissa on kerrottu, täytyy projektilla olla selkeä aloitus- ja päätöspiste. Projektin päättäminen jää usein pienempään arvoon kuin aloitus- piste, vaikka se onkin yhtä tärkeää. Tämä johtuu siitä, että projekteilla on taipu- musta jatkua, kun työprosessin aikana tulleita kehittämisehdotuksia ryhdytään käyttöönottovaiheessa toteuttamaan. Hallittua projektin päättämistä helpottaa, jos jo projektin alussa on sovittu lopputuotteelle yksityiskohtaiset hyväksymiskri- teerit. Projektin pitkittymisellä on negatiivisa vaikutuksia myös projektiin osallistu- neelle henkilöstölle, koska he eivät vapaudukaan aikataulunmukaisesti muihin

(13)

työtehtäviin. Projektin lopettamisen täytyy tapahtua heti, kun tilaaja on hyväksy- nyt tuotteen ja lopputuote on otettu käyttöön. Lopetuksen yhteydessä sovitaan myös mahdollisista jälkihoidoista. Jälkihoidolla tarkoitetaan esimerkiksi käytössä huomattujen virheiden ja epäkohtien korjaamista sekä lopputuotteen ylläpidon ja käyttäjätuen toimintatavoista. (Ruuska 2012, 40)

Projektin päättämiseen kuuluu myös loppuraportin laatiminen. Loppuraportti on projektin päättämisvaiheessa laadittava yhteenvetoraportti ja sen tarkoitus on kertoa tavoitteiden toteuttamisesta, kuvata mitä konkreettista hankkeessa syntyi, kertoa millä toimenpiteillä tavoitteisiin päästiin, kertoa miten hankkeen kehittämä toiminta jatkuu tai miten tuloksia hyödynnetään ja levitetään sekä verrata toteu- tumaa projektisuunnitelmassa esitettyihin tavoitteisiin. Loppuraportti ei kuiten- kaan saa olla liian yksityiskohtainen, vaan sen tulisi olla tiivistetysti luotu koko- naisuus, jossa tuodaan esille sellaista tietoa, jota voidaan hyödyntää tulevissa projekteissa ja jonka avulla organisaation projektitoimintaa voitaisiin kehittää.

(Ruuska 2012, 273)

Projektin päättämisprosessi täytyisi hoitaa samalla huolellisuudella kuin aloitus- prosessi ja loppuraporttia pitäisi arvostaa yhtä paljon kuin projektisuunnitelmaa.

Jos tuloksen luovuttamisen jälkeen projektia ei saada vietyä lopulliseen päätök- seen, se voi jäädä aukinaiseksi pitkäksi aikaa. Projektin aikana tulleita kehitys- ideoita ei tulisi sisällyttää samaan projektiin, ellei asiasta ole erikseen sovittu. Hy- vin tehtyä loppuraporttia voidaan käyttää tulevissa projekteissa mallipohjana on- nistuneelle projektille. Kuviossa 4 on esitetty projektin päättämisen vaiheet.

(14)

KUVIO 4. Projektin päättämisen vaiheet (Pelin 2011, 347, muokattu)

(15)

4 AIKATAULUTUS JA RESURSSIEN HALLINTA

Projektin vaiheet -luvussa todettiin projektin olevan tehtäväkokonaisuus, jolla on selkeä alkamis- ja päättymisajankohta eli elinkaari. Projekti on siis rajattu koko- naisuus, jonka ajan ja resurssien hallinta on toisiinsa sidoksissa. Muutos toisessa muuttujassa lähtökohtaisesti vaikuttaa aina myös toiseen muuttujaan. Aikataulun hallinnan tarkoituksena on varmistaa projektin toteutus ennalta määritellyssä ajassa. Aikataulun hallintaan sisältyviä tehtäviä ovat tehtävien määritteleminen, aikataulun ohjaus ja muutosten hallinta. Resurssien hallinnalla tarkoitetaan re- surssien saatavuutta oikeaan aikaan, niiden tehokasta käyttöä ja riittävyyttä pro- jektin edetessä. Resurssin hallinta tukee aikataulun hallintaa, koska aikataulute- tut toimet vaativat aikaa ja resursseja. (Artto ym. 2006, 122-123)

4.1 Aikataulutus

Aikataulutus ja tehtävien ajoittaminen on yksi projektin suunnittelun tärkeimmistä asioista hallita. Kuten muut suunnitelmat niin myös aikataulu päivittyy projektin edetessä. Tämä johtuu siitä, että aikataulun luominen perustuu arvioihin. Sen suunnittelun perustana ovat työntehtävien määritys ja projektin kokonaistavoit- teet. Ensimmäiset versiot aikatauluista ovat yleensä hyvin karkeita arvioita ja ne päivittyvät suunnittelun aikana. Kun resurssien käytön realistisuus ja kustannuk- set voidaan varmistaa, aikataulu voidaan varmistaa. Tästä syntyy aikatauluta- voite, joka jäädytetään ja sovitetaan muiden tavoitteiden kanssa yhteen. Kun ai- kataulua suunnitellaan, sitä lähestytään yleensä kahdella eri tavalla: yksityiskoh- dista kokonaisaikatauluun tai tavoiteaikataulusta yksityiskohtiin. Näitä pystytään myös soveltamaan yhdessä. Projektissa olevista tehtävistä ja työpaketeista mää- ritetään tehtävien vaatimaa aikaa. Tästä ajasta voidaan muodostaa eri keinoilla kokonaisaikataulu ja perusteltu aikataulutavoite. Karkeasta kokonaisaikataulusta voidaan tunnistaa projektin vaiheille tavoiteaikataulut, virstanpylväät, etapit, joi- den mukaan työtehtäviä ja -paketteja sekä niiden aikatauluja voidaan tarkentaa kokonaisaikatauluksi. (Artto ym. 2006, 122-123)

Projektin aikataulun kriittisyys määrittää, kuinka tarkkaa suunnittelua ja seurantaa

(16)

se tarvitsee. Projektin kestoon on vaikea vaikuttaa ainakaan myönteisesti sen jo ollessa käynnissä. Puutteellinen suunnittelu on yleisin syy aikatauluiltaan veny- neisiin ja hyödyiltään vajaisiin projekteihin. Tämän takia toteutusaika on suunni- teltava hyvin ja ajoissa. Projektin nopea toteutus on huomattavasti helpompi lu- vata kuin toteuttaa. Jäädytetyn tavoiteaikataulun noudattaminen vaatii aikataulun hallintaa ja sen seurantaa projektin edetessä. Aikataulusta lipsuminen edellyttää korjauksia tavoitteeksi jäädytettyyn aikatauluun ja vaatii aikataulutavoitteen uu- delleen tarkastamista. Merkittävät poikkeamat voivat edellyttää aikataulun uudel- leensuunnittelua, koska tehtävät ovat riippuvaisia toisistaan. Välillä on myös mahdollista ja jopa tarpeellista nopeuttaa projektin aikataulua. (Artto ym. 2006, 122-123)

4.2 Aikataulutustekniikoita

Janakaavio (Gantt-kaavio) on yksi ensimmäisistä aikataulutustekniikoista. Henry Ganttin kehittämän kaavion ideana on esittää projektin tehtävät ja niiden ajoitta- miset aika-akseleille janoina tai pylväinä. Esimerkki janakaaviosta on kuviossa 5.

KUVIO 5. Esimerkki Gantt-kaaviosta (Artto 2006, 124, muokattu)

Toinen yleisesti käytetty aikataulutustekniikka on virstanpylväät. Varsinkin suu- rissa projekteissa janakaavion sisällöstä voi tulla liian raskas ja vaikealukuinen.

Jos tehtäviä on mahdollista suorittaa samanaikaisesti, niin kaikkien tehtävien ku- vaaminen samassa kaaviossa ei olekaan enää tarpeellista. Tällöin voi olla tar- peellista tunnistaa projektin tavoitteen kannalta tärkeät virstanpylväät. Virstanpyl-

(17)

väällä tarkoitetaan projektin tavoitteiden saavuttamisen kannalta tärkeää tapah- tumaa ja sen tulisi olla helposti ymmärrettävä. Kun virstanpylväs saavutetaan, se ei kuluta aikaa tai resursseja, vaan se pelkästään ohitetaan. Virstanpylvään pu- hutaan olevan binäärinen. Se on joko ohitettu tai sitä ei ole ohitettu. Välimallia ei ole. Esimerkki virstanpylväskaaviosta on kuviossa 6. (Artto ym. 2006, 123-126)

KUVIO 6. Esimerkki virstanpylväskaaviosta (Artto 2006, 126, muokattu)

(18)

5 VISUAL BASIC FOR APPLICATIONS –OHJELMOINTIKIELI

Tässä opinnäytetyössä aikataulutustyökalun ohjelmointialustana toimii Excel- taulukko, jonka toimintoja pystytään muokkaamaan ja hallitsemaan Visual Basic for Application -ohjelmointikielen avulla. Visual Basic for Application -ohjelmointi- kieli, jota merkitään jatkossa lyhenteellä VBA, on ilmainen ja saatavilla kaikissa Microsoft Office 2010 ja sitä uudemmissa ohjelmistoissa. VBA on ainoa jäljellä oleva osa vanhaa Visual Basic 6 -ohjelmistoa, jota Microsoft myy ja ylläpitää.

Alun perin Microsoft rakensi Visual Basic 6 -ohjelmiston helpottaakseen ohjel- mien kirjoittamista Windows-käyttöjärjestelmään. Nykyään Visual Basic 6 -ohjel- miston on korvannut Visual Basic .NET. VBA toimii sisäisenä ohjelmointikielenä Microsoft Office -sovelluksissa, kuten Access, Excel, PowerPoint, Word ja Visio.

VBA antaa käyttäjälle mahdollisuuden muokata sitä, mikä on normaalisti Micro- soft Office -isäntäohjelmien käytettävissä manipuloimalla graafisen käyttöliitty- män ominaisuuksia, kuten työkalurivejä, valikoita, valintaikkunoita ja lomakkeita.

VBA:lla voidaan luoda käyttäjän määrittelemiä toimintoja sekä käyttää Windows- sovellusten ohjelmarajapintoja ja automatisoida spesifioituja tietokoneprosesseja ja laskelmia. VBA ei kuitenkaan ole itsenäinen ohjelma, vaan se tarvitsee isän- täsovelluksen toimiakseen.

VBA on siis tapahtumapohjainen ohjelmointikieli, mikä tarkoittaa, että sitä voi- daan käyttää käskemään tietokonetta aloittamaan toiminnon tai toimintosarjan.

Toimintoja varten luodaan mukautetut makrot kirjoittamalla komennot VBA:n muokkausmoduuliin. Muokkausmoduuli on esitetty kuvassa 1.

(19)

KUVA 1. VBA-muokkausmoduuli

Microsoft Officessa VBA antaa käyttäjälle mahdollisuuden suorittaa lukemattomia toimintoja, jotka ylittävät yksinkertaiset tekstinkäsittely- ja taulukkolaskentaope- raatiot. Tyypilliselle käyttäjälle VBA antaa mahdollisuuden tehdä päivittäisistä ja toistuvista asioista automaattisia makrojen avulla. Makrot voivat automatisoida melkein minkä tahansa tehtävän, kuten räätälöityjen kaavioiden ja raporttien luo- misen sekä sana- ja tietojenkäsittelytoimintojen suorittamisen. Makroja voidaan kuitenkin käyttää monimutkaisemmalla tavalla, kuten kopioimalla suuria koodipa- lasia tai yhdistämällä jo olemassa olevia ohjelmatoimintoja.

(20)

6 AIKATAULUTUSTYÖKALUN SUUNNITTELU

6.1 Aikataulutustyökalun tavoitteet ja odotukset

Aikataulutustyökalun tavoitteena on helpottaa ja tukea automaatiosuunnittelijaa projektin työtehtävien ja kokonaisaikataulun hallitsemisessa. Tällä hetkellä suun- nittelijoiden ainoa mahdollisuus seurata projektin etenemistä on sen kokonaisai- kataulusta, jossa ei kuitenkaan ole tarkennettu osastokohtaisia yksityiskohtia. Tä- män takia AFRY haluaisi saada aikataulutustyökalun, jonka avulla työntekijä nä- kisi projektissa vain oman osastonsa ennustetun etenemisen projektissa.

Odotuksena olisi saada aikataulutustyökalu aluksi käyttöön AFRY:n automaatio- suunnittelijoille. Jos aikataulutustyökalu koetaan hyödylliseksi sekä se täyttää sille tarkoitetut tavoitteet, voitaisiin sitä myöhemmin kehittää toimimaan myös muille osastoille. Odotuksena olisi myös, että se selkeyttäisi automaatio-osaston työnjakoa ja samalla helpottaisi tavoiteaikataulussa pysymistä. Aikataulutustyö- kalu ei tule näyttämään täysin tarkkoja tehtäväkohtaisia tavoitepäivämääriä, vaan se ennustaa tehtäväkohtaisien riippuvuussuhteiden avulla, kuinka kauan kussa- kin automaatio-osaston tehtävässä tulisi kestämään ja missä järjestyksessä teh- täviä kannattaisi alkaa toteuttamaan. Aikataulutustyökalussa tulisi myös olla mahdollisuus määritellä ja muuttaa tehtäväkohtaisia aikatauluja siten, että koko- naisaikataulu pysyy dynaamisena ja tehtäväkohtaiset riippuvuussuhteet eivät muutu.

6.2 Aikataulutustyökalun suunnittelu

Kun tavoitteet ja odotukset olivat selvillä, aloitettiin aikataulutustyökalun suunnit- telu. Ohjelmointikielien runsaan tarjonnan ansioista vaihtoehtoja sen toteuttami- selle oli useita. Esimerkkeinä C/C++, C#, Java tai Python, mitkä ovat maailman yleisimpiä ohjelmointikieliä tällä hetkellä. Näihin ei kuitenkaan päädytty, koska jokainen edellä mainituista ohjelmointikielistä vaatisi oman sovelluksen, jonka jo- kaisen työntekijän pitäisi ladata tietokoneelleen aikataulutustyökalun toiminnan

(21)

varmistamiseksi. Se haluttiin saada helposti saataville jokaiselle työntekijälle il- man, että heidän tarvitsisi opetella uusia ohjelmia tai käytäntöjä aikataulutustyö- kalun käyttöä varten. Perusteellisen keskustelun ja taustatyön jälkeen aikataulu- tustyökalun ohjelmointikieleksi valittiin Microsoft Officen VBA. Aikataulutustyö- kalu voitaisiin toteuttaa käyttämällä Exceliä työskentelyalustana ja VBA:ta ohjel- mointikielenä. VBA:n muokkausmoduuliin voidaan kirjoittaa käskyjä, jotka Excel toteuttaa.

Excelin ollessa yksi suunnittelutoimiston käytetyimmistä ohjelmista ja sellainen, jonka käyttöperusteet jokaisen työntekijän oletetaan osaavan, oli se paras vaih- toehto aikataulutustyökalun toteuttamiseen. Jokaisella AFRY:n tietokoneella on valmiiksi Excel ja näin ollen aikataulutustyökalu tulisi olemaan helposti saatavilla.

Työntekijän täytyisi ladata se AFRY:n sivuilta, minkä jälkeen se olisi heti käytet- tävissä.

Ohjelmointipohjan valinnan jälkeen mietinnän kohteeksi otettiin, kuinka työkalun tulisi toimia ja miltä sen tulisi näyttää. Työkalussa haluttiin olevan mahdollista va- lita aikatauluun tulevien tehtävien laajuus. Valintoina tulisi olemaan A. karkea yleisen tason aikataulu, joka sisältää automaatiosuunnittelun yleiset pääkohdat, B. laajempi yleisen tason aikataulu, joka sisältää suunnitteluaikataulun yleiset pääkohdat ja niiden tärkeimmät suoritteet tai C. kaiken kattava aikataulu, jossa olisi yksityiskohtaisesti jokaisen työvaiheen kohdat ja jota pääasiassa käytettäi- siin toteutussuunnittelutarkoitukseen. Myös Toimiala-pudotusvalikko olisi hyvä li- sätä tulevaisuuden kehitystä varten. Muita tärkeitä parametreja, joita tarvitaan, ovat projektin kokonaisaikataulun kesto, projektin kokonaispiirimäärä, projektinu- mero ja projektin aloituspäivämäärä. Aikataulutustyökalussa tulisi myös olla nappi, jota painamalla ennustettu aikataulu generoidaan näytölle sekä nappi, jolla aikataulu saadaan tallennettua.

Aikataulutustyökalu haluttiin saada mahdollisimman käyttäjäystävälliseksi. Sen tulisi antaa työntekijälle miellyttävä käyttökokemus visuaalisen yksinkertaisuuden kautta ja työntekijälle ei tulisi antaa mahdollisuuksia tehdä virheellisiä toimintoja käytön aikana. Nämä täytyi ottaa huomioon koodia tehtäessä. Ulkonäölle ei ase- tettu erinäisiä kriteerejä.

(22)

6.3 Suunnittelutehtävien väliset riippuvuussuhteet

Suunnittelutehtävien väliset riippuvuussuhteet ovat olennainen osa aikataulutus- työkalun toimivuutta ja tehtävien ennustettua etenemistä. Kuten normaalissa elä- mässä niin myös automaatiosuunnittelussa on asioita, joita ei voida tai niitä ei ole järkevää tehdä ennen kuin joku muu tehtävä on suoritettu. Esimerkkinä voitaisiin ottaa kodin rakentaminen. Ei ole järkevää pystyttää seiniä ennen kuin pohja on valmis tai ei ole järkevää laittaa pintamaalia, jos pohjamaalia ei ole laitettu. Sama pätee suunnittelutehtävissä, ei ole järkevää tehdä johdotuskuvia, jos ei tiedetä, mihin kenttäkotelot sijoitetaan tai ei ole järkevää tehdä kaapelilistoja, jos ei tie- detä, mitä kenttälaitteita asennetaan.

Riippuvuussuhteilla siis tarkoitetaan tehtävien välisiä riippuvuuksia ja niiden ete- nemisen kannalta tarvittavien tietojen keräämistä. Aikataulutustyökalussa tulee ottaa huomioon tehtävien looginen etenemisjärjestys ja jokaisen tehtävän mah- dollinen vaikutus muiden tehtävien lopettamiseen tai aloittamiseen. Jotta näihin asioihin saatiin faktapohjaista tietoa, täytyi tutkia usean vanhan projektin etene- mistä. Näistä vanhoista projekteista kerättiin erilaisia tietoja, kuten piirimäärien vaikutus tehtävien suorittamisen pituuksiin ja tehtävien aloitus- ja lopetusajankoh- tia ja niiden vaikutuksia muiden tehtävien aloitus- ja lopetusajankohtiin. Liitteessä 1 on esitetty automaatiosuunnittelun eteneminen dokumenteittain (Kurki 2001, muokattu).

(23)

7 AIKATAULUTUSTYÖKALUN FYYSINEN TOTEUTUS

7.1 Aikataulutustyökalun etusivu

Aikataulutustyökalun fyysinen toteutus aloitettiin tekemällä Excel-tiedostoon hah- motelma, joka täyttää suunnitteluvaiheessa tehdyt tavoitteet. Hahmotelman tar- koituksena oli saada visio aikataulutustyökalun ulkomuodosta ja helpottaa koo- daamisen etenemistä. Ensimmäisessä versiossa Excelin sivulle tehtiin työnteki- jälle tarkoitettu operointialusta, johon sijoitettiin tekstimuodossa suunnitellut napit ja parametrit. Etusivu pyrittiin pitämään mahdollisimman yksinkertaisena. Ensim- mäinen versio aikataulutustyökalun etusivusta on esitetty kuvassa 2.

KUVA 2. Aikataulutustyökalun etusivun ensimmäinen versio

Seuraavassa vaiheessa operointialustan väri muutettiin AFRY:n värimaailman mukaiseksi ja siihen lisättiin yhtiön logo. Näiden lisäksi luotiin parametrien syöt- tämiseen tarkoitetut laatikot ja generointia sekä tulostusta varten tarkoitetut napit.

Aikataulun laajuus ja toimialan valinta on toteutettu pudotuslaatikkoina, joista työntekijä kykenee valitsemaan haluamansa vaihtoehdot. Aikataulun laajuuden vaihtoehdot muuttuivat asiakkaan pyynnöstä muuttujista A, B ja C muuttujiksi A ja B. A edustaa aiemmin mainittua laajuutta, mutta B edustaa nyt kaiken kattavaa aikataulua, jossa on yksityiskohtaisesti jokaisen työvaiheen kohdat ja jota pää- asiassa käytettäisiin toteutussuunnittelutarkoitukseen. Toimialan valinnan vaihto- ehtoina ovat P&P (Pulp and Paper), C&B (Chemicals and Bio Refining) ja M&M (Mining and Metals). Näistä kuitenkin ainoa toimiva on P&P. Muut on lisätty tule- vaisuuden kehitystä varten. Projektin nimen, projektinumeron, kokonaisaikatau-

(24)

lun keston ja piirimäärien syöttämiselle käytettiin tekstilaatikoita. Projektin aloitus- päivämäärä on ainoa, joka täytyy syöttää soluun. Soluksi valittiin K4. Aikataulun generointiin ja tulostamiseen käytetiin käskynappeja. Toinen versio aikataulutus- työkalun etusivusta on esitetty kuvassa 3.

KUVA 3. Aikataulutustyökalun etusivun toinen versio

Seuraavaksi aikataulutustyökalun etusivulle hahmoteltiin aikataululle tarkoitettu paikka ja siihen liittyvät tiedot. Suoritettavien tehtävien nimet tulevat vasemmalle, jonka jälkeen seuraavissa sarakkeissa ovat tehtävien ennustettu aloitus, lopetus ja kesto. Näiden jälkeen tulostettaisiin päivämäärät perustuen projektin aloitus- päivämäärään ja sen kokonaisaikataulun kestoon. Päivämäärien alle tulostettai- siin tehtävien ennustettu kesto värjäämällä Excelin soluja. Excelin solujen väritys tulisi tapahtumaan ennustettujen tehtävien aloituksen ja lopetuksen perusteella.

Kolmas versio aikataulutustyökalun etusivusta on esitetty kuvassa 4. Tässä vai- heessa etusivu on hienosäätöä vaille valmis ja siinä on kaikki suunnitteluvai- heessa halutut ominaisuudet ja valinnat.

KUVA 4. Aikataulutustyökalun etusivun kolmas versio

(25)

7.2 Ohjelmointi

7.2.1 Aikataulun laajuuden valinta

Aikataulun laajuuden valitseminen tapahtuu IF-lausetta käyttäen (kuva 5). Com- boBox1 on kuvassa 3 esitetyn aikataulun laajuuden valitsemiseen käytetyn veto- laatikon nimi. Aikataulun laajuuksille on omat nimitykset, jotka asiakas haluaa pi- tää salassa. Alun perin laajuuksia piti olla kolme, mutta asiakkaan pyynnöstä laa- juuksien määrä vähennettiin kahteen. Koodin suorittaminen riippuu aikataulun laajuuden valitsemiseen käytetyn vetolaatikon muuttujasta. Muuttujien A ja B koodi on täysin identtinen ja ainoana erona niissä on tehtävien määrä sekä niiden riippuvuussuhteet, joita ei opinnäytetyössä asiakkaan pyynnöstä tarkenneta. Tä- män takia tulevissa kappaleissa ei ole eritelty kummasta laajuudesta puhutaan.

Toimialan valintaa ei ole lisätty koodiin, koska tämä versio aikataulutustyökalusta sisältää vain P&P-toimialan.

KUVA 5. Aikataulun laajuuden valitsemiseen käytetyt IF-lauseet

7.2.2 Esivalmistelut ja tehtävien tulostaminen

Esivalmisteluissa tyhjennetään työkalun etusivulla olevia soluja virheellisten tie- tojen varalta. Koodaamisen aikana on esiintynyt useasti tilanne, jossa solu, mihin on haluttu tulostaa tietoa tai josta on haluttu saada tietoa, on sisältänyt vanhen- tunutta tietoa, joka vääristää koodin tuottamaa aikataulua. Työkalussa esitettä- vien laajuuksien tehtävät ovat piilotetulla ja lukitulla Excel-sivulla, josta ne tulos- tetaan etusivulle, riippuen siitä valitaanko laajuudeksi A vai B. Kuvassa 6 on esi- tetty esivalmisteluihin ja tehtävien tulostamiseen käytetty koodi.

(26)

KUVA 6. Esivalmistelujen ja tehtävien tulostamiseen käytetty koodi

7.2.3 Päivämäärien tulostaminen

Päivämäärän tulostuksessa tavoitteena oli saada aloituspäivämäärä syötettyä tiettyyn soluun, jonka jälkeen kokonaisaikataulun keston perusteella koodi tulos- taa vierekkäin uusia päivämääriä kuukauden välein. Esimerkissä (kuva 7) aloi- tuspäivämääräksi on määritelty 1.1.2020 ja kokonaisaikataulun pituudeksi on määritelty 10 kuukautta. Generointi-napin painamisen jälkeen koodissa suorite- taan automaattiesti solujen tulostus kuukauden välein taulukkoon. Kuukausia tu- lostetaan yksi enemmän kuin kokonaisaikataulun kestoksi on määritelty, koska soluissa olevat päivämäärät alkavat aina solun vasemmasta reunasta.

KUVA 7. Tulostettu aikataulu aloituspäivämäärän ja kokonaisaikataulun pituuden perusteella

Aluksi koodissa tyhjennetään päivämäärien tulostamiseen tarkoitetut solut E13…AZ13, jonka jälkeen solu E13 valitaan aktiiviseksi. Muuttuja b on määritelty nollaksi ennen kuin Do Until -silmukkaa aletaan suorittamaan. Do Until -silmukka suorittaa sen sisällä olevan koodin niin monta kertaa, kunnes muuttujan b arvo on suurempi kuin muuttuja kesto. Kesto edustaa kokonaisaikataulun pituutta kuu- kausina. Muuttujaan pvmlisaus tallennetaan DateAdd -käskyn tieto, jossa ”m”

edustaa kuukautta, b tarkoittaa lisättävien kuukausien määrää ja Range(”K4”).Value tarkoittaa soluun K4 määriteltyä aloituspäivämäärää. Tämän jälkeen aktiiviseen soluun syötetään muuttujassa pvmlisaus oleva tieto. Lopuksi ActiveCell.Offset -käskyllä tehdään samalla rivillä oleva seuraavan sarakkeen solu aktiiviseksi. Koodin saavuttaessa Loop -käskyn alkaa uusi kierros. Jokaisella

(27)

Do Until -silmukan kierroksella muuttujaan b lisätään luku 1. Jos kokonaisaika- taulun kestoksi on määritelty kuusi, niin Do Until -silmukan sisällä oleva koodi tekee seitsemän kierrosta ennen kuin arvo b on suurempi kuin muuttuja kesto.

Yksi kierros tulostaa aina yhden päivämäärän, joten tulostettavia päivämääriä tu- lee seitsemän. Kuvassa 8 on esitetty koodi, jolla päivämäärien tulostaminen on suoritettu.

KUVA 8. Päivämäärien tulostamisen koodi

7.2.4 Päivämäärien tulostaminen tehtäville

Tehtäville tarkoitettujen päivämäärien tulostamisessa on alussa koodi, jolla vär- jätään päivämäärille ja tehtävän keston laskemiselle tarkoitettu alue. Päivämää- rille tarkoitettu alue värjätään harmaaksi ja tehtävän kestolle tarkoitettu alue vär- jätään valkoiseksi. Tämän jälkeen värjätyn alueen soluille tehdään mustat reunat, jotta aloituspäivämäärä, lopetuspäivämäärä ja tehtävän kesto voidaan helposti erottaa toisistaan. Sitten koodissa muokataan aloitus- ja lopetuspäivämäärille tar- koitettujen solujen numeroesitys muotoon ”dd/mm/yyyy/” sekä värjätään tulevalle aikataululle tarkoitettu alue valkoiseksi. Aikataululle tarkoitettu alue määräytyy kokonaisaikataulun keston pituudesta ja tehtävien määrästä. Tämän koodin tulos on esitetty kuvassa 9 ja itse koodi on esitetty kuvassa 10.

(28)

KUVA 9. Tehtävien päivämäärille tehty alusta ja aikataulun pohja

KUVA 10. Tehtävien päivämäärille ja aikataulun pohjalle tehdyn alustan koodi

Tehtävien aloitus- ja lopetusajankohdille on käytetty itse tehtyä matemaattista kaavaa, joka on yksilöllinen jokaiselle tehtävälle. Matemaattinen kaava perustuu aikaisempien projektien aikatauluista saatuihin tietoihin, jonka takia asiakas ei halua, että opinnäytetyössä esitetään miten ja millä perusteella tiedot näihin kaa- voihin on saatu. Tässä vaiheessa etusivulta poistettiin Piirimäärät-laatikko, koska

(29)

kyseisiä tietoja ei ollut saatavilla. Tehtävien kesto kuukausina on laskettu vähen- tämällä tehtävän lopetuspäivämäärästä aloituspäivämäärä. Excelissä jokaista päivämäärää edustaa jokin luku. Esimerkiksi päivämäärä 27.10.2020 muunnet- tuna luvuksi on 44131 ja päivämäärä 28.10.2020 muunnettuna luvuksi on 44132.

Kun kaksi päivämäärää vähennetään toisistaan ja jaetaan luvulla 30.4167, mikä edustaa keskiarvoa kuukaudessa oleville päiville vuodessa, saadaan päivämää- rien välinen kesto kuukausina. Kestolle tarkoitettujen solujen numeroformaatti muutetaan myös näyttämään desimaalitonta lukua. Keston laskemiselle käytetty koodi on esitetty kuvassa 11.

KUVA 11. Keston laskemiseen käytetty koodi

7.2.5 Aikataulun solujen värittäminen

Aikataulu tuotetaan värittämällä soluja tehtävien aloitus- ja lopetuspäivämäärien perusteella. Koodi vertaa Do Until -silmukassa tehtävän aloituspäivämäärää aiemmin muodostetun kokonaisaikataulun päivämääriin. Solujen värjääminen al- kaa siltä sarakkeelta, missä tehtävän aloituspäivämäärä täsmää kokonaisaika- taulun päivämäärään ja värjääminen loppuu siihen sarakkeeseen, mikä on va- semmalla siitä sarakkeesta, missä tehtävän lopetuspäivämäärä ja kokonaisaika- taulun päivämäärä täsmäävät (kuva 12). Koodiin on myös lisätty ominaisuus, jolla lihavoidusti kirjoitettu tehtävä tulostetaan aikatauluun mustalla. Tätä ominaisuutta voidaan käyttää niissä tilanteissa, kun tehtäväkokonaisuuksille muodostetaan ot- sikoita. Tätä samaa koodia on käytetty myös aikataulun päivittämisessä, minkä takia koodin toiminta on selostettu siinä kappaleessa yksityiskohtaisemmin.

(30)

KUVA 12. Aikataulu

7.2.6 Aikataulun päivittäminen

Työkaluun luotiin Päivitys-nappi, jonka avulla käyttäjä pystyy päivittämään teke- mänsä muutokset aikatauluun. Näihin muutoksiin kuuluu jo tulostettujen tehtä- vien uudelleen nimeäminen tai poistaminen, tehtävien aloitus- ja lopetuspäivä- määrien muuttaminen sekä uusien tehtävien ja niiden aloitus- ja lopetuspäivä- määrien lisääminen.

Aluksi koodissa suoritetaan tehtävien aloitus- ja lopetuspäivien tarkastaminen.

Tarkastamisessa aloitetaan aloituspäivämäärien ylimmästä solusta, josta yksi kerrallaan siirrytään alaspäin. Koodi suoritetaan Do Until -silmukan avulla niin monta kertaa, kunnes Aloitus-sarakkeessa sekä Tehtävät-sarakkeessa tulee vastaan samalla rivillä olevat solut, jotka ovat tyhjiä. Do Until -silmukkaan on si- sällytetty IF-lauseita, joiden avuilla pyritään korjaamaan päivämääriä, jos käyttä- jälle on käynyt päivämäärän kirjoittamisessa kirjoitusvirhe.

Ensimmäinen IF-lause ohitetaan, jos aloituspäivämäärän solu on tyhjä tai tehtä- vän aloituspäivämäärä on pienempi kuin projektin aloituspäivämäärä. Jos kumpi- kaan näistä ehdoista ei toteudu, vähennetään tehtävän aloituspäivämäärä pro- jektin aloituspäivämäärästä ja saatu tulos jaetaan luvulla 30.4167, joka edustaa keskiarvoa kuukaudessa oleville päiville vuodessa. Saatu tulos tallennetaan muuttujaan pvm1, joka edustaa projektin aloituspäivämäärän ja tarkastellun teh- tävän aloituspäivämäärän välistä aikaa kuukausina.

(31)

Toinen IF-lause ohitetaan, jos tarkasteltavan solun päivä numerona on sama kuin projektin aloituspäivämäärän päivä numerona. Jos tämä ei toteudu, tarkastellaan onko solussa oleva kuukauden päivämäärä suurempi vai pienempi kuin 15, joka edustaa kuukauden puoliväliä. Jos kuukauden päivämäärä on suurempi kuin 15 lisätään tarkasteltuun päivämäärään yksi kuukausi ja muuttujaan pvm1 tallen- nettu arvo. Kuukauden päivämäärän ollessa pienempi kuin 15, tarkasteltuun päi- vämäärään lisätään muuttujaan pvm1 tallennettu arvo.

Tehtävien lopetuspäivämäärien tarkastelussa toimitaan täysin samalla tavalla kuin aloituspäivämäärien tarkastelussa, mutta siinä verrataan tehtävän lopetus- päivämäärää projektin päättymispäivään. Tehtävien aloitus- ja lopetuspäivämää- rien tarkasteluun käytetty koodi on esitetty kuvassa 13.

KUVA 13. Tehtävien aloitus- ja lopetuspäivämäärien tarkastelussa käytetty koodi

(32)

Tämän jälkeen koodissa suoritetaan kuvissa 10 ja 11 esitetyt koodit, joilla teh- dään aikataululle ja tehtävien aloitus- ja lopetuspäivämäärille tarkoitettu alusta sekä tehtävien kestojen laskeminen.

Tämän jälkeen tehtävien aloitus- ja lopetuspäivämäärien perusteella aikatauluun tulevat solut värjätään Do Until -silmukan avulla. Do Until -silmukka suoritetaan niin monta kertaa, kunnes Tehtävät-, Aloitus- ja Lopetus-sarakkeiden samalla ri- villä olevat solut ovat kaikki tyhjiä. Tämä antaa käyttäjälle mahdollisuuden lisätä Tehtävät-sarakkeeseen uusia tehtäviä ilman, että niiden aloitus- ja lopetuspäivä- määrien tarvitsee olla syötettynä. Do Until -silmukkaan on sisällytetty IF-lauseita, joiden avulla pyritään varmistamaan, että aikataulun väritys sujuu ongelmitta.

Ensimmäinen IF-lause ohitetaan, jos tehtävän aloitus- ja lopetuspäivämäärä on sama, tehtävän aloituspäivämäärä on suurempi kuin tehtävän lopetuspäivä- määrä, tehtävän lopetuspäivämäärä on suurempi kuin kokonaisaikataulun päät- tymispäivämäärä tai tehtävän aloituspäivämäärä on pienempi kuin projektin aloi- tuspäivämäärä. Jos mikään näistä ei toteudu, suoritetaan ensimmäisen IF-lau- seen sisällä oleva Do Until -silmukka niin monta kertaa, kunnes aloituspäivä- määrä täsmää aikataulussa olevaan päivämäärään. Päivämäärien vertailu alkaa projektin aloituspäivämäärästä ja jokaisella kierroksella siirrytään yksi askel oike- alle seuraavaan päivämäärään. Muuttuja A vastaa Do Until -silmukan kierrosten määrä.

Toinen, kolmas ja neljäs IF-lause ohitetaan, jos tehtävän aloitus- tai lopetuspäi- vämäärän solu on tyhjä, tehtävän aloituspäivämäärä on sama kuin lopetuspäivä- määrä, tehtävän aloituspäivämäärä on suurempi kuin lopetuspäivämäärä, tehtä- vän lopetuspäivämäärä on suurempi kuin kokonaisaikataulun päättymispäivä- määrä tai tehtävän aloituspäivämäärä on pienempi kuin projektin aloituspäivä- määrä. Jos mikään näistä ei toteudu, suoritetaan toisen IF-lauseen sisällä oleva ensimmäisen värjättävän solun valinta, joka perustuu muuttujaan A tallennettuun kierrosten määrään. Tämän jälkeen suoritetaan kolmannen IF-lauseen sisällä oleva IF-lause riippuen siitä onko tehtävät sarakkeella oleva teksti lihavoitu. Jos tehtävän fontti on lihavoitu niin tulostettava rivi on musta, mutta jos tehtävän fontti ei ole lihavoitu tulostettava rivi on harmaa. Do Until -silmukka värjää soluja en-

(33)

simmäisestä värjättävästä solusta alkaen yksitellen, kunnes tehtävän lopetuspäi- vämäärä vastaa aikataulussa olevaa päivämäärää. Lopuksi suoritetaan neljän- nen IF-lauseen sisällä oleva reunojen teko. Reunat tehdään edellisessä koh- dassa värjättyjen solujen ulkoreunoille. Aikataulun solujen värjäämiseen käytetty koodi on esitetty kuvassa 14.

KUVA 14. Aikataulun solujen värittämiseen käytetty koodi

Lopuksi koodissa suoritetaan aikataulun kopioiminen Tulostus-sivulle. Aluksi Tu- lostus-sivu tyhjennetään tiedoista, jonka jälkeen suoritetaan kaksi Do Until -sil- mukkaa. Näiden Do Until -silmukoiden avulla saadaan tietää tulostettavan alueen koko. Seuraavaksi kopioidaan tulostettava alue ja se siirretään Tulostu-välileh- delle. Tämän lisäksi työkalun etusivulla olevien Nimi- ja Projektinumero-laatikoi- den tiedot kopioidaan Tulostus-sivulle niille määrätyille paikoille. Kopioimiseen käytetty koodi on esitetty kuvassa 15.

(34)

KUVA 15. Aikataulun kopioimiseen käytetty koodi

7.2.7 Tallennus

Työkaluun luotiin Tallennus-nappi, jonka avulla käyttäjä kykenee tallentamaan vain aikataulun. Nappia painamalla avautuu kokonaan uusi Excel-työkirja, jossa on yksi sivu ja tällä sivulla on aikataulutustyökalun Tulostus-sivulle tallennettu ai- kataulu. Tallennukseen käytetty koodi on esitetty kuvassa 16.

KUVA 16. Tallennukseen käytetty koodi

(35)

7.3 Aikataulutustyökalun toimintakuvaus

Aikataulutustyökalulle on tehty käyttöohje, jossa esitetään aikataulutustyökalun toiminta ja sen käyttöön tarvittavat perustiedot. Käyttöohje on tarkoitettu vain AFRY Finland Oy:n käyttöön, joten sitä ei ole liitetty opinnäytetyöhön. Kun käyt- täjä ottaa aikataulutustyökalun ensimmäistä kertaa käyttöön, on sen etusivu ku- van 17 mukainen.

KUVA 17. Työkalun etusivu

Käyttäjä syöttää projektin nimen, projektinumeron, aloituspäivämäärän ja koko- naisaikataulun keston, jonka jälkeen käyttäjä valitsee, haluaako hän generoita- van aikataulun laajuudeksi A:n vai B:n. Näiden vaiheiden jälkeen käyttäjä painaa Generointi-nappia ja etusivulle tulostuu tehtävät, niiden ennustetut aloitus- ja lo- petuspäivämäärät sekä aikataulu. Generointi-napin painalluksen jälkeen etusivu on kuvan 18 mukainen. Kuvasta on poistettu tehtävänimikkeet.

KUVA 18. Työkalun etusivu Generointi-napin painamisen jälkeen

Tämän jälkeen käyttäjä voi muokata, poistaa tai lisätä tehtäviä ja niiden aloitus- ja lopetuspäivämääriä. Kuvassa 19 on muokattu aikataulun aloitus- ja lopetuspäi- vämääriä, minkä jälkeen on painettu Päivitys-nappia.

(36)

KUVA 19. Työkalun etusivu Päivitys-napin painamisen jälkeen

Kuvassa 20 on esitetty aikataulutustyökalun Tulostus-sivulle tallennettu aika- taulu, projektin nimi ja projektinumero. Tallennus-nappia painamalla Tulostus- sivu avautuu kokonaan uudessa Excel-työkirjassa, jonka jälkeen käyttäjä kyke- nee tallentamaan aikataulun haluamaansa paikkaan tai lähettää sitä eteenpäin.

KUVA 20. Työkalun Tulostus-sivu Päivitys-napin painamisen jälkeen

7.4 Lopputulos

Lopputuloksena syntyi käyttökokemukseltaan yksinkertainen aikataulutustyö- kalu, jonka avulla käyttäjä voi generoida itselleen aikataulun, joka sisältää käyt- täjän valitsemaan laajuuteen tarkoitetut työtehtävät. Aikataulutustyökalussa on etusivu ja Tulostus-sivu. Aikataulutustyökalun generoima aikataulu ei näytä täy- sin tarkkoja tehtäväkohtaisia tavoitepäivämääriä, vaan aikataulu on ennuste siitä, kuinka kauan kussakin automaatio-osaston tehtävässä tulisi kestämään ja missä järjestyksessä tehtäviä kannattaisi toteuttaa. Generoinnin jälkeen käyttäjä kyke- nee lisäämään tai muokkaamaan päivämääriä ja tehtäviä haluamallaan tavalla.

Päivitys-näppäintä painamalla uudet tehtävät sekä niiden aloitus- ja lopetuspäi- vämäärät sisällytetään aikatauluun.

(37)

Koodia tehtäessä huomioitiin käyttäjän tekemät mahdolliset virheet päivämäärien syötössä soluihin. Jos tehtävän aloitus- tai lopetuspäivämäärä ei täytä aikataulun päivittäminen kappaleessa esitettyjä aikataulun solujen värittämisen koodin IF- lauseiden ehtoja, jää kyseisen tehtävän rivi tyhjäksi. Näin käyttäjä huomaa vir- heen, jos jokin rivi aikataulussa on valkoisena, vaikka siihen on syötetty aloitus- ja lopetuspäivämäärät.

Suunnitteluvaiheessa aikataulun laajuuden valinnaksi oli ehdotettu kolmea muut- tujaa, mutta myöhemmin asiakkaan pyynnöstä muuttujien määrä vähennettiin kahteen. Myös projektien piirimäärien sisällyttäminen matemaattiseen kaavaan ei onnistunut vähäisten piirimäärä tietojen takia.

Aikataulutustyökalua tehdessä oli tarkoitus kehittää toiminto, joka päivittäisi Tu- lostus-sivulle tallennettua aikataulua aina kun käyttäjä muokkaa jotain solua Teh- tävät-, Aloitus- tai Lopetus-sarakkeessa. Tämä osoittautui ongelmalliseksi toteut- taa, koska tuotettu koodi ylikuormitti Exceliä niin paljon, että se ei enää toiminut halutulla tavalla. Korvaavana toimintona aikataulutustyökaluun kehitettiin Päivi- tys-nappi, jonka ansiosta työntekijällä on mahdollisuus muokata soluja Tehtävät- , Aloitus- tai Lopetus-sarakkeissa.

(38)

8 POHDINTA

Opinnäytetyön teoriaosiossa perehdyttiin projektin suunnittelun vaiheisiin, niiden merkityksiin sekä selvitettiin automaatiosuunnittelun luonnollista etenemistä. Var- sinainen opinnäytetyön tavoite oli tuottaa ja käyttöön ottaa automaatiosuunnitte- lutehtävien aikataulutusta tukeva työkalu AFRY Finland Oy:lle. Tutustuminen yleisesti projektin etenemiseen ja sen eri vaiheisiin sekä aikataulutustekniikoihin auttoi huomattavasti aikataulutustyökalun suunnittelussa ja toteutuksessa.

Aikataulutustyökalun teko oli kuin projekti pienemmässä mittakaavassa. Alussa pidettiin aloituspalaveri, jossa päätettiin työn aloitus- ja lopetuspäivämäärät sekä käytiin läpi aikataulutustyökalun tavoitteet ja odotukset. Tämän jälkeen aloitettiin aikataulutustyökalun suunnittelu, joka sisälsi ohjelmointikielen ja käyttöalustan valinnat, aikataulutustyökalun ulkonäköön liittyvien yksityiskohtien määrittelyt sekä toiminnan edellyttämiseen tarvittavien parametrien valinnat ja määrittelyt.

Suunnittelun jälkeen aloitettiin työkalun fyysinen toteutus eli sen ohjelmoiminen.

Kuten kaikissa projekteissa, niin myös tässäkin, fyysisen toteutuksen aikana esiintyi vastoinkäymisiä ja hetkiä, kun eteneminen oli haluttua hitaampaa. Myös toimintaan liittyviä ehdotuksia tuli matkan varrella useita, joista osa toteutettiin ja osa todettiin joko liian monimutkaisiksi tai epäkäytännöllisiksi. Näistä vastoin- käymisistä päästiin eteenpäin pitämällä välipalavereita asiakkaan kanssa. Väli- palavereissa ratkaistiin esiintyneitä ongelmia sekä käytiin läpi aikataulutustyöka- lun toiminnallisuuteen liittyviä ehdotuksia.

Aikataulutustyökalun tavoitteena on helpottaa automaatiosuunnittelijaa projektin työtehtävien ja sen kokonaisaikataulun hallitsemisessa, aikataulussa pysymi- sessä sekä työtehtävien jaossa. Valmista työkalua on testattu yhdessä opinnäy- tetyön ohjaajan kanssa ja se on todettu sekä toimivaksi että tavoitteiden mu- kaiseksi. Työkalua tullaan vielä muokkaamaan ja parantamaan, kun saadaan käyttäjäkokemuksia ja kehitysehdotuksia suunnittelijoilta.

Tulevaisuuden kehitysideoita tällä hetkellä olisi laajentaa aikataulutustyökalun toimintaa myös muille osastoille, kuten sähkö- ja mekaaniseen suunnitteluun.

(39)

Käytön aikana automaatiosuunnittelun tehtävistä ja niiden kestoista tullaan ke- räämään lisää dataa, jonka avulla aikataulutustyökalua voidaan kehittää eteen- päin sekä sitä voidaan optimoida tuottamaan mahdollisimman tarkkoja ennustet- tuja aikatauluja. Jokainen projekti on kuitenkin uniikki ja jokaisessa projektissa on oma etenemisjärjestys, mutta jos aikataulutustyökalun avulla saataisiin yhteinen ja luotettava pohja tehtäville ja niiden ennustetuille kestoille ja toteuttamisjärjes- tykselle, se helpottaisi projektissa sisäistä kommunikointia ja ehkäisisi aikatau- lusta myöhästymistä.

(40)

LÄHTEET

AFRY. Tietoa meistä. Luettu 13.7.2020 https://afry.com/fi-fi/tietoa-meista

Anttonen K. 2003. Tehosta Projektityötä: Johda hanketta 80/20-periaatteella.

Helsinki: Talentum

Artto, K., Martinsuo, M. & Kujala, J. 2006. Projektiliiketoiminta. Helsinki: WSOY.

sivu 49.

Investopedia. Visual Basic for Application (VBA). Luettu 10.10.2020

https://www.investopedia.com/terms/v/visual-basic-for-applications-vba.asp Kurki T. 2001, Automaation suunnitteluprosessi. Kymenlaakson ammattikorkea- koulu insinöörityö.

Pelin, R. 2011. Projektinhallinnan käsikirja. 7. uudistettu painos. Keuruu: Otavan Kirjapaino Oy.

Ruuska, K. 2012. Pidä projekti hallinnassa: suunnittelu, menetelmät, vuorovai- kutus. Helsinki: Talentum

(41)

LIITTEET

Liite 1. Automaatiosuunnittelun eteneminen dokumenteittain

Viittaukset

LIITTYVÄT TIEDOSTOT

Projektin hallinnan kannalta oleellisin yksittäinen käytettävissä oleva resurssi on raha, sillä projekti on taloudellinen hanke, jolla on omat taloudelliset tavoitteensa. Projektin

Onnistumisen luokkia ovat projektin aikataulutus ja suunni- telma, projektin selkeä tavoite, asiakasorganisaation ylimmän johdon tuki, asiakkaan ja käyttäjän osallistuminen

Koska tuottajan rooli on, kuten aiemmin todettiin, pitää huolta koko projektin onnistumisesta, saattaa tämä hyvinkin tarkoittaa sitä että tuottaja päätyy

 Projektilla pitää olla selkeä, yksikäsitteinen vaatimusmäärittely ja tavoite, jotka määrittelevät projektin laajuuden.  Tavoitteeseen pyritään projektin

Mittatekniikan keskus MIKES on käynnistänyt projektin Standardien hyödyntäminen teollisuuden mittauksissa4. Projekti kartoittaa standardien hyödyntämiseen ja

Esseessä tarkastellaan projektin elinkaaren alkuvaihetta ja erityisesti sitä, millä alkuvaiheen toimilla voidaan mahdollistaa koko projektin onnistuminen. Projektin

Tämä takaa myös, että yrityksen johdolla ja projektin ydinjoukolla on yhteinen näkemys siitä, mitä ollaan tekemässä ja toimii myöhemmin ohjeena läpi koko projektin siinä

Projektin hallintaan ja menetelmiin liittyen nostettiin esille sekä toi- mittajan että asiakasorganisaation projektinosaaminen, selkeä vastuunjako pro- jektin sisällä,