<?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: Snowball</title>
    <description>The latest articles on DEV Community by Snowball (@snowball0002).</description>
    <link>https://dev.to/snowball0002</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%2F3369047%2F3b8eb104-f38a-4d13-a949-beb59288c587.jpg</url>
      <title>DEV Community: Snowball</title>
      <link>https://dev.to/snowball0002</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/snowball0002"/>
    <language>en</language>
    <item>
      <title>Why "USED" Condition Fails in eBay Inventory API (Action Figure Category)</title>
      <dc:creator>Snowball</dc:creator>
      <pubDate>Sat, 19 Jul 2025 04:59:53 +0000</pubDate>
      <link>https://dev.to/snowball0002/why-used-condition-fails-in-ebay-inventory-api-action-figure-category-4pm6</link>
      <guid>https://dev.to/snowball0002/why-used-condition-fails-in-ebay-inventory-api-action-figure-category-4pm6</guid>
      <description>&lt;h2&gt;
  
  
  Background
&lt;/h2&gt;

&lt;p&gt;In the &lt;strong&gt;Action Figure&lt;/strong&gt; category on eBay, the listing UI only provides two condition options:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;NEW&lt;/strong&gt; and &lt;strong&gt;USED&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;However, when creating a SKU using the &lt;strong&gt;eBay Inventory API&lt;/strong&gt;, specifying &lt;code&gt;"USED"&lt;/code&gt; directly causes an error.&lt;/p&gt;
&lt;h2&gt;
  
  
  Root Cause
&lt;/h2&gt;

&lt;p&gt;According to eBay's API specification, the enum value &lt;code&gt;"USED"&lt;/code&gt; &lt;strong&gt;does not exist&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;UI Label → &lt;code&gt;"USED"&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;API Expected Value → &lt;code&gt;"USED_EXCELLENT"&lt;/code&gt; (Condition ID: &lt;code&gt;3000&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, to reproduce the UI’s “USED” condition in the API, you need to use &lt;code&gt;"USED_EXCELLENT"&lt;/code&gt; instead.&lt;/p&gt;
&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.ebay.com/api-docs/sell/inventory/resources/inventory_item/methods/createOrReplaceInventoryItem#request.availability" rel="noopener noreferrer"&gt;createOrReplaceInventoryItem - Inventory API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.ebay.com/api-docs/sell/inventory/types/slr:ConditionEnum" rel="noopener noreferrer"&gt;ConditionEnum Definitions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  ❌ Example: Fails with &lt;code&gt;"USED"&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;\&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; PUT &lt;span class="s1"&gt;'https://api.ebay.com/sell/inventory/v1/inventory_item/test-sku-001'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer DUMMY_ACCESS_TOKEN"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "condition": "USED",
    "product": {
      "title": "Dummy Action Figure",
      "description": "Dummy description for an action figure item.",
      "imageUrls": ["https://dummyurl.com/dummy-image.jpg"]
    },
    "availability": {
      "shipToLocationAvailability": {
        "quantity": 1
      }
    }
  }'&lt;/span&gt;
&lt;span class="se"&gt;\`&lt;/span&gt;&lt;span class="sb"&gt;``&lt;/span&gt;
&lt;span class="o"&gt;{&lt;/span&gt;% endraw %&lt;span class="o"&gt;}&lt;/span&gt;



&lt;span class="c"&gt;### Error Response&lt;/span&gt;

&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="o"&gt;{&lt;/span&gt;% raw %&lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="sb"&gt;```&lt;/span&gt;json
&lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="s2"&gt;"errors"&lt;/span&gt;: &lt;span class="o"&gt;[&lt;/span&gt;
    &lt;span class="o"&gt;{&lt;/span&gt;
      &lt;span class="s2"&gt;"message"&lt;/span&gt;: &lt;span class="s2"&gt;"Could not serialize field [condition]"&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
  &lt;span class="o"&gt;]&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="se"&gt;\`&lt;/span&gt;&lt;span class="sb"&gt;``&lt;/span&gt;
&lt;span class="o"&gt;{&lt;/span&gt;% endraw %&lt;span class="o"&gt;}&lt;/span&gt;


&lt;span class="c"&gt;## ✅ Example: Success with {% raw %}`"USED_EXCELLENT"`&lt;/span&gt;

&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="o"&gt;{&lt;/span&gt;% raw %&lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="sb"&gt;```&lt;/span&gt;bash
curl &lt;span class="nt"&gt;-X&lt;/span&gt; PUT &lt;span class="s1"&gt;'https://api.ebay.com/sell/inventory/v1/inventory_item/test-sku-001'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer DUMMY_ACCESS_TOKEN"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "condition": "USED_EXCELLENT",
    "product": {
      "title": "Dummy Action Figure",
      "description": "Dummy description for an action figure item.",
      "imageUrls": ["https://dummyurl.com/dummy-image.jpg"]
    },
    "availability": {
      "shipToLocationAvailability": {
        "quantity": 1
      }
    }
  }'&lt;/span&gt;
&lt;span class="se"&gt;\`&lt;/span&gt;&lt;span class="sb"&gt;``&lt;/span&gt;
&lt;span class="o"&gt;{&lt;/span&gt;% endraw %&lt;span class="o"&gt;}&lt;/span&gt;


Now the &lt;span class="k"&gt;**&lt;/span&gt;USED&lt;span class="k"&gt;**&lt;/span&gt; listing works correctly via API.

&lt;span class="c"&gt;## Summary&lt;/span&gt;

- In the Action Figure category &lt;span class="o"&gt;(&lt;/span&gt;and similar&lt;span class="o"&gt;)&lt;/span&gt;, the &lt;span class="k"&gt;**&lt;/span&gt;UI only shows &lt;span class="s2"&gt;"New"&lt;/span&gt; and &lt;span class="s2"&gt;"Used"&lt;/span&gt;&lt;span class="k"&gt;**&lt;/span&gt;, but...
- The eBay Inventory API &lt;span class="k"&gt;**&lt;/span&gt;does not accept &lt;span class="o"&gt;{&lt;/span&gt;% raw %&lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="s2"&gt;"USED"&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="o"&gt;{&lt;/span&gt;% endraw %&lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="k"&gt;**&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt;
- Instead, use &lt;span class="o"&gt;{&lt;/span&gt;% raw %&lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="s2"&gt;"USED_EXCELLENT"&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="o"&gt;{&lt;/span&gt;% endraw %&lt;span class="o"&gt;}&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;Condition ID &lt;span class="o"&gt;{&lt;/span&gt;% raw %&lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;3000&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="o"&gt;{&lt;/span&gt;% endraw %&lt;span class="o"&gt;})&lt;/span&gt; when listing as used.
- Therefore:
  - New item → &lt;span class="o"&gt;{&lt;/span&gt;% raw %&lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="s2"&gt;"condition"&lt;/span&gt;: &lt;span class="s2"&gt;"NEW"&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="o"&gt;{&lt;/span&gt;% endraw %&lt;span class="o"&gt;}&lt;/span&gt;
  - Used item → &lt;span class="o"&gt;{&lt;/span&gt;% raw %&lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="s2"&gt;"condition"&lt;/span&gt;: &lt;span class="s2"&gt;"USED_EXCELLENT"&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="o"&gt;{&lt;/span&gt;% endraw %&lt;span class="o"&gt;}&lt;/span&gt;
- This mismatch stems from eBay’s internal &lt;span class="o"&gt;{&lt;/span&gt;% raw %&lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;ConditionEnum&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="o"&gt;{&lt;/span&gt;% endraw %&lt;span class="o"&gt;}&lt;/span&gt; design and is &lt;span class="k"&gt;**&lt;/span&gt;not clearly documented&lt;span class="k"&gt;**&lt;/span&gt;, making it a common &lt;span class="nb"&gt;source &lt;/span&gt;of confusion &lt;span class="k"&gt;for &lt;/span&gt;developers.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
    </item>
    <item>
      <title>Why PDCA Often Fails — And How GP-PDCA Can Fix It</title>
      <dc:creator>Snowball</dc:creator>
      <pubDate>Sat, 19 Jul 2025 04:56:09 +0000</pubDate>
      <link>https://dev.to/snowball0002/why-pdca-often-fails-and-how-gp-pdca-can-fix-it-272e</link>
      <guid>https://dev.to/snowball0002/why-pdca-often-fails-and-how-gp-pdca-can-fix-it-272e</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Have you ever followed the PDCA cycle (Plan-Do-Check-Act) and still ended up with no tangible results?&lt;/p&gt;

&lt;p&gt;You’re not alone.&lt;/p&gt;

&lt;p&gt;The truth is: PDCA is a powerful framework — but only &lt;strong&gt;when used in the right context, with the right starting point&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Too often, people jump into the "Do" phase without clarifying what they're really trying to achieve or solve.&lt;/p&gt;

&lt;p&gt;That’s where my original framework &lt;strong&gt;GP-PDCA&lt;/strong&gt; comes in.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Wrong with PDCA?
&lt;/h2&gt;

&lt;p&gt;PDCA is popular because it provides a simple loop for continuous improvement.&lt;br&gt;&lt;br&gt;
However, many teams run into the following issues:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;❓ Unclear what the real problem is&lt;/li&gt;
&lt;li&gt;🎯 No alignment with the ultimate goal&lt;/li&gt;
&lt;li&gt;🌀 Endless cycles of "doing something" without meaningful impact&lt;/li&gt;
&lt;li&gt;📉 False sense of progress&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;The root cause: PDCA assumes the &lt;strong&gt;problem and goal are already clear&lt;/strong&gt; — which is rarely the case in the real world.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Introducing: GP-PDCA
&lt;/h2&gt;

&lt;p&gt;To make PDCA effective, you need two steps &lt;strong&gt;before&lt;/strong&gt; Plan:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Goal&lt;/strong&gt; and &lt;strong&gt;Problem&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  🥅 Goal
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;What are we really trying to achieve?&lt;/li&gt;
&lt;li&gt;What is the ideal future state?&lt;/li&gt;
&lt;li&gt;Why does it matter — and to whom?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔍 Problem
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;What’s preventing us from reaching the goal?&lt;/li&gt;
&lt;li&gt;What are the bottlenecks or pain points?&lt;/li&gt;
&lt;li&gt;What is the root cause?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Then finally: the original PDCA loop
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Plan&lt;/strong&gt;: Hypothesize and design solutions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do&lt;/strong&gt;: Execute a small-scale trial&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check&lt;/strong&gt;: Measure and evaluate&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Act&lt;/strong&gt;: Standardize or iterate&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  GP-PDCA Flow
&lt;/h2&gt;

&lt;p&gt;G (Goal) → Define your ideal target or outcome (KGI)&lt;br&gt;
P (Problem) → Identify obstacles or root causes&lt;br&gt;
P (Plan) → Create hypotheses and KPIs&lt;br&gt;
D (Do) → Take action&lt;br&gt;
C (Check) → Evaluate performance&lt;br&gt;
A (Act) → Reflect, standardize, or retry&lt;/p&gt;




&lt;h2&gt;
  
  
  Real-World Example: Improving a Dev Team's Output
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Goal&lt;/strong&gt;: Double the team’s release frequency
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Problem&lt;/strong&gt;: PR reviews are slow, test automation is lacking, rework is frequent
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan&lt;/strong&gt;: Improve CI pipeline, enforce WIP limits, clarify review guidelines
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do&lt;/strong&gt;: Pilot these changes for 1 sprint
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check&lt;/strong&gt;: Measure PR turnaround time, number of weekly releases
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Act&lt;/strong&gt;: Adopt successful practices across the team
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why “G → P” Before PDCA Is So Powerful
&lt;/h2&gt;

&lt;p&gt;Starting with &lt;strong&gt;Problem&lt;/strong&gt; is better than jumping into “Do”.&lt;br&gt;&lt;br&gt;
But starting with &lt;strong&gt;Goal&lt;/strong&gt; is even better.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Without a clear goal, you're just solving problems — not driving toward anything meaningful.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;GP-PDCA forces you to answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“Where are we going?”&lt;/li&gt;
&lt;li&gt;“Why does it matter?”&lt;/li&gt;
&lt;li&gt;“What’s standing in our way?”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Only then is it worth asking, “What should we do?”&lt;/p&gt;




&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;PDCA is not broken — but it’s &lt;strong&gt;incomplete&lt;/strong&gt; when used in isolation.&lt;br&gt;&lt;br&gt;
The &lt;strong&gt;GP-PDCA&lt;/strong&gt; model adds two crucial layers: &lt;strong&gt;purpose&lt;/strong&gt; and &lt;strong&gt;problem clarity&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This simple mental model has helped me dramatically improve how I approach product development, team processes, and even personal projects.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;If PDCA has ever felt like busywork or a corporate ritual, you're not alone.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GP-PDCA&lt;/strong&gt; gives it teeth again — by anchoring it to &lt;strong&gt;purpose&lt;/strong&gt; and &lt;strong&gt;clarity&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If this model resonates with you, feel free to comment or share your own use cases.&lt;br&gt;&lt;br&gt;
Let’s upgrade our thinking — one cycle at a time.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Written by [Your Name]&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;Inspired by real-world frustration with shallow PDCA loops.&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
