<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Thao Tran</title>
	<atom:link href="https://thaotran.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://thaotran.com</link>
	<description></description>
	<lastBuildDate>Wed, 02 Apr 2025 07:12:25 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://thaotran.com/wp-content/uploads/2018/09/favicon.png</url>
	<title>Thao Tran</title>
	<link>https://thaotran.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>How to Export Tickets From a JIRA Kanban Board</title>
		<link>https://thaotran.com/export-jira-board/</link>
		
		<dc:creator><![CDATA[Thao Tran]]></dc:creator>
		<pubDate>Wed, 26 Mar 2025 22:02:08 +0000</pubDate>
				<category><![CDATA[Product Management]]></category>
		<guid isPermaLink="false">https://thaotran.com/?p=575</guid>

					<description><![CDATA[If you've tried exporting tickets from a JIRA Kanban board, you know it isn't straightforward. I finally figured it out after manually copy and pasting backlog tickets too many times. It's super easy. Step 1: Create a Custom Filter Step 2: Use JQL to Filter for Your Backlog In the search box, enter criteria matching [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>If you've tried exporting tickets from a JIRA Kanban board, you know it isn't straightforward. I <em>finally</em> figured it out after manually copy and pasting backlog tickets too many times.</p>



<p>It's super easy.</p>



<h2 class="wp-block-heading">Step 1: Create a Custom Filter</h2>



<ul class="wp-block-list">
<li>Go to JIRA's <strong>Filters</strong> tab and select <strong>View all filters</strong>.</li>
</ul>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="334" height="355" src="https://thaotran.com/wp-content/uploads/2025/03/view-all-filters-jira.png" alt="View All Filters" class="wp-image-580" srcset="https://thaotran.com/wp-content/uploads/2025/03/view-all-filters-jira.png 334w, https://thaotran.com/wp-content/uploads/2025/03/view-all-filters-jira-282x300.png 282w" sizes="(max-width: 334px) 100vw, 334px" /></figure>



<ul class="wp-block-list">
<li>Click <strong>Create filter</strong>.</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="131" height="61" src="https://thaotran.com/wp-content/uploads/2025/03/create-filter-jira.png" alt="create filter" class="wp-image-581"/></figure>



<ul class="wp-block-list">
<li>Make sure <strong>JQL</strong> is selected.</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="793" height="119" src="https://thaotran.com/wp-content/uploads/2025/03/select-jql.png" alt="select jql" class="wp-image-582" srcset="https://thaotran.com/wp-content/uploads/2025/03/select-jql.png 793w, https://thaotran.com/wp-content/uploads/2025/03/select-jql-300x45.png 300w, https://thaotran.com/wp-content/uploads/2025/03/select-jql-768x115.png 768w" sizes="(max-width: 793px) 100vw, 793px" /></figure>



<p></p>



<h2 class="wp-block-heading">Step 2: Use JQL to Filter for Your Backlog</h2>



<p>In the search box, enter criteria matching your <a href="https://support.atlassian.com/jira-software-cloud/docs/what-is-an-issue/#Project-keys" target="_blank" rel="noreferrer noopener">project's key</a> and the statuses that represent your backlog column:</p>



<pre class="wp-block-prismatic-blocks"><code class="language-sql">project = YOURPROJECTKEY AND status in (&quot;Backlog&quot;, &quot;Open&quot;, &quot;To Do&quot;)</code></pre>



<p><em>Replace <code>YOURPROJECTKEY</code> and statuses with your actual project information.</em></p>



<p>To find your project key, look at the top left of each ticket. You should see something like WORDS-123. "WORDS" would be the project key in this example.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="317" height="205" src="https://thaotran.com/wp-content/uploads/2025/03/JIRA-project-key.png" alt="JIRA project key" class="wp-image-603" srcset="https://thaotran.com/wp-content/uploads/2025/03/JIRA-project-key.png 317w, https://thaotran.com/wp-content/uploads/2025/03/JIRA-project-key-300x194.png 300w" sizes="auto, (max-width: 317px) 100vw, 317px" /></figure>



<h2 class="wp-block-heading">Step 3: Export Your Results</h2>



<p>Once your tickets appear, click the <strong>Export</strong> button in the top-right corner and select your preferred format (CSV, Excel, etc.).</p>



<p>That's it—you're now ready to organize and prioritize your backlog however and wherever you want!</p>



<p><em><strong>Tip:</strong> Save the filter so you can return for easy exports in the future.</em></p>



<h2 class="wp-block-heading">What's Next?</h2>



<p>At this point, I'd usually transfer my list of tickets into a Google Sheet and organize them based on my favorite prioritization model at the time. But lately, I've been importing the CSV directly into a prioritization tool I'm working on. I'll share the link for that when it's ready...</p>



<p>Hopefully, Atlassian makes exporting JIRA board tickets more straightforward one day—but until then, JQL it is!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Website QA Checklist</title>
		<link>https://thaotran.com/website-qa-checklist/</link>
		
		<dc:creator><![CDATA[Thao Tran]]></dc:creator>
		<pubDate>Wed, 19 Jul 2023 17:09:57 +0000</pubDate>
				<category><![CDATA[Product Management]]></category>
		<guid isPermaLink="false">https://thaotran.com/?p=385</guid>

					<description><![CDATA[My ever-evolving checklist for QAing website redesigns, new features, and bug fixes. 1. Frontend Functionality: 2. Backend Functionality: 3. Design and Compatibility: 4. Accessibility: I use the WAVE browser extension to automate this. 5. SEO: I use the Ahrefs SEO Toolbar to quickly check these. 6. Performance: I use Lighthouse in Chrome DevTools to automate [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>My ever-evolving checklist for QAing website redesigns, new features, and bug fixes.</p>



<h3 class="wp-block-heading">1. Frontend Functionality:</h3>



<ul class="wp-block-list">
<li>Test all buttons and clickable elements</li>



<li>Pay attention to hover states and CSS cursors</li>



<li>Test forms
<ul class="wp-block-list">
<li>Do they submit successfully?</li>



<li>Do they accept special characters (* ^ - ~)?</li>



<li>Is the intended data making it to its destination?</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading">2. Backend Functionality:</h3>



<ul class="wp-block-list">
<li>Test CMS authorability
<ul class="wp-block-list">
<li>Does rich text output correctly?</li>



<li>Do special characters (* ^ - ~) display correctly?</li>



<li>Do different module options work?</li>
</ul>
</li>



<li>Verify analytics and event tracking implementation
<ul class="wp-block-list">
<li>Are the necessary tracking scripts present?</li>



<li>Are the necessary events/goals being tagged and tracked properly?</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading">3. Design and Compatibility:</h3>



<ul class="wp-block-list">
<li>Check alignment and spacing of webpage elements</li>



<li>Check that all intended fonts and styles are loaded</li>



<li>Check that font headings follow the intended design/hierarchy</li>



<li>Check less obvious pages and elements including popups and modals</li>



<li>Ensure the design is consistent with mockups
<ul class="wp-block-list">
<li>on Desktop</li>



<li>on Mobile</li>



<li>on Tablet</li>
</ul>
</li>



<li>Also review...










<ul class="wp-block-list">
<li>In different screen resolutions</li>



<li>On different browsers (Chrome, Firefox, Edge, etc.)</li>
</ul>



<ul class="wp-block-list">
<li>On different operating systems (Android, Apple)</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading">4. Accessibility:</h3>



<ul class="wp-block-list">
<li>Check that the website is compatible with screen readers</li>



<li>Ensure color contrast is sufficient for users with visual impairments</li>



<li>Ensure the website is navigable by keyboard alone</li>
</ul>



<p><em>I use the <a href="https://wave.webaim.org/extension/" target="_blank" rel="noreferrer noopener">WAVE browser extension</a> to automate this.</em></p>



<h3 class="wp-block-heading">5. SEO:</h3>



<ul class="wp-block-list">
<li>Check for presence and proper use of header tags (H1, H2, H3, etc.)</li>



<li>Ensure all images have alt tags</li>
</ul>



<p><em>I use the <a href="https://ahrefs.com/seo-toolbar" target="_blank" rel="noreferrer noopener">Ahrefs SEO Toolbar</a> to quickly check these</em><em>.</em></p>



<h3 class="wp-block-heading">6. Performance:</h3>



<ul class="wp-block-list">
<li>Check the website's load time</li>



<li>Check Core Web Vitals</li>
</ul>



<p><em>I use <a href="https://developer.chrome.com/docs/lighthouse/overview/" target="_blank" rel="noreferrer noopener">Lighthouse</a> in Chrome DevTools to automate this.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Using JavaScript for Content Edits: A Cheat Sheet</title>
		<link>https://thaotran.com/javascript-cheat-sheet/</link>
		
		<dc:creator><![CDATA[Thao Tran]]></dc:creator>
		<pubDate>Wed, 22 Mar 2023 23:53:30 +0000</pubDate>
				<category><![CDATA[Product Management]]></category>
		<guid isPermaLink="false">https://thaotran.com/?p=375</guid>

					<description><![CDATA[A "cheat sheet" of JavaScript methods useful for hacky content edits. My 90% Use Case: Modifying Content I don't always use JavaScript. But when I do, it's usually to change website content I can't reach in the CMS. I almost always use a combination of querySelector and innerHTML to do something like this: When that [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><em>A "cheat sheet" of JavaScript methods useful for hacky content edits.</em></p>



<h2 class="wp-block-heading">My 90% Use Case: Modifying Content</h2>



<p>I don't always use JavaScript. But when I do, it's usually to change website content I can't reach in the CMS. I almost always use a combination of <code>querySelector</code> and <code>innerHTML</code> to do something like this:</p>



<pre class="wp-block-prismatic-blocks"><code class="language-javascript">&lt;script defer&gt;
document.querySelector(&#039;.class #ID&#039;).innerHTML = &#039;Replacement content here&#039;;
&lt;/script&gt;</code></pre>



<p>When that doesn't cut it, these other JavaScript methods probably will:</p>



<h3 class="wp-block-heading">Selecting Elements</h3>



<ul class="wp-block-list">
<li>By ID: <code>document.getElementById(&#039;elementId&#039;)</code></li>



<li>By Class: <code>document.getElementsByClassName(&#039;className&#039;)</code></li>



<li>By Tag Name: <code>document.getElementsByTagName(&#039;tagName&#039;)</code></li>



<li>Query Selector: <code>document.querySelector(&#039;.class #id&#039;)</code></li>
</ul>



<h3 class="wp-block-heading">Selecting Elements Within an Iframe</h3>



<ul class="wp-block-list">
<li>Manipulate Embedded Content: <code>document.getElementById(&#039;iframeId&#039;).contentWindow.document</code></li>
</ul>



<h3 class="wp-block-heading">Changing Content</h3>



<ul start="5" class="wp-block-list">
<li>Changing Text: <code>element.innerText = &#039;New Text&#039;</code></li>



<li>Alternative for Changing Text: <code>element.textContent = &#039;New Text&#039;</code></li>



<li>Changing HTML: <code>element.innerHTML = &#039;&lt;b&gt;New HTML Content&lt;/b&gt;&#039;</code></li>
</ul>



<h3 class="wp-block-heading">Changing Styles</h3>



<ul start="10" class="wp-block-list">
<li>Changing a Style: <code>element.style.color = &#039;red&#039;</code></li>



<li>Adding a CSS Class: <code>element.classList.add(&#039;className&#039;)</code></li>



<li>Removing a CSS Class: <code>element.classList.remove(&#039;className&#039;)</code></li>
</ul>



<h3 class="wp-block-heading">Modifying Attributes</h3>



<ul start="7" class="wp-block-list">
<li>Setting an Attribute: <code>element.setAttribute(&#039;src&#039;, &#039;newImage.jpg&#039;)</code></li>



<li>Removing an Attribute: <code>element.removeAttribute(&#039;disabled&#039;)</code></li>



<li>Getting an Attribute: <code>element.getAttribute(&#039;src&#039;)</code></li>
</ul>



<h3 class="wp-block-heading">Adding and Removing Elements</h3>



<ul start="13" class="wp-block-list">
<li>Creating an Element: <code>document.createElement(&#039;div&#039;)</code></li>



<li>Appending an Element: <code>parentElement.appendChild(newElement)</code></li>



<li>Removing an Element: <code>parentElement.removeChild(elementToRemove)</code></li>



<li>Replacing an Element: <code>parentElement.replaceChild(newElement, oldElement)</code></li>
</ul>



<h3 class="wp-block-heading">Event Handling</h3>



<ul start="17" class="wp-block-list">
<li>Adding an Event Listener: <code>element.addEventListener(&#039;eventType&#039;, function)</code></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 

Served from: thaotran.com @ 2026-04-16 13:28:01 by W3 Total Cache
-->