Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Professional Software Development

Professional Software Development

Managing cognitive load and complexity are the hallmarks of a professional software developer

Avatar for Marty Nelson

Marty Nelson

April 08, 2017

Other Decks in Technology

Transcript

  1. Q uestions: W hen does s oftw ar e dev

    elop ment become difficu lt? W hat ar e t he hallmar ks of a pr ofess ional?
  2. W hen is software development difficult? A mbigu ity and

    U nknow ns C omp lex ity (many r elat ions hips betw een many p arts) N ot u nderst and ex ist ing code or not r emember ing w hat it does C onfus ing t o s ee w hat's going on w it h code y ou'r e wr it ing C hanging or adding t hings br eaks ot her t hings w it hout w ar ning H ar d‑t o‑deal‑w it h t eammat es
  3. W hat is the root of most of these? T

    hings get har d t o t hink about "C ognit iv e L oad" r efers t o t he t ot al amou nt of ment al effort being us ed A heavy cognit iv e load typ ically cr eat es err or or s ome kind of int er fer ence in t he t as k at hand. A heavy cognit iv e load can als o incr eas e st er eotyp ing... an ext ens ion of t he F u ndament al A ttr ibut ion E rr or w hich als o incr eas es in fr equ ency w it h heav ier cognit iv e load. ‑ wikip edi a
  4. W hat can we do about it? A dopt pr

    ocess es, pr act ices and p att er ns t hat r edu ce cognit iv e load. O pt imiz e t he s ignal‑t o‑nois e r at io ‑ Cory Hous e (O ur s ecr et w eap on is modularity, mor e on t his lat er...)
  5. W hat is a professional software developer? S omeone w

    ho pr ior it iz es and adher es t o t he object iv e of r edu ced cognit iv e load, bot h for t he pr es ent t eam and t he futur e t eam w ho w ill maint ain and sust ain t he code.
  6. W hat is a non‑professional? S omeone w ho s

    eeks immediat e gr at ificat ion (gett ing it t o w or k) w it hout r egar d for t he declining st at e of t he syst em, ev en w hen t hat degr adat ion is caus ing immediat e, t angable imp ediments t o t he st at ed goal of "gett ing it t o w or k".
  7. N ovice P rofessional C ode F or t he

    C omput er F or P eop le P roblems B eliev es du e t o lack of t echnical know ledge P r ev ent ed by keep ing t he syst em in good healt h F eatures A dds featur es w hile gr ow ing comp lex ity M anages (r edu ces) comp lex ity as featur es ar e added C omplexity E xp onent ial L inear or S t at ic R esult P ace and Q u ality D ecline P ace and Q u ality ar e S ust ained
  8. T ech's D ark S ecret M any, many dev

    elop ers, and ev en w hole or ganiz at ions, do not code pr ofess ionally. P r ofess ionalis m, clean coding, is t he biggest gap betw een t he best dev elop ers and t he r est. (I t is not t he qu ant ity of t echnical know ledge acqu ir ed.)
  9. P rofessionalism You ar e happ ier and mor e

    pr odu ct iv e M akes p eop le w ant y ou t o w or k for t hem S ets y ou ap art
  10. C hoosing Your O utcome F ight as You T

    r ain, T r ain as You F ight ‑ US Army H ow y ou w or k in t his class dict at es how y ou w ill w or k in t he industry (and how y ou w ill be v iew ed w hen y ou'r e int erv iew ed): M ake sur e y ou are pr act icing P r act ice t he r ight t hings
  11. W hat T his M eans for 401 W e

    value practice and process over getting it to work. I t's not t hat w e don't car e about gett ing it t o w or k, w e just know focus ing on t he for mer cr eat es t he best condit ions for t he lat er.
  12. M odularity M odu lar ity r edu ces cognit

    iv e load by r edu cing lar ge p ieces int o s maller p ieces w hile s imu lat aneous ly looking for w ays t o r edu ce t he ov er all nu mber of p ieces. W e app ly modu lar ity in tw o ar eas: M odularity of C ode H ow w e wr it e and t hink about code. M odularity of P rocess H ow w e go about wr it ing code and or ganz ing our w or k.