<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Caito_200_OK</title>
    <description>The latest articles on DEV Community by Caito_200_OK (@caito_200_ok).</description>
    <link>https://dev.to/caito_200_ok</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F340615%2F394f7d21-19aa-4c17-8fbb-55ad2c322ea2.JPG</url>
      <title>DEV Community: Caito_200_OK</title>
      <link>https://dev.to/caito_200_ok</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/caito_200_ok"/>
    <language>en</language>
    <item>
      <title>Data Driven Development for Complex Systems, Part 3</title>
      <dc:creator>Caito_200_OK</dc:creator>
      <pubDate>Wed, 07 Apr 2021 17:36:46 +0000</pubDate>
      <link>https://dev.to/caito_200_ok/data-driven-development-for-complex-systems-part-3-249m</link>
      <guid>https://dev.to/caito_200_ok/data-driven-development-for-complex-systems-part-3-249m</guid>
      <description>&lt;p&gt;&lt;em&gt;Note: This is the third post in a series- check out&lt;/em&gt; &lt;a href="https://dev.to/caito_200_ok/data-driven-development-for-stream-processing-53ml"&gt;&lt;em&gt;Part 1: Intro&lt;/em&gt;&lt;/a&gt; &lt;em&gt;and&lt;/em&gt; &lt;a href="https://dev.to/caito_200_ok/data-driven-development-for-complex-systems-part-2-424j"&gt;&lt;em&gt;Part 2: “Metrics-Driven Metrics”&lt;/em&gt;&lt;/a&gt; &lt;em&gt;for more context.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This post continues a series on data-driven development best practices. These are specifically made for software systems with highly complicated integration points, but are applicable to many different situations. This series uses stream processing with &lt;a href="https://flink.apache.org/" rel="noopener noreferrer"&gt;Apache Flink&lt;/a&gt; for the examples.&lt;/p&gt;

&lt;p&gt;The initial post provided an introduction and relevant terms, and the second post covered another set of best practices for observability. This post is the next step in leveraging those observability principles to better streamline the interpersonal components that often come with these use cases.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F1848%2F1%2AaGjSBk2Kp0tDRNB9BDe7WA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F1848%2F1%2AaGjSBk2Kp0tDRNB9BDe7WA.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Increased Investment in Internal Communications
&lt;/h1&gt;

&lt;p&gt;Even before the pandemic, there has been an upward trend of companies investing in improving their inter-team communication. From 2017 to 2019, there was a large uptick in corporate content on the &lt;a href="https://blog.newrelic.com/technology/trust-teams-software-development/" rel="noopener noreferrer"&gt;importance of team trust&lt;/a&gt; and the crucial role of inter-team communication for system resilience and &lt;a href="https://www.ehstoday.com/emergency-management/article/21916640/communication-breakdown" rel="noopener noreferrer"&gt;disaster recovery&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;However, at the same time, there has also been a rise in articles and commentary on “communication overload:” employees are attending &lt;a href="https://www.salon.com/2020/08/08/the-shift-to-working-from-home-has-increased-the-number-of-hours-americans-work/" rel="noopener noreferrer"&gt;13% more meetings&lt;/a&gt; and &lt;a href="https://blog.flock.com/communication-overload-hits-executives-hardest" rel="noopener noreferrer"&gt;polls report&lt;/a&gt; there has been such an increase in internal messaging that a majority of employees (particularly in leadership roles) are unable to respond to all new messages in a day.&lt;/p&gt;

&lt;h1&gt;
  
  
  And Then, Pandemic Happened
&lt;/h1&gt;

&lt;p&gt;In a recent peer survey I conducted, the majority of respondents said that the jump to full-company remote work in 2020 has improved their and/or their company’s communication skills. However, the same respondents also noted that the lingering effects of pandemic continue to take a serious toll on inter-team communication and trust. Although “Zoom fatigue” is now a well known phenomenon, there has been a rise in the public recognition of &lt;a href="https://thenewstack.io/this-cant-be-normal-the-tech-industry-after-a-year-of-burnout/" rel="noopener noreferrer"&gt;what really is involved&lt;/a&gt; in remote &lt;a href="https://www.hcamag.com/asia/specialisation/leadership/does-remote-work-cause-communication-breakdown/248035" rel="noopener noreferrer"&gt;worker burnout&lt;/a&gt; during the pandemic.&lt;/p&gt;

&lt;h1&gt;
  
  
  Communication Breakdown in Complex Systems
&lt;/h1&gt;

&lt;p&gt;Building a software system with multiple (or highly complex) integration points will always have additional communication challenges.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F9600%2F1%2A_IOQEg3HltuK9GlN_2ILNQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F9600%2F1%2A_IOQEg3HltuK9GlN_2ILNQ.jpeg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With stream processing, a powerful streaming engine’s strength is in how fast, and how much data it can process, naturally adding complexity to existing integration points. Moreover, a sophisticated streaming system is likely to use shared resources (like storage and deployment tools) differently than non-streaming applications. This means that other teams who share these resources should also be counted as integration points, just as upstream and downstream teams would. With this enlarged circle of interconnected teams, this now also has a more significant impact on stakeholders and leadership who oversee these groups as well.&lt;/p&gt;

&lt;p&gt;So — cross-team communication is an inherent challenge when building software systems that have multiple, and/or complex integration points. Additionally, leading up to, and particularly because of the pandemic, internal communication has become more difficult, and more important than ever. And yet somehow, there is also an overwhelming amount of it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Internal communication has become &lt;strong&gt;more difficult&lt;/strong&gt;, &lt;strong&gt;more important&lt;/strong&gt; than ever, and yet there’s also &lt;strong&gt;too much of it.&lt;/strong&gt;”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is where having good data-driven communication comes in, and more specifically, where “metrics as a shared language” can help mitigate and automate these challenges.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F1980%2F1%2AsrRlsRuRfM64pUlPp1cNFA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F1980%2F1%2AsrRlsRuRfM64pUlPp1cNFA.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;“Metrics as a shared language” is a set of best practices for using metrics about your system as a base for efficient, accurate communication between impacted teams and stakeholders. The high level goals and implementation are very straightforward:&lt;/p&gt;

&lt;h1&gt;
  
  
  Goals
&lt;/h1&gt;

&lt;p&gt;Use system metrics to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Mitigate (or eliminate) miscommunication.&lt;/li&gt;
&lt;li&gt;  Streamlining communications in high overhead situations (i.e. where you have complex integration points with other teams).&lt;/li&gt;
&lt;li&gt;  Build trust with impacted teams and stakeholders.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Implementation
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Pre-requisite: make sure your&lt;/em&gt; &lt;a href="https://dev.to/@caito/data-driven-development-for-stream-processing-36b8d5d9e8ec"&gt;&lt;em&gt;metrics are meaningful and in small, modular units&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Identify your “audience” (impacted groups).&lt;/li&gt;
&lt;li&gt;  Identify the most effective tools for these groups.&lt;/li&gt;
&lt;li&gt;  Enable automation.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Identifying Your “Audience”
&lt;/h1&gt;

&lt;p&gt;Identifying your impacted groups is as simple as going over your architectural diagram and listing which teams are involved in each integration point that your system has with the surrounding ecosystem. The only “tricky” part is being proactive about who will really be impacted by your software, and answering questions like “what shared resources will this application use, and will we use it differently from how the other applications use it?”.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Pro Tip:&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;the most common groups I see left out in this type of planning are the operations/DevOps teams, and leadership for adjacent teams.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The next step is to sort these groups based on what kind of information they will need. This is where some of the concepts from the &lt;a href="https://dev.to/caito_200_ok/data-driven-development-for-stream-processing-53ml"&gt;first post&lt;/a&gt; come in, specifically, determining who will most benefit from purely quantitative data, which group(s) will need more abstracted, “data-aware” information, and which groups need a hybrid.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F9600%2F1%2A4ObbZa_JZiTJ6TZnu-HRwg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F9600%2F1%2A4ObbZa_JZiTJ6TZnu-HRwg.jpeg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Identifying Your Tools
&lt;/h1&gt;

&lt;p&gt;Companies and &lt;a href="https://blog.flock.com/remote-work-bias-and-the-communication-divide" rel="noopener noreferrer"&gt;employees are reporting&lt;/a&gt; that communication breakdowns occur most often due to &lt;a href="https://blog.flock.com/managing-communication-styles-workplace" rel="noopener noreferrer"&gt;a lack of proper communication channels&lt;/a&gt;. Identifying the appropriate tools to use for each group can eliminate a lot of unnecessary wastes of time and resources.&lt;/p&gt;

&lt;p&gt;On a high level, the heuristic here is to find a way to integrate your metrics into the preferred tool or platform of your audience, and to abstract this for the groups that need the data to be filtered.&lt;/p&gt;

&lt;p&gt;For instance, for &lt;strong&gt;engineering and DevOps&lt;/strong&gt; teams along your pipeline, this could mean having a shared Slack channel &lt;em&gt;just&lt;/em&gt; for the PagerDuty alerts that impact that team, and enabling an integrated observability tool (DataDog, Prometheus, etc) to automatically post relevant charts on a regular cadence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Pro tip:&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;make sure the alerts and metrics you share with these teams are labeled in a way that actually makes sense to engineers outside of your team.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;For your &lt;strong&gt;customer-facing group&lt;/strong&gt;, this could mean having a blog post with embedded, auto-updating charts or summarized numerical outputs. This is a good place for &lt;a href="https://dev.to/caito_200_ok/data-driven-development-for-stream-processing-53ml"&gt;“vanity metrics”&lt;/a&gt; and other information that is useful to marketing and sales.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Pro-tip:&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;the most common challenge I see here is keeping it simple for these groups and sufficiently abstracting the data. This is as basic as asking them first what 1–3 outputs matter most to them and supplying just those numbers.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;For groups who need a &lt;strong&gt;hybrid&lt;/strong&gt;, like engineering managers, other technical leaders and stakeholders, a URL endpoint they can query can go a long way. Or, just including them in both the “granular” channels and “abstracted” posts can be equally effective.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Pro Tip:&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;another “group” that is in this hybrid category is the whole company, at the moment where your system is launched. Having a “multilingual” presentation and resources available for the rest of the company when the system is announced and goes live, can eliminate a lot of extra communication overhead at an already busy time.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F7680%2F1%2A17-HmT35aOtfe7hHqW1T-g.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F7680%2F1%2A17-HmT35aOtfe7hHqW1T-g.jpeg" alt="three circles. On the left is labeled “engineering”, then “leadership” in the middle, then “customer-facing” on the right. Under and between engineering and leadership it says “Slack integrations, URL endpoint”. Between leadership and customer facing it says “blog embedded with dynamic charts"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Enabling Automation
&lt;/h1&gt;

&lt;p&gt;At a time where workers around the world are reporting &lt;a href="https://www.healthaffairs.org/do/10.1377/hblog20200609.53823" rel="noopener noreferrer"&gt;more of a need for social connection&lt;/a&gt;, automation can seem impersonal. However, the benefits of implementing these practices can actually ease this tension.&lt;/p&gt;

&lt;p&gt;Firstly, employees can get answers faster. Workers are reporting that with the sudden jump to full-company remote work in 2020, it has been harder to get answers to questions quickly enough — &lt;a href="https://www.themuse.com/advice/remote-work-challenges" rel="noopener noreferrer"&gt;having to wait hours&lt;/a&gt; for the answer to a basic “yes or no” question. Second, as the majority of human communication is &lt;a href="https://www.psychologytoday.com/us/blog/beyond-words/201109/is-nonverbal-communication-numbers-game" rel="noopener noreferrer"&gt;nonverbal&lt;/a&gt;, reports show that employees are having to expend more energy to communicate with coworkers to compensate for the cumulative effect of &lt;a href="https://sps.columbia.edu/news/cheryl-dixon-covid-19-communication-breakdowns" rel="noopener noreferrer"&gt;missing these important cues&lt;/a&gt; for over a year. Streamlining and simplifying any areas of communication possible provides a significant relief and energy back to employees, who can now spend that energy on the areas of communication that do require more nuance.&lt;/p&gt;

&lt;p&gt;Lastly, this particular set of best practices naturally sets clearer expectations for communication style. For instance, some people treat Slack as a tool for asynchronous, casual interactions, while others expect a message over Slack to &lt;a href="https://blog.cloudspeakers.dev/leveraging-asynchronous-communication-for-happier-developer-communities/" rel="noopener noreferrer"&gt;receive an immediate response&lt;/a&gt;. In my experience, following these guidelines has almost eliminated friction caused by mismatched expectations. This is possible by making data genuinely accessible and digestible, which enables other teams and stakeholders to be much more autonomous.&lt;/p&gt;

&lt;h1&gt;
  
  
  Automation Guidelines
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Proactive&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Ask each group ahead what information matters most to them.&lt;/li&gt;
&lt;li&gt;  Make sure there are metrics covering these items, and that they are readily accessible.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Reactive&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Stay flexible: there will still be unpredictable questions.&lt;/li&gt;
&lt;li&gt;  What questions do the engineers building this system get asked the most? (a good question to ask both the engineers, and those asking the engineers).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Combining static and dynamic resources&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Populate static resources (like internal blog posts) with relevant auto-updating charts (or other outputs).&lt;/li&gt;
&lt;li&gt;  Adding answers for new questions to static resources, as well as creating additional alerts or monitoring around them.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Results
&lt;/h1&gt;

&lt;p&gt;Continuing the example from the &lt;a href="https://dev.to/caito_200_ok/data-driven-development-for-complex-systems-part-2-424j"&gt;previous post&lt;/a&gt; of an engineering team I was on that built the company’s first &lt;a href="https://flink.apache.org/" rel="noopener noreferrer"&gt;Apache Flink&lt;/a&gt; pipeline: this was a complex system that needed to be integrated into an even larger, more complicated, non-streaming technical ecosystem.&lt;/p&gt;

&lt;p&gt;For us, properly implementing “metrics as a shared language” meant a thorough review of our integration points, creating that list of our impacted groups and sorting this into where they fell on the spectrum of most granular, to hybrid, to most abstracted. We then met with all of our upstream and downstream engineering teams. By &lt;em&gt;just&lt;/em&gt; reviewing our alerts and observability dashboard and selecting and re-labeling some metrics to integrate into a Slack channel, we were able to streamline weeks of back-and-forth into a ~45 minute conversation.&lt;/p&gt;

&lt;p&gt;As for our customer-facing stakeholders: after some trial and error (mainly due to us wanting to constantly share an unnecessary amount of detail), we created 3 new panels on our observability dashboard and embedded them into a carefully-worded blog post. This post was made as accessible as possible: pinned in several channels, and linked to from internal Wiki pages. This post also included a glossary of terms and frequently asked questions, which grew along with the project. This could have been an easy task to forget and allow to get stale, so we added regular tickets in our Jira board to update it. Additionally, our manager started asking us engineers at weekly planning meetings about our communications with other teams: if we were getting repeat questions, or any common misunderstandings, etc.&lt;/p&gt;

&lt;p&gt;For “Hybrid” groups like technical leadership and architects, we provided Slack and blog post options, as well as an endpoint they could query, filter and embed into their own systems.&lt;/p&gt;

&lt;p&gt;This is not to say that we did this perfectly: we didn’t even know to do this at all, until we &lt;strong&gt;had&lt;/strong&gt; to, partway through the project when we found ourselves in the middle of a cross-team communications breakdown. However, even a last minute, inexperienced approach was still a drastic and immediate improvement.&lt;/p&gt;

&lt;p&gt;Overall, implementing these principles (even partially and last minute), provided net gains for our team and the company. On the business and development side, we caught a significantly higher number of technical issues faster. This was enabled through automated sharing of appropriate metrics via Slack integrations with our impacted engineering teams. On a personal level, providing the hybrid options for teams who wanted to query our data but within the appropriate context, helped us regain the trust of several teams who had been suffering from inadequate and poorly-delivered data. As for our communication overhead: we noticed a drastic decrease in the amount of meetings and time responding to messages from stakeholders, architects, designers and managers each week after publishing our internal, metrics-embedded blog posts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F1374%2F1%2AF522nYYPHX8FOt3imTGFgw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F1374%2F1%2AF522nYYPHX8FOt3imTGFgw.png" alt="a box with text saying “whats next?” with a faint background image of a line graph"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  In this series
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://dev.to/caito_200_ok/data-driven-development-for-stream-processing-53ml"&gt;&lt;strong&gt;Part 1: Introduction + Foundational Concepts&lt;/strong&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://dev.to/caito_200_ok/data-driven-development-for-complex-systems-part-2-424j"&gt;&lt;strong&gt;Part 2: Metrics-Driven Metrics Cycle&lt;/strong&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Part 3: Metrics as a Shared Language&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Part 4: Hands-On- Monitoring for Stream Processing&lt;/strong&gt; — arriving in April, 2021&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Related talks
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://www.youtube.com/watch?v=_PolaklvKtc&amp;amp;ab_channel=FlinkForward" rel="noopener noreferrer"&gt;“Sweet Streams are Made of These: Applying Metrics- Driven Development to Apache Flink”&lt;/a&gt; | Flink Forward EU/Virtual | 10.19–22.2020&lt;/li&gt;
&lt;li&gt;  “Sweet Streams are Made of These: Lightning Version” | DDD EU | 02/05/2021 [recording in progress]&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Find me
&lt;/h1&gt;

&lt;p&gt;Twitter: &lt;a class="mentioned-user" href="https://dev.to/caito_200_ok"&gt;@caito_200_ok&lt;/a&gt;&lt;br&gt;
Web: &lt;a href="http://caito-200-ok.com/" rel="noopener noreferrer"&gt;http://caito-200-ok.com/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>datadriven</category>
      <category>teamwork</category>
      <category>devops</category>
      <category>streamprocessing</category>
    </item>
    <item>
      <title>Data Driven Development for Complex Systems, Part 2</title>
      <dc:creator>Caito_200_OK</dc:creator>
      <pubDate>Thu, 18 Mar 2021 23:14:21 +0000</pubDate>
      <link>https://dev.to/caito_200_ok/data-driven-development-for-complex-systems-part-2-424j</link>
      <guid>https://dev.to/caito_200_ok/data-driven-development-for-complex-systems-part-2-424j</guid>
      <description>&lt;h2&gt;
  
  
  Part 2 of 4: Anti-Patterns and The “Metrics-Driven Metrics” Cycle
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Note: This is the second post in a series- check out&lt;/em&gt; &lt;a href="https://dev.to/caito_200_ok/data-driven-development-for-stream-processing-53ml"&gt;&lt;em&gt;Part 1: Intro&lt;/em&gt;&lt;/a&gt; &lt;em&gt;for more context.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This post is a review of what I jokingly (and now seriously, since it stuck) call the “Metrics-Driven Metrics cycle.” This is essentially a set of best practices around the role that a healthy observability cycle plays in a data-driven development process.&lt;/p&gt;

&lt;p&gt;This post will cover these practices, using real world examples for each component. The examples use stream processing (specifically, Apache Flink) but the concepts are applicable to any scenario where you are building or combining systems that have complex integration points.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---nPRigWO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/max/924/1%2AaDHPytrGVJv7Cq8XgC9BGw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---nPRigWO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/max/924/1%2AaDHPytrGVJv7Cq8XgC9BGw.png" alt="" width="800" height="251"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Firstly, using stream processing — especially when you’re really, truly leveraging its strengths — means you’re probably pushing mass amounts of data through your system, very fast, with complex data transforms. You’re likely ingesting multiple data streams, maybe splitting them or joining them together. This of course is where a powerful, flexible stream processing framework really shines.&lt;/p&gt;

&lt;p&gt;But, it also means you now have a complex addition that the rest of your technical ecosystem may not be prepared to handle; whether that’s your downstream applications or sinks, or the teams who own them. Or, it could be the impact on shared resources like storage or internal deploy tools that just aren’t configured for something that powerful or complex. Maybe reconfiguring them isn’t complicated technically, but it may require buy-in and negotiation between other impacted teams, all of which can add to development time and complexity.&lt;/p&gt;

&lt;p&gt;One of the most common mistakes I see people make when building a complex stream processing system — especially one that needs to be integrated into an existing, non-streaming environment — is treating it like any other new “traditional” or batch framework. Additionally, anything involving this level of complexity in its integration points, also requires much more detailed communications between other teams and even stakeholders.&lt;/p&gt;

&lt;p&gt;For all of these reasons, best practices that could previously be loosely adhered to or ignored can suddenly require a lot more formalizing in order to avoid common pitfalls.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RXboHHkd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p5mj7uvz9zvvg5j4st6f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RXboHHkd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p5mj7uvz9zvvg5j4st6f.png" alt="Alt Text" width="700" height="220"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 1: Solidify “dashboard hygiene”. Some people love this sort of task, but for many of us, it can be hard to sit down and do this when there’s all of the main programming work to do. So, when we start organizing a dashboard, it is easy to fall into certain anti-patterns.&lt;/p&gt;

&lt;p&gt;To counteract that, I like to start with this reminder:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“You can measure almost anything, but you cannot pay attention to everything”&lt;br&gt;
&lt;em&gt;- Anonymous&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I like this quote, because — I also &lt;strong&gt;hate&lt;/strong&gt; it.&lt;/p&gt;

&lt;p&gt;Personally, this is the trap I fall into the most frequently, because I just want to measure ALL THE THINGS, ALL THE TIME.&lt;/p&gt;

&lt;p&gt;And, sure — there’s nothing wrong with wanting a lot of data about your system. But if you want to really leverage your metrics, some good dashboard hygiene becomes a necessary baseline.&lt;/p&gt;

&lt;p&gt;And that’s why I appreciated where a colleague of mine went with this, when he said:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Any situation where people create their own dashboards, without structure, quickly starts to look like the cockpit of a 747”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--z-_8zDev--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8v3doob6i42sl8wuxkfb.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--z-_8zDev--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8v3doob6i42sl8wuxkfb.jpeg" alt="Alt Text" width="500" height="332"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;&lt;a href="https://www.reddit.com/r/pics/comments/5vv8qt/the_pilots_seat_and_cockpit_of_a_boeing_747/"&gt;https://www.reddit.com/r/pics/comments/5vv8qt/the_pilots_seat_and_cockpit_of_a_boeing_747/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I appreciate this particular take as it provides such a great image of just what an anti-pattern this is.&lt;/p&gt;

&lt;p&gt;Unfortunately, it’s rare that I talk to someone who has NOT experienced this at one job or another. As validating as that is to hear for people like me who so often fall into this trap, it really should not be the norm.&lt;/p&gt;

&lt;p&gt;Which bring us to, how do you organize a truly “clean” dashboard for stream processing (among other types of complex) systems without having to spend a lot of energy upfront, or on maintenance? This is where the “Metrics-driven Metrics” cycle comes in.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Hdgnj3Mh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/09sq0thjljrywa80omdp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Hdgnj3Mh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/09sq0thjljrywa80omdp.png" alt="Alt Text" width="700" height="220"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  High Level Goals
&lt;/h1&gt;

&lt;p&gt;The dashboard that contains metrics on your application or system should always:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Prioritize meaningful data&lt;/li&gt;
&lt;li&gt; Be easy to iterate on&lt;/li&gt;
&lt;li&gt; The data should be very accessible.&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Implementation
&lt;/h1&gt;

&lt;p&gt;The dashboard &lt;strong&gt;prioritization&lt;/strong&gt; should reflect:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Your team’s roadmap&lt;/li&gt;
&lt;li&gt; Your application’s highest risk components&lt;/li&gt;
&lt;li&gt; Your application’s most uncertain components.&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Example
&lt;/h1&gt;

&lt;p&gt;The following dashboard is from a team I was on at a previous company. It was for this company’s first Apache Flink application in production, which was also one of the first stream processing ones there. Additionally, it involved integration into a large and highly complicated non-streaming technical ecosystem.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uSucqpHk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ajyiozidcy8w473h92xr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uSucqpHk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ajyiozidcy8w473h92xr.png" alt="Alt Text" width="700" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This example has remained highly relevant as it really clearly embraces the implementation of these goals.&lt;/p&gt;

&lt;h1&gt;
  
  
  Reflecting the Roadmap
&lt;/h1&gt;

&lt;p&gt;This screenshot was taken early in the development process. This application had multiple incoming data streams, each from a separate, autonomous teams’ application. Our application was ingesting each of these via a Kafka topic. Our roadmap priority at this time was to make sure each stream was being ingested properly and had sufficient alerts and other safeguards.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rr2JxwOM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ipzd8hzcjeqw0ej06oph.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rr2JxwOM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ipzd8hzcjeqw0ej06oph.png" alt="Alt Text" width="700" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a great example of where &lt;strong&gt;“knowing your normal”&lt;/strong&gt; comes in. As I mentioned in the &lt;a href="https://dev.to/caito_200_ok/data-driven-development-for-stream-processing-53ml"&gt;previous post,&lt;/a&gt; this is the next step once your metrics are sufficiently meaningful, iterative and accessible. This is where your dashboards are so clear and familiar to your team, that abnormalities are as noticeable to your developers as they are to your alerting system.&lt;/p&gt;

&lt;p&gt;Much of my use of this practice I owe to a previous &lt;a href="http://nikdav.is/"&gt;team mate&lt;/a&gt; of mine. This team mate went to great lengths to ensure that the whole group adopted this properly into our routines and individual habits. He added this dashboard to every available screen in our team space and would make sure we reviewed and iterated on it during every sprint planning. I mention these examples because they were such a straightforward and effective way to instill these practices.&lt;/p&gt;

&lt;p&gt;Since this level of familiarity with our metrics was now so ingrained into the team, an “oddly shaped” chart would quickly motivate us to investigate further. In this example, everything looked normal as per our alerts (which had been thoroughly set up through meetings with upstream teams and architects). However, half of our Kafka lag charts took on one shape and half took on another. This led us to take additional measurements of data flow. In looking at the structure of the output, we were able to determine that some of our upstream teams aggregated and transformed their data very differently than we expected.&lt;/p&gt;

&lt;p&gt;This is where our metrics really became a cycle: this information led us to continuously adjust our monitoring to better reflect the behavior of the data coming in as we proceeded to investigate all discrepancies. Additionally, this particular metric influenced our roadmap and design: it caused us to completely redefine responsibility for integration points in a way that was based more accurately on the behavior of the whole system itself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: these practices can catch a lot of these sort of discrepancies. However, they’re meant to be used as a compliment to, and not as a replacement for things like having formal schemas that are well defined, regularly tested, and accessible for teams all along the pipeline.&lt;/p&gt;

&lt;h1&gt;
  
  
  Highest Risk
&lt;/h1&gt;

&lt;p&gt;Next, we have our highest risk metrics. In this example, it’s watermarks. Normally, that’s not a particularly high risk element. However, it was for this team during this stage of development.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GAwCWVs7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ydd5tha7j6jxl8dghrgb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GAwCWVs7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ydd5tha7j6jxl8dghrgb.png" alt="Alt Text" width="700" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At this time, our watermark configuration was based on virtually &lt;em&gt;no&lt;/em&gt; information about our brand new incoming data. And, due to the nature of watermarks — being so essential to event-time operators, late record handling, etc — keeping them front and center at this time was integral for us being able to build a robust and efficient stream processing system. That is, it was important &lt;strong&gt;at that moment&lt;/strong&gt;, until our team could be confident that it was sufficiently attuned to the normal and expected  behavior of our incoming data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This part of the dashboard should reflect what is the highest risk for &lt;em&gt;you&lt;/em&gt;, &lt;em&gt;at this time&lt;/em&gt;, knowing this will likely change and evolve with the development of your streaming application.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Most Uncertain
&lt;/h1&gt;

&lt;p&gt;As I mentioned, in this example, we had just started joining many different Kafka topics from various unrelated upstream applications. So, at this time, our Kafka consumption held a lot of uncertainty and was something we needed to keep visible until its behavior could become sufficiently familiar. This meant that Kafka consumption would become the next most visible panel on the dashboard for this time period.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mxs4pztJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rys1g2ehx8t9flzvburl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mxs4pztJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rys1g2ehx8t9flzvburl.png" alt="Alt Text" width="700" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Summary
&lt;/h1&gt;

&lt;p&gt;In this example, we have a dashboard that reflects the current priority on the engineering team’s roadmap, the highest risk component to the team &lt;em&gt;at the current time,&lt;/em&gt; and the most uncertain element at this stage of development. Anything following this would be a repeat of these categories, for the next level of priorities.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KF0mGMVL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rtepz0h1vbv1rrvw9gyu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KF0mGMVL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rtepz0h1vbv1rrvw9gyu.png" alt="Alt Text" width="700" height="345"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More importantly, we have a dashboard whose panels are meaningful, iterative, and accessible. This dashboard is also an active part of an observability cycle, and of a cycle of influence with the roadmap.&lt;/p&gt;

&lt;p&gt;All of this is intended to aid in avoiding many of the hurdles inherent in adopting a new technical system which adds complexity to, or additional integration points. These practices are of course also helpful for other systems or applications, as they provide a checklist for anyone who wants to create a more sustainable and reliable data-driven development process.&lt;/p&gt;

&lt;p&gt;That being said, these practices still need to be paired with other healthy team and inter-team baselines like a solid architectural plan, accessible schemas, and well organized communication channels across the whole pipeline. There are also some additional steps to leverage what was covered here for streamlining the non-programming challenges, which will be covered in the next blog post.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QcYzsS1g--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/scz03s2p7oh2od43swsf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QcYzsS1g--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/scz03s2p7oh2od43swsf.png" alt="Alt Text" width="687" height="217"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  In this series
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;  Previously — &lt;a href="https://dev.to/caito_200_ok/data-driven-development-for-stream-processing-53ml"&gt;&lt;strong&gt;Part 1: Introduction + Foundational Concepts&lt;/strong&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Part 3: Metrics as a Shared Language&lt;/strong&gt; — arriving on March 18, 2021&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Part 4: Hands-On- Monitoring for Stream Processing&lt;/strong&gt; — arriving in April, 2021&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Related talks
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://www.youtube.com/watch?v=_PolaklvKtc&amp;amp;ab_channel=FlinkForward"&gt;“Sweet Streams are Made of These: Applying Metrics- Driven Development to Apache Flink”&lt;/a&gt; | Flink Forward EU/Virtual | 10.19–22.2020&lt;/li&gt;
&lt;li&gt;  “Sweet Streams are Made of These: Lightning Version” | DDD EU | 02/05/2021 [recording in progress]&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Find me
&lt;/h1&gt;

&lt;p&gt;Twitter: &lt;a class="mentioned-user" href="https://dev.to/caito_200_ok"&gt;@caito_200_ok&lt;/a&gt;&lt;br&gt;
Web: &lt;a href="http://caito-200-ok.com/"&gt;http://caito-200-ok.com/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Virtual Events: Speaker &amp; Organizer Guide, Part 4</title>
      <dc:creator>Caito_200_OK</dc:creator>
      <pubDate>Sat, 06 Mar 2021 02:15:11 +0000</pubDate>
      <link>https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-part-4-48ah</link>
      <guid>https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-part-4-48ah</guid>
      <description>&lt;h2&gt;
  
  
  Part 4: Conclusion &amp;amp; Resources
&lt;/h2&gt;

&lt;p&gt;Previously, this series covered &lt;a href="https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-2c44"&gt;accessibility and inclusion,&lt;/a&gt; &lt;a href="https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-part-2-137n"&gt;the speaker experience&lt;/a&gt;, and a knowledge share of best tactics and innovations in the form of some cheesy-looking but well-earned &lt;a href="https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-part-3-1kj"&gt;awards&lt;/a&gt;. This post adds the conclusion, and a consolidated list of the resources and tools that were discussed.&lt;/p&gt;




&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Whether or not virtual conferences will be a permanent option, they’re the option we have now, and will likely stay in some form or another. There are a lot of benefits to leveraging the opportunities they bring, and in getting creative with the challenges.&lt;/p&gt;

&lt;p&gt;This year I have been impressed with methods that leveraged the virtual platform to better accommodate global reach, wider accessibility options, and different learning and social styles. Even more so, it’s been refreshing to see solutions spread across a wide spectrum of manual thought-work to automated tools that are constantly improving in this new virtual-focused world. I am genuinely looking forward to continuing to see the limits pushed of these tools and techniques, and seeing what that can get us in terms of attendee inclusion, content and connection.&lt;/p&gt;




&lt;h3&gt;
  
  
  Tools
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://medium.com/r/?url=https%3A%2F%2Ficebreaker.video%2F"&gt;Icebreaker video&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fthesnapbar.com%2Fvirtual-photo-booth"&gt;Virtual photo booth&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  Happy hour app — &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fdigibaari.com%2F"&gt;DigiBaari&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  Happy hour app — &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fspatial.chat%2F"&gt;Spatial.chat&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  Happy hour app — &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fgather.town%2F"&gt;Gather.town&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  Customizable Marketing — &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fwww.canva.com%2F"&gt;Canva&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  Talk recording tool — &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fobsproject.com%2F"&gt;OBS&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  Social media graphics — &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fwww.canva.com%2F"&gt;Canva&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Credits
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fdesertedisland.club%2F"&gt;Deserted Island DevOps&lt;/a&gt; pic: &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fthenewstack.io%2Fdeserted-island-devops-wrap-up%2F"&gt;https://www.arresteddevops.com/deserted-island-devops/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://medium.com/r/?url=https%3A%2F%2Ffailover-conf.heysummit.com%2F"&gt;Failover Conf&lt;/a&gt; pic: &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fcsengineermag.com%2Fgremlin-announces-failover-conf-a-conference-about-resilience-in-the-wake-of-cancellations-caused-by-the-coronavirus%2F"&gt;https://csengineermag.com/gremlin-announces-failover-conf-a-conference-about-resilience-in-the-wake-of-cancellations-caused-by-the-coronavirus/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  DataEng Bytes Au pic: &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fdataengconf.com.au%2F"&gt;https://dataengconf.com.au/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  In This Series
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Post 1: &lt;a href="https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-2c44"&gt;Accessibility + Inclusivity&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Post 2: &lt;a href="https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-part-2-137n"&gt;The Speaker Experience&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Post 3: &lt;a href="https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-part-3-1kj"&gt;And the Award Goes To…&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Post 4: &lt;a href="https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-part-4-48ah"&gt;Conclusion + Resources&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Virtual Events: Speaker &amp; Organizer Guide, Part 3</title>
      <dc:creator>Caito_200_OK</dc:creator>
      <pubDate>Sat, 06 Mar 2021 02:13:32 +0000</pubDate>
      <link>https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-part-3-1kj</link>
      <guid>https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-part-3-1kj</guid>
      <description>&lt;h2&gt;
  
  
  Part 3: And the Award Goes To…
&lt;/h2&gt;

&lt;p&gt;This is the third post in a series about participating in and organizing virtual events. The &lt;a href="https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-2c44"&gt;first post&lt;/a&gt; covered accessibility and inclusivity, and the &lt;a href="https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-part-2-137n"&gt;second post&lt;/a&gt; covered the speaker experience. The &lt;a href="https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-part-4-48ah"&gt;last post&lt;/a&gt; includes the conclusion and a consolidated list of the tools and resources listed in this series.&lt;/p&gt;




&lt;p&gt;There were SO many great, innovative, and thoughtful things I’ve seen at the 30+ virtual events I’ve participated in since pandemic started. Recognition and knowledge share for what goes into these sorts fo events often gets lost nowadays so I wanted to share some of the most impressive tactics, workarounds, and innovations I’ve seen since March 2020.&lt;/p&gt;




&lt;h3&gt;
  
  
  2020 Awards
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1Re6H8EO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/1%2A52JmtyGfo363COovNDTZVQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1Re6H8EO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/1%2A52JmtyGfo363COovNDTZVQ.png" alt="" width="800" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Type caption for image (optional)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/r/?url=https%3A%2F%2Fevents.kafka-summit.org%2F2020"&gt;Kafka Summit&lt;/a&gt; took the award for &lt;strong&gt;Most Likely to Post on Twitter&lt;/strong&gt;. They had several social-media-worthy activities, including a fun points system based on the amount of engagement with the talks and speakers, which could earn you swag. My favorite though, was the Virtual Photobooth. Although I’d seen and used &lt;a href="https://medium.com/r/?url=https%3A%2F%2Ftwitter.com%2Fhashtag%2Fstreamingselfie%3Fsrc%3Dhashtag_click"&gt;#streamingSelfie&lt;/a&gt; for other virtual conferences, Kafka Summit absolutely dominated the hashtag — it was clear attendees really enjoyed this fun and easy-to-use tool. The conference organizers also kept things going by challenging attendees in their Slack space to post with pets, kids, a beverage, etc.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TukGsdVj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/1%2A4o8u6_ngMeFVnhAJ2PaHtQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TukGsdVj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/1%2A4o8u6_ngMeFVnhAJ2PaHtQ.png" alt="a fake award with images of virtual bars" width="760" height="333"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Type caption for image (optional)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/r/?url=https%3A%2F%2Fberlinbuzzwords.de%2F"&gt;Berlin Buzzwords&lt;/a&gt; wins &lt;strong&gt;Best Happy Hour&lt;/strong&gt;. A multi-day conference co-hosted by &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fmices.co%2F"&gt;MICES&lt;/a&gt; and &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fhaystackconf.com%2F"&gt;Haystack&lt;/a&gt;, they tested out a different virtual happy hour platform each day, picking the most popular one for the final happy hour. I had SO much fun in each one, and through this festive experimentation, I gained contacts and friends with whom I now chat regularly, almost a year later. I enjoyed them so much, I now have a subscription to one of these platforms that I use for monthly (or more) for virtual parties with friends.&lt;/p&gt;

&lt;p&gt;This conference used Finnish company, &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fdigibaari.com%2F"&gt;Digibaari&lt;/a&gt;, which includes different bar backgrounds and fun sound effects, and several proximity-based apps like &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fgather.town%2F"&gt;Gather.town&lt;/a&gt; and &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fspatial.chat%2F"&gt;Spatial.chat&lt;/a&gt; which allow attendees to roam around.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7o_ARIRC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/1%2AA-zUTH-QQ8abTop9MTXI5Q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7o_ARIRC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/1%2AA-zUTH-QQ8abTop9MTXI5Q.png" alt="" width="800" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Type caption for image (optional)&lt;/p&gt;

&lt;p&gt;I don’t think anyone will ever beat &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fdesertedisland.club%2F"&gt;Deserted Island DevOps&lt;/a&gt; (DIDevOps) for &lt;strong&gt;Cutest Conference&lt;/strong&gt;. DIDevOps hosted their conference entirely inside of &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fanimal-crossing.com%2F"&gt;Animal Crossing&lt;/a&gt;, a video game with a reputation for being adorable. Additionally, the organizers and attendees fully embraced this endearing backdrop, and included Animal Crossing-themed analogies in their talks. They also created a fully functional, incredibly well-organized conference hall, with podium, guest laptop, slides, and vendor booths (with branded t-shirts and other swag for your avatar).&lt;/p&gt;

&lt;p&gt;I was also very impressed with whoever did the “filming”, as they were able to catch “audience” reactions. The cutting from the wide angle of the speaker and their slides to just the slides was seamless. If you want the speaker’s perspective for this conference (and more great tips for virtual conferences), check out Noçnica Fee’s &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fthenewstack.io%2Fdeserted-island-devops-wrap-up%2F"&gt;writeup&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EUFmjG00--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/1%2A9-rFkMyi9zVnHhS6M5Nw7A.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EUFmjG00--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/1%2A9-rFkMyi9zVnHhS6M5Nw7A.png" alt="fake medal saying ‘best style’ with an image of the marketing banner provided by the conference of the speaker, talk title" width="800" height="348"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Type caption for image (optional)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/r/?url=https%3A%2F%2Fact-w.org%2F"&gt;ACT-W&lt;/a&gt; (Advancing Careers in Tech for Women) wins &lt;strong&gt;Best Style&lt;/strong&gt; (every year, honestly) with their bold and energetic marketing. This conference is known for having a different &lt;a href="https://medium.com/r/?url=https%3A%2F%2Ftwitter.com%2FACT_WConf%2Fstatus%2F1006929188144549888"&gt;logo&lt;/a&gt; each year by well-known designer &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fwww.linkedin.com%2Fin%2Fkarliek%2F"&gt;Karlie Kirkaldie&lt;/a&gt;, always featuring a Woman of Color and her laptop (or other tech device), often with references to retro space- or futuristic-themed movies.&lt;/p&gt;

&lt;p&gt;In addition, this year, they set up separate marketing packages for speakers, sponsors and attendees, which helped spread out and maximize advocacy throughout their community (a valuable move for a non-profit event). As a speaker, I was given a very user-friendly &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fwww.canva.com%2F"&gt;Canva&lt;/a&gt; template that could easily be uploaded to social media with my headshot, talk title, and conference information (seen above, in the award graphic).&lt;/p&gt;




&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Sl-FQcx_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/1%2Av3v4bN1QexwEHmGp6pUtaQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Sl-FQcx_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/1%2Av3v4bN1QexwEHmGp6pUtaQ.png" alt="" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Type caption for image (optional)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/r/?url=https%3A%2F%2Fdataengconf.com.au%2F"&gt;DataEng Bytes AU&lt;/a&gt; wins &lt;strong&gt;Most Likely to Reapply&lt;/strong&gt;. I say this, not because I would hesitate to reapply to speak at any of these other amazing conferences, but I really want to give DataEng Bytes AU a particular shoutout for their speaker experience. This was one of the conferences where talks were pre-recorded. The organizers went above and beyond in editing the talks and reviewing the content, and were able to come up with very thoughtful questions in advance for &lt;em&gt;each talk&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Organizers were &lt;em&gt;very&lt;/em&gt; attentive in the #speakers-lounge Slack channel, ready for speaker’s last-minute troubleshooting questions. They were also active in each speaker’s individual channel, and in giving speakers kudos, which encouraged other audience members to add their compliments as well. They also provided a QR code at the end of each talk that linked to a feedback form for that specific speaker.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mcGsINJ2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/1%2ARrNgIr5lNEc27YCei4vTMQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mcGsINJ2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/1%2ARrNgIr5lNEc27YCei4vTMQ.png" alt="" width="800" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Type caption for image (optional)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/r/?url=https%3A%2F%2Ffailover-conf.heysummit.com%2F"&gt;Failover Conf&lt;/a&gt; wins &lt;strong&gt;Most Likely to Stay in Touch.&lt;/strong&gt; One component of this was a particularly energetic and well-moderated Slack space — with channels that each had a specific and clear purpose and a good balance between technical and social/fun. Each of these included frequent, thoughtful prompts from the organizers. Although they archived the conference Slack a couple weeks after the conference, they encouraged attendees to join their main Slack, where I’ve stayed in contact with several fellow attendees.&lt;/p&gt;

&lt;p&gt;Additionally, &lt;a href="https://medium.com/r/?url=https%3A%2F%2Ffailover-conf.heysummit.com%2F"&gt;Failover Conf&lt;/a&gt; used &lt;a href="https://medium.com/r/?url=https%3A%2F%2Ficebreaker.video%2F"&gt;Icebreaker video&lt;/a&gt;, which I’ve found to be a superior… well, icebreaker tool. They also made sure to introduce this tool in a way that felt natural with the flow of the conference. They acknowledged the inherent awkwardness of virtual social interaction, while still reassuring us that there would be enough structure to mitigate some of that awkwardness. The attentiveness to community in their Slack and in the icebreaker opportunities enabled me to make lasting connections.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--k89h_MjX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/1%2AG-q6ickgwQg-fLttpjZckg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k89h_MjX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/1%2AG-q6ickgwQg-fLttpjZckg.png" alt="a fake medal for ‘most on brand’ with a pic of the speaker in a frame in the shape of a bee’s face, and the Beam bee logo" width="800" height="348"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Type caption for image (optional)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/r/?url=https%3A%2F%2Fbeamsummit.org%2F"&gt;Beam Summit&lt;/a&gt;, debuting their new logo this year, wins &lt;strong&gt;Most On-Brand&lt;/strong&gt;. And I’m not even that jealous that this icon gives my &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fflink.apache.org%2Fmaterial.html"&gt;company’s logo&lt;/a&gt; some major competition in the “cutest logo” category. For real though, they did a fantastic job of leveraging this debut to further engage their community. Beam Summit had logo-themed trivia, and most noticeable of course was the fact that each speaker was framed in the shape of the bee logo’s face during their talks.&lt;/p&gt;

&lt;h3&gt;
  
  
  2021 Awards
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KojU9A_r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/1%2Aa2u1xjSwGWxX3oLgQluFwQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KojU9A_r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/1%2Aa2u1xjSwGWxX3oLgQluFwQ.png" alt="A fake award banner that says “Timezone-Inclusive Connection” with a stamp that says “DDD EU.” Inside the banner is also a screenshot of the event’s logo which says Domain Driven Design Europe in block letters." width="670" height="277"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Type caption for image (optional)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/r/?url=https%3A%2F%2Fdddeurope.com%2F2021%2F"&gt;Domain-Driven Design EU&lt;/a&gt; — wins &lt;strong&gt;Best Timezone-Inclusive Connection&lt;/strong&gt;. In addition to being a spectacular speaker experience, DDD EU went above and beyond with providing inclusive opportunities to connect with people regardless of where you live. They provided an &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fyoutu.be%2Fg0KOjzoogtU"&gt;“Open Space”&lt;/a&gt; with attendee-created “Birds of a Feather” type chat rooms. The best part — the Open Space was &lt;em&gt;really&lt;/em&gt; open — 24/7. During the several days of the conference, I showed up late at night, midday, and early in the morning my time and there was always at least 30 people in a room, ranging all different continents. I also appreciated the thought that went into encouraging (in a friendly and pragmatic way) people to truly take time off and engage fully in the conference with suggestions for how to convince your boss to let you really fully enjoy the hands-on nature of this conference.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BVUx-1xx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/1%2AzINEPIBiWd0EeZ-deqQqVw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BVUx-1xx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/800/1%2AzINEPIBiWd0EeZ-deqQqVw.png" alt="A fake award banner that says “Most supportive environment” with a stamp that says “PyCascades.” Inside the banner is also a screenshot of a photo collage of attendees sent from the PyCascades’ Twitter account." width="661" height="272"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Type caption for image (optional)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/r/?url=https%3A%2F%2F2021.pycascades.com%2F"&gt;PyCascades&lt;/a&gt; wins &lt;strong&gt;Most Supportive Environment&lt;/strong&gt;. I was on the planning committee for this and got to see firsthand the incredible amount of work and compassion that went into considering the impact on attendees of that every detail and decision that went into putting this event together. We used multiple expert vendors for accessibility tools like captioning. The Code of Conduct was thorough and easy to find, and there were resources and trained individuals ready to enforce it.&lt;/p&gt;

&lt;p&gt;If you are involved in planning a virtual event, know that these considerations really pay off: we had an extremely diverse group of attendees. And, we had a lot of positive feedback from attendees who identified as being part of various different marginalized groups. Many of these people mentioned in one way or another that this was the most comfortable and safe they felt at a conference, and that they participated much more heavily in Q&amp;amp;A and other activities because of it. I would love to see many of these elements become the new baseline, like accessibility tools/captioning, Code of Conduct training, normalizing pronouns in bios, explicit safe spaces/chat rooms for various marginalized groups. A lot of this was possible through paid tickets (with generous grants for those who applied) and through sponsor-covered accessibility vendors.&lt;/p&gt;




&lt;h3&gt;
  
  
  In This Series
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Post 1: &lt;a href="https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-2c44"&gt;Accessibility + Inclusivity&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Post 2: &lt;a href="https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-part-2-137n"&gt;The Speaker Experience&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Post 3: &lt;a href="https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-part-3-1kj"&gt;And the Award Goes To…&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Post 4: &lt;a href="https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-part-4-48ah"&gt;Conclusion + Resources&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Virtual Events: Speaker &amp; Organizer Guide, Part 2</title>
      <dc:creator>Caito_200_OK</dc:creator>
      <pubDate>Sat, 06 Mar 2021 02:10:00 +0000</pubDate>
      <link>https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-part-2-137n</link>
      <guid>https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-part-2-137n</guid>
      <description>&lt;h2&gt;
  
  
  Part 2: the Speaker's Nightmare
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-2c44"&gt;previous post&lt;/a&gt; in this series is about the accessibility and inclusivity aspects, and provides the background for the research and experience discussed here.&lt;/p&gt;

&lt;p&gt;This post will cover the speaker experience, and the following posts include &lt;a href="https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-part-3-1kj"&gt;awards&lt;/a&gt;, and lastly, the &lt;a href="https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-part-4-48ah"&gt;conclusion and a consolidated list&lt;/a&gt; (with links) of all the tools and resources covered in this series.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Speaker’s Nightmare
&lt;/h3&gt;

&lt;p&gt;What are the biggest issues that most speakers face? Audio/Visual issues and talking into a void tend to be the things of nightmares for most of us. And guess what? You can still have this “traditional” speaker experience with virtual events too: A/V issues are often similar, and instead of that worst case scenario of addressing an unresponsive room of people on their phones, now it’s a blank screen.&lt;/p&gt;

&lt;p&gt;There are some new problems too, but fortunately, there are some really fantastic organizers out there who have shown me some effective ways of mitigating these.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AUDIO-VISUAL ISSUES&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It’s become unavoidable that speakers now have to be a lot more familiar with A/V troubleshooting, with anything from their internet connection to a potential bug in the presentation software. However, most conferences now have mic-checks as a baseline for testing out audio, webcam, and slides with whichever event platform(s) they’re using. This is typically done at least a week ahead of the event.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Pre-recorded:&lt;/strong&gt; more conferences are allowing for (or requesting, often as a backup) a pre-recorded talk. There are pros and cons for this, but generally I find that it allows for more flexibility, particularly when the speaker and attendees are not in the same timezone. My favorite software for pre-recording talks for this format been &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fobsproject.com%2F"&gt;OBS&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;“Green rooms”&lt;/strong&gt; are becoming more common as well. This is where the speaker joins a separate video chat with one or more organizers (but no attendees), well in advance of their talk. In the best experience I had, instead of making me sit through my pre-recorded talk (which, from experience, is just — &lt;em&gt;cringe)&lt;/em&gt; the organizers chatted with me in a separate “room” during my talk, and did some practice Q&amp;amp;A. As a result, I had my best Q&amp;amp;A session (ever) because I felt more prepared, relaxed, and supported. For the organizers, they avoided having dead air, which helped keep up the energy and momentum of the event. With live talks, there are still great opportunities through leveraging the increased chat room use by seeding or encouraging audience engagement during the Q&amp;amp;A.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;TALKING INTO THE VOID&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is many people’s worst fear about public speaking, and is an issue with both in-person and virtual events. There are some fascinating psychological papers on this phenomenon, as well as many resources on how to address it individually so I won’t go into that here. Personally, with virtual events, I feel like I’m getting the best of both worlds: I get to avoid the Silent Room of Terror from in-person conferences. And, I put photos of friends right behind my webcam, so presenting at conferences now feels like like geeking out with my buds.&lt;/p&gt;

&lt;p&gt;Even with effective techniques though, the toughest part can often be the feeling of disconnection right after a talk. If you’re a conference organizer — this can be alleviated by enabling stronger connections between the speaker and their audience in various ways, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Q&amp;amp;A prep&lt;/strong&gt; — as I mentioned earlier, finding ways to avoid dead air during the questions and answers portion is beneficial to the speaker, the organizers, and the audience. The most successful ones I’ve experienced occurred when there were seeded or backup questions, either submitted by the speaker, or by the organizers. At one conference, the organizers leveraged the fact that all talks were pre-recorded, and they watched each talk and came up with questions (which they shared with the speaker) in advance. To avoid the outcome where no one wants to be the first one to ask a question, the organizers also added their seeded questions to the event chat during the talk, which did increase attendee engagement.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Virtual speaker lounge&lt;/strong&gt; — &lt;em&gt;particularly&lt;/em&gt; with virtual, speakers often have last-minute questions for the organizers, and it can be uncomfortable, or just plain inefficient, to ask them in a large public chat channel with other attendees. Having a separate chat space just for speakers to quickly access the organizers can make a big difference in the speaker experience.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Separate channels for each talk &lt;/strong&gt;— although this risks getting chaotic if there are already other channels or it’s a multi-track conference, I’ve mostly found that the pros outweigh the cons. Namely, this allows for better separation of concerns and keeps announcement channels clear. There are also easy ways of mitigating the downsides, like being clear in announcements and notifications about where to find these other spaces, and using familiar tools for communication, like Slack or Discord.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;BONUS POINTS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Another speaker I was “hanging out with” (virtually, across many timezones, like you do nowadays), told me he kept wishing more conferences would replicate a virtual version of the traditional “&lt;strong&gt;speaker dinner.&lt;/strong&gt;” In the “before times,” these were typically done to help speakers ease into the event and bond with their peers, which often makes a big difference in how connected a speaker feels to the event, and how relaxed they are giving their talk. I have only seen one conference attempt this (because I suggested and hosted it). I would love to see this become more common.&lt;/p&gt;




&lt;h3&gt;
  
  
  In This Series
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Post 1: &lt;a href="https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-2c44"&gt;Accessibility + Inclusivity&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Post 2: &lt;a href="https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-part-2-137n"&gt;The Speaker Experience&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Post 3: &lt;a href="https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-part-3-1kj"&gt;And the Award Goes To…&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Post 4: &lt;a href="https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-part-4-48ah"&gt;Conclusion + Resources&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Virtual Events: Speaker &amp; Organizer Guide, Part 1</title>
      <dc:creator>Caito_200_OK</dc:creator>
      <pubDate>Sat, 06 Mar 2021 02:06:52 +0000</pubDate>
      <link>https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-2c44</link>
      <guid>https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-2c44</guid>
      <description>&lt;h2&gt;
  
  
  Part 1: Introduction, Accessibility &amp;amp; Inclusivity
&lt;/h2&gt;

&lt;p&gt;After speaking at almost 20 (and attending 30+) virtual tech events since pandemic started, I’ve experienced a great variety of new tools and techniques that have arisen out of the growing market for high-quality online events.&lt;/p&gt;

&lt;p&gt;If you’ve attended an in-person tech conference — or really, if you can still remember what &lt;em&gt;any&lt;/em&gt; big, in-person event felt like — it’s probably fairly obvious that there are challenges involved in moving large-scale knowledge-sharing events to a virtual platform.&lt;/p&gt;

&lt;p&gt;Virtual events aren’t new, but what is new is having them be the only option. This shift has a significant impact on attendance numbers and attendee (and speaker) expectations. This also means that regular in-person events that have previously been able to draw their target audiences in through in-person perks are having to do some serious readjustments.&lt;/p&gt;

&lt;p&gt;Based on polls and interviews with other speakers and attendees, as well as my own experience, I’ve selected the most common challenges of going virtual. I’ve also selected what I’ve found to be the most creative ways of addressing these challenges, and of embracing the opportunities that going virtual can provide.&lt;/p&gt;

&lt;p&gt;First I’ll address this in relation to attendees and inclusivity, then in the next post, the speaker experience in the context of virtual events. The third post will be a knowledge share of the best tactics and innovations I've come across in the form of awards (categories include “Most Likely to Post on Twitter”, “Best [virtual] Happy Hour”, and “Most Likely to Reapply”, among others). The last post is the conclusion and a list of links to the tools I’ve mentioned. &lt;/p&gt;




&lt;p&gt;&lt;strong&gt;This post will cover attendees and inclusivity. The next post in this series will cover “the Speaker’s Nightmare”, and the last post will include conclusions and a links to all the tools and resources mentioned throughout the series.&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Attendees and Inclusivity
&lt;/h3&gt;

&lt;p&gt;Among attendees I spoke with, most of the downsides mentioned for in-person events going virtual fell under the umbrella of “connection” — whether it was to other attendees, to speakers, or to the technologies being presented. Many people also mentioned missing the festive, energizing experience that is enabled through the combination of other people, new places, and even just fun swag. Virtual events can also be more challenging for people who have demanding at-home responsibilities that they can’t escape if they’re attending an event from home.&lt;/p&gt;

&lt;p&gt;However, there are many environmental, financial, and logistical benefits of virtual events, inherent simply in not having hundreds or thousands of people convening on a single location. There are also many additional benefits in the realm of inclusivity. Virtual conferences can be more accessible for those who are differently abled, for those who live far away, and for people who may not be able to afford to travel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;EXPANDING YOUR REACH&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Timezones — &lt;/strong&gt;the time I spent re-re-re-re-re-checking my timezone calculus this year really added up. Having an agenda that is not easy to navigate is already a common pain point for attendees (whether in-person or virtual). But — if you want to &lt;em&gt;really&lt;/em&gt; benefit from the larger, international audience that you can attract during a virtual event, it’s essential to make it easy for attendees and speakers to be able to quickly parse what that schedule means for their timezone.&lt;br&gt;
Some conferences have handled this with a calendar plugin that can save the conference schedule or specific talks to your Google or iCal calendar. These plugins will of course also naturally do that much-hated timezone math for you. One conference simply had UTC and PDT timezones side by side for each row of talks on their agenda. The bare minimum is to at least make it clear what timezone you’re in on the agenda and related marketing materials, emails, etc. Posting the conference dates in these communications (including for speaker acceptance emails) also helps, particularly during busy conference seasons.  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Embracing global influence — &lt;/strong&gt;conferences like &lt;a href="https://medium.com/r/?url=https%3A%2F%2F2020.devrel.net%2F"&gt;DevRelCon Earth&lt;/a&gt; scheduled each full day of events to be hosted by a different city around the world, in that region’s timezone. Additionally, they made each day truly themed around the host city. Although I wasn’t able to make it to Tokyo day, I was able to overlap with several European, African, and US cities, and therefore was exposed to unique themes and challenges faced by technologists in each of those locations.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;GENERAL ACCESSIBILITY&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Financial aid &lt;/strong&gt;— more and more, I’m seeing conferences that normally work with sponsors getting more creative with where those funds go. Companies are finding that it still pays to be listed as a sponsor. And, without needing to spend many thousands on a venue, food, and swag, conference organizers are finding that they can afford to provide aid in the form of scholarships to paid activities (like trainings). Other virtual events I’ve participated in give options for speakers to donate their honorarium to a cause (of their choice or selected by the event organizers), since they won’t need it for travel expenses.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Embedded accessibility features — &lt;/strong&gt;I’ve noticed more conferences recently using this opportunity to include closed captions and other accessibility features as part of the virtual platform itself. Others have simply taken advantage of increased chat room use to make linked information and Codes of Conduct easier to find.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;DIFFERENT LEARNING &amp;amp; COMMUNICATION STYLES&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;“Traditional” conference formats don’t work for everyone. Virtual events are an opportunity to provide a more inclusive range of options for different learning and communication styles.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Talk playback — &lt;/strong&gt;being able to stop and replay parts of a technical talk while still being relatively in time with the rest of the conference can make knowledge share easier for everyone. This can be particularly true though for those with “non-default” learning styles, those who are newer to tech, or anyone who just needs to hear that last part again without getting left out of the general flow of the live event.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Using familiar tools&lt;/strong&gt; — reaching out and interacting with strangers can be tough for a lot of us. This is often exacerbated for those with various types of anxiety, for many who are marginalized in the industry, or for those who rely more heavily on things like body language that they can’t get virtually. Using a familiar tool for communication can go a long way in making people feel safe and comfortable interacting with other attendees.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Safe conversation spaces — &lt;/strong&gt;I consistently received feedback from attendees that having only a few large chat channels is very intimidating. This has been particularly the case for those I spoke with who are marginalized in tech or early-career, as well as those who self-identified as “introverted.” At one conference I attended, I noticed that although the vast majority of attendees were software engineers (a large percentage of them being early-career), the posts in the large chat channel were almost &lt;em&gt;entirely&lt;/em&gt; from people in customer-facing roles, with just a few comments from senior engineers. In speaking with attendees, I found that chats were still happening, but in private platforms (not hosted by the event) by attendees who happen to know each other. Conversely, at another conference that had very few early-career engineers but several smaller, more personal chat channels, I saw much more engagement from the early-career engineers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Well-structured breakout sessions — &lt;/strong&gt;for many of us, both the desire, and the struggle to make meaningful connections over virtual platforms is a well-known issue. For this, I specifically polled attendees who, for various reasons, felt intimidated or uncomfortable interacting with strangers at tech conferences. The most common themes I received was that this was usually (but not always) made worse by the virtual format. However, consistent feedback was that they were much more likely to voluntarily attend (and ended up enjoying) social events that were well explained ahead of time, had a clear structure, and the opportunity to connect in smaller groups. &lt;a href="https://medium.com/r/?url=https%3A%2F%2Ficebreaker.video%2F"&gt;Icebreaker Video&lt;/a&gt; is a great example of a platform that provides an easy and less awkward way to break people out and prompt more comfortable conversation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Make it personal — &lt;/strong&gt;of course, you don’t want chat chaos during a conference, but I have received positive feedback on having chat channels outside of the main technical or logistical conversation that are a bit more personal. Popular ones this summer have included #hallway-track, #welcome (or #introductions) or naturally providing specific prompts with ones like #work-from-home-setups or #pets.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  In This Series
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Post 1: &lt;a href="https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-2c44"&gt;Accessibility + Inclusivity&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Post 2: &lt;a href="https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-part-2-137n"&gt;The Speaker Experience&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Post 3: &lt;a href="https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-part-3-1kj"&gt;And the Award Goes To…&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Post 4: &lt;a href="https://dev.to/caito_200_ok/virtual-events-speaker-organizer-guide-part-4-48ah"&gt;Conclusion + Resources&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>speaking</category>
      <category>virtual</category>
      <category>devrel</category>
      <category>a11y</category>
    </item>
    <item>
      <title>Data Driven Development for Complex Systems, Part 1</title>
      <dc:creator>Caito_200_OK</dc:creator>
      <pubDate>Fri, 05 Mar 2021 21:15:01 +0000</pubDate>
      <link>https://dev.to/caito_200_ok/data-driven-development-for-stream-processing-53ml</link>
      <guid>https://dev.to/caito_200_ok/data-driven-development-for-stream-processing-53ml</guid>
      <description>&lt;h2&gt;
  
  
  Part 1 of 4: Introduction + Foundational Concepts
&lt;/h2&gt;

&lt;p&gt;For most of us, if something is generic and common sense, we’re less likely to implement it in our lives with much intention. This could be a vague, personal health habit we’re trying to adopt like going on more walks, or it could be certain best practices in our software development process.&lt;/p&gt;

&lt;p&gt;We all know it’s a lot easier to start going on t hose walks if your life isn’t too hectic. The more complex your life gets, particularly if that complexity involves integrating with other people’s schedules — the more that daily walk may need to be formalized. And just like when you get to the point where you need to start blocking off “walk” on your calendar, same goes for your software. The more complex your integration points get with other people or teams, the more important it is to be that much more structured about your development process.&lt;/p&gt;

&lt;p&gt;You’re now probably thinking “yes this is very obvious, so why would you write a whole blog &lt;em&gt;series&lt;/em&gt; on this??”&lt;/p&gt;

&lt;p&gt;… which brings us to…&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6TLLkPJN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/max/686/1%2AhUCZlNTWvGYbxluvhWMzBg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6TLLkPJN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/max/686/1%2AhUCZlNTWvGYbxluvhWMzBg.png" alt="Image for post" width="686" height="216"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This series is the result of the combined experience from myself and others that I’ve been collecting over the last several years.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This experience comes from the success and sometimes hilariously bad failures in our relationships with data- and metrics-driven development.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These posts, and the examples in it, revolve specifically around advanced stream processing applications. However, the concepts and best practices that I will cover also apply to other software development scenarios — whether they also have highly complex integration points, or are much simpler.&lt;/p&gt;

&lt;p&gt;So, this series is for you if you want:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  A review of some of the best data- and metrics-driven development tactics for stream processing, and how to efficiently leverage them.&lt;/li&gt;
&lt;li&gt;  To use these tactics to streamline and automate a lot of the non-coding overhead that tends to come with these sorts of development scenarios.&lt;/li&gt;
&lt;li&gt;  Some quantitative returns on investment to show your boss if you need to convince them to let your team implement these practices.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nrJEPWCd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/max/689/1%2AZJXKOhNFWUY4o0G3gxRphA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nrJEPWCd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/max/689/1%2AZJXKOhNFWUY4o0G3gxRphA.png" alt="Image for post" width="689" height="218"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Firstly, data- and metrics-driven development can mean a lot of different things to different people, so, I’ll start with some of the foundational concepts and terms that I’ll be using. Next, I’ll cover the two specific principles I’ll be focusing on for stream processing.&lt;/p&gt;

&lt;h1&gt;
  
  
  Foundational Concepts + Terms
&lt;/h1&gt;

&lt;p&gt;If you search for data driven development, you’ll mostly find information about &lt;strong&gt;data-driven&lt;/strong&gt; &lt;strong&gt;&lt;em&gt;design&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;business metrics.&lt;/strong&gt; There’s a big overlap between these two, as essentially the main focus here is to use data to drive the &lt;strong&gt;design&lt;/strong&gt; of a product that customers actually want to buy and use.&lt;/p&gt;

&lt;p&gt;It’s important to note the differences though, because that changes how you use your metrics and &lt;strong&gt;who&lt;/strong&gt; is using your metrics internally.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Business metrics&lt;/strong&gt; refers to anything related to internally measured success (like team velocity, sprint burndown, lead time, etc). But they can also include external information, like what many people refer to as “vanity metrics.” Vanity metrics are often things like “our application is processing 3 million messages a day” and are typically intended for press releases and blog posts.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Data driven&lt;/strong&gt; &lt;strong&gt;&lt;em&gt;design&lt;/em&gt;&lt;/strong&gt; relates &lt;em&gt;specifically&lt;/em&gt; to the end user experience. As the name implies, the main focus here is to use data — typically data involving usage patterns and user feedback — in order to better understand, and design for the needs of &lt;em&gt;that&lt;/em&gt; user.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Data driven development&lt;/strong&gt; is often lumped together with one of these, or used as an umbrella term. I &lt;strong&gt;do&lt;/strong&gt; think it can still be appropriate as an umbrella term, but my focus in this series is where it represents observability data about your system that is &lt;strong&gt;used to alter the development process or roadmap.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7oOdq5C5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/max/2880/1%2Ado0EKWS1Im--HrP0Sjx2Bg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7oOdq5C5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/max/2880/1%2Ado0EKWS1Im--HrP0Sjx2Bg.png" alt="Image for post" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Designed using &lt;a href="https://www.canva.com/"&gt;Canva&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Data-Driven, Data-Informed, Data-Aware
&lt;/h2&gt;

&lt;p&gt;Secondly, there is a set of principles that come more directly from data-driven design, but are applicable to data-driven development as well, and will come up later in this series.&lt;/p&gt;

&lt;p&gt;This is the idea of a 3 tiered approach that defines the &lt;strong&gt;type&lt;/strong&gt; of tactics, AND metrics that you use and how they guide your product. These approaches are categorized by their relationship with quantitative or qualitative data.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Data-driven&lt;/strong&gt; &lt;strong&gt;design&lt;/strong&gt; outside of its use as an umbrella term, this is as a specific approach is centered purely around quantitative data. This process is applicable to aspects of the software design like performance improvements.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Data&lt;/strong&gt;-&lt;strong&gt;informed&lt;/strong&gt; &lt;strong&gt;design&lt;/strong&gt; weighs and utilizes qualitative and quantitative data equally and usually together to make a design decision.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Data&lt;/strong&gt;-&lt;strong&gt;aware&lt;/strong&gt; &lt;strong&gt;design&lt;/strong&gt; is typically focused more on directly qualitative information. However, quantitative analysis is still often used as a base, or to pair with customer use stories, detailed feedback, or discussion-based risk/reward analysis. This category is also often thought of as the one that takes the larger picture into account, which is why you’ll often see this diagram &lt;a href="https://uxdesign.cc/becoming-a-data-aware-designer-1d7614ebc3ed"&gt;portrayed as a circle&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--clavbP2x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/max/1011/1%2AKiFdFXhAwCG8Li8DCKIFCw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--clavbP2x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/max/1011/1%2AKiFdFXhAwCG8Li8DCKIFCw.png" alt="Image for post" width="800" height="256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Next Level Principles
&lt;/h1&gt;

&lt;p&gt;There are three data-driven principles that will be at the core of this series. The first of these is a generic concept that I’ll be reviewing in in the context of how it can best be leveraged for these use cases. The other two principles are a fusion and restructuring of other concepts and ideas that exist within the wider data-driven development/design group. One of the big goals with each of these tactics is leveraging them as sustainable, low-effort cycles.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Knowing your normal&lt;/strong&gt;: this is one of those practices that in my experience has a high, measurable return on investment but is frequently neglected. This is essentially the practice of keeping your metrics meaningful, iterative, and accessible enough that abnormalities are as clear to your developers as they are to your alerting system.
&lt;em&gt;I won’t have a whole post on this, but it will be an important aspect of the following articles.&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Metrics-driven-metrics cycle&lt;/strong&gt;: I started this term as a joke but it stuck, as it’s really the most accurate description of this concept. This refers to the practice of continuously using current observations about your application’s behavior to improve &lt;strong&gt;how&lt;/strong&gt; you observe your application. And consequently, creating a more sustainable relationship between these metrics and your development priorities.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Metrics as a shared language&lt;/strong&gt;: this refers to setting up a particular process around your metrics cycle. This process is aimed at leveraging these modular, meaningful metrics in a way that can help streamline many of the people-related challenges inherent in systems that have complex integration points and dependencies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--s4O8P3mj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/max/687/1%2Ay0OHuiLTxedcYRiitVRlSQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--s4O8P3mj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/max/687/1%2Ay0OHuiLTxedcYRiitVRlSQ.png" alt="Image for post" width="687" height="217"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The following posts will cover the “Metrics Driven Metrics” cycle and “Metrics as a Shared Language” (respectively) in more depth with real world examples. The last post will be a more technical dive into the examples.&lt;/p&gt;

&lt;h1&gt;
  
  
  Next in this series
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Part 2: The Metrics-Driven-Metrics Cycle&lt;/strong&gt; — arriving on March 11, 2021&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Part 3: Metrics as a Shared Language&lt;/strong&gt; — arriving on March 18, 2021&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Part 4: Hands-On- Monitoring for Stream Processing&lt;/strong&gt; — arriving in April, 2021&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Related talks
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://www.youtube.com/watch?v=_PolaklvKtc&amp;amp;ab_channel=FlinkForward"&gt;“Sweet Streams are Made of These: Applying Metrics- Driven Development to Apache Flink”&lt;/a&gt; | Flink Forward EU/Virtual | 10.19–22.2020&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Find me
&lt;/h1&gt;

&lt;p&gt;Twitter: &lt;a class="mentioned-user" href="https://dev.to/caito_200_ok"&gt;@caito_200_ok&lt;/a&gt;&lt;br&gt;
Web: &lt;a href="http://caito-200-ok.com/"&gt;http://caito-200-ok.com/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>datadriven</category>
      <category>observability</category>
      <category>streamprocessing</category>
    </item>
  </channel>
</rss>
