{"id":16989,"date":"2026-04-25T14:40:37","date_gmt":"2026-04-25T14:40:37","guid":{"rendered":"https:\/\/dmsretail.com\/RetailNews\/product-sprints-for-developer-oriented-portals-and-content\/"},"modified":"2026-04-25T14:40:37","modified_gmt":"2026-04-25T14:40:37","slug":"product-sprints-for-developer-oriented-portals-and-content","status":"publish","type":"post","link":"https:\/\/dmsretail.com\/RetailNews\/product-sprints-for-developer-oriented-portals-and-content\/","title":{"rendered":"Product sprints for developer-oriented portals and content"},"content":{"rendered":"<p> <p><a href=\"https:\/\/dmsretail.com\/online-workshops-list\/\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-496\" src=\"https:\/\/dmsretail.com\/RetailNews\/wp-content\/uploads\/2022\/05\/RETAIL-ONLINE-TRAINING-728-X-90.png\" alt=\"Retail Online Training\" width=\"729\" height=\"91\" srcset=\"https:\/\/dmsretail.com\/RetailNews\/wp-content\/uploads\/2022\/05\/RETAIL-ONLINE-TRAINING-728-X-90.png 729w, https:\/\/dmsretail.com\/RetailNews\/wp-content\/uploads\/2022\/05\/RETAIL-ONLINE-TRAINING-728-X-90-300x37.png 300w\" sizes=\"auto, (max-width: 729px) 100vw, 729px\" \/><\/a><\/p><br \/>\n<\/p>\n<div>\n<p>When building developer portals and content, decision-making speed often matters more than perfectionism. You can spend months developing a feature, go through iterations, invest resources, and still, after release, see that your target audience is not interested enough or simply is not using it enough.<\/p>\n<h2>Start with a concrete hypothesis, not a wish<\/h2>\n<p>The hardest part of a product sprint is identifying the right issue and a hypothesis you can actually test.<\/p>\n<p>\u201cWe want to improve UX documentation\u201d is not a real issue. It should be more concrete and measurable, for example:<\/p>\n<ul>\n<li>Half of users drop after the \u201cFirst API Call\u201d step in the conversion funnel: Doc Visit -&gt; OpenAPI Download\/Copy -&gt; First API Call -&gt; Sustained API Calls.<\/li>\n<li>Time-to-completion increases by 20 minutes during a specific Learning Lab or tutorial session.<\/li>\n<li>Average session duration in the Cloud IDE is under 10 seconds.<\/li>\n<\/ul>\n<p>Each of these can be measured, improved, and checked again after the release.<\/p>\n<h2>Measure what matters: Product-market fit indicators for developer portals<\/h2>\n<p>After each release, it is important to measure success and consolidate relevant business and product data into a single dashboard for key stakeholders and for the next sprint. That is where product-market fit (PMF) indicators become important.<\/p>\n<p>Possible key product-market fit indicators for developer portals:<\/p>\n<ul>\n<li>Growth in usage and registration among individual and enterprise customers, with an emphasis on <strong>Activation Rate<\/strong> and <strong>Return Usage<\/strong>.<\/li>\n<li>For education content or guides, <strong>Time-to-Completion<\/strong> should match the estimated time. If a lab is designed for 30 minutes but averages an hour, there is too much friction.<\/li>\n<li>Unique visits to documentation pages and downloads or copies of OpenAPI, SDK, and MCP documentation correlated with an increase in API requests.<\/li>\n<li>Low <strong>support tickets per 100 active developers<\/strong> (or per API request volume).<\/li>\n<li>A low 4xx error ratio after a docs update or release, alongside a strong API usage success rate.<\/li>\n<li><strong>Time to First Hello World (TTFHW)<\/strong> \u2013 first app, integration, or API call \u2013 under 10 minutes.<\/li>\n<\/ul>\n<h2>Product analytics events we track or recommend<\/h2>\n<p>Product analytics and user experience sessions can give you the information you need to make product decisions. Analytics can also enrich your user stories and feature requests with real data.<\/p>\n<p>Here are examples of Google Analytics events that help explain how users interact with developer-oriented content. We already use some of them in practice, while others are suggestions that may be useful for teams building developer portals and content.<\/p>\n<ul>\n<li><code>sign_up<\/code>, <code>login<\/code> \u2013 for portals that require login.<\/li>\n<li><code>tutorial_begin<\/code> \u2013 a tutorial was opened, and the user spent 10+ seconds on the page.<\/li>\n<li><code>tutorial_complete<\/code> \u2013 triggered by multiple signals, such as time on page, scroll depth, or executing or copying related commands.<\/li>\n<li><code>search<\/code>, <code>view_search_results<\/code> \u2013 to understand search patterns and how users interact with results.<\/li>\n<\/ul>\n<p>There is also a specific set of events that helps us understand how content is consumed by users and AI coding agents or assistants:<\/p>\n<ul>\n<li><code>copy_for_ai<\/code> \u2013 how many times and on which page users copy Markdown to continue work in AI agents.<\/li>\n<li><code>text_select<\/code> \/ <code>text_copy<\/code> \u2013 triggered when the user interacts with 500+ characters; useful as a \u201cCopy for AI\u201d proxy even on pages without an explicit button.<\/li>\n<li><code>download_openapi_doc<\/code>, <code>download_mcp_doc<\/code>, <code>download_sdk_doc<\/code> \u2013 how many times each full document is downloaded for local use or AI-agent workflows.<\/li>\n<\/ul>\n<h2>Validating decisions: analytics + user feedback + business impact<\/h2>\n<p>A feature or change is a strong fit when you can confirm the hypothesis from three angles:<\/p>\n<ul>\n<li>Product analytics<\/li>\n<li>User feedback<\/li>\n<li>Business impact<\/li>\n<\/ul>\n<div style=\"text-align: center;\">\n<p><img decoding=\"async\" class=\"lazy lazy-hidden aligncenter\" style=\"width: 494px; height: 467px;\" data-lazy-type=\"image\" src=\"https:\/\/blogs.cisco.com\/gcs\/ciscoblogs\/1\/2026\/04\/users-feedback-analytics.png\" alt=\"User feedback and analytics feeding product decisions\"\/><noscript><img decoding=\"async\" class=\"aligncenter\" style=\"width: 494px; height: 467px;\" src=\"https:\/\/blogs.cisco.com\/gcs\/ciscoblogs\/1\/2026\/04\/users-feedback-analytics.png\" alt=\"User feedback and analytics feeding product decisions\"\/><\/noscript><\/p>\n<p style=\"text-align: center;\"><em>User feedback and analytics feeding product decisions<\/em><\/p>\n<\/div>\n<p>If all three support the same decision, it is much easier to move forward. If they do not, it usually means the hypothesis was not specific enough.<\/p>\n<h2>How we apply this at DevNet<\/h2>\n<p>Here is how that loop \u2013 hypothesis, analytics, feedback, decision \u2013 works in real examples.<\/p>\n<h3>Example 1: README-first Cloud IDE<\/h3>\n<p>During regular UX and feedback sessions, users told us they wanted to see a repo\u2019s README with instructions and related content, and a clearer guide on how to use the IDE itself, while working with code samples in the Code Exchange Cloud IDE. Some of these environments are unique, such as Cisco NSO containers that users can spin up directly in the Cloud IDE.<\/p>\n<p>Analytics showed the same problem: the default \u201cGet started with VS Code\u201d window was distracting users rather than helping them.<\/p>\n<p>We ran a comparative analysis across two periods, looking at total pages analyzed, pages with sessions under 2 minutes, the percentage of low-duration pages, total views, the shortest session duration, and the number of critical pages with an average duration under 15 seconds. The data confirmed the pattern, and the solution was to open the repository README instructions by default.<\/p>\n<div style=\"text-align: center;\">\n<p><img decoding=\"async\" class=\"lazy lazy-hidden aligncenter\" style=\"width: 100%; height: auto; max-width: 900px;\" data-lazy-type=\"image\" src=\"https:\/\/blogs.cisco.com\/gcs\/ciscoblogs\/1\/2026\/04\/code-exchange-cloud-ide.png\" alt=\"Updated Cloud IDE interface with the repository README opened by default\"\/><noscript><img decoding=\"async\" class=\"aligncenter\" style=\"width: 100%; height: auto; max-width: 900px;\" src=\"https:\/\/blogs.cisco.com\/gcs\/ciscoblogs\/1\/2026\/04\/code-exchange-cloud-ide.png\" alt=\"Updated Cloud IDE interface with the repository README opened by default\"\/><\/noscript><\/p>\n<p style=\"text-align: center;\"><em>Updated Cloud IDE interface with the repository README opened by default<\/em><\/p>\n<\/div>\n<h3>Example 2: Deprecating outdated repos with a related-repos widget<\/h3>\n<p>The second issue was a large amount of outdated code sample content. Looking at the data, we saw that these repositories still attract significant traffic, so there was business value in handling them carefully. There were two options:<\/p>\n<ol>\n<li>Remove the pages entirely and let users hit a 404.<\/li>\n<li>Deprecate them, show a clear deprecation message, and display a widget with other related repos.<\/li>\n<\/ol>\n<p>We chose option 2 because it gives users a more consistent experience and points them to content that still works.<\/p>\n<div style=\"text-align: center;\">\n<p><img decoding=\"async\" class=\"lazy lazy-hidden aligncenter\" style=\"width: 100%; height: auto; max-width: 520px;\" data-lazy-type=\"image\" src=\"https:\/\/blogs.cisco.com\/gcs\/ciscoblogs\/1\/2026\/04\/related-code-repos.png\" alt=\"Widget with related repos on Code Exchange\"\/><noscript><img decoding=\"async\" class=\"aligncenter\" style=\"width: 100%; height: auto; max-width: 520px;\" src=\"https:\/\/blogs.cisco.com\/gcs\/ciscoblogs\/1\/2026\/04\/related-code-repos.png\" alt=\"Widget with related repos on Code Exchange\"\/><\/noscript><\/p>\n<p style=\"text-align: center;\"><em>Widget with related repos on Code Exchange<\/em><\/p>\n<\/div>\n<h3>Example 3: \u201cDeveloped by\u201d filters in the MCP catalog<\/h3>\n<p>A few months ago, we released the AI repo catalog on Code Exchange, where we gather MCP servers and AI agents related to Cisco technologies. In UX sessions, users told us they wanted to distinguish between MCP servers released by product teams and those released by the community:<\/p>\n<ul>\n<li><strong>Product-team MCP servers<\/strong> tend to be a more stable choice, and most of them are remote.<\/li>\n<li><strong>Community MCP servers<\/strong> are open source, so users can read the code and configure MCP tools, prompts, or resources themselves.<\/li>\n<\/ul>\n<p>Both types are valuable, but users wanted to quickly distinguish between them. To address this, we added filtering options and introduced a dedicated badge highlighting Cisco-developed servers.<\/p>\n<div style=\"text-align: center;\">\n<p><img decoding=\"async\" class=\"lazy lazy-hidden aligncenter\" style=\"width: 100%; height: auto; max-width: 454px;\" data-lazy-type=\"image\" src=\"https:\/\/blogs.cisco.com\/gcs\/ciscoblogs\/1\/2026\/04\/developed_by_filters.png\" alt=\"&quot;Developed by&quot; filters on the MCP catalog\"\/><noscript><img decoding=\"async\" class=\"aligncenter\" style=\"width: 100%; height: auto; max-width: 454px;\" src=\"https:\/\/blogs.cisco.com\/gcs\/ciscoblogs\/1\/2026\/04\/developed_by_filters.png\" alt=\"&quot;Developed by&quot; filters on the MCP catalog\"\/><\/noscript><\/p>\n<p style=\"text-align: center;\"><em>\u201cDeveloped by\u201d filters on the MCP catalog<\/em><\/p>\n<\/div>\n<h2>Join DevNet feedback sessions<\/h2>\n<p>Many of these changes started in user experience sessions. Analytics can show us where users drop off or struggle, but talking to users helps us understand why and what to improve next.<\/p>\n<p>Want to share your feedback about developer content and the Cisco DevNet platform? Write to us at <code>devnet_feedback@cisco.com<\/code>.<\/p>\n<\/p><\/div>\n<p><p><a href=\"https:\/\/dmsretail.com\/online-workshops-list\/\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-496\" src=\"https:\/\/dmsretail.com\/RetailNews\/wp-content\/uploads\/2022\/05\/RETAIL-ONLINE-TRAINING-728-X-90.png\" alt=\"Retail Online Training\" width=\"729\" height=\"91\" srcset=\"https:\/\/dmsretail.com\/RetailNews\/wp-content\/uploads\/2022\/05\/RETAIL-ONLINE-TRAINING-728-X-90.png 729w, https:\/\/dmsretail.com\/RetailNews\/wp-content\/uploads\/2022\/05\/RETAIL-ONLINE-TRAINING-728-X-90-300x37.png 300w\" sizes=\"auto, (max-width: 729px) 100vw, 729px\" \/><\/a><\/p><br \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>When building developer portals and content, decision-making speed often matters more than perfectionism. You can spend months developing a feature, go through iterations, invest resources, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":16990,"comment_status":"","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-16989","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/dmsretail.com\/RetailNews\/wp-json\/wp\/v2\/posts\/16989","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dmsretail.com\/RetailNews\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dmsretail.com\/RetailNews\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dmsretail.com\/RetailNews\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dmsretail.com\/RetailNews\/wp-json\/wp\/v2\/comments?post=16989"}],"version-history":[{"count":0,"href":"https:\/\/dmsretail.com\/RetailNews\/wp-json\/wp\/v2\/posts\/16989\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dmsretail.com\/RetailNews\/wp-json\/wp\/v2\/media\/16990"}],"wp:attachment":[{"href":"https:\/\/dmsretail.com\/RetailNews\/wp-json\/wp\/v2\/media?parent=16989"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dmsretail.com\/RetailNews\/wp-json\/wp\/v2\/categories?post=16989"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dmsretail.com\/RetailNews\/wp-json\/wp\/v2\/tags?post=16989"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}