Kokemuksia ohjelmistokehityksestä. Kai Kulju & Heikki Naski



Samankaltaiset tiedostot
Onnistunut ohjelmistoprojekti

Onnistunut ohjelmistoprojekti

Tutkittua tietoa. Tutkittua tietoa 1

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Tarjolla tänää: Ohjelmiston toteutuksesta. Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit. Testilähtöinen kehittäminen JOT2007. Uudelleenrakentaminen

Avointen ohjelmistojen käyttö ohjelmistokehityksessä

Millainen on menestyvä digitaalinen palvelu?

Työkalujen merkitys mittaamisessa

Globaalisti Hajautettu Ohjelmistokehitys Mitä, Miksi & Miten? Maria Paasivaara

Tapahtuipa Testaajalle...

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori

Scrum is Not Enough. Scrum ei riitä. Ari Tanninen & Marko Taipale. Nääsvillen oliopäivä 2009 Tampereen teknillinen yliopisto 9.12.

Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen

Siirtyminen ketterien menetelmien maailmaan! Maarit Laanti 24 October 2013!

ruovedellä pohjois-hämeessä. lepounit.com (yritys) lepo.net (oma)

Ei raportteja roskiin

haltu..mobile.web.embedded

Projektisalkun kehittäminen - kilpailuetua toimituksiin projektisalkulla. Projektisalkku ohjausvälineenä. Projektisalkun kehittäminen

statbeatmobile PROJECT REVIEW iteration 1

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Test-Driven Development

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Kurssin sisältö. Kurssilla vähemmän. Johdatus ohjelmistotekniikkaan. Mitä on ohjelmistotekniikka? Miten ohjelmistoja suunnitellaan ja toteutetaan?

LEAN-JOHTAMISEN KESKEISET PERIAATTEET

E-kirjan kirjoittaminen

Ohjelmistoarkkitehtuurit, TTY. Vierailuluento. Mika Siikarla,

Työkalut ohjelmistokehityksen tukena

JUnit ja EasyMock (TilaustenKäsittely)

ecome Markkinoiden kehittynein julkaisujärjestelmä

opiskelun suunnittelujärjestelmä, kurki ja ilmo käyttävät kaikki samaa tietokantaa, ja uusi järjestelmä tulee osaksi tätä.

Testilähtöinen ohjelmistokehitys. Testilähtöinen ohjelmistokehitys. TDD Testilähtöinen ohjelmistokehitys. Testi! Testi

58160 Ohjelmoinnin harjoitustyö

Huomio kiinnitetään kielteisiin asioihin ja myönteiset puolet pyritään rajaamaan pois.

3. Ryhdy kirjoittamaan ja anna kaiken tulla paperille. Vääriä vastauksia ei ole.

Kuinka IdM-hanke pidetään raiteillaan

ICT-ALOJEN KOULUTUSTARVEKYSELY tammi-helmikuu Raportti 4/2011. Varsinais-suomen elinkeino-, liikenne ja ympäristökeskuksen julkaisuja

KONTTI - Teolliset komponenttiohjelmistot Tekesin ETX-ohjelma

Bimodaalisuus IT Palvelunhallinnassa Case UPM

Lean johtaminen ja työkalut. Työpaja

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

Avoin lähdekoodi (Open Source) liiketoiminnassa

Ohjelmistotestaus -09

Lakki. Lisää ot sik k o osoit t am alla. Nöyrästi vain lakki kourassa... Jussi Vänskä Espotel Oy. vierailuluentosarja OTM kurssi 2010

Testitapausten suunnittelu

Avoimen lähdekoodin kehitysmallit

Kun scrum ei riitä - skaalaa ketterä tuotekehitys SAFe lla Nestori Syynimaa Sovelto Oyj

Ohjelmistoprojektien hallinta Vaihejakomallit

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Testausta vai määrittelyä? Hyväksymistestaus ja jatkuva integraatio ketterässä ohjelmistokehityksessä

MITEN KOKONAISARKKITEHTUURILLA TUETAAN LIIKETOIMINNAN KEHITTÄMISTÄ

Copyright Observis Oy All rights reserved. Observis Oy Ville Kanerva, CTO Heikki Isotalus, COO Datasta tietoa

Test-Driven Development

SYSTEEMITYÖ. Tärkeitä sanoja

Avoimen tieteen osaajakoulutus Työpaja: Avoin tiede ja tietohallinto

@Tampereen Testauspäivät ( )

Miten 333 organisaatiota voi kehittää yhtä yhteistä digitaalista palvelua ja vielä kuunnella kaikkien asiakkaita?

Suomen avoimien tietojärjestelmien keskus COSS ry

ja -kehitysmenetelmistä Jyri Partanen, QA Manager Sulake Corporation

Asiakastarpeiden merkitys ja perusta. asiakastarpeiden selvittämisen merkitys ja ongelmat asiakastarvekartoitus asiakastarvekartoitustyökaluja

OSAKE- KOKEMUKSIA TAMPEREELTA

Ohjelmistoprojekti projektipäällikön näkökulmasta

TIE Ohjelmistojen testaus Harjoitustyön esittely osa 2: Vaiheet 3 & 4. Antti Jääskeläinen Matti Vuori

oppimisella ja opiskelemisella

Kokonaisuuksien, riippuvuuksien ja synergioiden hahmottaminen helpottuvat

CS-C2130 / CS-C2140 / CS-E4910 Software Project 1 / 2 / 3 ja Accenture Luento

Tutkija, maailma tarvitsee sinua!

Ylläpito. Ylläpito. Ylläpidon lajeja Ohjelmistotuotanto, syksy 1998 Ylläpito

Osaava henkilöstö kotouttaa kulttuurien välisen osaamisen arviointi. Työpaja Hämeenlinna

ESOMAR-terveiset. Maris Tuvikene. Tuvikene Maris Julkinen 1

Luku 8 Rakennusvaihe. Detailed Design. Programming. Moduulisuunnittelu. Ohjelmointi

Miten Finna muuttaa sisällönkuvailua vai muuttaako?

KIELENOPPIJOITA TIEDONHANKINTA KESKIÖSSÄ KUUNTELEMALLA OPPIJA (AUDITIIVINEN) KIELEN KÄYTTÖ, VUOROVAIKUTUS NÄKEMÄLLÄ

JS-kehitys - yleiskuvaus. TIEA255 - Juho Vepsäläinen

Työpajaesimerkit Time2LeanOn Oy

Orientaatio -projektin satoa

Ohjelmointi 1 / syksy /20: IDE

Johdatus ohjelmointiin

SAP. Lasse Metso

statbeatmobile FINAL PROJECT REVIEW

Oleelliset vaikeudet OT:ssa 1/2

Digitaalisuus palvelumuotoilussa. Annemari Auvinen Digipolku

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Jenna Rinta-Könnö, vaatetus15

Student Life kokonaisuus Jyväskylän yliopistossa

Ketterä vaatimustenhallinta

Teollisuuden näkökulma avoimen lähdekoodin ohjelmistoihin

Pitchaus miten esittelen yritysideani hyvin

LAATU, LAADUNVARMISTUS JA f RISKIEN HALLINTA JOUNI HUOTARI ESA SALMIKANGAS PÄIVITETTY

Software engineering

Skosmos 0.6 esittely. Osma Suominen ONKI-projektin laajennetun projektiryhmän kokous

4 ensimmäistä sähköpostiasi

VYPEdit verkkosivualusta SVY-toimijoille

T Ohjelmistoprojektien hallinta Tehtävän 3 ratkaisu. Maija Kangas, Kimmo Stålnacke ja Outi Syysjoki

tukipalvelujen laadunvarmistusta

P e d a c o d e ohjelmointikoulutus verkossa

5. HelloWorld-ohjelma 5.1

Liiketoimintaosaamisen haasteet Suomessa Matti Alahuhta

Ohjelmoijan hengissäpysymistaidot

Testauksen suunnittelu ja dokumentointi ketterässä testauksessa Tutkimustuloksia

Copyright

Transkriptio:

Kokemuksia ohjelmistokehityksestä Kai Kulju & Heikki Naski

Esityksen runko Keitä me olemme Mitä ohjelmistokehitys on Mitä kykyjä tarvitaan

Naski Gee Technology Kahden hengen firma PHP, MySQL Edita Digitaalimurros: 800 hlöä vuonna 2006 ja 400 hlöä 2011 PHP, Oracle (DB), Zend Framework Codemate Bangladesh PHP, Oracle (DB)

Naski Soprano Brain Alliance henkilöstön vaihtuvuus 2012-2013 n. 90% PHP, JS, Ext, Yii, Zend Framework 1 ja 2 Fraktio porukkaa nyt 400% siitä mitä 2012 PHP, Silex, JS, Angular, Node.js Sytyke verkostoitumisyhdistys

Kulju - datanomi, tradenomi - Soprano Brain Alliance (2010-2014) - Reaktor (2014) - Fraktio (2015-) JavaScript, Node.js, PHP,

Fraktio - Perustettu 2012-19 vakituista työntekijää - Asiakasprojekteja - Kaikki samaa itsenäistä tiimiä - Paljon valtaa, paljon vastuuta - Erittäin avoin kulttuuri

Mitä ohjelmistokehitys on

Esimerkki päivästä Rakenna uutta toimintoa Optimoi täysin tuntemattoman koodipohjan suorituskykyä Tiimipalaveri Super urgent bugi havaittu eli korjaa Arvioi tarjousta

Muuta touhua Firman kehittämisen työpaja Teknologiatyöpaja (React, Scala + Play) Rekrytoitavien haastatteluja Esitelmien kuuntelua Tapahtumissa käymisiä (Reaktor DevDay, MySQL User Group, Scalar, HelsinkiJS)

Väärinymmärryksiä Joku alalla oikeasti osaa Projekteissa on selvät ja harkitut prosessit Projekteissa tehdään lähinnä uutta kehitystä Duuni on vaan duunia eli helppoa ja tylsää

Väärinymmärryksiä Alan duunit on pelkkää koodaamista Koodaaminen vie eniten aikaa Testaaminen on ikävää Työpaikan saaminen on helppoa ja firma kyllä opettaa Projekteissa on selvät tavoitteet

Väärinymmärryksiä Pelkällä hyvällä koodilla voi ratkaista liiketoiminnallisia ongelmia Erinomaisuus pelastaa projektin Ongelmat ratkeaa oikean dogman avulla (Scrum, Kanban, TDD, CI,...) Asiakkaat osaavat kyllä ostaa softaa

Miten softaa ostetaan Ei haluta ylläpidettävyyttä vaan kehitysnopeutta (mutta projekti elää 10 vuotta, ylläpitäjinä 10 erillistä tiimiä) Asiakas ei ole mukana omassa projektissaan Sopimuksia tulkitaan eri tavoin

Mitä tuloksia halutaan Toiminnallisuudet Nopea kehitys Virheiden vähyys eräässä projektissa laatua varmistettiin rankasti ja virheistä tuli heti huutoa toisessa projektissa äkkiä tuotantoon vaikka miten tulisi virheitä Suorituskyky

Mitä tuloksia halutaan Akateemisuus promiset funktionaalisuus oliot Käytännöllislaadullisuus TDD/BDD koodausstandardit uudet kirjastot

Olet tyhmä jos et käytä Nyt Automaattinen testaus Agile, Lean Funktionaalinen tyyli Feature branch Aiemmin Design patternit (erityisesti singletonit) Olio-ohjelmointi

Kaikkea ei voi tietää Ala on jatkuvaa opiskelua Jatkuvasti uusia liiketoimintaan liittyviä ongelmia ratkaistavana

Mitä kykyjä tarvitaan

Kunnioitus Ala on laaja Mielipiteitä on monia Tyhmät kysymykset ovat usein hyviä Linux, Git ja BSD koodausstandardit Fowler vs feature branch

Työkaluja Editori Versionhallinta Tehtävänhallinta Wikit

Työkaluja web-koodaajalle Profiloija Debuggeri Verkkoliikenteen analysointi DOMin tutkiminen Tietokantatyökalut

Toimintatapoja Arvioiminen Ongelman selvitys Toiminnon valmistuttua ollaan puolivälissä ansojen poistaminen dokumentointi Tee jotain

Toimintatapoja Varmistaminen tuleeko suoritus oikeasti tiettyyn kohtaan toimiiko korjaus eihän varmasti toimi ilman korjausta Kuolleen koodin hallinta Epädogmaattisuus mieti seurauksia äläkä sitä mitä tuhat bloggaajaa julistaa

Toimintatapoja Asioiden selvittäminen Oma-aloitteisuus Ajatusten lukeminen

Vian korjaaminen Toista Korjaa Etsi onko vastaavia ongelmia muualla Ehkäise muuta toimintatapoja niin ettei vastaavaa tapahdu

Vinkkejä Tee omia projekteja Lue Käytännöllisiä asioita Tieteellisiä asioita Opettele metodeja (XP, Agile, Lean yms.) mutta muista kohtuus

Vinkkejä Avoin lähdekoodi Laaja osaaminen eri asioista Jostain asiasta syvä osaaminen Kokemus asiakkaista on erityisen kysyttyä

Mihin tulisi pyrkiä? Ymmärrys eri ohjelmointikielistä ja paradigmoista yleisellä tasolla ohjelmointikielissä valtavasti yhteistä opitut asiat siirrettävissä kielistä toisiin helpottaa siirtymistä eri teknologioista toisiin Hyvä aiheeseen liittyvä kirja: Code Complete (Steve McConnell)

Arvon tuottaminen Loppukäyttäjän kokeman arvon tuottaminen todelliset käyttötilanteet tekemisen pohjana Maalaisjärkeä mukaan laadunvarmistus oikeissa paikoissa kehitysnopeus ylläpidettävyys

http://heikki-naski.blogspot.fi/ http://www.sytyke.org/ https://fraktio.fi