{"id":822,"date":"2024-02-06T21:15:00","date_gmt":"2024-02-06T21:15:00","guid":{"rendered":"https:\/\/fde.cat\/index.php\/2024\/02\/06\/overcoming-complex-obstacles-revealing-tableaus-process-for-creating-new-features-and-functionality\/"},"modified":"2024-02-06T21:15:00","modified_gmt":"2024-02-06T21:15:00","slug":"overcoming-complex-obstacles-revealing-tableaus-process-for-creating-new-features-and-functionality","status":"publish","type":"post","link":"https:\/\/fde.cat\/index.php\/2024\/02\/06\/overcoming-complex-obstacles-revealing-tableaus-process-for-creating-new-features-and-functionality\/","title":{"rendered":"Overcoming Complex Obstacles: Revealing Tableau\u2019s Process for Creating New Features and Functionality"},"content":{"rendered":"<p>In our \u201cEngineering Energizers\u201d Q&amp;A series, we examine the professional life experiences that have shaped Salesforce Engineering leaders. Meet Patrick Green, a Lead Member of the Technical Staff for Salesforce Engineering. Patrick supports the Project Sharing and Permissions (PSP) team at <a href=\"https:\/\/www.tableau.com\/solutions\/salesforce\">Tableau<\/a>. Feature development plays a crucial role in their work, ensuring the smooth functioning of various Tableau products \u2014 including <a href=\"https:\/\/www.tableau.com\/products\/cloud-bi\">Tableau Cloud<\/a>, <a href=\"https:\/\/www.tableau.com\/products\/server\">Server<\/a>, and <a href=\"https:\/\/www.tableau.com\/products\/desktop\">Desktop<\/a> \u2014 providing a structured approach to data management, and maintaining data security.<\/p>\n<p>Read on to explore how Patrick\u2019s team manages complex engineering challenges to develop and implement, and troubleshoot these features.<\/p>\n<p><strong>What is your team\u2019s mission?<\/strong><\/p>\n<div class=\"wp-block-group is-layout-constrained wp-container-1 wp-block-group-is-layout-constrained\">\n<p>One of the key aspects of PSP\u2019s work is the development and implementation of features that enhance Tableau\u2019s functionality. These features include:<\/p>\n<p><strong>Permissions management<\/strong>. PSP\u2019s permission features safeguard data access and protects sensitive information. By assigning permissions, PSP controls what users can see, access, and interact with, ensuring data security and compliance.<\/p>\n<p><strong>Shared functionalities<\/strong>. These features enable users to securely share workbooks, views, and dashboards. This promotes collaboration and data-driven decision-making.<\/p>\n<p><strong>Projects<\/strong>. Used for organizing and storing content within Tableau, projects are closely linked to permissions, ensuring content is accessible to the intended audience.<\/p>\n<\/div>\n<p><em>A permission rule establishes who is impacted (a group or user) and which capabilities they are allowed, denied, or unspecified.<\/em><\/p>\n<p><em>Patrick shares his passion for Salesforce Engineering.<\/em><\/p>\n<p><strong>At a high level, how do you solve technical challenges that arise during the feature development process?<\/strong><\/p>\n<p>PSP employs a collaborative approach. We start by brainstorming ideas and creating high-level designs during meetings. To gain a deeper understanding of the challenge, we assign spikes to team members who conduct thorough investigations. These spikes involve delving into the technical aspects of the feature and assessing its integration with our existing codebase.<\/p>\n<p>Timeboxing is an essential aspect of our spikes, ensuring that spikes are completed within a set timeframe. This helps us maintain momentum and keep the development process on track.<\/p>\n<p>Once the spike is completed, we reconvene as a team to discuss the findings and gather feedback on the proposed designs or wireframes. Based on this feedback, we create work items and begin implementing the feature. However, if the challenge is straightforward, we can proceed directly without the need for extensive investigation.<\/p>\n<p><strong>What is the process for creating a new feature?<\/strong><\/p>\n<p>PSP follows a structured process for creating new features. First, we meet as a product organization to discuss high-priority features and understand customer needs \u2014 aligning our work with the company\u2019s overall goals and objectives.<\/p>\n<p>During that meeting, PSP also discusses enhancing previous features. In other words, some features move to the next release and we continue to make improvements on them over time.<\/p>\n<p>Once we have identified the features for a new release, we estimate the effort required for each feature using story points, which factors in team size and velocity to estimate the time needed to complete work items and the amount of work we can fit into the release. We then announce that to the organization and begin building the features.<\/p>\n<p><em>Patrick discusses how his team creates cutting-edge features.<\/em><\/p>\n<p><strong>What\u2019s a specific technical challenge that your team faced and how did you overcome it?<\/strong><\/p>\n<p>We monitor various aspects such as function calls, public APIs, and critical endpoints. Based on performance metrics and other factors, we create alerts according to our organizational requirements. Alerts serve as indicators of potential issues or symptoms, such as high latency, and help us prioritize and investigate high-priority issues. For example, if the average latency for our API is expected to be 5 milliseconds, we would receive an alert in Slack if it exceeds 10 milliseconds.<\/p>\n<p>Unfortunately, code evolution and changes in customer API usage patterns can impact the effectiveness of our alerts. Therefore, we continuously collaborate with other teams to fine-tune the alerts and address any noise or false positives, which ensures we receive accurate data on our backend services.<\/p>\n<p>When facing performance issues like increases in high latency, the PSP team hunts down the source of these increases by collaborating with different teams and investigating backend services. This involves identifying any code changes, tracking memory leaks, crashes, and other factors. Each issue is unique, requiring a thorough investigation.<\/p>\n<p><strong>How do you approach prioritizing issues and troubleshooting after a feature releases?<\/strong><\/p>\n<p>The PSP team prioritizes authorization-related problems as they have a significant impact on user capabilities and content functionality. Authorization refers to the permissions code that determines what users and groups can do with Tableau content.<\/p>\n<p><em>Image depicting how capabilities are evaluated through multiple levels of content.<\/em><\/p>\n<p>To address these issues, the team remediates quickly and has a <a href=\"https:\/\/engineering.salesforce.com\/how-not-why-an-alternative-to-the-five-whys-for-post-mortems-4518098cca17\/\">root cause analysis<\/a> (RCA) process in place. The RCA process allows us to identify the underlying causes of incidents and improve our code to prevent similar issues in the future. Through internal monitoring and being on call, we can swiftly track down issues in production, often catching them in pre-production environments. PSP follows an on-call rotation, triages issues, and collaboratively resolves them. If needed, we reach out to other teams for support, making issue resolution a team effort.<\/p>\n<p><em>Patrick explains what it\u2019s like to work for Salesforce Engineering.<\/em><\/p>\n<p><strong>Can you share a complex challenge that required cross-team collaboration and how you worked together to solve it?<\/strong><\/p>\n<p>Recently, our internal API \u2014 which is used by the search team within Tableau \u2014 experienced high latency. To address this issue, we worked closely with the search team to identify the specific API causing the latency. PSP utilized tools like <a href=\"https:\/\/grafana.com\/\">Grafana<\/a> and <a href=\"https:\/\/www.splunk.com\/\">Splunk<\/a> to track down the various API calls and pinpointed the problem to high memory usage, resulting in timeouts in our backend.<\/p>\n<p>Once PSP identified the source of the issue, the search team deployed a fix for the problem, which resolved the high latency they were experiencing. This improvement meant that customers no longer had to deal with slow loading times or extended spinners when using the search bar.<\/p>\n<p>Together, all teams that were involved with the incident attended a RCA meeting. This meeting was very helpful for tracking down the root cause, which is invaluable for helping our team improve our features and operational skills. During the meeting, we analyzed time to fix, time to detect, and other metrics. We also utilized the <a href=\"https:\/\/www.mindtools.com\/a3mi00v\/5-whys\">Five Whys<\/a> process to reach a root cause. Ultimately, by working together, we were able to identify and resolve the issue efficiently, ensuring a better experience for our customers.<\/p>\n<div class=\"wp-block-group is-layout-constrained wp-container-2 wp-block-group-is-layout-constrained\">\n<p><strong>Learn more<\/strong><\/p>\n<p>Want more Tableau stories? Check out this <a href=\"https:\/\/engineering.salesforce.com\/what-is-the-secret-behind-increasing-salesforces-developer-velocity\/\">blog<\/a> to discover how Tableau\u2019s Developer Productivity &amp; Experiences team increases developer velocity and optimizes developers\u2019 workflows from A to Z.<\/p>\n<p>Stay connected \u2014 join our <a href=\"https:\/\/careers.mail.salesforce.com\/w2?cid=7017y00000CRDS7AAP\">Talent Community<\/a>!<\/p>\n<p><a href=\"https:\/\/www.salesforce.com\/company\/careers\/teams\/tech-and-product\/?d=cta-tms-tp-2\">Check out our Technology and Product teams<\/a> to learn how you can get involved.<\/p>\n<\/div>\n<p>The post <a href=\"https:\/\/engineering.salesforce.com\/revealing-tableaus-process-for-creating-new-features-and-functionality\/\">Overcoming Complex Obstacles: Revealing Tableau\u2019s Process for Creating New Features and Functionality<\/a> appeared first on <a href=\"https:\/\/engineering.salesforce.com\/\">Salesforce Engineering Blog<\/a>.<\/p>\n<p><a href=\"https:\/\/engineering.salesforce.com\/revealing-tableaus-process-for-creating-new-features-and-functionality\/\" target=\"_blank\" class=\"feedzy-rss-link-icon\" rel=\"noopener\">Read More<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>In our \u201cEngineering Energizers\u201d Q&amp;A series, we examine the professional life experiences that have shaped Salesforce Engineering leaders. Meet Patrick Green, a Lead Member of the Technical Staff for Salesforce Engineering. Patrick supports the Project Sharing and Permissions (PSP) team at Tableau. Feature development plays a crucial role in their work, ensuring the smooth functioning&hellip; <a class=\"more-link\" href=\"https:\/\/fde.cat\/index.php\/2024\/02\/06\/overcoming-complex-obstacles-revealing-tableaus-process-for-creating-new-features-and-functionality\/\">Continue reading <span class=\"screen-reader-text\">Overcoming Complex Obstacles: Revealing Tableau\u2019s Process for Creating New Features and Functionality<\/span><\/a><\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","footnotes":""},"categories":[7],"tags":[],"class_list":["post-822","post","type-post","status-publish","format-standard","hentry","category-technology","entry"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":859,"url":"https:\/\/fde.cat\/index.php\/2024\/04\/23\/einstein-copilot-for-tableau-building-the-next-generation-of-ai-driven-analytics\/","url_meta":{"origin":822,"position":0},"title":"Einstein Copilot for Tableau: Building the Next Generation of AI-Driven Analytics","date":"April 23, 2024","format":false,"excerpt":"In our \u201cEngineering Energizers\u201d Q&A series, we explore the extraordinary journeys of engineering leaders who have achieved success in their specific domains. Today, we meet John He, Vice President of Software Engineering, who leads the development of Einstein Copilot for Tableau \u2014 an innovative tool that redefines how users interact\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":854,"url":"https:\/\/fde.cat\/index.php\/2024\/04\/12\/innovating-tableau-pulse-hurdling-ai-integration-and-scalability-obstacles-for-next-gen-customer-insights\/","url_meta":{"origin":822,"position":1},"title":"Innovating Tableau Pulse: Hurdling AI Integration and Scalability Obstacles for Next-Gen Customer Insights","date":"April 12, 2024","format":false,"excerpt":"In our \u201cEngineering Energizers\u201d Q&A series, we examine the inspiring paths of engineering leaders who have made remarkable strides in their respective fields. Today, we meet Harini Nallan Chakrawarthy, Vice President of Software Engineering, who leads the development of Tableau Pulse. This new Salesforce feature that uses generative AI to\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":884,"url":"https:\/\/fde.cat\/index.php\/2024\/06\/21\/how-einstein-copilot-sharpens-large-language-model-outputs-and-redefines-ai-data-testing\/","url_meta":{"origin":822,"position":2},"title":"How Einstein Copilot Sharpens Large Language Model Outputs and Redefines AI Data Testing","date":"June 21, 2024","format":false,"excerpt":"In our \u201cEngineering Energizers\u201d Q&A series, we explore the paths of engineering leaders who have attained significant accomplishments in their respective fields. Today, we spotlight Armita Peymandoust, Senior Vice President of Software Engineering at Salesforce, who spearheads the development of Einstein Copilot, a conversational AI assistant for CRM that integrates\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":712,"url":"https:\/\/fde.cat\/index.php\/2023\/05\/09\/automation-engineering-secrets-revealed-slashing-customer-processing-time-from-hours-to-seconds\/","url_meta":{"origin":822,"position":3},"title":"Automation Engineering Secrets Revealed: Slashing Customer Processing Time from Hours to Seconds","date":"May 9, 2023","format":false,"excerpt":"In our \u201cEngineering Energizers\u201d Q&A series, we examine the professional life experiences that have shaped Salesforce Engineering leaders. In this special edition, we meet Pratima Shukla, a software engineering manager based in Bangalore, India. In her role, Pratima leads Salesforce India\u2019s Industries Cloud Public Sector Solution (PSS) team, where she\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":692,"url":"https:\/\/fde.cat\/index.php\/2023\/03\/22\/how-is-indias-brilliant-big-data-processing-team-engineering-salesforce-data-cloud\/","url_meta":{"origin":822,"position":4},"title":"How is India\u2019s Brilliant Big Data Processing Team Engineering Salesforce Data Cloud?","date":"March 22, 2023","format":false,"excerpt":"In our \u201cEngineering Energizers\u201d Q&A series, we examine the life experiences and career paths that have shaped Salesforce engineering leaders. Meet Archana Kumari, one of Salesforce\u2019s first India-based woman engineering leaders. In her role, Archana leads Salesforce India\u2019s Data Cloud big data processing compute layer team \u2014 charged with providing\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":881,"url":"https:\/\/fde.cat\/index.php\/2024\/06\/14\/25-productivity-tools-that-power-salesforce-engineering-teams\/","url_meta":{"origin":822,"position":5},"title":"25 Productivity Tools that Power Salesforce Engineering Teams","date":"June 14, 2024","format":false,"excerpt":"In this special edition of \u201cEngineering Energizers,\u201d we\u2019re celebrating Salesforce\u2019s 25th anniversary by showcasing 25 key productivity tools favored by leading engineers at Salesforce across India, the U.S., Israel, and Argentina. Explore the essential tools these experts rely on to enhance their productivity, tackle complex problems, and elevate innovation. 1.\u2026","rel":"","context":"In &quot;Technology&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/posts\/822","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/comments?post=822"}],"version-history":[{"count":0,"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/posts\/822\/revisions"}],"wp:attachment":[{"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/media?parent=822"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/categories?post=822"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fde.cat\/index.php\/wp-json\/wp\/v2\/tags?post=822"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}