Application Performance and the Trap of Object-Orientedness - PowerPoint PPT Presentation

About This Presentation
Title:

Application Performance and the Trap of Object-Orientedness

Description:

Application Performance and the Trap of Object-Orientedness – PowerPoint PPT presentation

Number of Views:65
Avg rating:3.0/5.0
Slides: 33
Provided by: Targo
Category:

less

Transcript and Presenter's Notes

Title: Application Performance and the Trap of Object-Orientedness


1
(No Transcript)
2
Projektide alustamine
  • Targo Tennisberg
  • Arendusjuht ja isehakanud guru
  • http//www.targotennisberg.com/tarkvara
  • Oktoober 2008

3
Projektijuhtide roll
  • Projektijuhid pole mitte lihtsalt selleks, et
    klienti ja programmeerijat teineteise eest
    kaitsta
  • Tarkvaraprojekt sisaldab põhimõtteliselt
    tundmatust
  • Muutuvad tehnoloogiad, kliendid, vahendid jne
  • Tundmatus -gt ebakindlus -gt risk -gt vajadus riske
    hallata
  • Lõputult asju, mis võivad puusse minna
  • Peamine ülesanne enne projekti algust on riskide
    identifitseerimine ja maandamine
  • Vahe tähtajas ja eelarves lõppeva projekti ning
    tahtsime parimat, aga välja tuli nagu alati
    projekti vahel
  • Enamik riske õnneks kontrollitav vastavate
    kontrollküsimuste nimistute abil

4
Riskihaldus
  • Risk pole iseenesest midagi hirmsat
  • Riski teadvustamine ja vastavate meetmete
    kasutamine on pool võitu
  • Riskihaldus peaks olema formaliseeritud
  • Miinimumvariandis lihtsalt mingisse dokumenti
    kirja panna
  • Osalistel võimalik riske teadvustada
  • Struktuurne mehhanism probleemide ennetamiseks
  • Riskide tõsidusega arvestamine aitab meil
    keskenduda õigele probleemile
  • Aitab arvutada õige suurusega projektilõtku
  • Riskide dokumenteerimine projektist projekti
    aitab vältida vigade kordamist
  • Vaja hoida värsket nimistut meie top 10 riski

5
Projektiriskide testid
  • Pea igas tarkvaraarenduse / projektijuhtimise
    käsiraamatus on mõni test/nimistu
  • Lugege raamatuid ?
  • Software Project Survival Guide, Steve McConnell
  • Practical Project Initiation, Karl Wiegers
  • http//www.targotennisberg.com/tarkvara/survival_t
    est.html (Steve McConnelli ainetel)
  • http//www.targotennisberg.com/tarkvara/2008/06/06
    /eduka-projekti-retsept
  • Joeli test
  • http//www.joelonsoftware.com/articles/fog00000000
    43.html
  • Enne projekti alustamist tuleb mõelda, kuidas
    neist testidest hiljem kuiva nahaga pääseda

6
Tüüpriskid - juhtimine
  • Ebapiisav planeerimine ja ülesannete
    identifitseerimine
  • Projektistaatuse ebapiisav läbipaistvus
  • Ebaselge projektijuhtimise ja otsuste tegemise
    struktuur
  • Antud ebarealistlikud lubadused
  • Ebarealistlike ootustega juhtkond või kliendid
  • Isiksuste konfliktid personali hulgas

7
Tüüpriskid - nõuded
  • Selge projektivisiooni puudumine
  • Nõuetealase kokkuleppe puudumine
  • Kliendi (ja kasutaja) puudulik osalus nõuete
    defineerimisel
  • Prioritiseerimata nõuded
  • Ebaselgete nõuetega uus turg
  • Kiiresti muutuvad nõuded
  • Ebaefektiivne nõuete muutmise protsess
  • Nõuete muutmiste tagajärgede ebapiisav hindamine

8
Tüüpriskid puudulikud teadmised
  • Puudulik koolitus
  • Puudulik arusaam meetoditest, vahenditest ja
    tehnoloogiast
  • Vähene arusaam ärilisest rakendusvallast
  • Uued tehnoloogiad või arendusmeetodid
  • Ebaefektiivne või halvasti dokumenteeritud
    arendusprotsess (või ignoreeritakse seda üldse)
  • Tehnilised lähenemised, mis ei pruugi töötada

9
Tüüpriskid sõltuvused / liidestus
  • Kliendi omaloodud andmestruktuurid v hoidlad
  • Sisemised või välised allhankijad
  • Komponentide vahelised sõltuvused
  • Vastavate kogemustega inimeste olemasolu
  • Komponentide taaskasutus ühest projektist teise

10
Tüüpriskid - allhankimine
  • Tellija nõuded on ebaselged, valed või
    mittetäielikud
  • Tellija ei vasta allhankija küsimustele
    täielikult ja operatiivselt
  • Allhankijal puuduvad asjakohased tarkvaraarendus-
    ja juhtimisprotsessid
  • Allhankija ei tarni tähtajaks piisava
    kvaliteediga komponente
  • Allhankija ostetakse üles kellegi teise poolt,
    satub finantsraskustesse või lõpetab tegevuse

11
Tüüpriskid allhankimine 2
  • Allhankija annab ebarealistlikke lubadusi, et
    hanget saada
  • Allhankija ei anna projekti staatusest täpset ja
    operatiivset infot
  • Lepingus kirjeldatud projektiskoobi üle puhkevad
    vaidlused
  • Kui allhankija asub teises riigis, võivad tekkida
    probleemid impordi/ekspordiseadustega
  • Kommunikatsioon, materjalide edastamine ja
    edasi-tagasi sõitmine aeglustavad projekti käiku

12
Projekti edu tagamise sammud
  • Eelnevalt oli juttu sellest, mis võib valesti
    minna, mida me saame teha, et läheks hästi?
  • Defineerida ärilised eesmärgid
  • Identifitseerida osapooled ja nende huvid
  • Identifitseerida ja prioritiseerida projekti
    kitsendused
  • Koguda nõuded
  • Tuletada projekti edukriteeriumid
  • Projekti skoop täpselt piiritleda
  • Luua kirjalik projektiplaan
  • Luua operatiivsete kokkulepete struktuur
    kliendiga
  • Defineerida ja katta vastutusalad
  • Defineerida projektis kasutatavad protsessid
  • Luua vajalik tehniline infrastruktuur

13
Ärilised eesmärgid
  • Puuduvad hämmastavalt paljudes projektides
  • Teeme midagi, aga keegi ei tea, miks
  • Peavad olema selged kõigile projekti osalistele
    (konsensus)
  • SMART Specific, Measurable, Achievable,
    Relevant, Time-specific
  • Näiteid
  • Saavutada X kuuga Y regioonis Z turuosa
  • Jõuda X kuuga kasumisse
  • Töödelda X transaktsiooni päevas Y täpsusega
  • Rahuldada valitsuse määruses nr X toodud nõuded
  • Vähendada kasutajate teenindamiseks kuluvat aega
    X tunni võrra Y juhtudest
  • Meie situatsioonis on eesmärgid tihti nõuete
    kujul (eriti riigihangetel)
  • Sellegipoolest oluline ärilisi eemärke mõista
  • Klient ei pruugi teada, mida ta tegelikult tahab

14
Osalised ja nende huvid
  • Osalised on kõik, keda projekt mõjutab või kes
    mõjutavad projekti
  • Sisemiste osaliste näiteid
  • Projektijuht, analüütikud, sponsor juhtkonnast,
    arendajad, testijad, IT, sisemised partnerid,
    omanikud, marketing, tootmine, finants, juristid,
    müük
  • Väliste osaliste näiteid
  • Kasutajad (otsesed ja kaudsed), tellijad,
    valitsuse nõuete seadjad, audiitorid,
    standardiorganisatsioonid, allhankijad,
    materjalide tarnijad, seonduvate toodete haldajad
    ja kasutajad, äripartnerid, avalikkus
  • Osalistel on soovid, eelkujundatud suhtumised,
    võidulävi ja piirangud, mis tuleb
    identifitseerida
  • Võivad projekti käigus muutuda tähtsamate
    osalistega tuleb suhelda läbi kogu projekti

15
Osalised ja nende huvid 2
  • Tuleb defineerida, kuidas me lahendame
    osalistevahelisi huvide konflikte
  • Näiteid konsensus, erinevate kaaludega
    hääletamine, üks inimene on diktaator, komitee
    otsustab mingi analüüsi põhjal
  • Peamine on, et me mõistame ja järgime
    otsustusreegleid
  • Kõige olulisem osaline on projekti sponsor
  • Sponsor maksab meie laste leiva eest
  • Ilma sponsorita projekt tavaliselt hävib
  • Sponsorlust tuleb hoida kogu projekti jooksul!
  • Tähtsamad osalised peavad olema ühel nõul
    järgmistes punktides
  • Ajakava
  • Ressursid
  • Skoop
  • Nõutav kvaliteet

16
Projekti piirangud/paindlikkus
  • Tarkvaratootmises on alati ebakindluse aspekt
  • Paindlikkuse telgedel 1projekti täielik
    ebaõnnestumine, kui piirangute piires ei tulda
    toime
  • Ilma mingi paindlikkuseta projektid (väga väikese
    pindalaga viisnurk) ebaõnnestuvad tavaliselt
  • Vaja teada, mida esimesena ohverdada kui häda
    käes
  • Oluline tähtsamate osalistega läbi rääkida
  • Tähtajast mõeldakse tihti kui fikseeritud
    suurusest
  • Enamasti tegelikult teatud paindlikkus

17
Nõuded
  • Milleks meile nõuded?
  • Kui me ei tea, mis on meie vajadused, siis me ei
    tea, millal me valmis oleme
  • Täpsemad nõuded -gt projekti tähtaja parem
    ennustatavus -gt
  • 3 nõuete taset
  • Ärilised
  • Rahuldavad ärilisi vajadusi (vt eespool)
  • Kasutajanõuded
  • Kirjeldavad, mida peab kasutaja saama produktiga
    teha
  • Funktsionaalsed
  • Süsteemi kirjeldus erinevates tingimustes
  • Kõik peavad olema kirjeldatud!

18
Nõuded
  • Otsest funktsionaalsust mittepuudutavad nõuded
  • Jõudlus
  • Milline on maksimaalne samaaegne kasutajate arv?
  • Milline on keskmine ühe kasutaja poolt
    teostatavate operatsioonide arv minutis?
  • Millised on eeldatavad andmemahud põhitabelites?
  • Milline on andmete hulga kasv päevas/kuus/aastas
    põhitabelites?
  • Millised on enamkasutatavad operatsioonid?
  • Millise ajaga peavad olema teostatud
    enamkasutatavad/tavalised operatsioonid
    arvestades ülaltoodud operatsioonide arve ja
    andmemahte?
  • Käideldavus
  • Mis on tegelik maksimaalne lubatud downtime?
  • Kuidas mõõdame SLAle (service level agreement)
    vastavust?
  • Kuidas teostatakse vigade parandust toodangus
    ning millised on reageerimisajad?

19
Projekti edukriteeriumid (xkcd)
20
Projekti edukriteeriumid
  • Tehnilised mõõdikud, mis on tuletatud ärilistest
    eesmärkidest
  • Arendajatele ei saa seada eesmärgiks saavutada
    40 turuosa
  • Projektijuhtimise ülesanne on tõlkida ärilised
    eesmärgid tehnilisteks
  • Eesmärgid peavad olema
  • Realistlikud
  • Kvantifitseeritud
  • Binaarselt kontrollitavad (jah/ei)
  • Näiteid
  • Projekti maksumus on X piires ettenähtud
    eelarvest ja tähtajast
  • Defektide arv on ltX
  • Veebisait kannatab välja X üheaegset kasutajat
    keskmise viitega Y sekundit
  • Pärast koodi kliendile üleandmist ei esine üle X
    ärikriitilise vea
  • Kogu 1. prioriteedi funktsionaalsus antakse üle X
    tähtajaks
  • Eesmärke peab olema mõistlik hulk tuleb
    prioritiseerida

21
Skoop
  • Skoobikirjeldus on leping tellija ning
    projektimeeskonna vahel, mis kirjeldab
  • Mida projektis tehakse
  • Ja ka seda, mida seal ei tehta
  • Piir peab olema selgelt paigas
  • Soovitavaid muudatusi lihtne testida, kas nad on
    ühel või teisel pool piiri
  • Eriti tähtis juhul, kui projekt on vaid väike osa
    suurest visioonist
  • Uued ja uued visiooni osad imenduvad projekti
  • Skoopi hea kirjeldada kontekstidiagrammiga
  • Piiritleb süsteemi sisendid ja väljundid

22
Kontekstidiagrammi näide
23
Projektiplaan
  • Sagelilevinud arvamus, et igasugused plaanid ja
    dokumendid on mõttetu ajaraiskamine
  • Hakkame parem ometi koodi kirjutama
  • Plaani kirjutamine on tegelikult lihtne
  • Võib kasutada mõnd olemasolevat plaanipõhja ja
    valida sealt relevantsed kohad
  • http//www.slideshare.net/ahmedhasan/ieee-1058-199
    8-software-project-management-plan/
  • IEEE standard väga põhjalik
  • Raske osa on tegelik planeerimine ?
  • Kirjaliku plaani vajadus sunnib meid selle kohe
    ära tegema
  • Millalgi tuleb need küsimused niikuinii vastata
    ja hiljem on ajakulu palju suurem

24
Projektiplaani osad
  • Kõrgtaseme ajagraafik
  • Peamiste ülesannete kirjeldus
  • Personal, eelave ja muud ressursid
  • Rollid ja vastutusalad
  • Kuidas vajalikke inimesi leida ja koolitada
  • Eeldused, sõltuvused ja riskid
  • Peamiste komponentide kirjeldused ja tähtajad
  • Identifitseeritud tarkvara loomise metoodika
  • Projekti monitoorimise protsessi kirjeldus
  • Kogutavad ja analüüsitavad mõõdikud
  • Suhted allhankijatega

25
Kokkulepped kliendiga
  • Tihedad tarned
  • Kiire tagasiside tarnetele
  • Tarnete paigaldusprotsess (kes paigaldab, kes
    ehitab, kuidas propageeritakse andmestruktuur ja
    andmed, etc)
  • Tarne vastuvõtukriteeriumid
  • Kiire arendusse minevate tööde kinnitamise
    protsess
  • Skoobimuudatuste haldamise protsess
    (funktsionaalsuse vahetamine, lisarahastus, vms)

26
Kokkulepped kliendiga 2
  • Ligipääsud nende sisevõrgu ressurssidele
  • Testkeskkond (rakendusserver, andmebaas)
    vähemalt logid
  • Integreeritavad süsteemid (AD, ERPid, vms)
  • Taaskasutatav infoarhitektuur (kliendid, arved,
    kasutajad, tooted vms)
  • Tarnitava dokumentatsiooni nimekiri ja
    sisukirjeldus
  • Kes koolitab lõppkasutajaid?
  • Ligipääs rakenduse lõppkasutajatele töö
    monitoorimiseks ja tagasiside saamiseks
    (motiveeritud inimesed)
  • Kokkulepped kasutatavate tehnoloogiate ja teekide
    osas  (ka siis kui kliendil on ükskõik tuleb
    jah sõna kätte saada)
  • Kuupäevad, mil saame ligipääsu asjadele millest
    meie projekt sõltub
  • Kui klient neid ei pea, siis me ei garanteeri
    enam oma tähtaegu

27
Vastutusalad projektis
  • Allpool näiteid mitmesugustest projekti
    tegevustest
  • Igal tegevusel peab olema konkreetne vastutaja
  • Vastutaja peab teadma, milliste valdkondade eest
    ta vastutab ?
  • Iga tegevus peab kajastuma projekti graafikus
  • Tehnilised
  • Kõrgtaseme arhitektuur
  • Tehniline (detailne) disain
  • Koodikirjutamine
  • Detailsete etapiviisiliste ajagraafikute
    koostamine
  • Installatsiooniprogrammi loomine
  • Vanast süsteemist andmete konverteerimine
  • Integreerimine (projekti omavahelised komponendid
    ja liidestused teiste süsteemidega)
  • Testimine (sh funktsionaalne, suitsu-,
    integratsiooni-, jõudluse ja koormustestimine)
  • Dokumenteerimine
  • Plaanide, hinnangute, arhitektuuri, disaini,
    etapiplaanide, koodi, testimisplaanide
    ülevaatused
  • Ülevaatuste ja testimise käigus leitud vigade
    parandamine
  • Versioonikontrollisüsteemi haldamine
  • Ehitusskriptide haldamine
  • Vanade projektide toetamine

28
Vastutusalad projektis
  • Mittetehnilised
  • Üldine (tehniline ja mittetehniline)
    koordineerimine
  • Riskihaldus
  • Projektiplaani koostamine ja värskendamine
  • Projektigraafiku jälgimine
  • Tellijaga suhtlemine
  • Lõppkasutajaga suhtlemine
  • Etapitulemuste demonstreerimine juhtkonnale,
    tellijale ja kasutajatele
  • Nõuete muudatustega tegelemine
  • Muudatuste mõju hindamine (tehnilise meeskonna
    poolt)
  • Testijate küsimustele vastamine
  • Dokumenteerijate küsimustele vastamine
  • Tehnilise meeskonna koolitamine
  • Projekti hiljem toetavate inimeste koolitamine
  • Etapitulemuste üleandmine

29
Protsessid projektis
  • Kvaliteedi tagamise protsess
  • Tehnilised ülevaatused (spetsifikatsioon,
    arhitektuur, kood)
  • Veahaldus
  • Testimismetoodika ja põhjalikkus
  • Unit testing
  • Funktsionaalne testimine
  • Integratsiooni testimine
  • Kvaliteedi tagamiseks eraldatud pädevad inimesed
  • Mitte lihtsalt kõige noorem ja vähemkogenum
    projekti liige
  • Muudatuste tegemise protsess
  • Millise suurusega muudatusi on võimalik/lubatud
    teha
  • Kes ütleb lõpliku sõna muudatuste tegemise osas
  • Kommunikatsiooniplaan
  • Lihtne tabel asjaosalised, kommunikatsiooniaeg
    ja viis
  • Näiteid projekti sponsor, emailida iga 2 nädala
    tagant, juhtiv arendaja, koosolek igal
    teisipäeval, tellija esindaja, helistada
    esmaspäeviti ja neljapäeviti

30
Projekti infrastruktuur ja vahendid
  • Enne tööleasumist tuleb planeerida ja üles seada
  • Versioonihalduse repositoorium
  • Ülesannete haldus (ChangeLogic, TFS)
  • Ehitusskriptid
  • Nightly build system (kui ei kasutata
    ChangeLogicut)
  • Testkeskkond (rakendusserverid, andmebaasid, muu)
  • Kujundus
  • Tellida vajalik kujundus
  • Lõigata lahti taaskasutatavateks elementideks

31
Kokkuvõte
  • Tegevusi on palju
  • Paljud võimalik delegeerida, aga nad peavad
    tehtud saama
  • Tegevustele tuleb planeerida vastav aeg ja
    inimressurss
  • Tegemata tööd tuleb millalgi ikka ära teha, aga
    arvatavasti kallima hinnaga

32
Thank You. Questions?
Write a Comment
User Comments (0)
About PowerShow.com