{"id":250,"date":"2021-06-03T13:34:47","date_gmt":"2021-06-03T17:34:47","guid":{"rendered":"https:\/\/niftypm.com\/blog\/?p=250"},"modified":"2026-01-19T11:10:59","modified_gmt":"2026-01-19T16:10:59","slug":"integrations-with-third-parties","status":"publish","type":"post","link":"https:\/\/niftypm.com\/blog\/integrations-with-third-parties\/","title":{"rendered":"How to Flawlessly Ship Integrations with Third Parties"},"content":{"rendered":"<p id=\"7f2f\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">As a product manager, one way to increase functionality in your\u00a0<a href=\"https:\/\/niftypm.com\/blog\/the-ultimate-guide-to-saas-product-development-process\/\">product development process<\/a>\u00a0(and also attract new users) is to integrate your product with another product. For example, Google Calendar has an integration with Zoom, where you can instantly set up a Zoom video meeting through Google Calendar.<\/p>\n<p id=\"00d1\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">Google Calendar benefits from the Zoom integration because it easily enables its users to set up video calls within a seamless workflow. Zoom benefits from the Google Calendar integration because its users can spin up video meetings much more quickly.<\/p>\n<p id=\"81fd\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">Integrations are beneficial to both products. Both products gain new capabilities and new users by integrating with one another. In other words, integrations bring the best of both products to end users, and provide them with new superpowers that they didn\u2019t have before.<\/p>\n<p id=\"d6f7\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">As another example, Nifty and Zoom have an\u00a0<a class=\"ck id\" href=\"https:\/\/help.niftypm.com\/en\/articles\/3845750-integrating-zoom-meetings-inside-nifty?_ga=2.269139127.773909668.1586793556-524473663.1550456205\" rel=\"noopener\">integration with one another<\/a>\u00a0as well. Nifty, a project management and\u00a0<a class=\"ck id\" href=\"https:\/\/niftypm.com\/\" rel=\"noopener\">remote collaboration software<\/a>\u00a0benefits from this because its users can easily leverage video conferencing even without a Zoom account, which means that its users can be even more effective in collaborating with one another.<\/p>\n<p id=\"102c\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">And, Zoom benefits because it can serve Nifty\u2019s users from a coordination and project management perspective. On top of that, Zoom can also upsell Nifty users on its Pro plan for persistent video recordings.<\/p>\n<p id=\"2540\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">While integrations are incredibly powerful for unlocking new functionality within your products, they require you to work with others outside of your company. That coordination challenge can be an incredibly difficult task to overcome. No matter what, you have to work with a third party to ship an integration, and working with third parties can be challenging.<\/p>\n<p id=\"0937\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">For example, let\u2019s say that you\u2019re a product manager for Salesforce. You might work with one of the three kinds of integrations below.<\/p>\n<ul class=\"\">\n<li id=\"3d04\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic ie if ig eq\" data-selectable-paragraph=\"\"><strong class=\"hh ih\">Customers<\/strong>: for example, a Salesforce integration with its customer Rolls-Royce to enable community management. To implement such integrations effectively, many companies <a href=\"https:\/\/www.fortenext.com\/insights\/a-day-in-the-life-of-a-salesforce-implementation-consultant\" target=\"_blank\" rel=\"noopener\">hire a Salesforce consultant<\/a> to customize workflows and ensure the platform delivers maximum value<\/li>\n<li id=\"edfd\" class=\"hf hg dt hh b hi ii hk hl hm ij ho hp hq ik hs ht hu il hw hx hy im ia ib ic ie if ig eq\" data-selectable-paragraph=\"\"><strong class=\"hh ih\">Third-party developers<\/strong>: for example, enabling the developer Bluewolf to build on top of Salesforce for Bluewolf\u2019s customers<\/li>\n<li id=\"ffeb\" class=\"hf hg dt hh b hi ii hk hl hm ij ho hp hq ik hs ht hu il hw hx hy im ia ib ic ie if ig eq\" data-selectable-paragraph=\"\"><strong class=\"hh ih\">Third-party product partners<\/strong>: for example, a Salesforce integration with Slack to enable posting Salesforce updates in Slack<\/li>\n<\/ul>\n<p id=\"2cd4\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">I\u2019ve had the opportunity to work through dozens of integrations initiatives, for all three of the integration types above. While each one requires a different skill set and a different approach, they all share the same basic concepts.<\/p>\n<p id=\"38b9\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">I\u2019d love to share some best practices on ensuring that you and your integration partners successfully ship your integration on time with as little heartburn as possible, regardless of what kind of integration it is.<\/p>\n<p id=\"2bee\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">Below, I\u2019ll talk through: how to\u00a0<strong class=\"hh ih\">craft a compelling integrations charter<\/strong>, how to\u00a0<strong class=\"hh ih\">kick off the project together<\/strong>, how to\u00a0<strong class=\"hh ih\">plan for the integration<\/strong>, and how to\u00a0<strong class=\"hh ih\">execute as a team<\/strong>.<\/p>\n<p id=\"a566\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">Before I discuss each one in detail \u2014 you might be surprised to see that all of the items I mentioned are based on soft skills. You might ask, \u201cAren\u2019t integrations mostly technical? Shouldn\u2019t I be more worried about the technical challenges?\u201d<\/p>\n<p id=\"64ab\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">In my experiences, I\u2019ve found that the hardest technical challenges come from a\u00a0<strong class=\"hh ih\">lack of coordination and alignment<\/strong>. You cannot address coordination and alignment through technical skills; you can only address those through soft skills.<\/p>\n<p id=\"92ca\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">If you want to be a rockstar integrator as a product manager, you\u2019ll need to focus on the soft skills, because integrations rely on deep partnership with your implementation partner. So let\u2019s get started!<\/p>\n<h2 id=\"6cbc\" class=\"in io dt ce ip iq ir hk is it iu ho iv iw ix iy iz ja jb jc jd je jf jg jh ji eq\">Crafting the Charter<\/h2>\n<p id=\"8773\" class=\"hf hg dt hh b hi jj hk hl hm jk ho hp hq jl hs ht hu jm hw hx hy jn ia ib ic dl eq\" data-selectable-paragraph=\"\">The single biggest factor for integrations success is an aligned charter. And, the single biggest factor for integrations failure is a misaligned charter.<\/p>\n<p id=\"f157\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">Before you even begin working on the project timeline, first begin with the<strong class=\"hh ih\">\u00a0objectives of the integration<\/strong>. What is the intended user-facing objective?<\/p>\n<p id=\"2c2b\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">I\u2019ve seen too many integrations fail because one (or both) parties didn\u2019t clearly understand the purpose of the integration from the user\u2019s perspective.<\/p>\n<p id=\"204e\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">If the end user doesn\u2019t get any benefit from the integration, then there\u2019s no point building the integration. It doesn\u2019t matter if you believe that you\u2019ll gain market share or you\u2019ll gain more revenue. If the user has nothing to gain from it, then you\u2019re wasting everyone\u2019s time.<\/p>\n<p id=\"7e93\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">After all, the basic premise of product management is that\u00a0<strong class=\"hh ih\">you must first create value for the user before you can capture value for your business.<\/strong><\/p>\n<p id=\"574f\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">What new superpowers will you unlock by integrating these two products together? If there\u2019s nothing new, then don\u2019t do it.<\/p>\n<p id=\"d6dd\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">For example, Google Docs has a huge user base, and Apple iMessages has a huge user base. Imagine if the two of them wanted to build an integration where iMessages automatically compile into a Google Doc.<\/p>\n<p id=\"724c\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">That\u2019s not valuable to the end user. The end user has no need for such a capability. So, while both Google and Apple are huge companies, this particular integration makes no sense because it unlocks no value.<\/p>\n<p id=\"e9e8\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">So, now let\u2019s say that you and your partner have identified what benefit the end user is going to get. It\u2019s time to talk incentives: are both of you correctly incentivized to ship this integration?<\/p>\n<p id=\"027b\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">Another point of failure I regularly see is that\u00a0<strong class=\"hh ih\">one party stands to gain disproportionate value from the integration<\/strong>, and the other party doesn\u2019t gain much at all.<\/p>\n<p id=\"a732\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">Then, the party that won\u2019t gain much will keep deprioritizing the initiative, leading to failure.<\/p>\n<p id=\"cca7\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">What\u2019s the\u00a0<a class=\"ck id\" href=\"https:\/\/www.productmanagerhq.com\/2018\/07\/value-propositions-for-product-managers\/\" rel=\"noopener\">value proposition<\/a>\u00a0for your company to take on this integration? And what value proposition is your partner getting for this integration?<\/p>\n<p id=\"8d9b\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\"><strong class=\"hh ih\">It has to make sense for both of you<\/strong>, or else you won\u2019t jointly prioritize the work and ensure that the integration happens.<\/p>\n<p id=\"ff02\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">One way to help level the playing field is to set up a\u00a0<strong class=\"hh ih\">revenue-sharing clause<\/strong>\u00a0in the partnership contract. That way, the party who \u201cwins\u201d the most will share some of those winnings with the other party, so that both sides are ready to act as a single team.<\/p>\n<h2 id=\"4720\" class=\"in io dt ce ip iq ir hk is it iu ho iv iw ix iy iz ja jb jc jd je jf jg jh ji eq\">Kick Off<\/h2>\n<p id=\"5b77\" class=\"hf hg dt hh b hi jj hk hl hm jk ho hp hq jl hs ht hu jm hw hx hy jn ia ib ic dl eq\" data-selectable-paragraph=\"\">Okay, so you\u2019re both going to create massive value for the end user, and you\u2019ll both stand to gain from completing the integration. Now, it\u2019s time to get down to the actual mechanisms of the integration work!<\/p>\n<p id=\"b8e4\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">Set up a kickoff meeting between you and your partner, and include engineering leaders from both sides. You want as much information to flow between all parties as possible.<\/p>\n<p id=\"6adf\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">Make sure you answer these key questions in the kickoff:<\/p>\n<ul class=\"\">\n<li id=\"1b98\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic ie if ig eq\" data-selectable-paragraph=\"\">What is the value of this integration to the end user?<\/li>\n<li id=\"1847\" class=\"hf hg dt hh b hi ii hk hl hm ij ho hp hq ik hs ht hu il hw hx hy im ia ib ic ie if ig eq\" data-selectable-paragraph=\"\">What is the value of this integration to both companies?<\/li>\n<li id=\"2771\" class=\"hf hg dt hh b hi ii hk hl hm ij ho hp hq ik hs ht hu il hw hx hy im ia ib ic ie if ig eq\" data-selectable-paragraph=\"\">Which system is in charge of what functionality?<\/li>\n<li id=\"5e37\" class=\"hf hg dt hh b hi ii hk hl hm ij ho hp hq ik hs ht hu il hw hx hy im ia ib ic ie if ig eq\" data-selectable-paragraph=\"\">Which team is responsible for what work?<\/li>\n<li id=\"d2c8\" class=\"hf hg dt hh b hi ii hk hl hm ij ho hp hq ik hs ht hu il hw hx hy im ia ib ic ie if ig eq\" data-selectable-paragraph=\"\">Who gets to make which kinds of decisions?<\/li>\n<li id=\"46e0\" class=\"hf hg dt hh b hi ii hk hl hm ij ho hp hq ik hs ht hu il hw hx hy im ia ib ic ie if ig eq\" data-selectable-paragraph=\"\">What timeline are we working with?<\/li>\n<li id=\"5d66\" class=\"hf hg dt hh b hi ii hk hl hm ij ho hp hq ik hs ht hu il hw hx hy im ia ib ic ie if ig eq\" data-selectable-paragraph=\"\">What\u2019s the process for escalating, if either party is not meeting expectations?<\/li>\n<\/ul>\n<p id=\"f90c\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">The more alignment you can get upfront, the easier the work is going to be later. Trust me, I\u2019ve been burned by these questions repeatedly, and having an upfront kick off means fewer confrontations, less friction, and faster delivery.<\/p>\n<p id=\"e0b6\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">Be explicit with these decisions, record them somewhere, and distribute your records immediately after the kickoff.<\/p>\n<h2 id=\"4ceb\" class=\"in io dt ce ip iq ir hk is it iu ho iv iw ix iy iz ja jb jc jd je jf jg jh ji eq\">Upfront Planning<\/h2>\n<p id=\"df98\" class=\"hf hg dt hh b hi jj hk hl hm jk ho hp hq jl hs ht hu jm hw hx hy jn ia ib ic dl eq\" data-selectable-paragraph=\"\">Great, so now you have a compelling integration charter in place, and you know who\u2019s responsible for what.<\/p>\n<p id=\"e6b5\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">Is it time to roll up our sleeves and dive in yet? No, not yet. We need to plan ahead.<\/p>\n<p id=\"83c1\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">With integrations, I\u2019ve found that the devil really is in the details. A minor missed detail upfront can literally cost months of development effort to fix.<\/p>\n<p id=\"9392\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">Here\u2019s a real life example: I was building an integration alongside one of my customers, so that I could integrate my product into their internal systems.<\/p>\n<p id=\"3877\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">For more than two months, we had issues where neither of us could successfully call each other\u2019s APIs, and we were both mystified. No matter how many emails we sent back and forth, we couldn\u2019t get to an answer. We were both sure that our respective APIs were being called with the right set of parameters and with the right logic.<\/p>\n<p id=\"b171\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">That is\u2026 until one particularly astute engineer noticed that our product had case-sensitive parameters, whereas our customer\u2019s system was case-insensitive.<\/p>\n<p id=\"7de3\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">In other words, something like \u201cuserName\u201d had to be spelled exactly that way for our system to work, whereas our customer might try to call our functions with \u201cUserName\u201d or \u201cusername\u201d and those calls would fail.<\/p>\n<p id=\"bce3\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">It took so long for us to find the problem, and all of that could have been avoided if we had spent time planning upfront and digging into the details!<\/p>\n<p id=\"6e96\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">So please, spend disproportionate time upfront on the technical details. Even if you\u2019re not a technical product manager yourself, lean on your engineering team to surface as many assumptions and questions as possible.<\/p>\n<p id=\"bab7\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">Here\u2019s what I\u2019ve found to be useful.<\/p>\n<p id=\"33c3\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">First, have your team draw out the proposed architecture diagram and the sequence of network calls (which module is talking to which module, and when?).<\/p>\n<p id=\"c4f1\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">Then, walk through it with your integration partner.<\/p>\n<p id=\"48b1\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">You\u2019ll frequently find that some modules need to be combined together, and others need to be separated out. Or, you\u2019ll find that some of the calls are sequenced in the wrong way. It\u2019s so crucial to ensure that you\u2019ve got the right foundation in place!<\/p>\n<p id=\"8f41\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">Note that I\u2019ve made the assumption that both teams have already agreed to the scope and the user stories that they\u2019ll jointly be tackling, as part of the charter.<\/p>\n<p id=\"7d7a\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">If you haven\u2019t done that yet, then do that first. After all, your architecture must be based on the scope (and the shape) of the functionality that you\u2019re providing to your joint end users.<\/p>\n<p id=\"8078\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">Once you know which system is talking to which system, then it\u2019s time to get into the weeds.<\/p>\n<p id=\"1ae5\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">You don\u2019t want to write a single line of code until you\u2019ve gotten all of these questions answered:<\/p>\n<ul class=\"\">\n<li id=\"0a51\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic ie if ig eq\" data-selectable-paragraph=\"\">For each call, what does the request schema look like? What does the response schema look like?<\/li>\n<li id=\"455d\" class=\"hf hg dt hh b hi ii hk hl hm ij ho hp hq ik hs ht hu il hw hx hy im ia ib ic ie if ig eq\" data-selectable-paragraph=\"\">What are the parameters, and which ones are optional vs. required? What is the data type of each parameter (e.g. array, object, string, int)? Are there enumerations or is it free text? Is it valid for multiples of the same parameter to be sent or received?<\/li>\n<li id=\"f641\" class=\"hf hg dt hh b hi ii hk hl hm ij ho hp hq ik hs ht hu il hw hx hy im ia ib ic ie if ig eq\" data-selectable-paragraph=\"\">What is the naming convention for functions and data elements? Which systems are case-sensitive? Will you be using camel case or sentence case?<\/li>\n<li id=\"c1ef\" class=\"hf hg dt hh b hi ii hk hl hm ij ho hp hq ik hs ht hu il hw hx hy im ia ib ic ie if ig eq\" data-selectable-paragraph=\"\">What does the data structure look like within the databases on either side?<\/li>\n<li id=\"9036\" class=\"hf hg dt hh b hi ii hk hl hm ij ho hp hq ik hs ht hu il hw hx hy im ia ib ic ie if ig eq\" data-selectable-paragraph=\"\">Are the calls synchronous or asynchronous? What is the retry behavior, if any? What is the logging behavior, if any?<\/li>\n<li id=\"9e10\" class=\"hf hg dt hh b hi ii hk hl hm ij ho hp hq ik hs ht hu il hw hx hy im ia ib ic ie if ig eq\" data-selectable-paragraph=\"\">Which environments will each party be using? Does everyone have all of the credentials they need to talk to each environment?<\/li>\n<li id=\"6310\" class=\"hf hg dt hh b hi ii hk hl hm ij ho hp hq ik hs ht hu il hw hx hy im ia ib ic ie if ig eq\" data-selectable-paragraph=\"\">Who\u2019s in charge of error monitoring and logging?<\/li>\n<li id=\"8fe3\" class=\"hf hg dt hh b hi ii hk hl hm ij ho hp hq ik hs ht hu il hw hx hy im ia ib ic ie if ig eq\" data-selectable-paragraph=\"\">Who\u2019s in charge of production support once the integration goes live?<\/li>\n<\/ul>\n<p id=\"c631\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">The general principle: during the planning phase,\u00a0<strong class=\"hh ih\">get into the details\u00a0<\/strong>and<strong class=\"hh ih\">\u00a0document your decisions for posterity<\/strong>.<\/p>\n<p id=\"87ad\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">That way, if your integration succeeds (and hopefully it will!), you and your partner can build even more integrations together, and your past work will already be cleanly documented for both of you to work off of.<\/p>\n<h2 id=\"2228\" class=\"in io dt ce ip iq ir hk is it iu ho iv iw ix iy iz ja jb jc jd je jf jg jh ji eq\">Team Execution<\/h2>\n<p id=\"0817\" class=\"hf hg dt hh b hi jj hk hl hm jk ho hp hq jl hs ht hu jm hw hx hy jn ia ib ic dl eq\" data-selectable-paragraph=\"\">You\u2019ve fleshed out every detail. Now it\u2019s time to ship as a single unified team.<\/p>\n<p id=\"1461\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">I\u2019ve found that when my integration partner and I treat one another as true teammates, that\u2019s when we ship the highest-quality code at the fastest velocity.<\/p>\n<p id=\"a4ea\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">I\u2019ve also found that if my team doesn\u2019t trust my partner\u2019s team, then the entire initiative will quickly fall apart. While it\u2019s important that we hold one another accountable, we also have to trust that each team will get their work done to the best of their ability.<\/p>\n<p id=\"9d07\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">While many product managers are great at leading their own teams, they may struggle to work with external teams. The good thing is that with a bit of mindset tweaking, it\u2019s entirely possible to become effective at leading external teams too.<\/p>\n<p id=\"eaee\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">First, you and your integration partner must commit to tracking your progress together. Give one another full transparency and visibility into your\u00a0<a class=\"ck id\" href=\"https:\/\/www.productmanagerhq.com\/2018\/04\/maintaining-healthy-backlogs\/\" rel=\"noopener\">backlogs<\/a>, velocities, sprint plans, and resource allocations.<\/p>\n<p id=\"40dc\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">By doing so, it\u2019s much easier for you to plan around one another\u2019s constraints. Be proactive and share when you\u2019ll get blocked, and proactively discuss how you can help unblock another other.<\/p>\n<p id=\"00cd\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">One of the most helpful actions either side can take is to provide\u00a0<strong class=\"hh ih\">mock responses<\/strong>\u00a0for one another. A mock response is simply a \u201cfake\u201d set of data that one party provides to the other, so that the other party can implement without needing to wait for the actual API to be built.<\/p>\n<p id=\"f3f0\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">For example, say that I\u2019m on the hook to build a data verification function, and my implementation partner is going to send me a bunch of data to verify. But, let\u2019s say that I haven\u2019t built my verification function yet.<\/p>\n<p id=\"82ce\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">That\u2019s okay. I can let them know that I\u2019ll prepare a set of mock responses, based on a predetermined set of requests that they send me. For example, if they send me Data Set XYZ, I\u2019ll always respond back with a successful response. And, if they send me Data Set ABC, then I\u2019ll send them back a response letting them know that the data cannot be verified.<\/p>\n<p id=\"f1ff\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">While I haven\u2019t written my function yet, they can now move forward without needing to rely on me. They can figure out how to continue to building the happy path (where the response is successful) as well as how to deal with graceful degradation (where the response is a failure). They are no longer blocked by my team\u2019s implementation of the actual full-blown functionality.<\/p>\n<p id=\"331d\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">Of course, a mock response eventually needs to be replaced with the real function, but that\u2019s a cheap and fast way to keep one another moving quickly.<\/p>\n<p id=\"c962\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">And, while we\u2019re on the topic of execution, remember that you still have to test. Allocate sufficient time in your project plan to jointly run through QA, including performance tests,\u00a0<a class=\"ck id\" href=\"https:\/\/www.productmanagerhq.com\/2018\/05\/testing-best-practices\/\" rel=\"noopener\">unit tests<\/a>, integrations tests, and <a href=\"https:\/\/www.opkey.com\/blog\/a-comprehensive-guide-to-performance-testing\">user acceptance testing<\/a>.<\/p>\n<p id=\"2ac2\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">The second point to keep in mind is that you\u2019re growing and leading both of your teams together. You\u2019re not just executing and tracking velocity; you\u2019re looking to strengthen one another.<\/p>\n<p id=\"1a2c\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">So, commit to performing the full set of sprint rituals together too. Groom your sprints together, prioritize your sprints together, kick off your sprints together, have daily standups together, test your tickets together, and\u00a0<a class=\"ck id\" href=\"https:\/\/www.productmanagerhq.com\/2018\/09\/retrospectives\/\" rel=\"noopener\">hold retrospectives<\/a>\u00a0together.<\/p>\n<p id=\"c33c\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">The more you both commit to acting as a single team, the more your teammates will actually act as a single team. That means fewer silos, more trust, more alignment, higher velocity, and better quality.<\/p>\n<p id=\"7c3b\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">That leads me to my third point. You\u2019re not just responsible for the operational mechanisms of both teams. You\u2019re also responsible for the joint culture that you\u2019re building together, and that means taking care of real human beings.<\/p>\n<p id=\"202e\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">Celebrate together! When your joint teams reach particular\u00a0<a class=\"ck id\" href=\"https:\/\/niftypm.com\/milestones\" rel=\"noopener\">project milestones<\/a>, go out for a meal or send a small gift to everyone on both teams.<\/p>\n<p id=\"ef8c\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">Remember that integrations can sometimes feel like a slog. I\u2019ve had integration initiatives run for more than 10 months, and that\u2019s a long time to be working with an external party on a day-to-day basis.<\/p>\n<p id=\"e5bb\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">That\u2019s why it\u2019s so crucial to keep everyone\u2019s spirits high, and to ensure that you\u2019re all working together as a real team.<\/p>\n<p id=\"1e7a\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">At the end of your integrations journey, you will not only have an amazing integrated product, but also have made lifelong friends across companies. Savor the struggle, because that\u2019s what will enable you to genuinely bond with one another.<\/p>\n<h3 id=\"4b90\" class=\"in io dt ce ip iq ir hk is it iu ho iv iw ix iy iz ja jb jc jd je jf jg jh ji eq\">Final Thoughts<\/h3>\n<p id=\"f344\" class=\"hf hg dt hh b hi jj hk hl hm jk ho hp hq jl hs ht hu jm hw hx hy jn ia ib ic dl eq\" data-selectable-paragraph=\"\">Integrations are so powerful because they enable you to specialize and focus on your product\u2019s core capabilities, while relying on others to further extend your product functionality and your audience.<\/p>\n<p id=\"3caf\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">But, they\u2019re also really hard to turn into reality. Integrations require intense levels of coordination and trust, and you need to be well-organized to actually bring your integration to life.<\/p>\n<p id=\"790a\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">By ensuring that you have a clear game plan for driving clarity, alignment, and coordination, you\u2019ll dramatically increase the chances for success for both you and your integration partner.<\/p>\n<p id=\"c4b9\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">And, by fully leveraging your soft skills, you can make even the toughest, most nuanced technical integrations much easier to bring to life!<\/p>\n<p id=\"bfeb\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\">\u2014<\/p>\n<p id=\"3e7e\" class=\"hf hg dt hh b hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw hx hy hz ia ib ic dl eq\" data-selectable-paragraph=\"\"><a class=\"ck id\" href=\"https:\/\/www.linkedin.com\/in\/clement-kao\/\" rel=\"noopener\"><em class=\"jo\">Clement Kao<\/em><\/a><em class=\"jo\">\u00a0is a Co-Founder at\u00a0<\/em><a class=\"ck id\" href=\"https:\/\/www.productmanagerhq.com\/\" rel=\"noopener\"><em class=\"jo\">Product Manager HQ<\/em><\/a><em class=\"jo\">, a community dedicated to providing career advice for aspiring product managers and experienced product managers. He\u2019s written 60+ best practice articles and has been a featured speaker and writer for more than 30 different organizations.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>As a product manager, one way to increase functionality in [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":253,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[62,31,63],"class_list":["post-250","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-careers","tag-product-management","tag-skills"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/niftypm.com\/blog\/wp-json\/wp\/v2\/posts\/250","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/niftypm.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/niftypm.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/niftypm.com\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/niftypm.com\/blog\/wp-json\/wp\/v2\/comments?post=250"}],"version-history":[{"count":1,"href":"https:\/\/niftypm.com\/blog\/wp-json\/wp\/v2\/posts\/250\/revisions"}],"predecessor-version":[{"id":16652,"href":"https:\/\/niftypm.com\/blog\/wp-json\/wp\/v2\/posts\/250\/revisions\/16652"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/niftypm.com\/blog\/wp-json\/wp\/v2\/media\/253"}],"wp:attachment":[{"href":"https:\/\/niftypm.com\/blog\/wp-json\/wp\/v2\/media?parent=250"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/niftypm.com\/blog\/wp-json\/wp\/v2\/categories?post=250"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/niftypm.com\/blog\/wp-json\/wp\/v2\/tags?post=250"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}