<?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: Avo</title>
    <description>The latest articles on DEV Community by Avo (@avohq).</description>
    <link>https://dev.to/avohq</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%2F441590%2Fb8434855-5a7b-41c0-9eae-ad957b7098b6.png</url>
      <title>DEV Community: Avo</title>
      <link>https://dev.to/avohq</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/avohq"/>
    <language>en</language>
    <item>
      <title>How to Get Everyone in Your Organization on Board with Your Tracking Plan</title>
      <dc:creator>Avo</dc:creator>
      <pubDate>Fri, 07 May 2021 14:12:47 +0000</pubDate>
      <link>https://dev.to/avohq/how-to-get-everyone-in-your-organization-on-board-with-your-tracking-plan-3gf3</link>
      <guid>https://dev.to/avohq/how-to-get-everyone-in-your-organization-on-board-with-your-tracking-plan-3gf3</guid>
      <description>&lt;p&gt;Data-driven business leaders know data is their company’s—and their product’s—most valuable asset. But many of them don't know how this data is generated—and can't help improve how it's collected—because they don't understand the role &lt;a href="https://www.avo.app/blog/what-is-a-tracking-plan-and-why-do-you-need-one"&gt;tracking plans&lt;/a&gt; play in overall &lt;a href="https://www.avo.app/blog/16-data-governance-tools-to-improve-data-usability-and-security-in-2020"&gt;data governance&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A good tracking plan can mean the difference between unwieldy, hard-to-use data (too much or too little; inconsistent; full of repetitions or errors) and data that helps your organization steamroll its objectives. But you already know that. So let’s talk about how to help your stakeholders understand that, too.&lt;/p&gt;

&lt;p&gt;A good tracking plan needs the input and buy-in from everyone in your organization in order to fully align with organizational goals and ensure data design matches them. To get your stakeholders bought into your tracking plan, you need to connect with them early and highlight how your tracking plan will help you collect data to improve your performance and product.&lt;/p&gt;

&lt;p&gt;Don't treat your stakeholders as mere bystanders in this quest for good data. Instead, treat them as your teammates, as the supporting cast, and help them understand how and why they should participate in your data plot.&lt;/p&gt;

&lt;h1&gt;
  
  
  How to shape your tracking plan with your stakeholders
&lt;/h1&gt;

&lt;p&gt;Reach out to your stakeholders early on in the development of your tracking plan to give them a chance to weigh in and influence the plan. A new tracking plan means change, and whatever its nature, no one likes to have change happen to them. Meet for 30 minutes with the owner of each business objective on which you’re basing your tracking plan. The point is to understand the motivation behind the objectives they care about.&lt;/p&gt;

&lt;p&gt;One owner might be a CMO motivated by how your product is helping fulfill wider company KPIs relative to adoption rates or churn. Another owner might be a product manager looking to better understand how the feature they’re responsible for is (or is not) driving adoption rates. Other stakeholders may include product leads, engineers, and designers, as well as analytics, marketing, and sales professionals.&lt;/p&gt;

&lt;p&gt;Focus on scheduling in-person (or, as is more advisable in present circumstances, virtual) meetings to explain how the tracking plan fits into your company’s data governance. For example, let's say one of your business objectives is to increase average session time in your product. In that case, meet with the product development lead associated with your product.&lt;/p&gt;

&lt;p&gt;From there, don't just tell them what preconceived metrics will go into your tracking plan. Find out what data your product development stakeholder would most like to see. What data would best help them solve that recurring issue that gives their team headaches and reduces the quality of their output? Do they need more behavioral data? More qualitative data? Do they need to know more about feature usage or more about bounce rates in certain product areas?&lt;/p&gt;

&lt;p&gt;The conversation should be open and two-way. Valuing your stakeholders' ideas and taking their concerns seriously is vital to building a high-functioning tracking plan and building trust in that plan. Trust, needless to say, is an essential component of buy-in.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://saaslist.com/blog/project-management-statistics/"&gt;One-third&lt;/a&gt; of the American workforce feels that management officials don’t value their ideas. Your stakeholders should not figure among that number.&lt;/p&gt;

&lt;h1&gt;
  
  
  The plot treatment: Connect the dots between tracking and objectives
&lt;/h1&gt;

&lt;p&gt;During the early stages of your tracking plan, it's vital that you're demonstrating how that plan will help fulfill stakeholder objectives.&lt;/p&gt;

&lt;p&gt;The first step is to be honest about the impacts of inaccurate data. “But,” we hear you say, “isn't inaccurate data what happens when there's no tracking plan in place at all? Stakeholders will be free of having to worry about inaccurate data with this shiny new tracking plan, won't they?”&lt;/p&gt;

&lt;p&gt;That's mostly right, and that’s the point you need to convince your stakeholders of. Remember that &lt;a href="https://www.entrepreneur.com/article/332238"&gt;bad data&lt;/a&gt; costs US companies between $9.7 million and $14.2 million annually. It also costs stakeholders gray hairs and sleepless nights. Along with your tracking plan, you’ll also need some way to &lt;a href="https://www.avo.app/blog/16-data-governance-tools-to-improve-data-usability-and-security-in-2020"&gt;enforce data governance&lt;/a&gt; after its original implementation. But that’s another story for another time.&lt;/p&gt;

&lt;p&gt;Once they understand the importance of their stake in your tracking plan, you can discuss how the data you collect will help inform better business decisions to align with these goals.&lt;/p&gt;

&lt;p&gt;During your first meeting, identify which business objectives each stakeholder cares about and explain how your tracking plan's events and properties provide support. For example, if you're meeting with product designers, they might identify their principal business objective as “creating a &lt;a href="https://blog.getenjoyhq.com/how-to-build-an-effective-ux-research-system-ama-with-nicole-wright-lead-ux-researcher-at-honeybook-and-sofia-quintero-from-enjoyhq/"&gt;UX&lt;/a&gt; that drives more conversions to our premium subscription tier.” An engineering lead might have an objective like “better understanding patterns of search within the product interface.”&lt;/p&gt;

&lt;p&gt;Then, with that knowledge, you can demonstrate how your tracking plan will help your designer achieve their objective. It might help them spot premium-ready user types better. You can show your engineers how your tracking plan could help them develop an inventory of search requests and understand which proportion of users is finding the answers to their queries, and which proportion isn’t.&lt;/p&gt;

&lt;h1&gt;
  
  
  The build-up: Writing the first chapters of your data story
&lt;/h1&gt;

&lt;p&gt;Now that you know what motivates your stakeholders, the fun can begin. To get stakeholders to buy into your tracking plan and feel like it's not just another box to tick on the journey to deployment, you need to set the stage for the kind of story that your new, clean, well-sourced data lets you tell.&lt;/p&gt;

&lt;p&gt;Crafting this data story makes it clear to stakeholders how they stand to benefit from maintaining your tracking plan. All of a sudden, helping to develop and use a tracking plan is no longer something stakeholders simply "have to do." It’s something that directly and obviously benefits them.&lt;/p&gt;

&lt;p&gt;Once you've identified which business objectives your stakeholder cares most about, work through an example scenario that shows the stakeholder how they might use data to uncover product changes that support better performance post-deployment.&lt;/p&gt;

&lt;p&gt;For example, you may have data demonstrating a high bounce rate between your dashboard and your secondary features. This will allow your product development and design stakeholders to streamline their UX. They might implement clearer labeling or redesign on-page buttons to ease passage down the activation funnel. They might go further, reassessing how attractive those secondary features are to your users.&lt;/p&gt;

&lt;h1&gt;
  
  
  The adventure: Keep engaging stakeholders as your data plot develops
&lt;/h1&gt;

&lt;p&gt;Getting your stakeholders on board is half the battle. The other half is keeping them there. To keep your stakeholders on board with your tracking plan, you need to continue to engage them after the first meeting by giving them updates on your product's performance and letting them know how you're using data to improve it. After all, the thing that will guarantee your team stays onboard with your tracking plan is evidence that it works.&lt;/p&gt;

&lt;p&gt;Schedule two or three follow-up meetings with each of your stakeholders, at regular intervals, after deployment. These could fall at time intervals (e.g., a week, 30 days, 90 days) or relative to project milestones (e.g., go live, first product update, second product update, etc.).&lt;/p&gt;

&lt;p&gt;For instance, you may wish to meet with your marketing stakeholders at 30, 60, and 90 days following deployment to consider how your tracking plan helped them target and convert the correct buyer personas. You could meet with your engineers and designers a week after each successive product update to review how your tracking plan's information positively impacted their previous round of development choices. This provides an excellent opportunity for stakeholders to add new knowledge and perspective to your tracking plan after your product release.&lt;/p&gt;

&lt;p&gt;There are bound to be twists in your data plot; you may not get everything right in the first pass at a tracking plan. (Hint: you definitely won’t, and that’s why &lt;a href="https://www.avo.app/blog/product-announcement-built-for-collaboration"&gt;version control and branched workflows&lt;/a&gt; are important to consider.) Staying dynamic and receptive to stakeholder feedback is crucial for an optimized tracking plan and stable buy-in.&lt;/p&gt;

&lt;h1&gt;
  
  
  Support your data characters (and tracking plan) better with Avo
&lt;/h1&gt;

&lt;p&gt;Your stakeholders aren’t just non-playable characters in your quest for good data; they’re your comrades in the data battle. To get them excited about the adventure, you need to make it clear how your tracking plan maps to their goals and objectives.&lt;/p&gt;

&lt;p&gt;The first step in doing so is good communication. Almost a third of all projects fail because of &lt;a href="https://www.workamajig.com/blog/project-management-statistics"&gt;poor communication&lt;/a&gt;: misalignment of objectives, bad or nonexistent knowledge-sharing, and an inability of stakeholders to raise concerns or contribute ideas. Build your tracking plan from stakeholder objectives. Continually feed back the results of your tracking plan to them. It’s all fundamental to gaining and keeping stakeholder buy-in.&lt;/p&gt;

&lt;p&gt;You need tools to help make that good communication happen. One of the best ways to collaborate on your tracking plan and make sure everyone is up to date on it is to use a tool like &lt;a href="https://www.avo.app/"&gt;Avo&lt;/a&gt;. Avo helps you seamlessly share your data best practices, events, and properties with your team by creating a single source of data truth. With it, your team can look forward to more consistent tracking of manageable volumes of data and an easier route to making better product decisions.&lt;/p&gt;

&lt;p&gt;Find out more and &lt;a href="https://www.avo.app/request-a-demo"&gt;try Avo today&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>leadership</category>
      <category>analytics</category>
      <category>operations</category>
      <category>management</category>
    </item>
    <item>
      <title>Data Best Practices to Make Your Datasets More Convincing and Less Confusing</title>
      <dc:creator>Avo</dc:creator>
      <pubDate>Fri, 07 May 2021 14:12:26 +0000</pubDate>
      <link>https://dev.to/avohq/data-best-practices-to-make-your-datasets-more-convincing-and-less-confusing-46ik</link>
      <guid>https://dev.to/avohq/data-best-practices-to-make-your-datasets-more-convincing-and-less-confusing-46ik</guid>
      <description>&lt;p&gt;We all have that one friend who loves to tell stories that seem interesting enough but just don't go anywhere. And we all have that other friend who has the party eating out of their hand with their stories. There's an approach that convinces and an approach that confuses. It's the same for managing your company's approach to data best practices.&lt;/p&gt;

&lt;p&gt;Data is the most influential factor in your company's operational efficiency. Robust, precise data, collected diligently and with purpose, can improve team performances across the board and allow you to put out better products. Flawed data, haphazardly collected, can mire your business' day-to-day in confusion. Doubling down on data best practices will help you get on the right side of the convincing data/confusing data divide.&lt;/p&gt;

&lt;p&gt;We spoke to Paul Joyce, CEO of &lt;a href="https://www.geckoboard.com/"&gt;Geckoboard&lt;/a&gt;, to figure out how his company goes about maximizing the value of its data.&lt;/p&gt;

&lt;h1&gt;
  
  
  Data That Convinces Is Free from Potential Stakeholder Bias
&lt;/h1&gt;

&lt;p&gt;The most common cause of confusing data is a stakeholder’s bias for their own data needs in collecting or interpreting data. Data best practices for warding against this involve building a data strategy optimized for your entire company’s needs.&lt;/p&gt;

&lt;p&gt;All data has to pass through someone’s hands before it can be used. As a result, there’s no such thing as entirely “neutral” data. Paul explains that "[in data], there is an editorial process. There's a curation that happens. Somebody in the middle there is deciding what to [include] and what not to." Unless you have a robust approach to data strategy, centered around defined questions, you can end up with confusing data that has been shaped (either in how it's collected or how it's interpreted) by individual stakeholder bias.&lt;/p&gt;

&lt;p&gt;There’s no such thing as entirely “neutral” data.&lt;/p&gt;

&lt;p&gt;Your organization has an overall “intention” with data. This intention is led by the answers to questions relating to specific KPIs, like “What product factors are leading to churn rate increase?” However, this intention can get muddled when individual stakeholders — devs, product managers, marketing leads, etc. — are handling the data. Each one will have their own questions they need answered and may collect or interpret data differently according to these biases.&lt;/p&gt;

&lt;p&gt;This is a sure-fire recipe for confusing data that makes sense to one stakeholder but is hard to use or unclear for the rest.&lt;/p&gt;

&lt;p&gt;You can flood your organization with convincing data, reflective of whole-company intent, and avoid the pitfalls of stakeholder bias by building a multi-perspective data strategy. Your data management architecture and tracking plan should involve input from all your stakeholders.&lt;/p&gt;

&lt;p&gt;A given data strategy and tracking plan might be geared around answering as many of your stakeholders' questions as possible. These might include things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What's our overall adoption rate?&lt;/li&gt;
&lt;li&gt;How often are users on subscription plan x churning?&lt;/li&gt;
&lt;li&gt;How often are users clicking on in-app upgrade prompts?&lt;/li&gt;
&lt;li&gt;How often are prospects finding our product through voice or natural language searches?&lt;/li&gt;
&lt;li&gt;What's our mean customer support response time?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By consulting with each of your stakeholders and figuring out what questions each of them needs to see answered by an ideal data strategy, you can create a convincing data plan that satisfies everyone’s data needs.&lt;/p&gt;

&lt;h1&gt;
  
  
  Data That Convinces Requires Clear Data Ownership
&lt;/h1&gt;

&lt;p&gt;Ownership involves one person or a small number of people in your company taking responsibility for data storage and data quality management. It’s a direct route to convincing data. We've already noted the risk posed by misinterpretation, and for that reason, giving one person or a few people responsibility for data and data quality is high among data best practices.&lt;/p&gt;

&lt;p&gt;Ownership does not mean limiting access to your data or confining its benefits to a few administrators. Your data should be &lt;a href="https://www.avo.app/blog/what-is-a-tracking-plan-and-why-do-you-need-one"&gt;accessible&lt;/a&gt; and of use to everyone in your organization, from your C-suite down to your &lt;a href="https://www.chorus.ai/blog/12-sales-training-ideas-you-never-considered"&gt;junior sales reps&lt;/a&gt;. However, the more people responsible for handling your data, the more likely it is that mistakes will result in the form of unintended add-ins or redactions.&lt;/p&gt;

&lt;p&gt;Paul sees clear data ownership as tied to data quality, as well as clarity. "[Ownership is] to ensure that the data quality is good...that the devs don't send the wrong events or the wrong properties or the wrong data types."&lt;/p&gt;

&lt;p&gt;To ensure that your data is of the convincing kind, elect one or more people in your organization to have responsibility for data-based decision-making. Small businesses can afford to have one person with ownership of the data management process. Larger organizations with a higher number of stakeholder types or ones dealing with big data may wish to appoint multiple people.&lt;/p&gt;

&lt;p&gt;Whatever configuration you go with, ensure your choices have high individual &lt;a href="https://www.geckoboard.com/blog/build-data-literacy/"&gt;data literacy&lt;/a&gt;. They'll be handling things like standardizing file formats and file naming conventions for your data assets. They may also take care of data collection, data validation, and data protection.&lt;/p&gt;

&lt;p&gt;“[Ownership is] to ensure that the data quality is good...that the devs don't send the wrong events or the wrong properties or the wrong data types.”&lt;/p&gt;

&lt;p&gt;These will be the people in your organization with ownership of your datasets. This will allow you to engage stakeholders on their preferred input while keeping your data coherent and convincing.&lt;/p&gt;

&lt;p&gt;Paul elaborated on Geckoboard's approach to data ownership, "For us, data is owned by a product and ultimately our VP of product. And so we sat down, and we discussed what the problems with our current data ingestion was, our event tracking and all of that kind of stuff...Unless [ownership and] communication is totally in sync there, there is sufficient room for interpretation and misinterpretation to come in."&lt;/p&gt;

&lt;h1&gt;
  
  
  Data That Confuses Comes from Inflexible Data Strategies
&lt;/h1&gt;

&lt;p&gt;Data best practices call for continually reassessing your data management plan for flaws and areas for improvement. Best practices don’t stay still, and neither should you when it comes to your approach to maintaining data strategy.&lt;/p&gt;

&lt;p&gt;Data that confuses results from an over-commitment to particular KPIs or metrics. The importance of your starting metrics may vary over time. For example, click-through rates from launch-period marketing material or seasonal ad banners will only be useful as KPIs some of the time.&lt;/p&gt;

&lt;p&gt;As well as KPIs shifting, your target audience's behaviors and needs will change. You must prepare to amend and alter your approach accordingly. Paul loves this philosophy. "[I] think [this] is a more pragmatic, probably more realistic approach to getting useful data. I think embracing the chaos and the messiness is an important thing. We can't have this idea that all of our data is as pure as the driven snow; we should have reasonable skepticism around some of this kind of stuff."&lt;/p&gt;

&lt;p&gt;To guard against inflexibility in your data strategy, re-evaluate it at regular junctures with your stakeholders and restructure accordingly. For instance, get together with your marketing personnel at 30, 60, and 90 days after a product launch and assess whether the data they're getting helps them make the process improvements they want to. They may be finding that your initially agreed-upon KPI (e.g., age and location of your prospects) is not giving them much to go on, and a change (e.g., to the professional profile of your prospects) is required.&lt;/p&gt;

&lt;p&gt;“We can't have this idea that all of our data is as pure as the driven snow; we should have reasonable skepticism around some of this kind of stuff.”&lt;/p&gt;

&lt;p&gt;Similarly, meet with your devs and engineers at regular intervals and analyze whether your existing &lt;a href="https://amplitude.com/north-star"&gt;North Star metrics&lt;/a&gt; are allowing them to gain a firm grasp of how well your product is working for your users. Let's say you're running a marketplace for sellers of bespoke goods. You may have started with "Monthly Listings per User" as your North Star only to find that "Time-to-Sell from First Listing" might prove a better bet. Time for a change in data strategy!&lt;/p&gt;

&lt;p&gt;You can't chart a forward course with a rigid data plan. Stay flexible, and your data will prove more relevant and more convincing.&lt;/p&gt;

&lt;h1&gt;
  
  
  Gearing Up for Data Best Practices
&lt;/h1&gt;

&lt;p&gt;One of the main things differentiating data that convinces from data that confuses is where that data lives and the tools used to handle it. You need to establish a single source of truth for your data.&lt;/p&gt;

&lt;p&gt;Your data will come from various sources. Each stakeholder group may well have their separate tech stacks for gathering the data they need. Some of it might be in batch, some of it in &lt;a href="https://www.striim.com/blog/2018/10/importance-real-time-events/"&gt;real-time&lt;/a&gt;. To that end, tools like Salesforce CRM or &lt;a href="https://www.zendesk.com/sell/"&gt;Zendesk&lt;/a&gt; are great for acquiring specific data, but you then need a tool to act as a centralized knowledge store.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.avo.app/how-it-works"&gt;Avo&lt;/a&gt; can fulfill this role for your business. It offers seamless data integration and all kinds of elite data governance functions, from version history for your tracking plan to standardized events across platforms. It contains an automation for validating metric data, and it also comes with in-built solutions for tracking and maintaining your data quality.&lt;/p&gt;

&lt;p&gt;Find out more and &lt;a href="https://www.avo.app/request-a-demo"&gt;try Avo today&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>analytics</category>
      <category>productivity</category>
      <category>management</category>
    </item>
    <item>
      <title>3 Myths and a Truth from our CEO: What it Takes to be a Successful Tech Founder</title>
      <dc:creator>Avo</dc:creator>
      <pubDate>Tue, 04 May 2021 15:26:20 +0000</pubDate>
      <link>https://dev.to/avohq/3-myths-and-a-truth-from-our-ceo-what-it-takes-to-be-a-successful-tech-founder-o76</link>
      <guid>https://dev.to/avohq/3-myths-and-a-truth-from-our-ceo-what-it-takes-to-be-a-successful-tech-founder-o76</guid>
      <description>&lt;p&gt;We all know the conventional wisdom about founding a startup. If you're a tech founder, you &lt;em&gt;must&lt;/em&gt; be working 100-hour weeks. You &lt;em&gt;must&lt;/em&gt; be living a penthouse lifestyle and racking up Virgil Abloh-grade air miles. You &lt;em&gt;must&lt;/em&gt; be looking to change the world (and change it now). And should be doing all of this as the solo, genius trailblazer. &lt;/p&gt;

&lt;p&gt;But that’s the old way of doing things. While there’s certainly something to be learned from these myths of tech founder success, the future calls us to think more holistically, sustainably, collaboratively, and quantitatively. &lt;/p&gt;

&lt;p&gt;No one embodies this new way of thinking more than our inspiring Co-founder and CEO Stefania Olafsdottir. So we wanted to share some of the advice she shared for tech founders on Mat Sherman’s at the &lt;a href="https://open.spotify.com/show/1l4H1NCKXbwEz3dWuk6c8p"&gt;Forward Thinking Founders Podcast&lt;/a&gt;, as well as the insights she regularly surfaces with our own team. &lt;/p&gt;

&lt;p&gt;Stef has learned a lot of lessons in her time as a founder: How to prioritize user needs over world-changing ambition, achieve steady pacing over hyperintense work, network over going it alone, and, above all, drive your business to new heights with the help of good data. &lt;/p&gt;

&lt;p&gt;Here, we’re featuring Stef’s thoughts around three myths of tech founder success and one core truth that drives her forward each day. And we won’t even make you guess which is which. &lt;/p&gt;

&lt;p&gt;Let’s dive in. &lt;/p&gt;

&lt;h1&gt;
  
  
  Myth: Tech founders should focus all their day-to-day work developing their company’s product
&lt;/h1&gt;

&lt;p&gt;Beneath the world-beating enthusiasm founders have about their companies, their primary job isn’t to solve the core problem that originally inspired their company’s creation. Rather, their job centers around solving all the problems that surround the mission of their company, so that their company’s vision can move forward unhindered (or, as unhindered as possible). &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“You never really go home feeling 'I'm &lt;strong&gt;&lt;em&gt;done&lt;/em&gt;&lt;/strong&gt; for the day!'”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It’s probably obvious to folks that know Avo, but Stef is extremely passionate about self-serve analytics culture, data quality, data structures, and working with product people to turn insights into action items. But this isn’t what her day to day work is about anymore. &lt;/p&gt;

&lt;p&gt;It’s mostly about all the other stuff: Making sure we don’t run out of money, making sure the people on the team don’t burn out, mapping out go-to-market strategies, and a lot more. There's always a fire somewhere. As she confessed on Mat Sherman’s &lt;a href="https://open.spotify.com/show/1l4H1NCKXbwEz3dWuk6c8p"&gt;Forward Thinking Founders Podcast&lt;/a&gt;, "You never really go home feeling 'I'm &lt;em&gt;done&lt;/em&gt; for the day!'"&lt;/p&gt;

&lt;p&gt;Stef believes that if you're going to spend your days fighting those fires, you need three things: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A versatile imagination&lt;/li&gt;
&lt;li&gt;Conscientiousness in how you approach problem-solving&lt;/li&gt;
&lt;li&gt;The ability to keep your head and help your team keep theirs too&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;As she said on the Forward Thinking Founders Podcast about the &lt;strong&gt;importance of a versatile imagination&lt;/strong&gt;: "[To] help so many people solve the problem that you're trying to solve for them. . . . That involves a lot of different things." You need to raise money for your MVP. You need to gather a great team around you (more on that later).&lt;/p&gt;

&lt;p&gt;On the &lt;strong&gt;conscientiousness side&lt;/strong&gt;, you can't hope to solve your customers' problems unless you've taken the time to understand their needs. Stef emphasizes the importance of keeping communication channels with current customers open to make sure you’re satisfying their needs and that they're happy with the product you're building.&lt;/p&gt;

&lt;p&gt;That conscientiousness should extend to things like data strategy, too; it pays to be careful. Being conscientious about communication with customers and the quality of your data strategy can fast-track you to success. It can also save you potentially crippling corrective expenditure. "Fixing terrible data will cost hundreds of thousands of dollars. . . . Communicating and quality assurance [before shipping] is key," she said on the Mat’s podcast. &lt;/p&gt;

&lt;p&gt;Finally, when you're fighting all those fires, you need to be able to &lt;strong&gt;keep your head and help your team keep theirs too.&lt;/strong&gt; Stef observed that a happy startup environment involves "everyone on the team being happy that . . . the list [of outstanding tasks and issues] is endless." Stef's own ability to keep calm under pressure has impressed everyone around her. "My husband . . . said to me, 'If I were dealing with this, I would be so much more upset than you are right now.' I think that sums it up; just keeping calm while the fires are going on."&lt;/p&gt;

&lt;h1&gt;
  
  
  Myth: The 100-hour work week is something to aspire to for the sake of success
&lt;/h1&gt;

&lt;p&gt;(Almost) all founders have been there: Working 100 hour weeks to get the project you care about up and running. The 100-hour work week has become something of a tech mythos, but, as Stef can warn from personal experience, it’s not something we should aspire to. &lt;/p&gt;

&lt;p&gt;Now, sometimes you can’t escape it, and there’s no choice but to buckle down and push through (if so, &lt;a href="https://www.fastcompany.com/3058175/how-ive-learned-to-get-through-a-100-hour-workweek-in-one-piece"&gt;here’s a good guide&lt;/a&gt; to surviving it). However, &lt;a href="https://hbr.org/2019/12/burnout-is-about-your-workplace-not-your-people"&gt;backing off from glamorizing overworking&lt;/a&gt; is something that all founders should aspire to. &lt;/p&gt;

&lt;p&gt;Stef is an apostle of "slow living" and remote working for lifestyle, productivity, and even environmental benefits. These things are crucial to clear thinking, balanced perspective, and being less wasteful in living.&lt;/p&gt;

&lt;p&gt;Stef is intrigued by the slower, more mindful alternative. Many of us were brought up to value constant productivity and to enjoy the material benefits of a work-intensive outlook on life. However, the &lt;a href="https://www.passporthealthusa.com/employer-solutions/blog/2019-2-overworking-affect-physical-and-mental-health/"&gt;psychological&lt;/a&gt; and even ecological impacts of that lifestyle are becoming better and better understood.&lt;/p&gt;

&lt;p&gt;Slower living, as an alternative, roots in remote work. As Stef observed, "The fastest-growing commute to work currently is actually not commuting." This is particularly true in the post-COVID-19 remote landscape, but the appetite for working remotely was growing even before the pandemic. There had been &lt;a href="https://www.techrepublic.com/article/how-remote-work-rose-by-400-in-the-past-decade/"&gt;400% growth&lt;/a&gt; in remote working between January 2010 and January 2020.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“The fastest-growing commute to work currently is actually not commuting.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For Stef and Avo, that embrace of remote working is essential, even before the global shift to distributed work in 2020. "My cofounder and I work over a seven- to eight-hour time-zone difference," she said. "We are making the decision [to] create a fully remote company. And a lot of companies are doing that today."&lt;/p&gt;

&lt;p&gt;For maximum benefit, Stef suggested that this new approach to thinking about work be combined with a new approach to thinking about life. "I think it's interesting to take that direction [of] remote culture and combine it with a slow-living culture," she said. With a slower pace of life, you "don't have to work as much also, and that fuels a slower lifestyle. As a result, you don't have to be as extremely wasteful in living."&lt;/p&gt;

&lt;h1&gt;
  
  
  Myth: Tech founders can continue to achieve great things alone on the mountain top
&lt;/h1&gt;

&lt;p&gt;Being a &lt;a href="http://blog.idonethis.com/advantages-solo-founder/"&gt;solo founder&lt;/a&gt; can be great, but Stef is a firm proponent of the school of cofounders: “I don't know where I would be if I didn't have my cofounder.”&lt;/p&gt;

&lt;p&gt;This is because, no matter how inspired you are alone, your ideas and vision can’t exist in a vacuum forever. Rather, your goals are made stronger--and more diverse--when they’re supported and improved upon by talented people. &lt;/p&gt;

&lt;p&gt;This network of inspiring people offers you greatness. Stef quoted the adage: "You are the average of the five people you spend the most time with." The cultivation of a great network is something that Stef is passionate about and is an essential aspect of success, whatever your aims. You might have talent to spare, but you still can't succeed without other people's input, advice, and cooperation.&lt;/p&gt;

&lt;p&gt;Stef emphasized that “greatness” is not related just to technical skill or business acumen, but to personality. Whether you're building a business, a house, or a relationship, the foundational ingredient of any grand plan is optimism. You can't do it unless you think you can do it. Surround yourself (and fill your operations) with people who have a can-do, helpful, and conscientious approach to their lives and work.&lt;/p&gt;

&lt;p&gt;This is Stef's advice whether you are living in an existing startup hub, like San Francisco, or are thousands of miles away from one. Sure, it's easier to get started if you live in San Francisco, Boston, London, Berlin, or any other major startup hotspot. But there are a lot of professional social networks out there, allowing any aspiring founder to do the thing Stef thinks is most important: "Talk to another entrepreneur. . . . Surround yourself with people who are optimistic and people who are interested in taking part in such a journey."&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I don't know where I would be if I didn't have my cofounders.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From there, build your network of collaborators and advisers to reflect your goals.&lt;/p&gt;

&lt;h1&gt;
  
  
  Truth: Tech founders should establish a single source of data truth for their companies
&lt;/h1&gt;

&lt;p&gt;Your insights about your customers and product are only as good as your data. Tech founders, and their teams, need to invest in good data practices in order to get the insight they need to build great things. But, if your data is bad (or confusing), it unfortunately won’t fix itself. &lt;/p&gt;

&lt;p&gt;Stef learned this lesson many times in the early years of her career as a founder. At QuizUp, she found herself having to choose between product delivery speed and data quality. This trade off wasn’t sustainable because as more features were shipped her team’s ability to gain insight into their performance got foggier and foggier with bad data. &lt;/p&gt;

&lt;p&gt;To remedy this, the QuizUp team hacked together internal tooling to improve data quality and reduce engineering friction. These early solutions ended up saving the day (and the product) countless times down the road. But Stef wrestled with the same parable of data quality at her next company, Viska. &lt;/p&gt;

&lt;p&gt;"I'll never forget the day when [at my previous startup QuizUp] I discovered our first data bug for our new product," she said. The data was incomplete and impossible to use. It was a devastating realization after so much work. "I was so, so disappointed; I would sort of say that I rage-quit the day. I just had to go home."&lt;/p&gt;

&lt;p&gt;These data bug issues pointed back to the broader problem: The consequences of bad data never go away, but only get worse (until you deal with them). Building a digital product means always generating more and more data, which requires a proactive approach to data management. &lt;/p&gt;

&lt;p&gt;"I [thought] this will never be okay; as long as I'm building a digital product, I will always be dealing with this," Stef said on the podcast.&lt;/p&gt;

&lt;p&gt;In Stef's view, the key to eliminating the possibility of bad data is through the creation of a single source of truth on the subject. That's precisely why she and the team decided to create &lt;a href="https://www.avo.app/how-it-works"&gt;Avo&lt;/a&gt;. Suddenly, all those persistent issues with poor data, slow analytics, and tough collaboration were gone. Stef explained that, with Avo, "developers can implement their analytics faster because they get custom-generated and type-safe SDKs (bundles of software development tools) based on pre-agreed events."&lt;/p&gt;

&lt;p&gt;She also emphasized the benefits for the customer. "Using this combination of tools, we are helping our customers keep up their product delivery speed while maintaining reliability in their data and insights."&lt;/p&gt;

&lt;p&gt;And when it comes to facilitating productive remote work, Avo delivers the goods, too. It includes many collaborative features — branched workflows for parallel work, features for peer-reviewing, an implementation status feature — which facilitate collaboration and help make Avo that &lt;a href="https://www.avo.app/blog/product-announcement-built-for-collaboration"&gt;single source of truth&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;“Using this combination of tools, we are helping our customers keep up their product delivery speed while maintaining reliability in their data and insights.”&lt;/p&gt;

&lt;p&gt;Perhaps that was Stef’s most important piece of advice to tech founders. If you can’t find the solution to your problem, build your own!&lt;/p&gt;

&lt;p&gt;Find out more and &lt;a href="https://www.avo.app/request-a-demo"&gt;try Avo today&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>career</category>
      <category>leadership</category>
      <category>interview</category>
      <category>techtalks</category>
    </item>
    <item>
      <title>A Developer’s Guide to Analytics Implementation &amp; Testing</title>
      <dc:creator>Avo</dc:creator>
      <pubDate>Tue, 13 Apr 2021 18:31:02 +0000</pubDate>
      <link>https://dev.to/avohq/a-developer-s-guide-to-analytics-implementation-testing-3a60</link>
      <guid>https://dev.to/avohq/a-developer-s-guide-to-analytics-implementation-testing-3a60</guid>
      <description>&lt;p&gt;When working with data teams, spending chunks of our time chasing and squashing data bugs is no one's idea of a good time. Those bugs can have a huge impact on the whole product, even if they often seem insignificant, from a development perspective.&lt;/p&gt;

&lt;p&gt;We spend so much time bug-squashing because we often find ourselves put in a reactive position by mediocre data management practices. It would remove huge time-wasters for everyone if we could proactively act on data quality. One way to achieve that is becoming a data stakeholder, a role that guides better workflows from the outset. Eradicating trivial data-quality issues allows all engineers on the team to spend less time chasing frustrating bugs and more time building worthwhile code.&lt;/p&gt;

&lt;p&gt;We should follow implementation best practices; test and validate our implementation to make sure our code functions correctly, and our data is clean. This helps avoid rework down the road. So, if we’d rather create exciting new features than spend our time dealing with bad data and do-overs, here are the best practices for analytics implementation and testing to follow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Caring about data analytics implementation and testing best practices saves developers time and frustration
&lt;/h2&gt;

&lt;p&gt;When we care about analytics implementation and validation best practices, it prevents bad-data-mitigating rework later on. This saves a huge number of engineering hours that get wasted tracking down the error later — not to mention the frustration in trying to find what went wrong. Other parts of the company might also be waiting for corrected insights to make clear decisions, and they’re getting held up as well.&lt;/p&gt;

&lt;p&gt;One of Avo’s customers is realistically expecting to cut engineering hours spent on implementing analytics by 80%, and that time-saving largely comes from not having to chase down these bad data-bugs anymore. This makes everyone happier — from the developer implementing tracking code to the product manager analyzing the data to the CEO making data based decisions.&lt;/p&gt;

&lt;p&gt;Reworking represents a huge waste of time. Kirill Yakovenko, product manager at Termius, knows this well. Termius’ process for dealing with bad data was laborious and frustrating, &lt;a href="https://www.avo.app/customers/avo-and-mixpanel-empower-termius-developers-to-make-self-serve-data-driven-product-decisions"&gt;before they started using Avo&lt;/a&gt;, of course.&lt;/p&gt;

&lt;p&gt;“The problem with tracking mistakes,” says Yakovenko,“is that each fix takes time. It might take a month to roll out a fix for a single issue to all our applications and users.”&lt;/p&gt;

&lt;p&gt;Fixing analytics issues didn’t just waste developer hours on the fix itself; it also delayed product decisions because insights are crucial to making the right product decisions.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Caring about data analytics implementation and testing best &amp;gt;practices help prevent bad data and rework later on.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Analytics implementation and validation processes often aren’t something we consider when we think of testing code because it hasn’t traditionally been a part of our main codebase, nor is it part of our job to design. But caring about data analytics implementation and testing best practices helps prevent bad data and rework later on. As more businesses recognize the importance of online business as a primary revenue source, data insights are important as ever, and product analytics solutions like &lt;a href="https://www.avo.app/amplitude"&gt;Amplitude&lt;/a&gt; and &lt;a href="https://www.avo.app/mixpanel"&gt;Mixpanel&lt;/a&gt; are becoming more critical.&lt;/p&gt;

&lt;p&gt;When trying to implement analytics, many developers report:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Incomplete implementation instructions&lt;/li&gt;
&lt;li&gt;Systems that were designed with data as an afterthought&lt;/li&gt;
&lt;li&gt;Long feedback loops of the correctness of their implementation&lt;/li&gt;
&lt;li&gt;Multiple streams of feedback from different stakeholders&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On the testing side, we, and data teams, often don’t prioritize testing our code to make sure we’re not putting garbage into our data systems. Testing is time-expensive, complicated, and easy to get wrong — making it low priority. Low priority generally translates to no testing at all, which means that code either ships broken, breaks during a later update, or ships without analytics altogether 💀.&lt;/p&gt;

&lt;p&gt;However, it’s important that we take an active role in analytics implementation and testing best practices to help make our data teams and our own workdays more efficient. After all, it’s much easier for us to fix data through testing these best practices at the source than it is to make corrections downstream, especially if we’ve already shipped.&lt;/p&gt;

&lt;p&gt;Removing the frustration around data tasks, and recouping development time by tweaking these processes is valuable. Fixing bugs can take us &lt;a href="https://deepsource.io/blog/exponential-cost-of-fixing-bugs/"&gt;as much as 30x the amount of time&lt;/a&gt; to fix later on, if not caught early. Developers within our own network report that up to 30% of issues for a single team are analytics bugs. We can slash that number down to size with these best practices in the bag.&lt;/p&gt;

&lt;p&gt;Here’s how.&lt;/p&gt;

&lt;h2&gt;
  
  
  Five best practices for analytics implementation and testing
&lt;/h2&gt;

&lt;p&gt;These five practices make your analytics tests and implementation more efficient and consistent. Your code can be implemented quickly, without taking shortcuts or trading accuracy for convenience. In other words, you’re beating the &lt;a href="https://blog.amplitude.com/2020-amplify-announcements#menu-item-31630:~:text=builder%E2%80%99s%20paradox%3A%20You%20can%20either%20build,and%20fall%20behind%20on%20customer%20demands"&gt;builder’s paradox&lt;/a&gt;. Think of the efficiency as the “human” process side to data testing and implementation. Easier replication of the same process or request while having clean code on the other side of that replication creates consistency. Think of the consistency as the “code” process side to analytics testing and implementation. Breaking best practices down into matters of efficiency and consistency means you’ll be able to reap the benefits of attending to analytics implementation and testing — less time spent on frustrating re-work and bugs, and more time spent on your regular development workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Request full implementation specs every time
&lt;/h3&gt;

&lt;p&gt;Request full implementation specs from your data team or product manager every time, so you know where the code goes in your codebase and what the goal of implementing it is.&lt;/p&gt;

&lt;p&gt;The main obstacle to straightforward implementation is that we often get ill-defined data from our product managers. Sometimes, this results in stop-gap solutions that work “well enough” but require rework later on. Other times, it generates a lot of tiresome back and forth on how to implement:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The devs handle implementation as they think it should be done.&lt;/li&gt;
&lt;li&gt;The PM comes back to the devs with something else that they’d prefer.&lt;/li&gt;
&lt;li&gt;The dev redoes the same work.&lt;/li&gt;
&lt;li&gt;The cycle repeats until mutual satisfaction/breakdown.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Holistic specs makes implementation and testing more efficient by preventing confusion around necessary actions. Everyone is clear from the jump, and no back-and-forth is needed.&lt;/p&gt;

&lt;p&gt;Additionally, these guidelines for implementing your code help ensure that all tracking is consistent between multiple platforms each time.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Consolidate feedback into a single source of truth
&lt;/h3&gt;

&lt;p&gt;Consolidate feedback into a single source of data truth that the data team can comment on and answer questions around before the code goes to production. This involves the creation of a draft branch — or a draft version for JSON lovers — of your changes in your event analytics software or your tracking plan.&lt;/p&gt;

&lt;p&gt;Consolidate feedback to ensure that it remains directed and issue-oriented. This also allows you to gather feedback in the specific context of the suggested changes. That way, everyone can see exactly what will be changed and can give feedback on it.&lt;/p&gt;

&lt;p&gt;Feedback can come from anyone, other developers, data analysts, and product managers who all have something to say about your approach to data analytics implementation. This feedback is often ad hoc, making it difficult to track the narrative of the changes needed or questions asked. This is especially true if you don’t have a solid tracking plan and your teams are siloed.&lt;/p&gt;

&lt;p&gt;When you consolidate feedback into a single source of truth it increases implementation and testing efficiency by creating a single environment (e.g., a shared doc or an easy-to-use tool like &lt;a href="https://www.avo.app/"&gt;Avo&lt;/a&gt; 🙌) in which you can surface questions. Not only is it easier to have the relevant context then and there with descriptions, but your data team can be pulled in to answer any questions that might come up. When your data includes all relevant information that’s accessible to all stakeholders at any time, you can expect to see rapid turnaround on required changes and track any conversations about the particular changes made and the conversation about those changes.&lt;/p&gt;

&lt;p&gt;Maintaining a single source of truth also helps consistency by giving you a chance to flag issues that arise during testing. Your data team, meanwhile, gets an equal chance to flag an issue with downstream data if/when they come across it.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Embrace versioning and test environments
&lt;/h3&gt;

&lt;p&gt;Embrace versioning and test environments so you can test for analytics implementation errors before that code causes problems in your codebase out in the real world. Faulty code during the product cycle is bad enough, but faulty code in your released product can negatively affect customer success and, by extension, your business’ credibility. For example, if you’re in a commerce business, I can tell you that you will not want to be the developer on call (or on the hook!) for an analytics break during the Black Friday rush.😬&lt;/p&gt;

&lt;p&gt;Development moves fast, and in the interest of time, testing environments and versioning for analytics specs are either non-existent or weak. Instead, the focus is squarely on getting to market in good time, i.e shipping fast. As a result, plenty of teams ship a product only to find out downstream that there’s an issue.&lt;/p&gt;

&lt;p&gt;Devoting attention to versioning and test environments increases the efficiency of your implementation and testing by solving problems at the source. When you scan for errors at the source by using versioning and test environments that work by comparing your product against a golden/ideal dataset and a copy of your production dataset, you can clearly see where improvements are needed. You can make them in real time and then press on with development. So long, rework! 🐬&lt;/p&gt;

&lt;p&gt;Following versioning and test environment best practices also helps with consistency by incorporating them into your standard product development cycle. It becomes the default. Having a set process for testing your code before it goes to production will help you avoid inconsistencies in implementation before it’s out in the real world. Or, as an Avo user puts it, “Fewer stupid errors with analytics.” As a result, you will consistently be able to release bug-free products that perform better, rather than chasing errors down the road.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Map data dependencies and lineages
&lt;/h3&gt;

&lt;p&gt;Create an ecosystem for mapping downstream dependencies. Knowing how updates or changes will affect dependencies ensures fewer breaking changes are made. It will also create an environment that fosters communication between teams responsible for dependencies throughout the project. &lt;/p&gt;

&lt;p&gt;You’ll gain a better understanding of why you’re implementing specific data, and you’ll have a higher stake in the success of capturing and maintaining that data. You’ll also know who to contact if any changes you make cause issues in an important metric or campaign.&lt;/p&gt;

&lt;p&gt;Data implementation is often carried out by devs who have a lot of other demands on their time, so they optimize for getting it done. Code goes to production without checks. This is not only a problem in and of itself — as analytics tracking builds on inconsistent implementation, the quality of the data suffers.&lt;/p&gt;

&lt;p&gt;When you have a better understanding of why data is being implemented, you can see how the work you’re doing is integral to heading off instances of bugs and misaligned code down the road. Not only will this cause less frustration for you, but your data team will thank you, as well as anyone who depends on the insights produced. This is anyone from marketing, product, even up to VP or executive level.&lt;/p&gt;

&lt;p&gt;Mapping dependencies and lineages ahead of time cuts down on rework and headaches that are inevitable down the line when data quality practices are poor. You can paint a representative, upfront picture of what dependencies exist in your code. Testing will then reveal any issues arising as a result of those dependencies before you’re in production. Data produced this way is tracked and tested, and therefore correct, and uniform downstream.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Use the right tools to make your life easier
&lt;/h3&gt;

&lt;p&gt;There’s a reason the next big thing in analytics is data governance. What has been a frustrating and error-prone process is now being solved with made-for-purpose analytics governance solutions. Instead of just using manual tests, finding the right data analytics tool can streamline your testing and data management and increase your data quality. This allows you to spend more time on the code you enjoy building, and less time squashing analytics bugs.&lt;/p&gt;

&lt;p&gt;Avo is made so your data implementation is seamless. Your whole team has access to a single source of truth where data specialists can send clear, explicit implementation instructions to developers for each platform. Developers love it, as what that means in practice is: “Goodbye guesswork when implementing code!”&lt;/p&gt;

&lt;p&gt;Using a type-safe tool like Avo increases your efficiency as you no longer need to write explicit data tests every time. Instead, you immediately see if the app is getting the expected data or not. Avo can be used in unit testing as part of your full test suite. This makes it easy for you to test analytics functionality without going too far out of your way. Here you can see an example of how to &lt;a href="https://www.avo.app/docs/best-practices/unit-tests"&gt;initialize Avo in a jest test environment with JavaScript&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Tools like Avo are great for your operation’s consistency. Avo’s type-safety means that, unlike a lot of other data analytics tools, you won’t have to troubleshoot your event names and metadata based on syntax. With Avo, you can trust that it’s right every time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Data analytics implementation and testing best practices are important— and they don’t have to suck
&lt;/h2&gt;

&lt;p&gt;Without any kind of optimization, analytics implementation and testing is a laborious and unappetizing process. By following implementation and testing best practices you’re saving yourself from a magnitude of data bugs and unexpected code re-work. Good news! There’s a tool to help you with this. 🥑&lt;/p&gt;

&lt;p&gt;Having &lt;a href="https://www.avo.app/how-it-works"&gt;Avo&lt;/a&gt; in your tool stack minimizes the amount of valuable time required for implementation and testing episodes. It can eliminate the need for manual testing entirely. In a time when both &lt;a href="https://www.chorus.ai/blog/sales-cycle-velocity-twb"&gt;quality&lt;/a&gt; and speed to market are more important than ever, trust you’re building a better product. Try &lt;a href="https://www.avo.app/how-it-works"&gt;Avo&lt;/a&gt; today to make analytics implementation a breeze for you and your team.&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>tutorial</category>
      <category>product</category>
      <category>testing</category>
    </item>
    <item>
      <title>How Avo Does Tracking Plans: We Pull Back the Curtain </title>
      <dc:creator>Avo</dc:creator>
      <pubDate>Tue, 23 Mar 2021 14:11:22 +0000</pubDate>
      <link>https://dev.to/avohq/how-avo-does-tracking-plans-we-pull-back-the-curtain-2lea</link>
      <guid>https://dev.to/avohq/how-avo-does-tracking-plans-we-pull-back-the-curtain-2lea</guid>
      <description>&lt;p&gt;OK, we’re going to get a little (or a lot) meta with this one. We’re going to pull the curtain back and tear down how we do tracking plans.We help you create great tracking plans, but our own process around them is a healthy mix of best practices and practical improvisation.&lt;/p&gt;

&lt;p&gt;But before we dive in, let’s a look at the tour de tracking plans we’ve rolled out in the last month.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Hint: If you’re new to tracking plans, we recommend checking out our foundational pieces and then coming back to this article.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So far, we’ve looked at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.avo.app/blog/what-is-a-tracking-plan-and-why-do-you-need-one"&gt;Why tracking plans are important&lt;/a&gt; (Who can forget the Bad Data Day?)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.avo.app/blog/who-should-be-involved-in-tracking-plan-development"&gt;Who should be involved in tracking plan dev&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.avo.app/blog/avos-ultimate-tracking-plan-template-w-downloadable-worksheet"&gt;A worksheet on tracking plans&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.avo.app/blog/tracking-plan-guide-how-to-pick-your-events-and-properties"&gt;Essential tracking plan events and properties&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.avo.app/blog/avos-ultimate-tracking-plan-template-w-downloadable-worksheet"&gt;The official Avo template for tracking plans&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.avo.app/blog/9-free-tracking-plan-templates-from-mixpanel-amplitude-segment-and-more"&gt;A roundup of our favorite tracking plan templates&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You ready? Let’s get started: Here’s how we (ideally) create Avo’s tracking plans.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Full disclaimer:&lt;/strong&gt; We don’t always practice what we preach, and, truthfully, there are times that you shouldn’t either. As the old adage goes, you have to know the rules in order to break them (and anticipate the impact of doing so). Once you dial in the practices that we outline below, you can start bending the rules a bit to find the right mix to create the best data possible for your use case.  &lt;/p&gt;

&lt;h1&gt;
  
  
  We kick off with a purpose meeting
&lt;/h1&gt;

&lt;p&gt;Pre-release purpose meetings ensure that everyone’s on the same page. They’re kind of like meal planning for your data. Imagine trying to plan dinner with a group when nobody can agree on an entrée. If you just wing it, you end up with duplicate dishes, too much of one ingredient, or too little of another.&lt;/p&gt;

&lt;p&gt;But if you consider these 30-minute meetings your chance to meal prep, you can sort out all your priorities and needs to have a hearty data feast, with none of the drama.&lt;/p&gt;

&lt;p&gt;Like all good recipes, these meetings come down to a few main ingredients. Each of which builds on the last.&lt;/p&gt;

&lt;h2&gt;
  
  
  Topics are the main course of your purpose meeting 🥘
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_bP4rMfn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/1kpf1qgwbh7hcv04fwgu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_bP4rMfn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/1kpf1qgwbh7hcv04fwgu.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The key to a successful purpose meeting lies in establishing the topic your meeting will be about. If you don’t have common topics identified for the team to focus on, you won’t have a foundation to build your goals and metrics on.&lt;/p&gt;

&lt;p&gt;Instead, by defining topics early on, you anchor your purpose meeting behind a common vision.&lt;/p&gt;

&lt;p&gt;Let’s look at, for instance, our purpose meeting for our Publishing functionality, which lets you configure Avo to automatically publish your tracking plan to your analytics platform of choice. When we did our initial purpose meeting for this feature, we established three topics:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Making Publishing available to the public (it was previously behind a feature flag and wasn’t super easy to find)&lt;/li&gt;
&lt;li&gt;Making Publishing hackable (so that you could use webhook functionality to post to your own end point)&lt;/li&gt;
&lt;li&gt;Automating the publishing of tracking plan changes to integration so that your plan was updated via the merging of a new branch&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Our three topics were the main dish of our tracking plan, which would be complemented by all future additions. After we set them, we were able to create context around our OKR of helping companies keep their ingestion time validation tool (e.g. Lexicon) up to date and drive more relevant goals later on.&lt;/p&gt;

&lt;p&gt;Before you can get to your delicious data dessert (goals), you have to make it through your vegetables (problems).&lt;/p&gt;

&lt;h2&gt;
  
  
  Problems are your hearty side dishes 🥗
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PYeueQCi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/jnd57zx4ql21qchqped7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PYeueQCi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/jnd57zx4ql21qchqped7.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The second part of your purpose meeting should focus on identifying the problems that you and your product are solving for. After all, if the data you’re measuring isn’t focused on the challenges your users face it’s difficult to know whether or not you’re actually delivering value and making their lives easier.&lt;/p&gt;

&lt;p&gt;To use our Publishing example, during our purpose meeting, we identified the following key problems our users faced with the existing integrations functionality:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;People forgot to manually publish existing functionality because it wasn’t automatic (this meant data was out of sync).&lt;/li&gt;
&lt;li&gt;People had a hard time finding the functionality because it wasn’t visible, and they had to manually request it from the Avo team.&lt;/li&gt;
&lt;li&gt;Tracking plans stayed stuck in Avo if customers weren’t using Segment, Amplitude, or Mixpanel.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once we understood these three problems, we could start setting goals around what “success” looked like.&lt;/p&gt;

&lt;p&gt;Now, after we’ve devoured your topics and wrestled with our problems, our team gets to tackle our favorite part of the data feast: dessert (aka goal-setting, for you less-food-minded folks).&lt;/p&gt;

&lt;h2&gt;
  
  
  Goals are your delicious data desserts 🍰
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--osSesGZF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/pqvu21xg0gujpgq75sa7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--osSesGZF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/pqvu21xg0gujpgq75sa7.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The goals we set during our purpose meetings help us define success throughout future iterations of our tracking plan. They’re unique to the features and product we’re working on and always map back to the problems we’re trying to solve.&lt;/p&gt;

&lt;p&gt;Our goals are typically focused on how we can reduce friction to help customers better understand and leverage their event data. For our Publishing example, this translated to goals that looked like the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Making Publishing discoverable and easy to set up&lt;/li&gt;
&lt;li&gt;Making Publishing feel safe and secure&lt;/li&gt;
&lt;li&gt;Ensuring that tracking plan dependencies were always up to date&lt;/li&gt;
&lt;li&gt;Allowing developers to build custom services on top of their tracking in Avo&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After we identified these goals, we got to work on designing our data. We always recommend identifying metrics during those purpose meetings and even the events and properties needed to construct the metrics. This is where we sometimes break from our own sage wisdom. 🧙&lt;/p&gt;

&lt;p&gt;We sometimes don’t go into metrics in this meeting and usually don’t get to the events; instead, our developers take the insights from our purpose meeting and collaborate to design data with data experts post-meeting (but pre-release). This approach lets us focus our purpose meetings on big-picture goal-setting (and helps our devs avoid sitting through meetings they don’t necessarily need to attend).&lt;/p&gt;

&lt;h1&gt;
  
  
  We design events for the start and end points of a user’s journey
&lt;/h1&gt;

&lt;p&gt;To capture the entire user journey for our features, we start by identifying the first touchpoint a user will have with our feature, as well as their final “completed” action.&lt;/p&gt;

&lt;p&gt;It’s tempting when tracking user actions to focus on the final conversion that shows you whether or not someone has successfully completed their journey. But this doesn’t give you all that much insight into everything that happened leading up to their conversion (or what happened to the folks that fell off before they finished).&lt;/p&gt;

&lt;p&gt;Clearly identifying both the start and the finish of the user journey for each feature lets us compare how many folks entered from the front door, how many left through the back, and how many got stuck wandering in the UX house.&lt;/p&gt;

&lt;p&gt;Instead of lumping events together, we focus on creating starts and ends of user actions so we frame the user journey and can get a clear picture of how folks move from point A to point B. This is especially important for flows like sign-ups, logins, games, and checkouts.&lt;/p&gt;

&lt;p&gt;For example, in the case of the Publishing flow we outlined above, we could have just created an event for “integration published,” right? Well, yeah. But it doesn’t tell us how a user got there, or if folks might be dropping off. So, instead, we created two events that show us how the user is progressing: one for when they initially click “Add Integration” and one for when they hit “Publish to Lexicon/Govern/Protocols/Webhook” and get value out of the feature.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--j9Uk2im9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/871g96u0qistbe1578ox.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--j9Uk2im9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/871g96u0qistbe1578ox.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By clearly defining the start and the end of the user flow for our Publishing feature, we can begin to see how folks interact with our funnel, and how many are falling out of it in the process.&lt;/p&gt;

&lt;h1&gt;
  
  
  We fill out our user journey with the events and properties that matter most
&lt;/h1&gt;

&lt;p&gt;Users do a lot in our product. They can create new tracking plans, change configurations, add comments to branches, change individual values. All are important for the user experience, but we don’t necessarily want to track all this data all the time. As we’ve said in the past, &lt;a href="https://www.avo.app/blog/6-tracking-plan-best-practices-to-guarantee-good-data"&gt;more data isn’t necessarily best&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Instead, each time we design data for a new tracking plan, we identify which user actions matter most in the user journey and then track those. The process of designing this data starts with the beginning and the end of the funnel, as we talked about above. Then, we walk through our feature as if we were using it and pinpoint which actions most impact our progress.&lt;/p&gt;

&lt;p&gt;For instance, in our Publishing tracking plan, we knew that our users started their journey with the “Add Integration” tab and ended with the “Publish to Lexicon” button.&lt;/p&gt;

&lt;p&gt;Between these two points, users entered a lot of information. They selected which integration type they were adding—Segment Protocols, Amplitude Taxonomy, Mixpanel Lexicon, or Webhooks—and gave the integration a name before hitting the “Create Integration” button. Now, while the Integration Type and name is important info for the functionality of the feature, which option they select doesn’t tell us they’re moving down their journey. So, we focused an event on the “Create Integration” action.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--N9kGQuB---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3hupcz676ze7uouv8jbl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--N9kGQuB---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3hupcz676ze7uouv8jbl.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After they hit “Create Integration,” our users land on the main form, where they can enter their project ID, account username, account secret, and events filter. This is also the spot where they can toggle on or off the “Auto Publishing” feature that automatically pushes tracking plan updates whenever changes are made (pretty sweet, huh? 😉).&lt;/p&gt;

&lt;p&gt;Again, while the information that users add is valuable, we don’t need to track every nuance. Instead, we focused on creating events on the “Auto Publishing” toggle and the final step, “Publish to Lexicon.”&lt;/p&gt;

&lt;p&gt;This intentional event tracking doesn’t just make our data designing easier (in fact, it actually takes more forethought than just casting a wide data net). By limiting the events and properties we track to only those that most directly reflect our user journeys and goals, we avoid unnecessary data noise.&lt;/p&gt;

&lt;h1&gt;
  
  
  We build fat events
&lt;/h1&gt;

&lt;p&gt;When we say we build “fat” events, we mean that we design events with a number of related properties that give deeper information about the action the user made. &lt;/p&gt;

&lt;p&gt;Think of these fat events like a deep well: It’s really easy to pull water (insights) out of the well (data) because it’s all captured in one place, and you can dip your bucket (query) into the well and easily find what you need. The alternative to the data well is a shallow data pool, where the water is spread out over a mile of concrete but is only an inch deep. To get the same amount of water, you have to drag your bucket across the surface of it multiple times before you get what you need.&lt;/p&gt;

&lt;p&gt;If we don’t build fat events, we have to do a lot of work to gather data from a bunch of different sources and collect it into something useful.&lt;/p&gt;

&lt;p&gt;By building fat events, data teams can segment events based on properties to compare different flavors of the same user action, rather than having to pull together multiple events to analyze them. This allows teams to keep the number of events down to a manageable level, which makes it easier to find what they’re looking for and more easily onboard new data consumers to the existing analytics. &lt;/p&gt;

&lt;p&gt;We also make sure to name these fat events in a way that is clear and communicates what product and funnel the event corresponds to (e.g., not just “source” or “plan” but “[Product] Plan” and “[Product] Source”).&lt;/p&gt;

&lt;p&gt;In our Publishing tracking plan, an example of a fat event is our Integration Configured event, which, you guessed it, tells us when someone makes a change to their integration setup. Now, we could set up individual events for Integration Type Updated, Integration Name Updated, Downstream Project Name Updated, etc. But that would get messy, fast. Instead, we create one main fat event (Integration Configured) and then properties underneath it that capture all the kinds of types of integrations that you might update.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GDVf11RR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/7f3wygbib4322ya7ldcu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GDVf11RR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/7f3wygbib4322ya7ldcu.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fat events make it easy for us to see, at a glance, what kinds of actions are possible for integration configuration and keep the tracking of those changes easy to understand and analyze.&lt;/p&gt;

&lt;h1&gt;
  
  
  We (try to) avoid using Boolean properties
&lt;/h1&gt;

&lt;p&gt;Boolean values are fundamental for functional programming, but they aren’t the best option for reflecting human behaviors (after all, people’s choices are rarely binary). We don’t simply log into an app or not.&lt;/p&gt;

&lt;p&gt;For example, if your app uses only one authentication method (let’s say email, for instance) you don’t really need a property to track authentication method. But down the line you’ll probably want to add more methods, like Facebook or Google authentication. Bad Boolean practices would be to create a property for “Facebook” or “Is Facebook Authenticated,” as well as a property for “Is Google Authenticated.” All of which gets messy, and makes it difficult to compare how many authentications are happening via email, Google, or Facebook. &lt;/p&gt;

&lt;p&gt;In short, we try to avoid using Boolean properties because they don’t scale as our products and features become more complex.&lt;/p&gt;

&lt;p&gt;If we do use Booleans (or when we have in the past) our features and products quickly outgrow the data that our analytics can collect. This makes it difficult (read: nearly impossible) to compare data between eras of our product. &lt;/p&gt;

&lt;p&gt;Using Boolean values for seemingly binary actions is a trap that so many early data teams often fall into. They start with exactly the use case being built right now. And then, later, they have to add a bunch more Boolean properties (or revamp their data design). It’s hard to segment on all the possibilities.&lt;/p&gt;

&lt;p&gt;Instead, we design our data types for events and properties as strings or other more open-ended data types from the beginning so we’re not limited to whether a functionality is just “on” or “off.”&lt;/p&gt;

&lt;p&gt;For instance, in our Publishing feature example, we have a property called Integration Stage. Now, there’s only two options—"Created" and "Published"—so we could just use a Boolean value. However, we know that down the road we’ll probably add more stages, such as "Published to Staging" or "Draft Stage" or something, and we don’t want to limit ourselves.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fZylx_Ew--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3jj11kjr9h13dsojnv5o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fZylx_Ew--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3jj11kjr9h13dsojnv5o.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Boolean values might seem easier to implement at first, but you’re setting yourself up for heartbreak down the road.&lt;/p&gt;

&lt;h1&gt;
  
  
  We use constraints when defining properties
&lt;/h1&gt;

&lt;p&gt;It’s not enough to say that you want to collect data from your users and your product. You need to explicitly outline for developers what kind of data you’ll accept (communicate your needs, basically).&lt;/p&gt;

&lt;p&gt;If you don’t, you’ll end up with folks telling you that their age is 178,000 years, or that they live on Mars. Or you’ll end up with data that you can’t compare because you took in apples when you really needed oranges.&lt;/p&gt;

&lt;p&gt;We use constraints when defining data values so that we have a contract about the kind of data we receive (and so that we know it’s useful). These constraints also help us ensure the data is consistent, so it can be compared and analyzed downstream.&lt;/p&gt;

&lt;p&gt;In our Publishing tracking plan, for example, we have an event called Integration Configured with a property called Integration Item Type that tells us what part of the integration you’re interacting with. To ensure that these item types are correctly tracked by developers implemented, we explicitly outline the string values, and their formatting, that we’ll accept (e.g., Integration Type not integration type or integration typo).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jhaDU_gy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/7e9pfwrlrrlwn39mms87.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jhaDU_gy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/7e9pfwrlrrlwn39mms87.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We do something similar for numerical values by setting a min of 0 to prevent erroneous negative values (or the 1,000-year-old vampire customer from signing up for a service).&lt;/p&gt;

&lt;p&gt;It may take a while, but it does pay off to list all of the options a property can take if those options are finite (obviously, you can’t know every URL in existence, so some things should be left open).&lt;/p&gt;

&lt;h1&gt;
  
  
  We improve and revise our tracking plans when it makes sense
&lt;/h1&gt;

&lt;p&gt;We’re always learning and improving. As a result, our tracking plans improve, too. We revise our tracking plans when product changes call for it or if we come into contact with out-of-date best practices.&lt;/p&gt;

&lt;p&gt;If we don’t improve our best practices, we leave our old data and tracking plans frozen in time. This creates unnecessary confusion for whoever interacts with that old data (and more bad data as time goes on). Instead, when we come across an inconsistency that makes sense to correct, we update the tracking plan element so it’s more in line with our current best practices.&lt;/p&gt;

&lt;p&gt;Tracking plans are a living document. If your data needs change or your product functionality shifts, it’s important that you have a system for documenting how your tracking plan evolves alongside it.&lt;/p&gt;

&lt;p&gt;At Avo, we’re diligent notetakers. We maintain, as comments on our branches, a record of the changes (or change requests) that take place. This helps us understand how our plan evolved over time, or if certain parts of our tracking plan had to be sliced out in order to ship code on time (as was the case with some of our Publishing tracking plan).&lt;/p&gt;

&lt;p&gt;Sometimes, after we launch a new feature, we discover that we need to add an event to better understand why our users are dropping off between the main user actions we’ve already identified, or we find that we need to add a new property to segment on a flavor of event we didn’t think of at the start. &lt;/p&gt;

&lt;p&gt;For example, we recently started noticing that people were creating integrations, but not publishing them. We weren’t sure why that was, however, because we didn’t have events and properties that showed if they were trying to publish something, or just testing out the product. So, we added an “Integration Archived” event to see if folks were just creating events to archive them, or if they were getting stuck publishing.&lt;/p&gt;

&lt;p&gt;However, while we’re all for a data ✨ glow-up ✨, it’s important to remember that data is permanent. We don’t want to change too much, because then we lose context by completing deleting those shallow events. Instead, we can preserve context and improve tracking by consolidating these shallow events into fat events.&lt;/p&gt;

&lt;h1&gt;
  
  
  We use Avo to help us build better, collaborative tracking plans
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--D0Fz3BOk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/s24jggzt3l3bh7wh0c8k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--D0Fz3BOk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/s24jggzt3l3bh7wh0c8k.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Collaborative data management at Avo is rooted in collaborating, in communicating, and in dogfooding our own product so that we can capture all of the ideas and expertise of our team and product design. This helps us avoid conflicts, keeps our plan up to date, and ensures that we design good data.&lt;/p&gt;

&lt;p&gt;If we didn’t leverage Avo as a single source of data truth that’s directly connected to the implementation, our data experts, developers, and product managers would exist in silos. We’d run the risk of our tracking plan not being in sync with the implementation, constantly making changes to our source of truth that conflict with each other, and designing our data in an unideal way (because experts in different areas are not collaborating). Remember that imaginary dinner, where we didn’t plan what ingredients we needed? Now imagine we’re putting together a potluck, where everybody has to make their own dish, but nobody knows what anyone else is making, or even where the event is being held. That would just multiply the number of duplicate and downright disgusting dish combinations that made it to our table.&lt;/p&gt;

&lt;p&gt;We avoid a similar data disaster by dogfooding Avo as our main source of data truth, which includes those in-app comments and suggestions between the team on different branches of our tracking plan we mentioned earlier. Rather than spending our time getting lost in our tracking plan (and finding our way out), we can focus conversation around the changes needed. This comment log and versioning is the functional group text that the disaster potluck needs.&lt;/p&gt;

&lt;p&gt;Avo lets our developers flag data experts to review new features before merging changes with the main branch. All of this is coupled with Avo’s built-in branching mechanism that allows data teams to make changes to tracking safely in isolation without impacting the core source of truth for the worse. &lt;/p&gt;

&lt;p&gt;If there’s one thing you take away from all of this, let it be this: &lt;strong&gt;communication is the key to collaborative success.&lt;/strong&gt; Avo simply makes that communication much, much easier.&lt;/p&gt;

&lt;h1&gt;
  
  
  Be More Like Avo: Use Avo
&lt;/h1&gt;

&lt;p&gt;As long as you’re generally adhering to these best practices—and using a tool like Avo to make following those rules easier—you, too, can have an efficient, collaborative tracking plan process.&lt;/p&gt;

&lt;p&gt;Avo lets you combine all the data best practices we’ve outlined in our tracking plan series (and all the tips and tricks we’ve outlined right here) into one collaborative, single source of data truth.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.avo.app/request-a-demo"&gt;Check out Avo today to level up your tracking plan&lt;/a&gt; and be more like Avo. (We promise, we’re pretty awesome.) 🥑&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>datascience</category>
      <category>productivity</category>
      <category>management</category>
    </item>
    <item>
      <title>How to Reduce Back-and-Forth with Data Teams in Developer Workflows</title>
      <dc:creator>Avo</dc:creator>
      <pubDate>Thu, 04 Feb 2021 19:56:44 +0000</pubDate>
      <link>https://dev.to/avohq/how-to-reduce-back-and-forth-with-data-teams-in-developer-workflows-4di1</link>
      <guid>https://dev.to/avohq/how-to-reduce-back-and-forth-with-data-teams-in-developer-workflows-4di1</guid>
      <description>&lt;p&gt;It starts with one clarifying email. Then a follow-up Slack message turns into a cascade of notifications that completely dissolve your productivity.&lt;/p&gt;

&lt;p&gt;Nothing throws a wrench into a spinning product development cycle like multiple rounds of ineffective feedback because of confusing or incomplete information. Unclear expectations and poor communication during the design stage of a project are the two most common reasons for the mass of emails, Slack messages, and Jira tickets that can bring a developer workflow to a crawl.&lt;/p&gt;

&lt;p&gt;By tackling these two leading causes of miscommunication between teams, developers can cut down on the unnecessary back-and-forth and keep projects moving.&lt;/p&gt;

&lt;h1&gt;
  
  
  Put Project Expectations in Writing
&lt;/h1&gt;

&lt;p&gt;One of the best ways to stem unnecessary messages around a developer workflow is to establish clear expectations at the beginning. This starts with a &lt;a href="https://www.avo.app/blog/tracking-the-right-product-metrics" rel="noopener noreferrer"&gt;Purpose Meeting&lt;/a&gt;: a 30-minute gathering of stakeholders, including engineers, developers, data specialists, and the PM, to make sure everyone understands not only the “what” of the project but also the “why.” Consider creating an agenda so all the stakeholders understand &lt;a href="https://www.avo.app/blog/who-should-be-involved-in-tracking-plan-development?utm_source=coschedule&amp;amp;utm_medium=social&amp;amp;utm_campaign=what-is-a-tracking-plan-and-why-do-you-need-one" rel="noopener noreferrer"&gt;their role in the meeting&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;During the Purpose Meeting, create a &lt;a href="https://www.avo.app/blog/avos-ultimate-tracking-plan-template-w-downloadable-worksheet" rel="noopener noreferrer"&gt;tracking plan&lt;/a&gt; that clearly outlines the project’s purpose and the best way to fulfill that purpose. There should be no doubt among the stakeholders what the end product should look like. This document should explain the goals, metrics, and data needed so everyone knows the final destination before a single line of code is written. Keep it simple and only focus on the data that aligns most closely to your goals.&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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fw6dh6jyj7s6ird2qqf34.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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fw6dh6jyj7s6ird2qqf34.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;a href="https://www.avo.app/blog/tracking-the-right-product-metrics" rel="noopener noreferrer"&gt;The three primary goals of a Purpose Meeting&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This meeting and the resulting document will ensure everyone involved understands the success metrics for a project. Keeping the document in a central place such as Avo, Notion or GitHub, where everyone can refer back to it at any point in the development process, will eliminate unnecessary confusion.&lt;/p&gt;

&lt;h1&gt;
  
  
  Communicate in Context With the Data
&lt;/h1&gt;

&lt;p&gt;When you have data in a Google Sheet and communication in Slack, miscommunication is bound to happen. An update won’t get documented, or the PM will ask for a change to one piece of the project, but the developer will think they’re referring to a different piece. Cue notifications.&lt;/p&gt;

&lt;p&gt;A simple way to avoid this type of confusion is to communicate in context with the data. Using the same platform to discuss and manage the data helps make sure all teams are discussing the same issue. Tools such as &lt;a href="https://www.avo.app/blog/introducing-branch-collaborators" rel="noopener noreferrer"&gt;Branch Collaborators&lt;/a&gt; remove both knowledge silos and barriers to collaboration while eliminating miscommunication between iterations. These tools allow you to have a focused conversation around the changes made. They also provide a living record of incremental changes, which makes it much simpler to onboard new developers to a project.&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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fzfeziw409um3t6201viv.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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fzfeziw409um3t6201viv.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;&lt;a href="https://www.avo.app/blog/introducing-branch-collaborators" rel="noopener noreferrer"&gt;Branch Collaborator example in Avo&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Before adopting &lt;a href="https://www.avo.app/how-it-works#work" rel="noopener noreferrer"&gt;Avo&lt;/a&gt;, &lt;a href="https://www.patreon.com/" rel="noopener noreferrer"&gt;Patreon&lt;/a&gt; was struggling with an inefficient developer workflow. The teams behind the international membership platform faced rounds of ineffective feedback around every launch. Unsurprisingly, this slowed down launches and kept teams from getting the data they needed.&lt;/p&gt;

&lt;p&gt;But by switching to a platform where the feedback can happen alongside the data, Patreon’s data and development teams could both work in a specific branch for changes and QA. Working in context with the data helped the teams replace an error-prone process with an alignment that allows them &lt;a href="https://www.avo.app/customers/patreon-case-study" rel="noopener noreferrer"&gt;to ship faster&lt;/a&gt; and move on to new projects.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Instrumentation process used to take 1-4 days but now take 30-120 minutes." -- Maura Church, Director of Data Science&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Integrate Validation Tools to Catch Problems Before the Analytics Destination
&lt;/h1&gt;

&lt;p&gt;Even with a clear design scope, updating complicated code can cause tracking to break or unexpected problems between platforms or code paths. These types of problems can take months to identify, let alone fix, and become a huge drain on developer resources. Not to mention that this can cause the longest-running email threads.&lt;/p&gt;

&lt;p&gt;By incorporating tools with type safety that &lt;a href="https://www.avo.app/docs/implementation/devs-101#data-validations" rel="noopener noreferrer"&gt;validate implementation&lt;/a&gt;, the development team can catch missing data or discrepancies in code paths before the product is released. This not only improves the data quality of the product, but it also eliminates a huge source of frustration for many teams.&lt;/p&gt;

&lt;p&gt;The challenge for Secure Shell (SSH) client &lt;a href="https://termius.com/" rel="noopener noreferrer"&gt;Termius&lt;/a&gt; was keeping analytics consistent across the multiple platforms they serve. This involved a number of applications and codebases, and the added complexity increased the probability of errors significantly. Minor issues would cascade into a mountain of data debt. Each fix slowed the developer workflow, kept projects from moving forward, and delayed decisions that hinged on the insights from the analytics.&lt;/p&gt;

&lt;p&gt;Using a system that helps remove data debt, standardize boilerplate code, and validate updates not only &lt;a href="https://www.avo.app/customers/avo-and-mixpanel-empower-termius-developers-to-make-self-serve-data-driven-product-decisions" rel="noopener noreferrer"&gt;gave time back to Termius’s developers&lt;/a&gt;, but it also provided trust in the data.&lt;/p&gt;

&lt;p&gt;“Avo’s biggest impact was in reduced overheads on analytics. We’re not only saving time for developers and product managers on designing, implementing, and verifying analytics, but developers are also relieved that they no longer have to monitor the analytics after every release, to make sure the tracking didn’t break,” said Kirill Yakovenko, a product manager at Termius who heads up analytics quality.&lt;/p&gt;

&lt;h1&gt;
  
  
  Get Developer Workflows Moving Again
&lt;/h1&gt;

&lt;p&gt;The typical development workflow is ripe for miscommunication and the resulting flood of notifications across teams. One Avo client reported that &lt;a href="https://www.avo.app/blog/introducing-branch-collaborators" rel="noopener noreferrer"&gt;25% of their Jira tickets&lt;/a&gt; were associated with the back-and-forth confusion that comes from incomplete information. A solid process for validation and clear channels for communicating around the data keeps projects moving smoothly so developers can get back to building and shipping great products.&lt;/p&gt;

&lt;p&gt;Looking for a tool that can help your teams communicate effectively around analytics management? &lt;a href="https://www.avo.app/request-a-demo" rel="noopener noreferrer"&gt;See how Avo&lt;/a&gt; can get your developer workflows moving again.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>datascience</category>
      <category>leadership</category>
      <category>analytics</category>
    </item>
    <item>
      <title>6 Tracking Plan Best Practices to Guarantee Good Data</title>
      <dc:creator>Avo</dc:creator>
      <pubDate>Wed, 27 Jan 2021 17:04:51 +0000</pubDate>
      <link>https://dev.to/avohq/6-tracking-plan-best-practices-to-guarantee-good-data-j87</link>
      <guid>https://dev.to/avohq/6-tracking-plan-best-practices-to-guarantee-good-data-j87</guid>
      <description>&lt;p&gt;Data is a core part of more than 80% of companies’ business strategy, according to a &lt;a href="https://www.experianplc.com/media/news/2018/83-of-businesses-see-data-as-an-integral-part-of-forming-a-business-strategy-yet-a-complex-data-landscape-is-posing-new-challenges/"&gt;report commissioned by Experian&lt;/a&gt;. But 69% of the organizations surveyed believe their inaccurate data is holding back their ability to provide the best customer experience possible.&lt;/p&gt;

&lt;p&gt;Many of their bad-data issues boil down to how data is tracked and how companies design and manage their tracking plans.&lt;/p&gt;

&lt;p&gt;It’s not enough to simply take the first tracking plan template you see and run with it—even if it’s the world’s best template. You need to establish some best practices to avoid bad data (and see a return on investment).&lt;/p&gt;

&lt;p&gt;The six following best practices will help you and your team hone in on the events and properties you need to measure success—and ensure your data is designed well enough to tell you exactly what you need to know about your customers and your product. &lt;/p&gt;

&lt;h1&gt;
  
  
  1. Elect tracking plan champions
&lt;/h1&gt;

&lt;p&gt;Elect tracking plan champions to ensure there are dedicated experts on your team to pay attention to the design, enforcement, and improvement of your tracking plan.&lt;/p&gt;

&lt;p&gt;These tracking plan champions—likely your product managers or data experts, for example—help ensure your tracking plan is well designed and complete from the beginning (pre-release). They will also work with each team to educate them on how to use your tracking plan to maintain good data and make sure these teams follow best practices over time.&lt;/p&gt;

&lt;p&gt;It’s likely that, when you first start designing your tracking plan, you'll have a singular champion. But, as you aim to democratize your data and create self-serve analytics, you should expand your roster of tracking plan champions so multiple people can take on reviewing and approval tracking plan suggestions. &lt;/p&gt;

&lt;p&gt;For example, while your pre-release tracking plan meeting should include a developer for each of your product’s platforms, other developers working on your project will need to know how to use and adhere to your tracking plan. Your initial champion will be responsible for going to each of your dev teams to make sure they understand how to use the plan to create good data.&lt;/p&gt;

&lt;p&gt;Then, as your dev teams feel more empowered to make suggestions on how to improve your tracking plan, the leads of each dev team can step into the role of tracking plan champion to advocate for the ideas of their cohort moving forward. &lt;/p&gt;

&lt;p&gt;In their final forms, these tracking plan champions will stay up-to-date on the business goals related to each product release and update your tracking plan as needed to keep it in line with company-wide OKRs.&lt;/p&gt;

&lt;p&gt;To elect your first tracking plan champion, discuss early on who will be using your data most and who has the bandwidth to take on these responsibilities. This should be decided before or during your pre-release purpose meeting. Then, you can add on new champions as your plan progresses and team members feel more empowered. &lt;/p&gt;

&lt;h1&gt;
  
  
  2. Look for templates for your industry
&lt;/h1&gt;

&lt;p&gt;We know we warned against just using a tracking plan template and calling it a day, but don’t let that turn you off of using a tracking plan template at all. They can be incredibly useful tools (and save you a ton of time up front).&lt;/p&gt;

&lt;p&gt;Dozens of awesome data analytics companies have developed tracking plan templates that can help you out, especially if you’re early in your data analytics journey.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.avo.app/blog/avos-ultimate-tracking-plan-template-w-downloadable-worksheet"&gt;Tracking plan templates&lt;/a&gt; provide a sample of events and properties other companies in your industry often track, and give you a framework you can fill in to save time.&lt;/p&gt;

&lt;p&gt;For example, let’s say you’re releasing a new line of products at an eCommerce company. The events and properties you’re interested in tracking—most related to how often users buy your new items—are different from those a SaaS company would be interested in. If you use a tracking plan template for eCommerce companies off the bat, you’ll have a head start on creating great data.&lt;/p&gt;

&lt;p&gt;You can find most tracking plan templates for your industry by searching “[industry] tracking plan template” in your favorite search engine, or you can check out this roundup of our favorite &lt;a href="https://www.avo.app/blog/9-free-tracking-plan-templates-from-mixpanel-amplitude-segment-and-more"&gt;tracking plan templates&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  3. Establish naming conventions for events and properties from the beginning
&lt;/h1&gt;

&lt;p&gt;Establish naming conventions for events so you can accurately compile and compare your data. This enables your developers to integrate tracking analytics consistently between platforms.&lt;/p&gt;

&lt;p&gt;Naming conventions for events and properties are guidelines that you set in your tracking plan to standardize how developers and product managers refer to user actions and triggers. They’re important to both how your analytics are set up by developers and how your product managers read and interpret data on the other side.&lt;/p&gt;

&lt;p&gt;In general, there are three components to event naming conventions that you should pay particular attention to: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Casing &lt;/li&gt;
&lt;li&gt;Object and action order &lt;/li&gt;
&lt;li&gt;Tense &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, if you’re tracking new user sign-ups, you would want all instances of analytics to track an event called either new_user_sign_up or user_sign_up or newSignUp. If any of those were mixed, it would cause compilation errors down the line (meaning more work for your data specialists).&lt;/p&gt;

&lt;p&gt;When it comes to property naming, however, things aren’t always as straightforward. Property names describe deeper information on the action that was taken, which means there’s more opportunity for variance. To avoid confusion, make sure to continue to emphasize casing and stick to agreed-upon words to describe the most important things. From there, make sure your team is explicit in what each property is describing. For example: instead of naming a property simply “Product”, clearly label each property so that each person looking at it can see without a doubt what they refer to (e.g. “Product ID”, “Product Type” and “Product Name.”) &lt;/p&gt;

&lt;p&gt;When you establish naming conventions for events and properties, you avoid having to manually match data points between platforms down the road. We also recommend sticking to the same kinds of words commonly used by your company throughout your plan to avoid duplicates. &lt;/p&gt;

&lt;p&gt;To make sure you’re using standardized naming conventions for events and properties early on, sit down with your shareholders during your &lt;a href="https://www.avo.app/blog/tracking-the-right-product-metrics"&gt;pre-release purpose meeting&lt;/a&gt;, and explicitly outline the language you’ll use in your tracking plan. During this meeting, confirm what the name for each event and property should be on every platform to prevent collection errors.&lt;/p&gt;

&lt;h1&gt;
  
  
  4. Track the most important steps of your most important funnels
&lt;/h1&gt;

&lt;p&gt;You have an entire world of data at your fingertips, but, as tempting as it is, you shouldn’t collect it all. Instead, focus only on tracking the macro and micro conversions that matter most to the key funnels you care about. These are the ones that will tell you directly whether or not your customers find your product useful. &lt;/p&gt;

&lt;p&gt;When you track only the data that matters most--that is, the conversions that directly map to the key actions your customers must take to convert--you save your product managers, developers, and data specialists time by reducing the number of metrics they need to pay attention to post-release.&lt;/p&gt;

&lt;p&gt;These macro and micro conversions are the events that most directly tie into your organization’s overall KPIs. It’s important that they not be clouded in your analytics by unrelated user data. This is particularly true if you’re looking into why users aren’t converting (e.g. tracking signup and purchase funnels). &lt;/p&gt;

&lt;p&gt;For example, if you're tracking customer sign-ups for a free trial of a music streaming service, you don’t need to track all of your customers’ listening histories at the same time. Instead, you’d just set up events and properties around plan upgrades, payment types, and successful status changes.&lt;/p&gt;

&lt;p&gt;To ensure you’re tracking only the conversions that matter within your key funnels, talk with your data shareholders and map out your user journey to determine the key actions that customers must take to move from point A to point B. &lt;/p&gt;

&lt;h1&gt;
  
  
  5. Design action-based events and specific, consistent properties
&lt;/h1&gt;

&lt;p&gt;Your events and properties should help you quickly and easily gain context on your data, no matter the platform your data is coming from. To accomplish this state of data bliss, you need to design your events to describe the action performed and your properties to be specific and consistent to what they’re describing across platforms.&lt;/p&gt;

&lt;p&gt;This ensures that no matter who is looking at your data, they can understand the necessary context of what’s being measured across each facet of your product and your event tracking. &lt;br&gt;
‍&lt;/p&gt;

&lt;p&gt;For example, let’s say you want to track when your users complete signup. You should design your events to describe the action the user is performing by naming your event  “Signup Completed” rather than “Complete Signup Button Clicked.” The former is much clearer, and helps the consumer of your data pinpoint the action that you care about: User signups. However, there’s a high probability that the copy of the button will change at some point. A better practice would be adding properties to the “Signup Complete” event that describes what the user interacted with to complete the signup, for example “Button Copy” and  “Button Location.” &lt;br&gt;
‍&lt;/p&gt;

&lt;p&gt;Additionally, while you want to track similar properties across all products so you can compare user actions, you should consistently design your properties to be specific to the product they’re happening within. Taking another example, if you’re tracking certain IDs and categories across products, your properties should be named “[Product] ID” and “[Product] Category” instead of just “ID” and “Category.” This helps your future data consumers better parse your data when looking at information across platforms and products. &lt;br&gt;
‍&lt;/p&gt;

&lt;p&gt;When you keep your properties specific and consistent between platforms and products, you help your product managers—or anyone else looking at your data—gain and keep context about where in the user journey each event and property takes place. This makes it easier to understand the data.&lt;br&gt;
‍&lt;/p&gt;

&lt;p&gt;To design easily-understood properties for your product, &lt;a href="https://www.avo.app/blog/who-should-be-involved-in-tracking-plan-development"&gt;sit down with your team&lt;/a&gt; for a pre-release purpose meeting--which should include developers from each platform--and map out the user actions that support each event and identify the commonalities between each. These are the properties that you should track.&lt;/p&gt;

&lt;h1&gt;
  
  
  6. Use a tool like Avo to manage your tracking plan
&lt;/h1&gt;

&lt;p&gt;You could create your tracking plan as a Google spreadsheet, throw all your code into one of the columns for each event and property that needs tracking, and manually link all your shareholders to it as needed. But that sounds like a lot of (unnecessary) work to do every time your analytics needs implementing.&lt;/p&gt;

&lt;p&gt;Instead, use a tool like Avo to manage your tracking plan.&lt;/p&gt;

&lt;p&gt;While a spreadsheet is a great place to start, smart tracking plans like Avo make your data quality much more scalable. Avo helps you create a single source of data tracking truth. With it, you can use a central app to track events and properties and send implementation instructions to developers. &lt;/p&gt;

&lt;p&gt;This makes it easy for you to quickly create and update your tracking plan, collaborate with team members, and give developers the instructions they need to keep tracking consistent and data helpful.&lt;/p&gt;

&lt;p&gt;To get started, &lt;a href="https://www.avo.app/request-a-demo"&gt;check out Avo today&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>analytics</category>
      <category>leadership</category>
      <category>management</category>
    </item>
    <item>
      <title>An easy way to collect crash reports in our Android libraries</title>
      <dc:creator>Avo</dc:creator>
      <pubDate>Wed, 20 Jan 2021 14:44:32 +0000</pubDate>
      <link>https://dev.to/avohq/an-easy-way-to-collect-crash-reports-in-our-android-libraries-4hi8</link>
      <guid>https://dev.to/avohq/an-easy-way-to-collect-crash-reports-in-our-android-libraries-4hi8</guid>
      <description>&lt;p&gt;Being an app developer I always liked how easy it is to add crash collection to my apps, but after switching to library development I’ve found myself in an opposite situation. How do I track and analyze crashes in my library?&lt;/p&gt;

&lt;p&gt;Here at Avo we have a couple of open source libraries for mobile. We have part of one of our main products distributed as a library, the &lt;a href="https://github.com/avohq/android-avo-inspector" rel="noopener noreferrer"&gt;Avo Inspector SDK&lt;/a&gt;, and we have our &lt;a href="https://github.com/avohq/android-analytics-debugger" rel="noopener noreferrer"&gt;mobile debugger&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;At one point we realized that there is a problem, we don’t have access to crash reports from the libraries. When the library is integrated to a third party app and crashes, that crash is collected by the app and it actually crashes the whole app, which is really bad. At the beginning we were in a situation where we relied on the crash information we get from our clients. We also lacked a good tool to organize the reports, something similar to what you get in Crashlytics for example.&lt;/p&gt;

&lt;p&gt;Our library, Avo Inspector, monitors tracking and collects metadata about it, it's not the core functionality of the app, so we decided that failure of the library should not be terminal to the app. We will collect the crashes when they happen and let the app do it's main job undistracted.&lt;/p&gt;

&lt;p&gt;As with all problems we face in software development, there are multiple possible solutions here with their own drawbacks.&lt;/p&gt;

&lt;p&gt;Most companies solve this problem by having their app with a decent amount of users where they use their sdk and monitor crash reports. Unfortunately it's not our case, since our product is a web app and a set of developer tools.&lt;/p&gt;

&lt;p&gt;Being a seed stage startup with a very small engineering team and huge list of product opportunities we try to utilise existing software as much as possible and invest as much time as we can in development of our product, so the first thing we did to figure out this problem was to look for a well built existing solution. To our great surprise we have not found any. There are quite a few different crash management tools for apps, but nothing dedicated for libraries.&lt;/p&gt;

&lt;p&gt;Technically we can use an app-based solution, but then the dependencies and library initialization may collide if the integrating app uses the same tool for crash reporting internally. Actually duplicate dependencies is not a huge issue and gradle would take care of it for us (read more about how gradle resolves dependencies &lt;a href="https://docs.gradle.org/current/userguide/dependency_resolution.html" rel="noopener noreferrer"&gt;here&lt;/a&gt; and in the worst case will fail the build, while the initialization is trickier. Most of the libraries do not allow having 2 instances sending crashes to 2 different destinations. Another complication is that those app specific crash reporting tools usually collect a lot of additional app data by default that we don't really want to collect as a library, like sessions or user identifiers.&lt;/p&gt;

&lt;p&gt;At that point building our own proxy to collect the crash reports seemed like the only option. We are using &lt;a href="http://sentry.io/" rel="noopener noreferrer"&gt;Sentry.io&lt;/a&gt; in our web app and decided to look into sending crashes there through our own endpoint. But then, when reading the docs, we got another idea. The thing is that alongside an app-specific Android SDK they provide a generic Java SDK that can be used in an Android app.&lt;/p&gt;

&lt;p&gt;This Java SDK actually automatically checked out most of our concerns about using a crash reporting SDK in our library.&lt;/p&gt;

&lt;p&gt;Chances that there would be a conflict are very low, and for those who use Sentry Java SDK we provide a version of our library without the dependency. The Java SDK is not sending additional app-related information. And integration is just a couple of lines of code. And since we are already using Sentry it was just perfect in our case!&lt;/p&gt;

&lt;p&gt;Here is how the code looks in our repo.&lt;/p&gt;

&lt;p&gt;The Sentry Java SDK dependency:&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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fzkhdmea47j6czhomatll.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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fzkhdmea47j6czhomatll.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gist.githubusercontent.com/alex-tpom6oh/39713335238b2da3e9ca9b42638ecce6/raw/173897db597b7134de40119390f269deb2398730/import.gradle" rel="noopener noreferrer"&gt;Raw code&lt;/a&gt;&lt;br&gt;
‍&lt;/p&gt;

&lt;p&gt;One thing we had to do is disable uncaught exception handling. By default Sentry, like most other crash reporting tools, registers a global uncaught exceptions handler that reports errors coming from any part of the application. In case of a library, we don’t want to be notified about exceptions that were thrown outside of our own code, so we disabled the global handler like this:&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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fdpgb2hl5lnvxpwxuszhn.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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fdpgb2hl5lnvxpwxuszhn.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gist.githubusercontent.com/alex-tpom6oh/df0748f6e7c47ffd4712de88d9a0c536/raw/6b8d91d7c333c6b295b714233170a8c14325070d/lookup.java" rel="noopener noreferrer"&gt;Raw code&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then we initialize the library:&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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fejf6p5q9adabjbyo8ioc.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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fejf6p5q9adabjbyo8ioc.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gist.githubusercontent.com/alex-tpom6oh/fa82504d91130641908e1b2719b0f70c/raw/7cb3ad5155169a9c84243599edd4427c0a66d345/sentryinit.java" rel="noopener noreferrer"&gt;Raw code&lt;/a&gt;&lt;br&gt;
‍&lt;/p&gt;

&lt;p&gt;And finally we wrapped all public methods in a try-catch and added this handler:&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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F47aeufzywabi20edajvy.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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F47aeufzywabi20edajvy.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gist.githubusercontent.com/alex-tpom6oh/9cd198f0f027cfeaaba060f3c9fdca7e/raw/38b3708ef237f5d5169060002716b5af4b0cf906/handleException.java" rel="noopener noreferrer"&gt;Raw code&lt;/a&gt;&lt;br&gt;
‍&lt;/p&gt;

&lt;p&gt;That’s it!&lt;/p&gt;

&lt;p&gt;We love this solution for the simplicity and the amount of value we get per unit of effort, it's exactly what we need. You can utilize the same approach, improve the stability and quality of your library and make your clients happier, never worrying about crashes from that 3rd party code they pull in!&lt;/p&gt;

&lt;p&gt;P.S.&lt;/p&gt;

&lt;p&gt;In addition to Sentry, &lt;a href="https://www.bugsnag.com/" rel="noopener noreferrer"&gt;Bugsnag&lt;/a&gt; and &lt;a href="https://raygun.com/" rel="noopener noreferrer"&gt;Raygun&lt;/a&gt; have Java SDKs and can likely be used in the same way. We haven't tried them though, please let us know if you are using one of them in an Android app by sending an email to &lt;a href="mailto:dev@avo.app"&gt;dev@avo.app&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;P.P.S&lt;/p&gt;

&lt;p&gt;Another great option which is more universal is using the new &lt;a href="https://docs.microsoft.com/en-us/appcenter/diagnostics/upload-crashes" rel="noopener noreferrer"&gt;crash reporting API from AppCenter&lt;/a&gt;. It's quite new and was not present when we did initial research.&lt;/p&gt;

&lt;p&gt;We have considered using it since then and were quite intrigued, but are still staying with Sentry on Android because of the implementation simplicity and the fact that we are using Sentry for our other products.&lt;/p&gt;

&lt;p&gt;In your case utilizing the AppCenter API might be a better option, check it out! Moreover, stay tuned for the news about our iOS crash reporting. They might be posting about AppCenter at some point. 😉&lt;/p&gt;

</description>
      <category>android</category>
      <category>showdev</category>
      <category>github</category>
      <category>java</category>
    </item>
    <item>
      <title>Your Guide to Updating Your Tracking Plan (Without Breaking Everything)</title>
      <dc:creator>Avo</dc:creator>
      <pubDate>Fri, 15 Jan 2021 00:56:21 +0000</pubDate>
      <link>https://dev.to/avohq/your-guide-to-updating-your-tracking-plan-without-breaking-everything-5fnm</link>
      <guid>https://dev.to/avohq/your-guide-to-updating-your-tracking-plan-without-breaking-everything-5fnm</guid>
      <description>&lt;p&gt;Your product is out. Your tracking plan is in place. Now the work really begins, at least as far as your tracking plan is concerned.&lt;/p&gt;

&lt;p&gt;But just because a tracking plan was great pre-launch doesn't guarantee it'll stay that way on its own. Even the best and most thoughtfully laid-out courses need correction from time to time. Your tracking plan is no different.&lt;/p&gt;

&lt;p&gt;No matter how well you design your tracking plan pre-release, chances are, new questions about your users and product will arise after things go live. Here's how to adapt your tracking plan without breaking your analytics—or undoing your sanity—in the process.&lt;/p&gt;

&lt;h1&gt;
  
  
  Look at your data (nearly) every day
&lt;/h1&gt;

&lt;p&gt;The first step in adjusting your tracking plan is knowing whether you need to in the first place. Look at your data every day for the first few weeks that your product is live. Be sensitive to any technical flaws. Is your analytics platform accurately collecting info? Is the data you're gathering answering the questions you set out to find answers to during that &lt;a href="https://www.avo.app/blog/tracking-the-right-product-metrics"&gt;initial purpose meeting&lt;/a&gt;? You don’t have any follow-up questions from the ones you have already answered?&lt;/p&gt;

&lt;p&gt;By looking at your data daily, you may find that the answer to all those questions is: "Well, yes!" In such an instance: congratulations! You've built the perfect tracking plan, and you are in no need of the remainder of this article. Have a cookie. 🍪&lt;/p&gt;

&lt;p&gt;More likely, though, you'll walk away from checking your data with even more questions about your users and how they're leveraging your product. In which case, there's work to do. It's OK, it happens to the best of data teams (even ours).&lt;/p&gt;

&lt;p&gt;After one of our launches, we realized our tracking plan was designed such that we had to dig into our raw data to know how long branches had been open. We revised our tracking plan and added a new property to allow us to measure the number of hours and days that branches had been open.&lt;/p&gt;

&lt;p&gt;For the first few weeks after your launch, look at your data daily. Then, once you’ve built a good baseline of metric performance you can shift to a weekly data review cadence to review your short-term KPIs. Once upon a time, it was acceptable to consult data monthly, quarterly, even yearly. Now, as we're deep in COVID-19 country and the new, fast-paced normal that came with it, markets and customer needs shift on a dime, so frequent consultation of data is advisable.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;For the first few weeks after your launch, look at your data daily.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Speaking at Amplitude's recent &lt;a href="https://learn.amplitude.com/learn/learning-path/amplify-2020"&gt;Amplify&lt;/a&gt; conference, executives from elite companies unanimously agreed about a need to be more agile and responsive with data. Shipt's VP of data science, Vinay Bhat, suggested that looking at data every day and "using shorter-term trends to quickly iterate off of" allowed Shipt to be more diligent about responding to new customer trends.&lt;/p&gt;

&lt;p&gt;Along similar lines, Shopify's director of data science, Philip Rossi, explained that daily data checks gave his team the ability to show people a snapshot of their performance at any given time.&lt;/p&gt;

&lt;p&gt;“On any given day . . . we could give people the [data] insights we had at that particular time, knowing we'd be looking for new ones the next day,” he said.&lt;/p&gt;

&lt;p&gt;Whatever the nature of your business, those are good precedents to follow.&lt;/p&gt;

&lt;h1&gt;
  
  
  Listen to your product manager's suggestions
&lt;/h1&gt;

&lt;p&gt;Your product manager is the one closest to the KPIs and goals for your product. They may or may not be data-savvy, but that doesn't necessarily matter. The questions they have post-release can help improve your tracking plan and bring it more in line with the business's goals. They'll also be getting feedback from other team members about potential areas of improvement in your tracking plan and new questions to be answered.&lt;/p&gt;

&lt;p&gt;For instance, say you wanted to figure out where in the user journey your users were dropping off. You start out by measuring, with your tracking plan, an event for overall adoption rates. A few days after your launch, one of your product managers comes to you and suggests that you make a change to help your designers better understand which features need improving (rather than just measuring adoption generally). After collaborating with your product manager, you decide to track adoption-rate data per feature that lets your design team see where they can make improvements to individual features to remove friction from your UX. &lt;/p&gt;

&lt;p&gt;Regularly check in with your product manager after their first round of revisions to ensure that your data feeds into the future of the product. If they’re missing a particular kind of needed data — “Why aren't we getting info about follow-through from feature-set a to feature-set b?” — you can make that integration or add a new event to capture that information. Alternatively, if there's a metric they no longer need — “We're a month in; we don't need to still be checking how many users are coming in from our launch-day content” — you can streamline your plan.&lt;/p&gt;

&lt;h1&gt;
  
  
  Run any changes by your developers and data experts
&lt;/h1&gt;

&lt;p&gt;All potential adjustments to your tracking plan should be gut-checked by your developers and data experts. This ensures the tracking plan is designed well and that it's possible to track the data being requested.&lt;/p&gt;

&lt;p&gt;For instance, let's say you have two stakeholder requests: one from your product manager and one from your sales department. Your product manager wants to add information to your tracking plan about how many users are going from your “Start trial” page, through your “Demo,” to your “Premium Landing Page.” Your sales department wants to know how many users use your product after visiting a particular other site.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Discipline and care make your tracking plan work.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Once you know the data they want tracked, check with your developers that it's &lt;em&gt;possible&lt;/em&gt; to collect that data. It's likely that your developers could very easily implement your product manager's request, given the right analytics tool. However, your sales department's request may be more difficult. That information may not be available at the moment when the event should be sent or be better served by a qualitative approach to collecting it.&lt;/p&gt;

&lt;p&gt;Finally, once you've settled on what can and will be added to your tracking plan, have your data experts come in. Their job will be to review the new structure to ensure that it meets your data governance standards in security, cleanliness of data, and usability.&lt;/p&gt;

&lt;h1&gt;
  
  
  Refer back to your established naming conventions
&lt;/h1&gt;

&lt;p&gt;When updating your tracking plan, refer back to your original tracking document and established naming conventions to avoid duplication errors and casing inconsistencies. You created your initial tracking plan for a reason, and that reason was ensuring data continuity post release. Tracking plans are useful only if the data they include is usable. The organization and communication of those insights are imperative.&lt;/p&gt;

&lt;p&gt;Naming conventions are crucial for maintaining that continuity. However, enforcing consistent naming conventions is one of the biggest challenges for companies because errors are often small and seemingly innocuous. But all it takes is for one stakeholder to refer to “customers” as “clients” during input for that potentially vital data to become siloed and inaccessible in an extensive database. For that reason, the most powerful tool to maintain data continuity is a naming convention that's well defined and available to everyone to prevent these problems.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Enforcing consistent naming conventions is one of the biggest challenges for companies.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Developers (and anyone creating new events and properties in tools like Avo) should pay particular attention to the &lt;a href="https://www.avo.app/docs/workspace/tracking-plan#a-nametracking-plan-issue-reportera-the-tracking-plan-issue-reporter"&gt;casing of names&lt;/a&gt;, order of objects and actions (e.g. Button Clicked vs Clicked Button), and the tense to avoid creating messy duplicates or confusing names. A good example of a naming convention will have the following features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A settled practice for cases (e.g., everything in “UPPERCASE,” everything in “lowercase,” everything in “camelCase”)&lt;/li&gt;
&lt;li&gt;A unified approach to articulating spaces between separate words (e.g., use of underscores, use of spaces, use of hyphens/em dashes, use of camelCase)&lt;/li&gt;
&lt;li&gt;IDs that include the data type expected for each variable&lt;/li&gt;
&lt;li&gt;Human-readable data that clearly and concisely communicates what each event and property measures (e.g., Adoption Rate, Conversion Rate, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Remember, duplicates or erroneous values can lead to adverse consequences for people using your data.&lt;/p&gt;

&lt;p&gt;Your tracking plan is a little like a language of its own. Consistency and continuity are vital to maintaining ease of understanding between your stakeholders. Discipline and care make it all work.&lt;/p&gt;

&lt;h1&gt;
  
  
  Establish a system for version control
&lt;/h1&gt;

&lt;p&gt;Without an established system for version control, tracking plan management can get messy, and updates between different versions, made by different teams, can cause conflicts within your code and schema. Having an established VCS (version control system) and process helps you avoid these disconnects.&lt;/p&gt;

&lt;p&gt;This is particularly important in the context of team collaboration. The point of your tracking plan is to de-silo teams and improve knowledge-sharing. For that reason, multiple teams will be working on the same tracking plan. You may find mistakes are made, particularly in the first month or two of using your plan, when everyone is getting used to the standardized procedure.&lt;br&gt;
‍&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Teams traditionally feel the pain of poor version control when they’re over-reliant on Google Sheets.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Teams traditionally feel the pain of poor version control when they’re over-reliant on Google Sheets (bad doc history features have a lot to answer for). Worse still, they might be trying to manage tracking plan versions through multiple files (e.g., Data Plan v23). What your team needs instead is a single source of truth, like Avo or a similar tool.&lt;/p&gt;

&lt;p&gt;Beyond updating your tech stack, you can improve version control by implementing branched workflows and version control systems. This is easy if you’re keeping your tracking plan in JSON documents and collaborating in git, which allows you to bump a version every time you update your plan. This gives you the ability to check for conflicts and dependencies within your codebase, as you would during regular QA checks of code pre-deployment.&lt;/p&gt;

&lt;h1&gt;
  
  
  Make tracking plan management (and revising) easier with Avo
&lt;/h1&gt;

&lt;p&gt;There's nothing wrong with changing your tracking plan design post release. In fact, it's a great thing to do. Acknowledging that your tracking plan is a little off somewhere—or that more data would help you build a better product--is the first step to improvement. Once you've established that you need more — or different — data than you originally planned, it's time to get to work adding new events and properties so that you can get better answers down the road.&lt;/p&gt;

&lt;p&gt;Nevertheless, tracking plans can be demanding, even with the most disciplined stakeholders in the world. That's why it comes in handy to use a tool like Avo. With Avo, you can keep track of all your events and properties easily in one place. It helps you enforce best practices, like standardizing casing and preventing duplicate events and properties from occurring. Avo also lets you seamlessly push updates to developers for every platform from a single, accessible source of data truth.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.avo.app/request-a-demo"&gt;Try Avo today&lt;/a&gt; for better product decision-making and a cleaner tracking plan.&lt;/p&gt;

</description>
      <category>leadership</category>
      <category>management</category>
      <category>operations</category>
      <category>analytics</category>
    </item>
    <item>
      <title>How Rappi Developers use Avo to build better product analytics</title>
      <dc:creator>Avo</dc:creator>
      <pubDate>Mon, 11 Jan 2021 21:22:18 +0000</pubDate>
      <link>https://dev.to/avohq/how-rappi-developers-use-avo-to-build-better-product-analytics-1pf1</link>
      <guid>https://dev.to/avohq/how-rappi-developers-use-avo-to-build-better-product-analytics-1pf1</guid>
      <description>&lt;p&gt;&lt;em&gt;guest post by Juan Jose Villegas, Engineering Manager at Rappi&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The power of Avo is this: what is designed is what is implemented.&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;– Juan Jose Villegas&lt;/strong&gt;&lt;br&gt;
Engineering Manager&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;‍&lt;br&gt;
As an Engineering Manager at &lt;a href="https://www.rappi.com/"&gt;Rappi&lt;/a&gt;, I’m in charge of managing a cross-functional team made up of Android, iOS and backend engineers that are focused on developing and maintaining features that our end user perceives. My role is to take them from ideation and concept phases to testing and production, while remaining involved form a hands-on technical perspective.&lt;/p&gt;

&lt;p&gt;We found Avo when searching for a solution to the problems that plague many engineering teams. Rappi develops new features and ships weekly, and each new feature requires analytics. Then, all those features require cross-platform implementation, so we are working on at least 3 different codebases at any given time. Each team had their own interpretation of what should be implemented. We’re only human, so there were typos and different types of events and properties scattered throughout the code. Once the feature went into production, the BI team started to track activity and realized what was defined didn't match what was implemented. Tickets bounced back to the engineering team, and the cycle started all over again.&lt;/p&gt;

&lt;p&gt;All of this boils down to developers' time wasted in implementing analytics and fixing bugs - 25% of tickets in engineering were analytics related. We also saw the BI team wasting time on clean up projects and regression testing when critical events break. QA teams were stretched trying to catch every bug before it hit production. Even then, our VPs worried that the data presented to the CEO was inaccurate, leading to large-scale decisions in the wrong direction. I’m willing to bet you’ve found similar inefficiencies in your organization, and it was these recurring issues that led us to implement Avo.&lt;/p&gt;

&lt;h1&gt;
  
  
  Align Cross-Platform and Cross-Functionally
&lt;/h1&gt;

&lt;p&gt;Avo helps developers communicate with each other better, as well as come to a clear understanding of our requirements and deliverables with data science, business intelligence, and product teams. &lt;/p&gt;

&lt;h3&gt;
  
  
  Global naming conventions
&lt;/h3&gt;

&lt;p&gt;Discrepancies in event and property names––seemingly minor (&lt;code&gt;order_submitted&lt;/code&gt; and &lt;code&gt;orderSubmitted&lt;/code&gt;) as well as major (&lt;code&gt;order_submitted&lt;/code&gt; and &lt;code&gt;orderButtonPress&lt;/code&gt;)––are a surprisingly central pain point in data analytics, particularly when aiming for self-serve analytics culture.&lt;/p&gt;

&lt;p&gt;Issues with event names and property names do not only arise from the implementation step (which is mostly prevented with type-safe analytics code generated from a central source of truth for all platforms); they also arise from the data-design step: when multiple teams work on a product, it typically also means that multiple humans work on the tracking plan. It's difficult enough to remember all the events you yourself created, let alone be aware of the events other people have created.&lt;/p&gt;

&lt;p&gt;Avo has a global namespace to ensure that all events and properties in the tracking plan have unique names so that they can be easily identified. This significantly reduces duplicate event definitions for the same user action. A global namespace for events ensures that whoever is defining events is aware of events that have similar names. Furthermore, they won't even be able to create an event or property where the only difference is casing (a source of surprisingly many frustrating data issues).&lt;/p&gt;

&lt;p&gt;Having a global namespace for all properties ensures you won't create properties with slightly different meanings depending on which event they are sent from – a source of many confusions for the data consumers. For example, the data consumer may be used to &lt;code&gt;user_id&lt;/code&gt; meaning "id of the user ordering something", but then all of a sudden a new event gets created with &lt;code&gt;user_id&lt;/code&gt; referring to the user delivering an order.&lt;/p&gt;

&lt;h3&gt;
  
  
  Descriptions
&lt;/h3&gt;

&lt;p&gt;Descriptions aren’t new for us, and I’m sure they aren’t new to you either. Whether we work in Excel, Miro, Amplitude, or Avo, there is some version of event and property descriptions that tell us basic information about how and why a data point is instrumented. What separates Avo from the rest is how it communicates this rich information across the workflow. Descriptions don’t just die in Avo. They’re presented in the generated code, so developers have easy access to them while they’re implementing. They can also get published into your other schema sources, &lt;a href="https://www.avo.app/docs/analytics"&gt;via a Webhook or Avo’s auto-publishing into Amplitude, Mixpanel and Segment&lt;/a&gt;. Avo also keeps a log of all changes and comments made, so the descriptions become an ever-evolving and well-documented source of truth.&lt;/p&gt;

&lt;p&gt;To make it absolutely clear when an event should get triggered, our event and property descriptions follow a standard template including a Miro link to planning exercises and a link to an image that shows how and where the event is triggered. Avo also recommends having the &lt;a href="https://www.avo.app/blog/tracking-the-right-product-metrics"&gt;purpose of your events clear&lt;/a&gt;, and allows you to &lt;a href="https://www.avo.app/docs/best-practices/documenting-purpose-meetings-in-avo"&gt;link your events directly to the metrics&lt;/a&gt; they should be used for – which adds further clarity and context for your future self or coworkers, who might be wondering why an event exists.&lt;/p&gt;

&lt;h3&gt;
  
  
  Review workflows
&lt;/h3&gt;

&lt;p&gt;Self-serve analytics and an open data democracy are tenets most product orgs aspire to in the age of rapid product development with an expectation for fast learning. However, I’ve found it to be unsustainable without some type of changelog and review system in place. We can define our analytics events as flawlessly as possible, but it’s meaningless if someone can come in and accidentally delete them. &lt;/p&gt;

&lt;p&gt;We utilize Avo’s &lt;a href="https://www.avo.app/blog/product-announcement-built-for-collaboration"&gt;review workflows&lt;/a&gt;. The main branch is protected against direct changes, and every other branch has to be reviewed by someone before it is merged. Having another set of eyes on all changes means the probability of damaging events or designing incorrect data is slim.&lt;/p&gt;

&lt;p&gt;It’s also worth noting that each change is logged in Avo, and displayed to the end user in a diff log. The Avo log is particularly designed for reviewing changes to &lt;em&gt;analytics objects&lt;/em&gt;, which is better than a git-hosted .json file, where you can’t reliably trace changes to specific events or properties, because git is limited to line-changed of a file. With Avo, it’s easy to trace which developer or analyst made which change, and we can always do a rollback if an error does occur.&lt;/p&gt;

&lt;h1&gt;
  
  
  Implement faster and better
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Type-safe code
&lt;/h3&gt;

&lt;p&gt;When you use Avo to generate code via the CLI or the UI, it’s type-safe and generated the same event and property names across all platforms. We can only implement data in well-defined and reliable ways.&lt;/p&gt;

&lt;p&gt;For example, we have an event property called “category”, and we want the values to be either “market” or “restaurant”. That’s how it’s defined in our tracking plan. When we go to generate code, we see that the “category” is implemented as an enum where the cases are exactly what is available in the tracking plan, “market” or restaurant”.&lt;/p&gt;

&lt;h3&gt;
  
  
  Inspector and Debugger prevent implementation errors
&lt;/h3&gt;

&lt;p&gt;Even with the above processes in place, there could theoretically be errors. For example,  we’re still responsible for correctly implementing the timing and triggers for how each event fires. However, the &lt;a href="https://www.avo.app/docs/mobile-debuggers"&gt;mobile debugger&lt;/a&gt; and the &lt;a href="https://www.avo.app/docs/inspector"&gt;Inspector&lt;/a&gt; help QA teams to find and eliminate errors before we ship that version. These QA tools make it nearly impossible to ship bad analytics, and eliminate the feedback loop wherein our BI team would find errors and be forced to log Jira tickets to have them resolved.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The power of Avo is this: what is designed is what is implemented.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As an added bonus, Inspector tracks our legacy code before Avo. The Inspector is like a map of what’s happening with our data, what is being sent. What previously was taking weeks of BI time auditing and cleaning up our existing code is now automated. Avo has given us a clearer picture of what inconsistencies our tracking has, and the power to know exactly what issues to fix, so we can work towards prioritizing and resolving them.&lt;/p&gt;

&lt;h1&gt;
  
  
  Dedupe your workflow
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Property Groups
&lt;/h3&gt;

&lt;p&gt;Let me walk through an example I’m sure will resonate with you. You have a widget to sell, and you want to track the ecommerce funnel for how a user buys that widget. You have events like &lt;code&gt;view_item&lt;/code&gt;, &lt;code&gt;add_to_cart&lt;/code&gt;, and &lt;code&gt;purchase&lt;/code&gt; and each of those events will have properties that tell you more about the event. You usually want to know things like &lt;code&gt;item_name&lt;/code&gt; or &lt;code&gt;item_price&lt;/code&gt;, so you send that along with each of the three events above. Each event can be triggered in multiple places, so you have to type &lt;code&gt;item_name&lt;/code&gt; at least a dozen times already. Multiply that by the number of platforms your team serves. Bored yet? Oh, and Android decided to call it &lt;code&gt;itemName&lt;/code&gt; instead because they didn’t know we were using snake casing for analytics.&lt;/p&gt;

&lt;p&gt;Can we even be surprised that there is human error, then, when we are implementing the same thing over and over, by hand, with several different teams?&lt;/p&gt;

&lt;p&gt;Instead, we’ve adopted Property Groups in Avo. We define and design groups of similar properties when we design the tracking plan and assign those Property Groups to relevant events. Then, not only are we only defining the properties once, we’re also ensuring that all necessary metadata is included with each event.&lt;/p&gt;

&lt;h3&gt;
  
  
  Use default destinations
&lt;/h3&gt;

&lt;p&gt;As mentioned previously, we have quite a few tools in our marketing stack. Downstream from Avo, we have Amplitude, AppsFlyer, Braze, Firebase, Rakam, Split.io and Facebook. Our events could go to one of these sources or they could go to all of these sources. It can be challenging for our developers to know what goes where, and this results in a lot of guesswork that has to be corrected at some point in the future.&lt;/p&gt;

&lt;p&gt;When you configure sources in Avo, you have the option of defining defaults for given source-destination pairs. For example, if I know I always want to send Android and iOS events to Firebase, but never web, I can automate that for all events. It is possible to change defaults at the time of event creation, but having defaults in place addresses the vast majority of cases.&lt;/p&gt;

&lt;h3&gt;
  
  
  Publishing
&lt;/h3&gt;

&lt;p&gt;At Rappi, we use Amplitude for most product and marketing insights and visualizations. If you’ve worked in Amplitude previously, you’ll know that when an external event is sent into the platform, there is a review and acceptance process in Amplitude Govern. Without Avo, this is a valuable check in the system to make sure bad data doesn’t end up flooding our analytics tool. However, we’ve already done the work of describing and verifying all data points so this extra check becomes a timesuck with no added benefit to the process.&lt;/p&gt;

&lt;p&gt;Avo integrates directly with Amplitude’s Govern tool and bypasses this process. Instead, all descriptions and contextual meta-data are sent to Govern each time a branch is merged. I don’t have to remember to update Govern, and our analysts always have the most up-to-date version of analytics.&lt;/p&gt;

&lt;p&gt;‍&lt;/p&gt;

&lt;h1&gt;
  
  
  Where We’re At Today
&lt;/h1&gt;

&lt;p&gt;We’re making great strides in improving our analytics implementations and making our developers more efficient in the process. We are working towards an overall goal of having our engineers use only 5% of their time implementing analytics. That represents an 80% reduction in their current use of time. While we’re working towards our metric goals, we’re happy with our developer and data scientist feedback so far. Here is what my co-worker had to say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Developer adoption of Avo has been great. In a matter of weeks, multiple teams are implementing analytics with Avo, with developers adopting the tool seamlessly and without conflict, even if they are developers that don’t work together day-to-day. I’ve seen very good feedback from devs. It’s easier to make changes and maintain events, because they are well defined in advance.”&lt;br&gt;
&lt;strong&gt;-  Henry Martinez&lt;/strong&gt;&lt;br&gt;
Android lead&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;With Avo we create analytics schemas upfront, identify analytics issues fast, add consistency over time and ensure data reliability as we help customers serve the 12+ million monthly users their businesses attract. Overall, the power in Avo is that it frees my team up to build the experiences and features that really matter for our users.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>devrel</category>
      <category>analytics</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Publish your tracking plan into Amplitude, Mixpanel, Segment or with a Webhook</title>
      <dc:creator>Avo</dc:creator>
      <pubDate>Mon, 14 Dec 2020 20:04:23 +0000</pubDate>
      <link>https://dev.to/avohq/publish-your-tracking-plan-into-amplitude-mixpanel-segment-or-with-a-webhook-17ec</link>
      <guid>https://dev.to/avohq/publish-your-tracking-plan-into-amplitude-mixpanel-segment-or-with-a-webhook-17ec</guid>
      <description>&lt;p&gt;Tracking plans can't live in isolation. Once a tracking plan has been defined in Avo it needs to be utilized in multiple places, not only to generate type safe tracking code, but also to...&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;feed the rich context of the tracking plan (think event descriptions, property types etc) into analytics platforms &lt;em&gt;Example: I want to see the Avo description when hovering over an event in Amplitude&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;update ingestion time validation tooling that blocks things that are not defined in the tracking plan from entering our datastore&lt;/li&gt;
&lt;li&gt;build or update SQL tables based on the latest tracking plan, to receive and store the data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Basically, the limit does not exist. 🚀&lt;/p&gt;

&lt;h2&gt;
  
  
  Publish Your Avo Tracking Plan:
&lt;/h2&gt;

&lt;p&gt;We’re excited to announce the following Publishing destinations are now available in Avo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.avo.app/segment"&gt;Segment Protocols&lt;/a&gt;: You can push the Avo tracking plan to Segment Protocols with a click of a button in the Avo dashboard.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.avo.app/amplitude"&gt;Amplitude Govern&lt;/a&gt;: API pending update from Amplitude, coming soon! You'll be able to push your Avo tracking plan with a click of a button in the Avo dashboard.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.avo.app/mixpanel"&gt;Mixpanel Lexicon&lt;/a&gt;: You can push the Avo tracking plan to Mixpanel Lexicon with a click of a button in the Avo dashboard.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.avo.app/webhooks"&gt;Webhooks&lt;/a&gt;: To access your tracking plan data in thousands of other platforms, or in your own in-house tools, use Avo Webhooks. It’s as easy as adding a URL.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The feature we’re most excited about, however, is auto-publishing to all of these destinations. You can now configure these integrations so that each time a new branch is merged, your new and updated tracking plan is automatically sent to your downstream tools of choice! We’re taking the guesswork out of event metadata. &lt;/p&gt;

&lt;p&gt;With auto-publishing, you can rest assured that every team member has the insights needed for analysis and activation, right where they need them.&lt;/p&gt;

&lt;p&gt;This helps you seamlessly create a single source of data truth and foster better collaboration across teams in your product organization. If you need help along the way, know Avo is ready to partner with you on your journey to good analytics governance.&lt;/p&gt;

</description>
      <category>integrations</category>
      <category>datascience</category>
      <category>management</category>
      <category>analytics</category>
    </item>
    <item>
      <title>9 Free Tracking Plan Templates from Mixpanel, Amplitude, Segment, and More</title>
      <dc:creator>Avo</dc:creator>
      <pubDate>Mon, 23 Nov 2020 14:39:08 +0000</pubDate>
      <link>https://dev.to/teamavo/9-free-tracking-plan-templates-from-mixpanel-amplitude-segment-and-more-59oo</link>
      <guid>https://dev.to/teamavo/9-free-tracking-plan-templates-from-mixpanel-amplitude-segment-and-more-59oo</guid>
      <description>&lt;p&gt;At Avo, we’re all about working smarter, not harder. That’s why we rounded up some of the best tracking plan templates: so you can spend less time planning your &lt;a href="https://www.avo.app/blog/data-governance-maturity-model-how-mature-is-your-approach-to-data?utm_source=newsletter&amp;amp;utm_medium=blog&amp;amp;utm_campaign=tracking_plan_templates"&gt;data management&lt;/a&gt;, and more time enjoying the fruits of your labor.&lt;/p&gt;

&lt;p&gt;Sure, you could build your tracking plan completely from scratch using a Google Sheet or Excel, but why make your life harder than it needs to be. Building a good tracking plan can take a lot of work and trial and error.&lt;/p&gt;

&lt;p&gt;When you start with a tracking plan template, you reduce some of the friction between your data-driven vision and your data-admin reality. This helps you get your data management off the ground faster, with less of a headache.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why you should use a tracking plan template
&lt;/h2&gt;

&lt;p&gt;There’s a lot that goes into building a &lt;a href="https://www.avo.app/blog/our-definitive-guide-to-tracking-plans?utm_source=newsletter&amp;amp;utm_medium=blog&amp;amp;utm_campaign=tracking_plan_templates"&gt;great tracking plan&lt;/a&gt;, and, thankfully, some of the best leaders in the analytics industry have done the legwork for you.&lt;/p&gt;

&lt;p&gt;You can definitely blaze your own trail and create a tracking plan yourself, but you’ll inflate the amount of time going back and forth with your product and sales teams to establish key events and KPIs. You also run the risk of forgetting about a key field your tracking plan needs, requiring you to go back and correct both your plan and your analytics down the road.&lt;/p&gt;

&lt;p&gt;Why work harder when you can work smarter and faster?&lt;/p&gt;

&lt;p&gt;But before we get going too fast, let’s review a quick definition of what we mean by “tracking plan”:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A tracking plan is a centralized document that everyone on your team refers to when setting up and implementing tracking analytics at your company. It outlines what metrics you care about, and why.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Now that you know why you should use a tracking plan template and what a tracking plan is, we can move on to the best part: our favorite tracking plan templates. 🥑&lt;/p&gt;

&lt;h2&gt;
  
  
  A breakdown of our favorite tracking plan templates 😍
&lt;/h2&gt;

&lt;p&gt;The tracking plan templates we’ve included below will streamline many of the steps of building this centralized document to keep everyone on the same page.&lt;/p&gt;

&lt;p&gt;These templates help you avoid all that mess and help you get your tracking plan best practices up and running, and each of the templates below from companies such as Amplitude, Segment, and Mixpanel will make it easier for you to implement your plan into popular analytics tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Avo’s Ultimate tracking plan template 🎉
&lt;/h3&gt;

&lt;p&gt;We’re a little biased, but this is our favorite. We created an ultimate, &lt;a href="https://www.avo.app/blog/avos-ultimate-tracking-plan-template-w-downloadable-worksheet?utm_source=newsletter&amp;amp;utm_medium=blog&amp;amp;utm_campaign=tracking_plan_templates"&gt;universal tracking plan template&lt;/a&gt; that outlines everything you need to think about when creating a tracking plan, all in one Google Sheet doc.&lt;/p&gt;

&lt;p&gt;‍&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YQUTCZA8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/b816cwnq9p6lhdow71jc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YQUTCZA8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/b816cwnq9p6lhdow71jc.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What we like:&lt;/strong&gt; This tracking plan template takes our favorite elements from our customers’ tracking plans and puts them into an understandable template format that companies can use to break down the &lt;a href="https://www.avo.app/blog/tracking-the-right-product-metrics?utm_source=newsletter&amp;amp;utm_medium=blog&amp;amp;utm_campaign=tracking_plan_templates"&gt;metrics they most care about&lt;/a&gt;. Then, once it’s filled out, tracking plan champions can use this document to seamlessly implement their plans into their analytics tool of choice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What we don’t like:&lt;/strong&gt; Your information isn’t already in it. 😉&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; The Avo template is made for any company that wants to be data-driven and develop a killer tracking plan.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Segment’s basic tracking plan template
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://segment.com/"&gt;Segment&lt;/a&gt; is an industry leader when it comes to product analytics. In addition to their specs for mobile, video, SaaS, and ecommerce tracking, they’ve developed a number of tracking plan templates to get you started, but &lt;a href="https://docs.google.com/spreadsheets/d/111LLWxdf_zQE5a_AajKeB8WpCgFaWKEo-sGMc95HYq0/edit?__hstc=222691652.f2c5ed50a3a9703ac3be5283918044ad.1436399176206.1437082421955.1437085712408.17&amp;amp;__hssc=222691652.23.1437085712408&amp;amp;__hsfp=2203243415#gid=639423297"&gt;this basic template&lt;/a&gt; is one of our favorites.&lt;/p&gt;

&lt;p&gt;‍&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--f0r39Nnm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qg91oq4b2pec6bbfxdyg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--f0r39Nnm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qg91oq4b2pec6bbfxdyg.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What we like:&lt;/strong&gt; You can use Segment’s template for a variety of industries, and the Google Sheet format makes it easy for you to keep track of implementation notes, tracked events, and user IDs and traits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What we don't like:&lt;/strong&gt; In our opinion, this template could be improved with an additional column (or stand-alone tab) for overall business objectives and key performance indicators (KPIs).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; This template is best suited to any company looking to improve their data management practices (bonus if you already use Segment).&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Amplitude’s basic event taxonomy template
&lt;/h3&gt;

&lt;p&gt;This template is an oldie but a goodie. &lt;a href="https://docs.google.com/spreadsheets/d/1b_uHvFbXAuKxFNFwNjRj4-_6sSrhlgHoizeJLSp1Grw/edit#gid=465273655"&gt;Amplitude created a basic template&lt;/a&gt; for event taxonomy (a fancy way of saying tracking plan) for companies in any industry.&lt;/p&gt;

&lt;p&gt;‍&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NAO6uRoh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/b4dou1xc16bp50clgzkg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NAO6uRoh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/b4dou1xc16bp50clgzkg.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What we like:&lt;/strong&gt; Amplitude’s tracking plan template includes clear instructions on how to get started, as well as answers to common questions companies may have while building their template. This ensures that you (or whoever is in charge of developing your 1.0 tracking plan) can easily get started without having to do a bunch of Googling.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What we don't like:&lt;/strong&gt; This template doesn’t feature a tab for implementation notes, but you can always add another to your local copy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Amplitude’s template is best suited to companies in any industry that already use—or plan to use—Amplitude to manage their analytics.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Practico Analytics’ basic tracking template
&lt;/h3&gt;

&lt;p&gt;Practico Analytics has created some awesome resources around tracking plan development and management, not least of which is this basic tracking plan template.&lt;/p&gt;

&lt;p&gt;‍&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rk5MvaIE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wodowgcj3ix0lm56rfo3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rk5MvaIE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wodowgcj3ix0lm56rfo3.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What we like:&lt;/strong&gt; Practico Analytics added some extra fields to their template for implementation status, spots to specify where in the life cycle the event fits, and a field for what app section your events sit within. This extra detail is an awesome way to ensure that your events match up with your user journey.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What we don't like:&lt;/strong&gt; This tracking plan is technically behind a sign-up gate (though the link we provided up top gets you around that), and their implementation checklist doesn’t include any sample information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; This tracking plan template is best for companies that have some tracking plan experience and that appreciate, but don’t need, example data to show them what to include.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Mixpanel’s Tracking plan Template for SaaS companies
&lt;/h3&gt;

&lt;p&gt;Mixpanel created a &lt;a href="https://mixpanel.app.box.com/s/1xou3n8z6a14igg3hiiuxs7ur15cii4y"&gt;great simple template for SaaS companies&lt;/a&gt; that breaks down how to think about business objectives, analytics strategy, and tracking plan elements such as event names, triggers, and definitions. If you’re in the SaaS space, this is a great resource to get you started.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rRRYNk4v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/zzzuzdvvh6pg2vjz8pi2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rRRYNk4v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/zzzuzdvvh6pg2vjz8pi2.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What we like:&lt;/strong&gt; This Mixpanel tracking plan template is great for SaaS companies looking to pull all their tracking and sales KPIs into one place (there are three sheets: one for your tracking plan, one for your analytics strategy, and one for your business objectives).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What we don't like:&lt;/strong&gt; The design is a bit old school and may take a bit longer to figure out than others on this list. Also, there are some redundant fields (trigger and event definition, for instance), so the layout could be simplified.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; The Mixpanel SaaS tracking plan template is best for—you guessed it—SaaS companies that are putting together their first tracking plan.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Mixpanel’s Template for Retail and eCommerce companies
&lt;/h3&gt;

&lt;p&gt;Mixpanel has created a great &lt;a href="https://mixpanel.app.box.com/s/4qhbozhmsrzvzpakan6hqif0t3036qui"&gt;simple template for retail and ecommerce companies&lt;/a&gt; that breaks down how to think about business objectives, analytics strategy, and tracking plan elements and includes some sample data for each area to help you get started.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MQictmB2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/yo7f1r2ftyn25asapuwi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MQictmB2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/yo7f1r2ftyn25asapuwi.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What we like:&lt;/strong&gt; The Mixpanel tracking plan template for ecommerce and retail companies includes some awesome example data for your tracking plan to help you get an idea of what to start off with. And, like the SaaS template, it features tabs for your overall KPIs, your analytics strategy, and your tracking plan, so everything is in one place.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What we don't like:&lt;/strong&gt; Like the SaaS template, this one’s design is a little clunky, and some fields are redundant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; This template was specifically put together for ecommerce and retail companies.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Amplitude’s tracking plan template for ecommerce companies
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://docs.google.com/spreadsheets/d/1kJHtxUqW8Wr2xICKo96NBXsD7GHw3rMMT9umAXVVA8M/edit#gid=367769533"&gt;This template&lt;/a&gt; is nearly the same as Amplitude’s basic template but includes some suggested events and properties for the ecommerce industry, which can be used as a jumping-off point.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7vIYjOyL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/j01287ah5hmqrkudtgvt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7vIYjOyL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/j01287ah5hmqrkudtgvt.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What we like:&lt;/strong&gt; Amplitude’s tracking plan template for ecommerce companies includes sample event and property names, as well as detailed instructions on how to think about each field of the plan. They also have included links to sample taxonomies that you can check out for more inspiration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What we don't like:&lt;/strong&gt; This is the same as their basic template, and it doesn’t include that much space for adding notes for developers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; This template is best for companies within the ecommerce space that are completely new to tracking and in need of some extra detail.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Mixpanel’s Tracking plan template for Media companies
&lt;/h3&gt;

&lt;p&gt;Continuing on their industry-themed templates, Mixpanel created a &lt;a href="https://mixpanel.app.box.com/s/pekpzmer2gwdlu67jf6kl1kggxyl4hss"&gt;great, simple template for media companies.&lt;/a&gt; Like the templates before it, this one breaks down business objectives, analytics strategy, and tracking plan fields.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qSz042xl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/5odhyskj8zg5j5wk465c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qSz042xl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/5odhyskj8zg5j5wk465c.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What we like:&lt;/strong&gt; The Mixpanel tracking plan template for media companies includes a great breakdown of the different elements you need to identify—everything from KPIs to events to implementation notes—to create a great tracking plan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What we don't like:&lt;/strong&gt; Some of the fields provided are redundant, like previous templates. Additionally, their provided KPIs and properties include some examples that aren’t actually relevant to the industry and can’t be implemented 1:1 into their platform.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; This template is best for media companies that have already put some thought into their tracking plans and don’t necessarily need a bunch of examples.&lt;/p&gt;

&lt;h3&gt;
  
  
  9. Mixpanel’s Tracking plan template for financial service companies
&lt;/h3&gt;

&lt;p&gt;Closing out both our list and our collection of Mixpanel tracking templates is this &lt;a href="https://mixpanel.app.box.com/s/n7ieqao2vmn3ajhkui92g8ow1oaaub96"&gt;great template for financial services companies&lt;/a&gt;. Like previous examples from Mixpanel, this template breaks down info into KPIs and analytics strategy, as well as your tracking plan.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---7GjKJhx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/cgc7b7c0i92bs8rxqnbc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---7GjKJhx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/cgc7b7c0i92bs8rxqnbc.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What we like:&lt;/strong&gt; Like other tracking plan templates from Mixpanel, this one includes a good amount of detail to ensure that companies using it are breaking down their tracking plans to the right level.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What we don't like:&lt;/strong&gt; Unfortunately, also like other tracking templates from Mixpanel, the information isn’t presented in the prettiest way, and some fields are redundant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who this template is best for:&lt;/strong&gt; This template—as you probably guessed from the name—is best for financial services companies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Now that you’ve got your tracking plan template, meet your best tracking analytics tool: Avo
&lt;/h2&gt;

&lt;p&gt;There are lots of awesome templates out there to help you get started in creating your tracking plan. But no matter which one you go with, you can level up your tracking (and make the management of it easier) with Avo.&lt;/p&gt;

&lt;p&gt;Avo works with nearly all of the analytics tools that developed templates on this list (sans Practico Analytics). So, no matter what template you choose, you can add your tracking plan to Avo and manage analytics implementation across all platforms.&lt;/p&gt;

&lt;p&gt;Basically, we’re your source of data truth.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.avo.app/onboarding/email?utm_source=newsletter&amp;amp;utm_medium=blog&amp;amp;utm_campaign=tracking_plan_templates"&gt;Create a free account today&lt;/a&gt;, or &lt;a href="https://www.avo.app/request-a-demo?utm_source=newsletter&amp;amp;utm_medium=blog&amp;amp;utm_campaign=tracking_plan_templates"&gt;sign up for a demo&lt;/a&gt; to learn more.&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>productivity</category>
      <category>datascience</category>
      <category>management</category>
    </item>
  </channel>
</rss>
