{"id":112,"date":"2007-11-27T08:40:57","date_gmt":"2007-11-27T03:10:57","guid":{"rendered":"http:\/\/thekua.com\/atwork\/2007\/11\/26\/onboarding-strategy-catalogue-of-patterns-applied\/"},"modified":"2007-11-27T08:51:04","modified_gmt":"2007-11-27T03:21:04","slug":"onboarding-strategy-catalogue-of-patterns-applied","status":"publish","type":"post","link":"https:\/\/thekua.com\/atwork\/2007\/11\/onboarding-strategy-catalogue-of-patterns-applied\/","title":{"rendered":"Onboarding Strategy: Catalogue of Patterns Applied"},"content":{"rendered":"<p><strong>Its Purpose?<\/strong><br \/>\nExplicitly identifying code patterns in the code base as well as how and why they&#8217;re used helps new team members learn more about the system faster. Explaining the system in terms of well known patterns helps new team members identify variants and where patterns are being abused\/mis-applied.<\/p>\n<p><strong>How Did We Execute It?<\/strong><br \/>\nIn trying to hand over some work to the support group, the team assembled a list of all patterns used in the system. We listed the pattern name, a reference to the pattern (either book or web link) and how it was being used in the system. We also wrote down the benefits or concerns each was bringing to the codebase. We listed each of these on the team wiki on a page called &#8220;System Patterns&#8221;. <\/p>\n<p>When new people joined, I would print a copy of the wiki page, and then during or after walking through the <a href=\"http:\/\/thekua.com\/atwork\/2007\/07\/03\/onboarding-strategy-visible-architecture\/\">System Architecture<\/a>, helped them understand where they might use them or see them being used. <\/p>\n<div style=\"text-align:center\"><img src='http:\/\/thekua.com\/atwork\/wp-content\/uploads\/2007\/11\/catalogue.jpg' alt='Catalogue' \/><\/div>\n<blockquote><p>Image taken from <a href=\"http:\/\/www.flickr.com\/photos\/hubmedia\/\">Hubmedia&#8217;s photostream<\/a> flickr stream under the Creative Commons Licence.<\/p><\/blockquote>\n<p><strong>Why Is It Important?<\/strong><br \/>\nPatterns are excellent vehicles for communicating intent and solutions to common problems. Identifying and explaining the system as a set of patterns helps new team members understand the system in much larger chunks, making it easier for new people to focus on absorbing incidental information. It also allows them to focus less on how the code works together, and more importantly focus on what the code does and what value it brings.<\/p>\n<p>Well known pattern names help to identify common problems in the domain, and what the team&#8217;s general approach is for solving them. <\/p>\n<p>The number of patterns also indicate a qualitative attribute of your system. If you have a very large system, and only a small number of patterns it potentially indicates that everything is done in very different ways and needs some refactoring. Alternatively if these small number of patterns are used everywhere in the system, then it could already be a very well refactored system. I would also consider looking at a very large set of patterns for a small code base as that might indicate over-design and excessive complexity. In both cases, I would watch out for patterns with only a handful of uses to see if they are actually useful or not.<\/p>\n<p><strong>Things To Watch Out For<\/strong><br \/>\nSome new team members may not understand all the patterns used in the system. Giving them reading references helps though you may need to do more work to help them understand the pattern. <\/p>\n<p><strong>What I Might Try Next Time<\/strong><br \/>\nI would revisit this list of patterns with new team members after they&#8217;d been in the code base for a while. I think although it&#8217;s useful to introduce the catalogue early, it would help to reinforce some of the larger picture after they&#8217;ve had an opportunity to discover more detail on their own.<\/p>\n<p>Next time I would also try to link to some part of the codebase that implements the &#8220;ideal&#8221; version of the pattern and the benefits the team reaps. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Its Purpose? Explicitly identifying code patterns in the code base as well as how and why they&#8217;re used helps new team members learn more about the system faster. Explaining the system in terms of well known patterns helps new team members identify variants and where patterns are being abused\/mis-applied. How Did We Execute It? In [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16,3,20,13],"tags":[],"class_list":["post-112","post","type-post","status-publish","format-standard","hentry","category-coaching","category-learning","category-onboarding-strategies","category-teams","post-preview"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Onboarding Strategy: Catalogue of Patterns Applied - patkua@work<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thekua.com\/atwork\/2007\/11\/onboarding-strategy-catalogue-of-patterns-applied\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Onboarding Strategy: Catalogue of Patterns Applied - patkua@work\" \/>\n<meta property=\"og:description\" content=\"Its Purpose? Explicitly identifying code patterns in the code base as well as how and why they&#8217;re used helps new team members learn more about the system faster. Explaining the system in terms of well known patterns helps new team members identify variants and where patterns are being abused\/mis-applied. How Did We Execute It? In [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thekua.com\/atwork\/2007\/11\/onboarding-strategy-catalogue-of-patterns-applied\/\" \/>\n<meta property=\"og:site_name\" content=\"patkua@work\" \/>\n<meta property=\"article:published_time\" content=\"2007-11-27T03:10:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2007-11-27T03:21:04+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/thekua.com\/atwork\/wp-content\/uploads\/2007\/11\/catalogue.jpg\" \/>\n<meta name=\"author\" content=\"Patrick\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@patkua\" \/>\n<meta name=\"twitter:site\" content=\"@patkua\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Patrick\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thekua.com\\\/atwork\\\/2007\\\/11\\\/onboarding-strategy-catalogue-of-patterns-applied\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thekua.com\\\/atwork\\\/2007\\\/11\\\/onboarding-strategy-catalogue-of-patterns-applied\\\/\"},\"author\":{\"name\":\"Patrick\",\"@id\":\"https:\\\/\\\/thekua.com\\\/atwork\\\/#\\\/schema\\\/person\\\/c942203c9ed3ff9e21c6c49a996ea3ae\"},\"headline\":\"Onboarding Strategy: Catalogue of Patterns Applied\",\"datePublished\":\"2007-11-27T03:10:57+00:00\",\"dateModified\":\"2007-11-27T03:21:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thekua.com\\\/atwork\\\/2007\\\/11\\\/onboarding-strategy-catalogue-of-patterns-applied\\\/\"},\"wordCount\":527,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/thekua.com\\\/atwork\\\/2007\\\/11\\\/onboarding-strategy-catalogue-of-patterns-applied\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/thekua.com\\\/atwork\\\/wp-content\\\/uploads\\\/2007\\\/11\\\/catalogue.jpg\",\"articleSection\":[\"Coaching\",\"Learning\",\"Onboarding Strategies\",\"Teams\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/thekua.com\\\/atwork\\\/2007\\\/11\\\/onboarding-strategy-catalogue-of-patterns-applied\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thekua.com\\\/atwork\\\/2007\\\/11\\\/onboarding-strategy-catalogue-of-patterns-applied\\\/\",\"url\":\"https:\\\/\\\/thekua.com\\\/atwork\\\/2007\\\/11\\\/onboarding-strategy-catalogue-of-patterns-applied\\\/\",\"name\":\"Onboarding Strategy: Catalogue of Patterns Applied - patkua@work\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thekua.com\\\/atwork\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thekua.com\\\/atwork\\\/2007\\\/11\\\/onboarding-strategy-catalogue-of-patterns-applied\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thekua.com\\\/atwork\\\/2007\\\/11\\\/onboarding-strategy-catalogue-of-patterns-applied\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/thekua.com\\\/atwork\\\/wp-content\\\/uploads\\\/2007\\\/11\\\/catalogue.jpg\",\"datePublished\":\"2007-11-27T03:10:57+00:00\",\"dateModified\":\"2007-11-27T03:21:04+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/thekua.com\\\/atwork\\\/#\\\/schema\\\/person\\\/c942203c9ed3ff9e21c6c49a996ea3ae\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thekua.com\\\/atwork\\\/2007\\\/11\\\/onboarding-strategy-catalogue-of-patterns-applied\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thekua.com\\\/atwork\\\/2007\\\/11\\\/onboarding-strategy-catalogue-of-patterns-applied\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/thekua.com\\\/atwork\\\/2007\\\/11\\\/onboarding-strategy-catalogue-of-patterns-applied\\\/#primaryimage\",\"url\":\"http:\\\/\\\/thekua.com\\\/atwork\\\/wp-content\\\/uploads\\\/2007\\\/11\\\/catalogue.jpg\",\"contentUrl\":\"http:\\\/\\\/thekua.com\\\/atwork\\\/wp-content\\\/uploads\\\/2007\\\/11\\\/catalogue.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thekua.com\\\/atwork\\\/2007\\\/11\\\/onboarding-strategy-catalogue-of-patterns-applied\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thekua.com\\\/atwork\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Onboarding Strategy: Catalogue of Patterns Applied\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thekua.com\\\/atwork\\\/#website\",\"url\":\"https:\\\/\\\/thekua.com\\\/atwork\\\/\",\"name\":\"patkua@work\",\"description\":\"The intersection of technology and leadership\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thekua.com\\\/atwork\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thekua.com\\\/atwork\\\/#\\\/schema\\\/person\\\/c942203c9ed3ff9e21c6c49a996ea3ae\",\"name\":\"Patrick\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2ef85a5f91c2aac13efb3ac90077b4db7f8883cafd6e60f2bcecba6b092d4011?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2ef85a5f91c2aac13efb3ac90077b4db7f8883cafd6e60f2bcecba6b092d4011?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2ef85a5f91c2aac13efb3ac90077b4db7f8883cafd6e60f2bcecba6b092d4011?s=96&d=mm&r=g\",\"caption\":\"Patrick\"},\"sameAs\":[\"http:\\\/\\\/thekua.com\\\/atwork\"],\"url\":\"https:\\\/\\\/thekua.com\\\/atwork\\\/author\\\/patrick\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Onboarding Strategy: Catalogue of Patterns Applied - patkua@work","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thekua.com\/atwork\/2007\/11\/onboarding-strategy-catalogue-of-patterns-applied\/","og_locale":"en_US","og_type":"article","og_title":"Onboarding Strategy: Catalogue of Patterns Applied - patkua@work","og_description":"Its Purpose? Explicitly identifying code patterns in the code base as well as how and why they&#8217;re used helps new team members learn more about the system faster. Explaining the system in terms of well known patterns helps new team members identify variants and where patterns are being abused\/mis-applied. How Did We Execute It? In [&hellip;]","og_url":"https:\/\/thekua.com\/atwork\/2007\/11\/onboarding-strategy-catalogue-of-patterns-applied\/","og_site_name":"patkua@work","article_published_time":"2007-11-27T03:10:57+00:00","article_modified_time":"2007-11-27T03:21:04+00:00","og_image":[{"url":"http:\/\/thekua.com\/atwork\/wp-content\/uploads\/2007\/11\/catalogue.jpg","type":"","width":"","height":""}],"author":"Patrick","twitter_card":"summary_large_image","twitter_creator":"@patkua","twitter_site":"@patkua","twitter_misc":{"Written by":"Patrick","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thekua.com\/atwork\/2007\/11\/onboarding-strategy-catalogue-of-patterns-applied\/#article","isPartOf":{"@id":"https:\/\/thekua.com\/atwork\/2007\/11\/onboarding-strategy-catalogue-of-patterns-applied\/"},"author":{"name":"Patrick","@id":"https:\/\/thekua.com\/atwork\/#\/schema\/person\/c942203c9ed3ff9e21c6c49a996ea3ae"},"headline":"Onboarding Strategy: Catalogue of Patterns Applied","datePublished":"2007-11-27T03:10:57+00:00","dateModified":"2007-11-27T03:21:04+00:00","mainEntityOfPage":{"@id":"https:\/\/thekua.com\/atwork\/2007\/11\/onboarding-strategy-catalogue-of-patterns-applied\/"},"wordCount":527,"commentCount":0,"image":{"@id":"https:\/\/thekua.com\/atwork\/2007\/11\/onboarding-strategy-catalogue-of-patterns-applied\/#primaryimage"},"thumbnailUrl":"http:\/\/thekua.com\/atwork\/wp-content\/uploads\/2007\/11\/catalogue.jpg","articleSection":["Coaching","Learning","Onboarding Strategies","Teams"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/thekua.com\/atwork\/2007\/11\/onboarding-strategy-catalogue-of-patterns-applied\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/thekua.com\/atwork\/2007\/11\/onboarding-strategy-catalogue-of-patterns-applied\/","url":"https:\/\/thekua.com\/atwork\/2007\/11\/onboarding-strategy-catalogue-of-patterns-applied\/","name":"Onboarding Strategy: Catalogue of Patterns Applied - patkua@work","isPartOf":{"@id":"https:\/\/thekua.com\/atwork\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thekua.com\/atwork\/2007\/11\/onboarding-strategy-catalogue-of-patterns-applied\/#primaryimage"},"image":{"@id":"https:\/\/thekua.com\/atwork\/2007\/11\/onboarding-strategy-catalogue-of-patterns-applied\/#primaryimage"},"thumbnailUrl":"http:\/\/thekua.com\/atwork\/wp-content\/uploads\/2007\/11\/catalogue.jpg","datePublished":"2007-11-27T03:10:57+00:00","dateModified":"2007-11-27T03:21:04+00:00","author":{"@id":"https:\/\/thekua.com\/atwork\/#\/schema\/person\/c942203c9ed3ff9e21c6c49a996ea3ae"},"breadcrumb":{"@id":"https:\/\/thekua.com\/atwork\/2007\/11\/onboarding-strategy-catalogue-of-patterns-applied\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thekua.com\/atwork\/2007\/11\/onboarding-strategy-catalogue-of-patterns-applied\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/thekua.com\/atwork\/2007\/11\/onboarding-strategy-catalogue-of-patterns-applied\/#primaryimage","url":"http:\/\/thekua.com\/atwork\/wp-content\/uploads\/2007\/11\/catalogue.jpg","contentUrl":"http:\/\/thekua.com\/atwork\/wp-content\/uploads\/2007\/11\/catalogue.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/thekua.com\/atwork\/2007\/11\/onboarding-strategy-catalogue-of-patterns-applied\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thekua.com\/atwork\/"},{"@type":"ListItem","position":2,"name":"Onboarding Strategy: Catalogue of Patterns Applied"}]},{"@type":"WebSite","@id":"https:\/\/thekua.com\/atwork\/#website","url":"https:\/\/thekua.com\/atwork\/","name":"patkua@work","description":"The intersection of technology and leadership","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thekua.com\/atwork\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/thekua.com\/atwork\/#\/schema\/person\/c942203c9ed3ff9e21c6c49a996ea3ae","name":"Patrick","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/2ef85a5f91c2aac13efb3ac90077b4db7f8883cafd6e60f2bcecba6b092d4011?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2ef85a5f91c2aac13efb3ac90077b4db7f8883cafd6e60f2bcecba6b092d4011?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2ef85a5f91c2aac13efb3ac90077b4db7f8883cafd6e60f2bcecba6b092d4011?s=96&d=mm&r=g","caption":"Patrick"},"sameAs":["http:\/\/thekua.com\/atwork"],"url":"https:\/\/thekua.com\/atwork\/author\/patrick\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/thekua.com\/atwork\/wp-json\/wp\/v2\/posts\/112","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thekua.com\/atwork\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thekua.com\/atwork\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thekua.com\/atwork\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thekua.com\/atwork\/wp-json\/wp\/v2\/comments?post=112"}],"version-history":[{"count":0,"href":"https:\/\/thekua.com\/atwork\/wp-json\/wp\/v2\/posts\/112\/revisions"}],"wp:attachment":[{"href":"https:\/\/thekua.com\/atwork\/wp-json\/wp\/v2\/media?parent=112"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thekua.com\/atwork\/wp-json\/wp\/v2\/categories?post=112"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thekua.com\/atwork\/wp-json\/wp\/v2\/tags?post=112"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}