CodeRetreat í SEEK: Clean Code vs Comfort Zone

Það er mánudagsmorgunn. Þetta er ekki dæmigerður verktaki vingjarnlegur tími til að sparka sjálfan þig beint út úr kóðunar þægindasvæðinu þínu og fara í eXtreme Learning í heilan dag.

Samt er þetta það sem 20 hugrökku hugbúnaðarverkfræðingar hjá SEEK og 3 gestakóðarar frá #DevOpsGirls samfélaginu skráðu sig til 16. apríl 2018. Þeir höfðu enga hugmynd um hvað þeir fengu sjálfir í. Agile & vaxtarhugsanir til sigurs!

Par sem kóða Conway's Life of Life eftir TDD og XP venjum

„Æfðu og bættu handverkið.“

CodeRetreat er daglegur atburður sem er endurtekinn og beinist að því að æfa grundvallaratriði í hugbúnaðarþróun, nota nokkrar af XP (eXtreme forritun) starfsháttum, svo sem Test Driven Development (TDD), Pair Programming and Simple Design. Markmiðið er að halda áfram að verða betri í að draga úr kostnaði við breytingar og skrifa kóða sem er opinskátt að samþykkja breytingar.

Þrátt fyrir að markmiðið fyrir hönnuðina á hverjum degi sé að klára næsta afhentan, þá er áherslan fyrir forritara í kóðaraðferð að æfa og læra - ekki klára.

Eftir að við minntum okkur á þessi grundvallaratriði um hreinan og aðlaganlegan kóða hoppuðum við beint inn í kóðunartímann.

Ævintýrið sem beðið var eftir liðinu var að takast á við Conway's Game of Life í 4 lotum, í hvert skipti sem byrjað var á ný, í hvert skipti að skipta um pörunarfélaga, í hvert skipti með mismunandi skemmtilegum áskorunum (aka þvingun). Okkur langaði til að sparka verkfræðingunum okkar úr þægindasvæðinu sínu fyrir eXtreme nám eftir allt saman!

Byrjum!

Sérhver fundur stendur yfir í 45 mínútur. Eftir hverja lotu eyða liðunum kóðanum. Oft er þetta þegar sverið byrjar. Tilgangurinn með því að eyða kóða þeirra er að halda sterkri áherslu á nám. Stuttu tímaramminn gerir það að verkum að þátttakendur geta ekki lokið leik lífsins Conway. Í ljósi þess að allir eru að eyða kóðanum sínum eftir hverja lotu skiptir ekki máli hvort kóðinn er virkilega hræðilegur eða virkilega góður. Þetta leiðir til mikils frelsis til að gera tilraunir með að prófa mismunandi aðferðir við erfðaskrá og TDD.

Fundur # 1: Hita upp

Að kynnast vandanum, TDD og pörun.

Upphitun()
{
   timeRemaining = teljari (45, time.minutes)
   meðan (timeRemaining)
   {
     vinna í pörum()
     codeSolution ()
   }
   deleteAllCode ()
}

Fundur # 2: Ping Pong parun

Skiptir um að skrifa mistök próf eða framkvæmd.

pingPongPairing ()
{
   timeRemaining = teljari (45, time.minutes)
   meðan (timeRemaining)
   {
     driver.writeFailingTest ()
     skiptibifreið ()
     driver.makeTestPass ()
     driver.refactor ()
   }
   deleteAllCode ()
}
Eitt af ping pong pörunum TDD’ing

Fundur nr. 3: Þagga í pörun

Engin tala á þinginu (undantekning: óþekktir á tungumálinu / IDE).

mutePairing ()
{
  personA.canTalk = ósatt
  personB.canTalk = ósatt
  pingPongPairing ()
}

Fundur # 4: Baby Steps

Kóðunartími - kassar með 4 mín til að skrifa og fremja próf sem standast.

babySteps ()
{
  timeRemaining = teljari (45, time.minutes)
  meðan (timeRemaining)
  {
    stepTimer = teljari (4, time.minutes)
    reyndu {
      writeFailingTest ()
      makeTestPass ()
      gitCommit ()
    }
    veiða (timeOut)
    {
      gitRevert ()
    }
  }
  deleteAllCode ()
}
Tíminn tikkar!

Fræðandi nám á 3 stigum

CodeRetreat miðar að því að hámarka nám með því að afhjúpa pörin fyrir flóknu vandamáli en henda inn þvingunum sem ögrandi fundarsniðum.

Nám á mörgum stigum. Mynd af Element5 Digital á Unsplash
CodeRetreat hefur bætt færni mína og feril minn meira en nokkur önnur aðgerð sem ég hef nokkru sinni gert. Jafnvel sem leiðbeinandi hef ég lært svo mikið. (Jim Hurne, hugbúnaðarverkfræðingur og byggir hugbúnaðarverkfræðingur í Bandaríkjunum)

Við festum lærdóm fólks með því að taka okkur tíma til að endurspegla og deila þeim sem hópi: Fræðandi nám = Session + Retro.

Þrjú námstig yfir daginn voru á pörun, TDD og endurtekningu yfir sama vandamálinu:

  • Pörun við mismunandi fólk yfir daginn leiðir til margþættra lærdóma frá mismunandi aðferðum við sama vandamál - hugmyndalega og dagskrárgerð (forritunarmál, hugbúnaðargerð, IDE, verkfæri, rannsóknir, samskiptastíll).
  • Með því að kóða sama vandamál aftur og aftur komst liðinu að því að það er engin leið til að byrja að hanna, kóða og prófa lausn. Upphafleg ákvörðun um að byrja utanhúss (að hanna umhverfið fyrst) eða að innan - (útbúa leikreglurnar fyrst) ákvarðaði TDD nálgun liðsins og hversu mikið þeir myndu gera og hversu fljótt þeir myndu læra um og staðfesta hönnun sína .
  • Í gegnum prófdrifið þróun (TDD) fókus fundanna var skorað á teymin að hugsa mjög lítið. Það voru fullt af „aha“ augnablikum um erfiðleika þessarar aga og mikilvægara, um ávinninginn af því að fylgja þessari nálgun, þar sem TDD hjálpar til við að leiðbeina hönnun lausnarinnar, án þess að ofvirkja lausnina.
    Í Agile og Lean vinnum við með teymum til að einbeita okkur að því að draga úr úrgangi fyrir alla líftíma vöruflutninga. Við skiptum niður vandamálum í smærri klumpur og leggjum áherslu á að afhenda viðskiptavininum verðmætustu hlutina til að auka hraða og gildi námsins.
    TDD gerir kleift að draga úr úrgangi í hugbúnaðarverkfræði með því að einbeita sér aðeins að því að byggja upp það sem skiptir máli og er mikilvægt. Allt á meðan það leiðir til hreinni og aðlögunarhæfari kóða. Þetta er mikilvæg lexía fyrir hugbúnaðarverkfræðinga í heimi þar sem hraði, aðlögunarhæfni og gildi viðskiptavina gera eða brjóta árangur einstaklinga, teymis og fyrirtækja.
Liðið fer saman til að deila lærdómi sínum og athugunum

Hvað sögðu hugbúnaðarverkfræðingarnir okkar?

Ping Pong parun: Finndu göt

Það var dýrmætt að horfa á einhvern annan skrifa kóða bara til að standast einingaprófin mín, þar sem án forsendna um og samhengi sem var bakað í lausn þeirra sýndi það göt í prófunum mínum að ég hef kannski ekki tekið eftir því að vinna einleik. (J. J.)

Silent Pairing: svipmikill kóði fyrir framtíðar sjálf

Frá fundi 3 þar sem við gátum ekki talað við félaga okkar - Þetta er mjög afstætt því að þurfa að skrifa tjáningarkóða þar sem framtíðarsjálf okkar eða einhver annar væri svipaður þöglum félaga okkar sem verður bara að hafa vit á því hvað kóðinn þýðir . (A.K.)

TDD: Að gera það rangt

Fundurinn fékk okkur til að hugsa / endurskoða hvernig við erum að gera TDD. Við vorum að vinna í dæmisögu um TDD og við höfðum hannað öll prófatriðin okkar framan af, ég var alltaf að velta fyrir mér af hverju við vorum ekki með neina áþreifanlega afköst (kóða) jafnvel eftir svo marga daga vinnu. Núna hef ég svarið, við gerðum TDD rangt. Það eru ekki próf fyrst, við höfum nú endurflutt það og byrjað að skrifa eitt próf til að hrinda því í framkvæmd og halda síðan áfram. (P.S.)
Styrkur er áþreifanlegur á erfiða „mállausu pörun“ fundinum

Lærdómslærdómar lært

Það voru líka lærdómur fyrir okkur sem leiðbeinendur.

TDD reiðubúin
Ein stærri áskorun liðanna okkar var upphafsuppsetning TDD umhverfisins. Við báðum fólk að koma tilbúinn með fartölvuna sína, setja upp með IDE að eigin vali, TDD tilbúinn og git settur upp. En það var ekki nógu skýrt. Sum lið náðu ekki einu sinni að taka þátt í æfingu þar sem þau tóku allan tímann að setja upp umhverfi sitt.

Næst næst munum við bjóða upp á meiri stuðning við teymi okkar framan af. Sérstaklega fyrir innri codeRetreat. Fyrir ytri codeRetreat værum við skýrari um hvað TDD-tilbúið umhverfi þýðir og hvernig þeir geta prófað það til að vera codeRetreat tilbúið :)

Slembiraðað par
Hugmynd sem flaut til okkar eftir daginn var að finna leiki til að slemba parið af handahófi. Auðvitað hafa menn tilhneigingu til að parast við fólk í kringum sig eða fólk sem það er vant að vinna með, svo það er gagnlegt að finna skemmtilegar leiðir til að vinna á móti þessu.

Auðveldun í aðgerð - tími til að stöðva og eyða kóðanum

Fjölbreytni & #DevOpsGirls

Við vorum með fjölbreyttan hóp fólks sem mætti ​​á viðburðinn. Allt frá yngri félaga hugbúnaðarhönnuðum okkar til helstu forstöðumanna þróunaraðila (einnig þekkt sem tæknifyrirtæki í öðrum fyrirtækjum). Við vorum með frábært hlutfall kvenna í tækni viðstaddra með 8 af 20 þátttakendum. Þetta er miklu hærra en venjulegt <10% hlutfall í einhverju liði.

CodeRetreat leiðbeinendur Victoria Schiffer, Michelle Gleeson með #DevOpsGirls hugbúnaðarverkfræðingum Edit, Padmavathi og Natalia

Við vorum ánægð með að styðja Melbourne #DevOpsGirls samfélagið með því að opna innri þjálfun okkar fyrir 3 utanaðkomandi hugbúnaðarverkfræðingum. Við nutum þess að láta þá leggja sitt af mörkum í hönnun og verkfræðikunnáttu og fyrir pörin okkar að læra ásamt reynslu sinni og endurgjöf.

Það var ótrúlegur vibe í herberginu og nokkrar frábærar samræður þar sem allir reyndu að leysa sama vandamálið meðan þeir voru mótmælt af sömu þvingunum.

Niðurstaða

Í lok dagsins voru allir þreyttir þegar þeir hugleiddu áskoranir sínar og reynslu. Við vonum líka að codeRetreat okkar hafi hjálpað okkur að ná tilgangi SEEK með því að hjálpa hugbúnaðarverkfræðingunum okkar að lifa meira fullnægjandi og afkastamikilli starfsævi og hjálpa okkar eigin samtökum að ná árangri.

Hef áhuga á codeRetreats - hér er meira!

www.coderetreat.org
Lærðu meira um codeRetreats, sögu þeirra, hvernig hýsa eða auðvelda einn og hvar á að finna næsta viðburð nálægt þér.

Næsti alheimsdagur CodeRetreat #gdcr er áætlaður 17. nóvember 2018. Vistaðu dagsetninguna, skoðaðu hvort það verður #gdcr viðburður á þínu svæði og fylgdu @coderetreat á twitter eða vertu með í slaka teymi hugbúnaðargerðarmanna.

Til að lesa upp aðra innri CodeRetreat keyrslu á REA stöðva þessa bloggfærslu: http://rea.tech/tdd-in-bash-aka-our-1st-internal-code-retreat-rea/

Sérstakar þakkir til Michelle Gleeson fyrir að hýsa daginn með mér og parastemmninguna á gervi-númerum fundarins. Einnig til Jo Piechota fyrir að vera meistari í viðburðinum. Einnig þakkir til SEEK - Tim Smart & Craig Penfold fyrir að styrkja viðburðinn fyrir hugbúnaðarverkfræðinga okkar. Og síðast en ekki síst þakkir til Theresu Neate fyrir að hjálpa okkur að styðja #DevOpsGirls með því að bjóða 3 utanaðkomandi hugbúnaðarverkfræðingum #DevOpsGirls.