Agiilne arutelu agiilse arenduse teemadel
Postitatud: 5. juuli 2012 Filed under: tarkvara | Tags: Scrum, TechED Europe 2012 1 kommentaarNagu eelnevalt mainitud, olen mina üks vähekogenenud Scrum Master, aga proovin saada paremaks ja käisin TechEd Europe 2012 raames kahel üritusel – AAP309 juba kirjutasin, aga lisaks ka BOF07, An Agile Talk on Agile, Peter Provost ja Klaus Even Enevoldsen. Et selle kohta slaide/salvestust pole, panen peast;)
Formaat oli iseenesest geniaalne. Põhimõtteliselt toimus arutelu nagu Scrum:
- tekitati teemade (küsimuste) backlog
- hinnati prioriteedid. Igal inimesel oli kaks häält.
- võeti küsimused sprindis (10 min) ette
- Sprindi lõpus:
- Hääletati, kas küsimus on vastatud. Kui vastatud, siis oli tehtud, kui ei, läks tagasi backlogi
- Lisati uusi teemasi backlogi ja hääletati prioriteedid ümber
Teemad oli ka muidugi huvitavad:
- Kuidas kaasata tiimi liikmeid (eriti neid, kes vastu punnivad)? Selgitada, õpetada ja harida, kui see ei aita, siis võib-olla polegi vastavat liiget vaja? St üks tõrvatilk rikub poti mee ja korralikult toimiv tiim kaalub üles ühe (või paar superstaari). Jah, alguses on ilmselt raske, aga pikas perspektiivis on sellest rohkem kasu.
- Mis on agiilse tarkvaraarenduse tulevik? Sama, mis kogu tarkvaraarendusel – continuous delivery ehk pidev tarne. Järjepidev koostöö ja tagasiside, arenduse ja nö hoolduse piiride hägustumine.
- Kui palju on vaja ette analüüsida? Nii palju, kui on vaja? St kasutuslugudele, mis kunagi töösse võib-olla ei jõuagi, pole väga mõtet aega kulutada, samas peab arendustiimidel olema alati tööd võtta, samuti nõuab täpsemate hinnangute andmine mingil tasemel analüüsi. Ehk siis mida kõrgemal mingi lugu backlogis on, seda detailsem analüüs peab olema tehtud. Kui ülesanne liigub sprinti, peab olema arendajale vajalikul tasemel analüüs tehtud.
Kõrvamärkus: vahel juhtub, et tehakse mingi asjaga tööd, aga sprindi lõpus otsustakse, et ikka ei ole valmis ning prioriteetide ümbervaatamisel selgub, et võib-olla me ikka ei taha seda. Ja see on täiesti normaalne.
Edasi sai aeg kahjuks otsa, aga sellegipoolest oli väga äge ja formaat, nagu öeldud, geniaalne. Hiljem küsisin veel Peterilt eraldi, et kas ja kuidas on võimalik teha agiilset arendus fikseeritud aja, raha ja nõuete korral. Vastus:
- sisemiselt saab Scrumi teha, kuigi kliendivaates pole sellel väga mõtet (sest kõik tuleb kindlaks ajaks ära teha)
- hinnangute andmisel anna hinnanguid ja korruta need 3. Või 5. Või 7. Kui sa aga tõepoolest projekti tahad, siis suured ninad keelduvad asju läbi korrutamast, mis ei muuda aga töö suurust. Seega reeglina võidab sellised pakkumised see, kes pakub ebareaalset hinda/tähtaega. Kui sina võidad, siis tõenäoliselt saad rahaliselt vastu pükse.
- üldiselt – need on halb variant, aga teinekord võib kliendi sissesöömiseks neid kasutada.
Agiilsed ajahinnangud
Postitatud: 5. juuli 2012 Filed under: tarkvara | Tags: Scrum, TechED Europe 2012 2 kommentaariJuhtumisi olen mina meie tiimi Scrum Master (võrdlemisi vähekogenud) ning ühtlasi aegajalt puutun kokku ajahinnangute muu sellisega. Seega sai käidud kahel Scrumi/agiilse arenduse loengul/arutelul, soojenduseks võtame esimese ehk AAP309, Making Agile Estimation Work, Stephen Forte ja Joel Semeniuk.
- Ajahinnangud
- Aegade algusest on tarkvaraarenduses olnud ajahinnangud probleemsed – tavaliselt valed, liiga optimistilikud.
- Ajahinnang on hinnang (=ebatäpne, vastavalt hetke parimatele teadmistele, mis on ), mitte lubadus.
- Anna ulatus, mitte üks number.
- Ära anna hinnangut õhust, küsi täpsustavaid küsimusi – hinnang läheb täpsemaks.
- Määramatuskoonus – alguses on sinu hinnang ebatäpne ~4x (nii üles kui alla, st hinnanguliselt 1 aastane projekt võib võtta 3 kuud-4 aastat), aga läheb järjest täpsemaks. Ajahinnang on täpne siis, kui projekt on lõpetatud.
- Tuleb endale tunnistada (ja teistele selgeks teha), et ajahinnangud on subjektiivsed ja muutuvad.
- Algne hinnang ongi ebatäpne ja peab muutuma (tuleb ümber hinnata), kuid läheb täpsemaks vastavalt sellele, kui hästi me probleeme tunneme.
- User stories ja story points
- Väärtus kasutajale. As a <role> I would like to <action> in order to <the goal or business value>. Peaksid sisaldama ka vastuvõtukriteeriume – millal on valmis. Ei tohiks olla liiga pikk (üks lõik). Hiljem lüüakse väiksemateks (arendus)ülesanneteks. Liiga väiksed tükid hinnangu andmisel suurendavad ebatäpsust.
- Inimestel on raske hinnata mingi asja suurust, aga lihtne võrrelda. Seega on meil baaslugu, millel on kindel arv punkte. Kõik tulevased kasutuslood hinnatakse võrdluses sellega – 2x suurem, 2x väiksem, sama jne. Eelis võrreldes tundidega on nt see, et erinevate inimeste hinnangud võivad sisaldada erinevaid asju – puhas arendus vs arendus koos testimise, projektijuhtimise, paigalduste, koolituste jms. Võrdlus on kõigil aga sama. Alles kunagi hiljem tõlgitakse punktid ümber tundideks.
- Punktide andmine – planning poker, siis ei mõjuta teiste hinnangud. Tuleb leida konsensus, ühine arusaamine. Kui hinnangud on väga erinevad, saadakse asjadest erinevalt aru ja tuleb see läbi arutada.
- Backlog
- Backlogis võib olla maksimaalselt 3 (või midagi taolist) kõrge prioriteediga tööd, 5 keskmist ja ülejäänud madalat
- Prioriteet ja hinnangud on seotud, seega võiks eelnevalt hinnata ja siis prioritiseerida
- Iga sprindi lõpus uued kasutuslood, bugid, hinnangud ja prioriteedid, seega muutub ka backlog ja seega järgmise sprindi sisu!
- Velocity
- Palju story pointe suudab tiim sprindi läbida. Muutuv suurus, aga samuti muutub täpsemalt sprintide käigus.
- See on see koht, kus story points tõlgitakse ümber tundideks!
- Re-estimate
- Mõõdame tulemusi ja muudame vastavalt sellele hinnanguid.
- Siin selgub, kas me oleme graafikus projekti lõpetamise mõttes. Lõpetamiseks minev aeg=(Backlog (punktides)/sprindi velocity (punktides))xsprindi pikkus. Alguses on hinnang jätkuvalt ebatäpne! Arvestada ka parandusteks kuluvat aega.
- Kui ei ole graafikus, tuleb midagi muuta (traditsiooniline aeg/kvaliteet/funktsionaalsus kolmnurk)
TL,DR – agiilne arendus tähendabki pidevat muutumist: muutub backlog, hinnangud, ajakava, kasutuslood. Hinnangud ongi defintsiooni järgi alguses ~4x valed, aga lähevad projekti edenedes paremaks, mida paremini me tunneme ülesandeid, tiimi jms.
Lugemisvara:
- User Stories Applied – Mike Cohn
- Agile Estimating and Planning – Mike Cohn
- Agile Retrospectives – Esther Derby, Diana Larsen
- slideshare🙂 – Stephen Forte, Joel Semeniuk
Muidu – väga huvitav ja mõnus huumor, mitmeid “ma tean, mida te tunnete”-hetki. Nii tore, et ma pole ainus.
SharePoint 2010, ADFS ja claims
Postitatud: 4. juuli 2012 Filed under: tarkvara | Tags: ADFS, SharePoint, TechED Europe 2012 1 kommentaarEhk siis mida tarka ma õppisin TechEd Europe 2012 eelseminarilt PRC01 Building Federated External Access for Microsoft SharePoint 2010 (John Craddock):
- Claims ja Federation – mingi Identity Provider (IP) annab meie rakendusele info kasutaja kohta, autentimine toimub tema juures, vastu saame Security Tokeni (ST). Usaldus on kahepoolne, st STS usaldab rakendust, rakendus usaldab STSi (kaks sertifikaati). STSina saab kasutada ka näiteks Facebooki, LiveID, Google jms.
- Autoriseerimine toimub rakenduses vastavalt saadud claimile. Kõik Security Token Providerid (STS) saavad ise claime ümber kirjutada vastavalt vajadustele (nt lisada teatud IP (mitte segi ajada IPga) kaudu autenditud kasutajatele kindel roll). Seal saab kasutada ka muid andmeallikaid (Attribute Stores), milleks võib olla AD, LDAP, SQL või muu taoline andmebaas. Kui me lisame SPle Custom Claims Provideri, toimib ka tema nagu STS.
- ADFS – konfigureerimine läbi PowerShelli (PS). SPTrustedIdentityTokenIssuer tuleb luua, et saaks vastavat STSi valida. Ühel Web Applicationil võib olla mitu STSi ja üks STS võib olla mitmel Web Applicationil.
- Claimide lugemine: tegelikult on Claim objekt, millel on tüüp, väärtuse tüüp, väljaandja ja väärtus. SP konverteerib need stringideks:
- OOTB isikutevalija (PeoplePicker) ei toimi just mõistlikult, vajab eraldi koodi (otsing + valideerimine). Vaja lisada Custom Claims Provider, vt http://blogs.technet.com/b/speschka/archive/2010/05/25/replacing-the-out-of-box-name-resolution-in-sharepoint-2010-part-2.aspx
- SP Home Realm Discovery (HomeRealmDiscovery.aspx) ehk see lehekülg, kus kasutaja peab valima STS (kui neid on mitu), ei ole just eriline kasutusmugavuse meistriteos. Jällegi vajab koodi, et kuidagi automaatselt tuvastada, millise STSi juures kasutaja ennast autentida tahab
- SP teeb kasutajatel vahet sõltuvalt sellest, mis STS kaudu nad ennast autendivad (nt sama kasutaja otse AD või AD läbi ADFS autentides on erineva kasutaja). Võib põhjustada segadusi, seega on targem jätta ainult üks variant.
- Küpsised! ADFS küpsised (4 erinevat http://blogs.technet.com/b/geoffrey_carlisle_on_idm__security/archive/2010/10/13/common-adfs-cookies.aspx) ja SP Web Application küpsised (FedAuth). SP küpsised peavad olema persistent (st mitte-sessioonipõhised), kui tahetakse kasutada Office’it. Ühtlasi peab olema sait ka brauseri arvates trusted. Vaikimisi on FedAuth kestus (TokenLifeTime) 60 min (kuigi kirjas on 0). Ühesõnaga, erinevad küpsised vaatavad, kas kasutaja on autentitud SP mõttes ja STS mõttes. Seadistus sõltub olukorrast ja turvakaalutlustest. Võimalus on ka sliding sessions.
- Väljalogimine – millest me välja logime, ainult SP või ka STS? Mõistlik on välja logida ka STSist. OOTB SharePoint seda ei tee, vaja kirjutada koodi (tekitada eraldi leht). Omaette teema on ADFSist välja logimine – tuleb välja logida ka kõigist WA või muudest asjadest.
- Claims Augmentation (claimide ümberkirjutamine, suurendamine, transformeerimine?) – kõige mõistlikum on claime hallata AD FSis: grupeerimine, metaclaims ja claims store
- User Identity Store – kust me saame infot kasutajate kohta (nt SP profiili jaoks)? Kasutaja info import, andmete võtmine claimist (aga seal ei pruugi just palju olla), eraldi andmete kogumine (nö registreerumine)
- UAG? http://www.microsoft.com/en-us/server-cloud/forefront/unified-access-gateway.aspx
- ADFS deploy – kui me ei luba enam Windowsi autentimist on ainus viis, kuidas rakendustele ligi saada = kriitiline komponent. Alati farm, saab laiendada, dubleerida jne. Proxyd, tulemüürid…
- Üldiselt hakkabki elu nii käima, vaja on väga mitme osapoole koostööd – arendajad, IT, konsultandid jpt
TL,DR – jah, SharePoint, claims ja ADFS töötavad ka OOTB, aga vähegi viisakama kasutuskogemuse jaoks on vaja arendajatel ka tööd teha.
Lingid:
- John Craddock ADFSist
- Steve Peschka claimidest
- A Guide to Claims-Based Identity and Access Control (olemas ka Liisus)
- Implementing Claims-Based Authentication with SharePoint Server 2010
- AD FS 2.0 Troubleshooting Guide
- AD FS 2.0 Content Map
- http://claimsid.codeplex.com/
- ADFS 2.0 SDK
- Identity Developer Training Kit
Kes rohkem kuulda tahab, mis seminaril näidati või räägiti, võib minuga ühendust võtta.
Muidu – oli väga hariv ja silmi avav päev. Nii mõnigi “ahhaa-koht” tuli ette ja ütleme nii, et oleks kõike seda sügisel teadnud, oleks hulka aega ja närve ilmselt kokku hoidnud. Aga parem nüüd kui mittekunagi. Igal juhul suur tänu John Craddockile meeldejääva päeva eest ja mõni teine kord jälle.
TechEd Europe 2012
Postitatud: 4. juuli 2012 Filed under: tarkvara | Tags: SharePoint, TechED Europe 2012 Lisa kommentaarEsimene kord sellist üritust külastada ja väga tore oli. Asjasse mittepühendatutele teadmiseks, et tegu on Microsofti korraldatava suure konverentsiga, kus on 5000-10000 osavõtjat, igas ajaaknas paralleelselt 10-20 sessiooni (loengut), lisaks TechExpo (nö messiala) ja HOL (hands-on labs, käed-külge labor?), kus saab arvuti taga erinevaid stsenaariume läbi mängida. Põhiosa kestis teisipäevast reedeni, esmaspäeval oli eelkonverents (Pre-Con).
Konverents oli tore, Amsterdam oli tore ja mulle hullult meeldis. Targemaks sain ka, vähemalt enda arvates. Kuulamas käisin järgmisi asju (sessiooni kood on link Channel9 materjalidele):
- PRC01 Building Federated External Access for Microsoft SharePoint 2010, John Craddock. Minu kokkuvõte
- KEY001, TechEd Europe Keynote with Brad Anderson and Jason Zander
- KEY002, TechEd Europe Keynote with Antoine Leblond
- FDN03, Enable Consumerization of IT, Ward Ralston.
- BOF07, An Agile Talk on Agile, Peter Provost ja Klaus Even Enevoldsen. Minu kokkuvõte
- BOF15, Surviving Public Speaking, Alex de Jong
- OSP01-LNC, 36 Terabytes: How Microsoft IT Manages SharePoint in the Enterprise, Jim Adams and Nate Bruneau (Channel 9 Põhja-Ameerika sama asja video).
- ECR06, Exam Cram Session on Exams 667 and 668: Microsoft SharePoint Server 2010, Radi Atanassov
- OSP231, Developing and Managing SharePoint Solutions with Microsoft Visual Studio, Jay Schmelzer
- AAP309, Making Agile Estimation Work, Stephen Forte ja Joel Semeniuk. Minu kokkuvõte
- OSP233, Managing the SharePoint Disruption with End-to-End SharePoint Governance, Dan Holme. Minu kokkuvõte koos üldise jutuga
- DBI207, BI Power Hour, Adam Wilson, Matthew Roche and Jen Stirrup
- OSP333, Best Practices for Building Your Website for Scale with Microsoft SharePoint 2010, Spencer Harbar
- OSP337, Branding and Customizing My Sites with SharePoint 2010, John Ross and Randy Drisgill
- DEV307, JavaScript: The Language, Andrew Miadowicz
- WSV316, Clouds and Your Organization: A (Former) Professional Economist’s View for IT Pros, Mark Minasi
- OSP433, Deep Dive on SharePoint Ribbon Development and Extensibility, Israel Vega and Richard diZerega
Nagu juuresolevalt pildil näha võib, siis keskendusin peamiselt SharePointile, aga mujal oli ka huvitavaid asju. Käin neid jupikaupa ka läbi ja huvitavamatest teen eraldi kokkuvõtted.
Lisaks loengutele veetsin piisavalt aega ka HOL sektsioonis, jätkuvalt siis SP ja natuke ka BI teemadel. Lisaks loomulikult TechExpo aladel uudistamine ja muu seltskondlik tegevus. Päevad venisid lõppkokkuvõttes üsna pikaks…
Muuseas oleks Amsterdam RAI keskus täiesti hiilgav koht sise-o läbiviimiseks, ma hakkasin umbes teise päeva lõunaks aru saama, kust kuhu saab.
Veelkord – väga äge oli.