{"id":13224,"date":"2020-09-03T20:58:39","date_gmt":"2020-09-03T20:58:39","guid":{"rendered":"https:\/\/slack.engineering\/?p=13224"},"modified":"2020-09-03T21:43:13","modified_gmt":"2020-09-03T21:43:13","slug":"starting-an-initiative","status":"publish","type":"post","link":"https:\/\/slack.engineering\/starting-an-initiative\/","title":{"rendered":"Starting an Initiative"},"content":{"rendered":"<p>Early in my career at Slack I was looking for ways to have an impact.\u00a0 I asked my manager what I could work on to add value to the team.\u00a0 She said that we wanted to catch bugs earlier in the development process and that Cypress testing might be one way to do this.\u00a0 I began exploring Cypress and eventually this work developed into a reliability initiative.<\/p>\n<p>Spinning up new initiatives is tricky, and I learned some lessons along the way that might be applicable to people in other organizations. In this post I&#8217;ll describe the process I used to find opportunities, build consensus, justify the cost, and ultimately gain support from stakeholders.<\/p>\n<h2>Finding value to add<\/h2>\n<p>You may or may not get a straightforward answer about where to add value like I did.\u00a0 To identify a place to add value think about a few questions:<\/p>\n<ol>\n<li>What is the team doing well?<\/li>\n<li>Where is my team struggling?<\/li>\n<li>What am I good at?<\/li>\n<li>What am I interested in learning?<\/li>\n<\/ol>\n<p>You probably don\u2019t need to focus on what the team is doing well.\u00a0 Look at the remaining three questions to <b>find an intersection between where the team is struggling and what you are good at or interested in<\/b>.\u00a0 Run your ideas by a manager or another engineer to validate that they seem like a good place to start. <\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"3584\" height=\"2240\" src=\"https:\/\/slack.engineering\/wp-content\/uploads\/sites\/7\/2020\/08\/Screen-Shot-2020-08-04-at-2.11.23-PM.png?w=640\" alt=\"Example Cypress test\" class=\"alignnone size-medium wp-image-13229\" srcset=\"https:\/\/slack.engineering\/wp-content\/uploads\/sites\/7\/2020\/08\/Screen-Shot-2020-08-04-at-2.11.23-PM.png 3584w, https:\/\/slack.engineering\/wp-content\/uploads\/sites\/7\/2020\/08\/Screen-Shot-2020-08-04-at-2.11.23-PM.png?resize=640,400 640w, https:\/\/slack.engineering\/wp-content\/uploads\/sites\/7\/2020\/08\/Screen-Shot-2020-08-04-at-2.11.23-PM.png?resize=768,480 768w, https:\/\/slack.engineering\/wp-content\/uploads\/sites\/7\/2020\/08\/Screen-Shot-2020-08-04-at-2.11.23-PM.png?resize=1280,800 1280w, https:\/\/slack.engineering\/wp-content\/uploads\/sites\/7\/2020\/08\/Screen-Shot-2020-08-04-at-2.11.23-PM.png?resize=1536,960 1536w, https:\/\/slack.engineering\/wp-content\/uploads\/sites\/7\/2020\/08\/Screen-Shot-2020-08-04-at-2.11.23-PM.png?resize=2048,1280 2048w, https:\/\/slack.engineering\/wp-content\/uploads\/sites\/7\/2020\/08\/Screen-Shot-2020-08-04-at-2.11.23-PM.png?resize=380,238 380w, https:\/\/slack.engineering\/wp-content\/uploads\/sites\/7\/2020\/08\/Screen-Shot-2020-08-04-at-2.11.23-PM.png?resize=800,500 800w, https:\/\/slack.engineering\/wp-content\/uploads\/sites\/7\/2020\/08\/Screen-Shot-2020-08-04-at-2.11.23-PM.png?resize=1160,725 1160w\" sizes=\"auto, (max-width: 3584px) 100vw, 3584px\" \/><\/p>\n<p>In my case the team was looking to uncover bugs earlier; any bug we could proactively find was one a customer wouldn\u2019t stumble on.\u00a0 Having never done any automation testing before I was interested in learning Cypress.\u00a0 I had already had some conversations with my manager about exploring Cypress as a way to address the reliability issues.\u00a0 I now knew where there was potential to add value and began focusing extra cycles on learning about Cypress and how it was currently used.<\/p>\n<h2>Getting buy-in<\/h2>\n<p>The next step is gaining the support of stakeholders.\u00a0 There are always costs to starting an initiative, whether that\u2019s people taken away from other existing work or just the opportunity cost of choosing one direction instead of another. Making it easy for your stakeholders to justify this initiative to <i>their<\/i> own stakeholders makes it that much more likely you\u2019ll get the green light.\u00a0 Gaining support is not a competition <i>against<\/i> your stakeholders, it\u2019s a collaboration <i>with<\/i> them.<\/p>\n<p>To start, compile data to help explain what you want to do and to show why it\u2019s more valuable than other ways that you could spend your time.\u00a0 Involve other engineers early.\u00a0 Reaching a critical mass of people ready and willing to work on something often contributes to making the value apparent.\u00a0 Realize that change takes time, and you will likely have to persevere before things take off.<\/p>\n<p>In the initiative I worked on I started a public Slack channel where I\u2019d broadcast my findings about Cypress and document small successes along the way.\u00a0 I would tag stakeholders on messages showing small improvements I made or data about how Cypress could have prevented incidents we encountered.\u00a0 Over time this led to organic conversation about Cypress in the channel.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1678\" height=\"936\" src=\"https:\/\/slack.engineering\/wp-content\/uploads\/sites\/7\/2020\/08\/2020-08-04_cypress.gif?w=640\" alt=\"Cypress terminal output\" class=\"alignnone size-medium wp-image-13230\" \/><\/p>\n<p>Documenting what I was doing in a public channel made the initiative possible.\u00a0 This may be a bit counterintuitive; showing your process can be scary as it lets others see missteps that happen along the way.\u00a0 That\u2019s not bad though, as it humanizes the entire process and let\u2019s people understand more fully where you or the organization are (and where it would be best to get it to).\u00a0 <b>A public forum provides a place for your stakeholders to really understand what you want to start<\/b>, and eventually it becomes a place to drive it forward.<\/p>\n<h2>Growing and tracking<\/h2>\n<p>An initiative can\u2019t just be you.\u00a0 To have sustained impact on the business (and value for your stakeholders) it will need to grow.\u00a0 <b>Growth can be organic or intentional,<\/b> here are some ideas for both.<\/p>\n<p>Organic growth comes from raising awareness: conversations with other engineers, demoing your work to your team, the public documentation of your process.\u00a0 Any way that you can raise awareness about what you are doing provides an opportunity for organic growth.\u00a0 In my case other engineers began posting in the public channel I had used to document the process.\u00a0 They began to associate that channel with Cypress.\u00a0 That channel provided a jumping in point for other engineers.<\/p>\n<p>There is also a place to actively and intentionally grow.\u00a0 If you have any sway over your team\u2019s priorities you can begin to suggest or add things that further your goal.\u00a0 Since you\u2019ve gained the support of key stakeholders you may be able to get them to help you get things on the roadmap.\u00a0 You can also ask other engineers if they\u2019d like to get involved; if not, you can ask them what they think could be done better or what\u2019s stopping them from getting involved.\u00a0 By continuously raising awareness you will keep your ideas in the forefront of people\u2019s minds.\u00a0 One day at a meeting where we reviewed a production issue, we decided a Cypress test could have prevented it.\u00a0 Another engineer in the meeting volunteered to write the test.\u00a0 That engineer had been watching the channel, and so through a combination of organic and intentional growth the initiative had grown.<\/p>\n<p>Growth is great, but stakeholders will not be satisfied with that; you also have to demonstrate that the value proposition you convinced them of is viable.\u00a0 Showing metrics, data, and results sustains the initiative by maintaining the support of stakeholders.\u00a0 If you\u2019ve said that your idea will reduce bugs, demonstrate this.\u00a0 Show the number of bugs before and show that now that number is in decline.\u00a0 If your initiative is supposed to increase user engagement, show that engagement before and after.\u00a0 Whether or not you know it\u2019s working, <b>showing quantifiable value is imperative for the initiative to survive.<\/b><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"3840\" height=\"2564\" src=\"https:\/\/slack.engineering\/wp-content\/uploads\/sites\/7\/2020\/08\/DSCF1424.jpg?w=640\" alt=\"quartz sphere over beach\" class=\"alignnone size-medium wp-image-13231\" srcset=\"https:\/\/slack.engineering\/wp-content\/uploads\/sites\/7\/2020\/08\/DSCF1424.jpg 3840w, https:\/\/slack.engineering\/wp-content\/uploads\/sites\/7\/2020\/08\/DSCF1424.jpg?resize=640,427 640w, https:\/\/slack.engineering\/wp-content\/uploads\/sites\/7\/2020\/08\/DSCF1424.jpg?resize=768,513 768w, https:\/\/slack.engineering\/wp-content\/uploads\/sites\/7\/2020\/08\/DSCF1424.jpg?resize=1280,855 1280w, https:\/\/slack.engineering\/wp-content\/uploads\/sites\/7\/2020\/08\/DSCF1424.jpg?resize=1536,1026 1536w, https:\/\/slack.engineering\/wp-content\/uploads\/sites\/7\/2020\/08\/DSCF1424.jpg?resize=2048,1367 2048w, https:\/\/slack.engineering\/wp-content\/uploads\/sites\/7\/2020\/08\/DSCF1424.jpg?resize=380,254 380w, https:\/\/slack.engineering\/wp-content\/uploads\/sites\/7\/2020\/08\/DSCF1424.jpg?resize=800,534 800w, https:\/\/slack.engineering\/wp-content\/uploads\/sites\/7\/2020\/08\/DSCF1424.jpg?resize=1160,775 1160w\" sizes=\"auto, (max-width: 3840px) 100vw, 3840px\" \/><\/p>\n<p>Eventually an initiative can take on a life of its own; it won\u2019t be \u201cyours&#8221; anymore but will become a part of your team&#8217;s culture or process.\u00a0 It can be hard to release control of something you\u2019ve started but change of ownership is a great sign, and indicates that you\u2019ve been successful.\u00a0 This is a time to reflect on how to continue being involved and what may come next for you.\u00a0 Can you make it even better?\u00a0 Can you continue to enable more people to benefit from it?\u00a0 Is there something else to start focusing on?\u00a0 In my case I\u2019m still very involved in Cypress testing, but I\u2019ve more recently begun putting time and attention into Typescript.\u00a0 It\u2019s also something that will help with reliability but it\u2019s a new adventure with new challenges and problems to solve.<\/p>\n<p>There isn\u2019t a formula for starting an initiative but I hope you leave this post with some ideas, some encouragement and maybe some new resolve to start whatever idea you\u2019ve been thinking about.\u00a0 You can.<\/p>\n<p>Oh, and if you&#8217;re interested in starting an initiative at Slack, or working on one of the initiatives we already have going, <a href=\"https:\/\/slack.com\/careers\/dept\/engineering\">we&#8217;re hiring<\/a>!<\/p>\n","protected":false},"excerpt":{"rendered":"Early in my career at Slack I was looking for ways to have an impact.\u00a0 I asked my manager what I could work on to add value to the team.\u00a0 She said that we wanted to catch bugs earlier in the development process and that Cypress testing might be one way to do this.\u00a0 I&hellip;","protected":false},"author":160,"featured_media":13228,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[],"tags":[511,555,564,586],"class_list":{"0":"post-13224","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"tag-automation","8":"tag-engineering","9":"tag-frontend","10":"tag-leadership","11":"ts-entry"},"acf":{"subtitle":"Thoughts on starting and continuing an engineering-driven initiative","author_group":{"configure_author":"wordpress","authors":[{"ID":13225,"post_author":"160","post_date":"2020-09-01 16:25:46","post_date_gmt":"2020-09-01 16:25:46","post_content":"","post_title":"Josh Cartmell","post_excerpt":"","post_status":"publish","comment_status":"closed","ping_status":"closed","post_password":"","post_name":"josh-cartmell","to_ping":"","pinged":"","post_modified":"2020-09-01 16:25:46","post_modified_gmt":"2020-09-01 16:25:46","post_content_filtered":"","post_parent":0,"guid":"https:\/\/slack.engineering\/?post_type=author&#038;p=13225","menu_order":0,"post_type":"author","post_mime_type":"","comment_count":"0","filter":"raw"}],"custom_author":""},"series":false,"tags":[511,555,564,586]},"jetpack_featured_media_url":"https:\/\/slack.engineering\/wp-content\/uploads\/sites\/7\/2020\/08\/DSCF1247-1.jpg","_links":{"self":[{"href":"https:\/\/slack.engineering\/wp-json\/wp\/v2\/posts\/13224","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/slack.engineering\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/slack.engineering\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/slack.engineering\/wp-json\/wp\/v2\/users\/160"}],"replies":[{"embeddable":true,"href":"https:\/\/slack.engineering\/wp-json\/wp\/v2\/comments?post=13224"}],"version-history":[{"count":15,"href":"https:\/\/slack.engineering\/wp-json\/wp\/v2\/posts\/13224\/revisions"}],"predecessor-version":[{"id":13301,"href":"https:\/\/slack.engineering\/wp-json\/wp\/v2\/posts\/13224\/revisions\/13301"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/slack.engineering\/wp-json\/wp\/v2\/media\/13228"}],"wp:attachment":[{"href":"https:\/\/slack.engineering\/wp-json\/wp\/v2\/media?parent=13224"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/slack.engineering\/wp-json\/wp\/v2\/categories?post=13224"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/slack.engineering\/wp-json\/wp\/v2\/tags?post=13224"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}