<?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>Forem: Web Dev Path</title>
    <description>The latest articles on Forem by Web Dev Path (@wdp).</description>
    <link>https://forem.com/wdp</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%2Forganization%2Fprofile_image%2F6267%2Fb7ad7b52-3045-4da4-aaea-ea03e96f1028.png</url>
      <title>Forem: Web Dev Path</title>
      <link>https://forem.com/wdp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/wdp"/>
    <language>en</language>
    <item>
      <title>My Experience with Solana</title>
      <dc:creator>Satoshi S.</dc:creator>
      <pubDate>Mon, 06 Apr 2026 16:51:14 +0000</pubDate>
      <link>https://forem.com/wdp/my-experience-with-solana-1jh5</link>
      <guid>https://forem.com/wdp/my-experience-with-solana-1jh5</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe65o98l4mv046es0qf5b.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe65o98l4mv046es0qf5b.jpg" alt="Solana Logo" width="379" height="80"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Intro
&lt;/h3&gt;

&lt;p&gt;I’ll start with an update on my current work.&lt;/p&gt;

&lt;p&gt;Last November, I began working with JB Music Therapy to build a music wellness application. We recently completed a large user testing phase with over 250 participants, including music therapy students. Now, we’re migrating the web application to Flutter in preparation for releasing it on the Google Play Store and Apple App Store.&lt;/p&gt;

&lt;p&gt;Since I don’t yet have production-level mobile development experience, I’ve been actively learning through a Udemy course while working on the migration. It’s been a challenging but rewarding process.&lt;/p&gt;

&lt;p&gt;As a contract worker, I have a flexible schedule. To take advantage of that, I decided to apply to the MLH Fellowship again. I’ve participated in the program three times before, and each time I’ve gained valuable skills and experience.&lt;/p&gt;

&lt;p&gt;This time, I was accepted into the Web3 track and assigned to work with the Solana Foundation team. In this post, I’ll share my experience working with Solana.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ijtrzkjrh33xyeydq9c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ijtrzkjrh33xyeydq9c.png" alt="MLH Fellowship Acceptance email" width="800" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're interested in my previous experiences in the program, please check the posts below.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/satoshi-sh/how-i-prepared-mlh-fellowship-application-as-a-career-switcher-1co9"&gt;How I prepared MLH Fellowship Application as a Career Switcher&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/satoshi-sh/my-experience-with-apache-airflow-1dpl"&gt;My Experience with Apache Airflow&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/wdp/devops-practical-experience-with-home-lab-379p"&gt;DevOps Practical Experience with Home Lab&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/wdp/my-experience-with-openstack-ironic-24hi"&gt;My Experience with OpenStack Ironic&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Project We Were Assigned To
&lt;/h3&gt;

&lt;p&gt;Usually, MLH Fellowship participants contribute to the existing large-scale open-source projects under the guidance of core maintainers, but this time was a bit different. Our team was tasked  with building a system to aggregate stablecoin metrics from multiple data providers and present them in a unified dashboard for the &lt;a href="https://solana.com/developers" rel="noopener noreferrer"&gt;Solana Developer Website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Why is this important? Because metrics can vary depending on the data provider. Differences in calculation methods, definitions, and data sources often lead to inconsistencies. Having a single place to visually compare these metrics makes it easier to understand and validate the data.&lt;/p&gt;

&lt;p&gt;To support this, we are building a data pipeline on Databricks that pulls data from five major cryptocurrency analytics platforms: Allium, Artemis, Blockworks, DefiLlama, and Dune.&lt;/p&gt;

&lt;p&gt;We are in the process of open-sourcing the data retrieval repository so that other developers can easily add new data providers or extend the available metrics in the future.    &lt;/p&gt;

&lt;h3&gt;
  
  
  Explore the API
&lt;/h3&gt;

&lt;p&gt;As a starting point, we decided to retrieve four core metrics.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;metrics&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Supply&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;unit&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;USD&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Total circulating supply of stablecoins on Solana, denominated in USD.&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Transfer Volume&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;unit&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;USD&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Total transfer volume of stablecoins on Solana, denominated in USD.&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Transfer Count&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;unit&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Count&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Total number of stablecoin transfer transactions on Solana&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Active Addresses&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;unit&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Count&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Number of unique addresses interacting with stablecoins on Solana&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We explored each API using notebooks to retrieve these metrics and understand their data structures. &lt;/p&gt;

&lt;p&gt;During this process, we encountered several challenges, such as handling paginated responses, working with SQL-based APIs and adapting to different data schemas across providers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7yim8kbfzuzq028kvdtq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7yim8kbfzuzq028kvdtq.png" alt="Dune API notebook on Databricks" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Ingestion Pipeline
&lt;/h3&gt;

&lt;p&gt;After exploring data provider APIs, we moved on to building the ingestion pipeline. We set up a database on Databricks and stored the data in a consistent format. During this process, we also began structuring the codebase with the goal of open-sourcing it in the future.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F36394q4o2s3090g7zpss.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F36394q4o2s3090g7zpss.png" alt="main.py to retrieve data" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Dashboard
&lt;/h3&gt;

&lt;p&gt;Databricks provides built-in dashboarding capabilities, which we used to visualize the aggregated data. I leveraged the AI Agent to generate plots quickly, allowing us to compare metrics across providers. Databricks also provides embeddable HTML components, which we plan to integrate into the final Solana developer page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdsl1rnikbjkbn6p1kcnn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdsl1rnikbjkbn6p1kcnn.png" alt="Supply data comparison plot" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Repository Structure Proposal
&lt;/h3&gt;

&lt;p&gt;We are now halfway through the Fellowship and have started organizing our code from Databricks into a structured GitHub repository.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;solana-stablecoin-benchmark/
  providers/        # contributors add providers here
  normalizers/      # shared transformation logic
  pipelines/        # ingestion + normalization orchestration
  db/               # schema definitions
  config/           # config files (logging, env templates)
  tests/            # validation and correctness
  notebooks/        # optional exploration (Databricks / local analysis)
  main.py           # pipeline entry point
  requirements.txt  # dependencies
  .env.example      # API keys template
  README.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This structure is designed to make the project easy to extend, allowing contributors to add new data providers and metrics with minimal friction.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Throughout the project, effective communication has been just as important as technical implementation. Since our team is distributed across multiple time zones, we rely heavily on asynchronous communication.&lt;/p&gt;

&lt;p&gt;To support this, I've focused on clearly documenting my work so that teammates can easily understand progress and continue development without blockers. This experience has reinforced how important well-written documentation is for team productivity.&lt;/p&gt;

&lt;p&gt;This project has been a great opportunity to deepen my experience in data engineering and collaborate in a distributed team environment.&lt;/p&gt;

&lt;h3&gt;
  
  
  Note
&lt;/h3&gt;

&lt;p&gt;I plan to update this post at the end of the program with the final results of our work. I hope you can check it out on GitHub and the Solana website.  &lt;/p&gt;

</description>
      <category>solana</category>
      <category>python</category>
      <category>mlh</category>
      <category>data</category>
    </item>
    <item>
      <title>How Large Language Models (LLMs) actually work</title>
      <dc:creator>Mariana Caldas</dc:creator>
      <pubDate>Thu, 30 Oct 2025 01:29:50 +0000</pubDate>
      <link>https://forem.com/wdp/how-large-language-models-llms-actually-work-37d5</link>
      <guid>https://forem.com/wdp/how-large-language-models-llms-actually-work-37d5</guid>
      <description>&lt;p&gt;In the first article of this AI series, &lt;a href="https://dev.to/wdp/why-ai-struggles-with-no-and-what-that-teaches-us-about-ourselves-4nlg"&gt;Why AI struggles with “no” and what that teaches us about ourselves&lt;/a&gt;, we explored how language models often misinterpret negation and how those mistakes mirror some very human learning patterns.&lt;/p&gt;

&lt;p&gt;In this new piece, we’re going a step further, trying to draw a clear line between human and machine intelligence while answering the following:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Are today’s language models really intelligent in the way we are? Do they reason, reflect, and create from scratch?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The short answer? No.&lt;/p&gt;

&lt;p&gt;Language models can sound equally inspired, but their creativity is different. They don’t create from meaning; they predict patterns. When you see an impressive AI-generated paragraph, what you’re reading is the result of billions of statistical predictions that mimic the structure of human expression. The illusion feels real because prediction and creativity share a similar surface: both produce something new from something known.&lt;/p&gt;

&lt;p&gt;That difference between meaning and mimicry is what we’ll explore next. The final goal is to help you feel more confident using those incredible tools.&lt;/p&gt;




&lt;h2&gt;
  
  
  Human intelligence vs. machine prediction
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Human intelligence is semantic (we interpret, connect, and assign meaning), while machine intelligence is syntactic; it manipulates form rather than meaning.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When humans create, we draw from more than stored words or patterns. We rely on a lifetime of experiences, emotions, and associations that shape how we express ideas. Our creativity often comes from combining unrelated thoughts or memories into something entirely new.&lt;/p&gt;

&lt;p&gt;Psychologists describe this reflective process as &lt;a href="https://thedecisionlab.com/reference-guide/philosophy/system-1-and-system-2-thinking" rel="noopener noreferrer"&gt;System 2 thinking&lt;/a&gt;: slow, deliberate reasoning guided by awareness and meaning. It’s what we use when solving problems, making ethical judgments, or forming original connections between ideas.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;At least for now&lt;/em&gt;, machines don’t do that.&lt;/p&gt;

&lt;p&gt;Large Language Models (LLMs) like ChatGPT (by OpenAI), Claude (by Anthropic), Gemini (by Google DeepMind), and Llama (by Meta AI) operate through System 1-like behavior: fast, automatic, and predictive. In a nutshell, they don’t think; they predict what comes next based on patterns found in massive amounts of training data.&lt;/p&gt;

&lt;p&gt;Every response you read from an LLM is the result of statistical pattern-matching. It looks at billions of text examples and estimates which token (a fragment of a word or symbol) is most likely to follow your prompt. That’s why these models can sound fluent, even brilliant, without truly understanding what they’re saying.&lt;/p&gt;

&lt;p&gt;A study from &lt;a href="https://news.mit.edu/2024/reasoning-skills-large-language-models-often-overestimated-0711?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;MIT CSAIL (2024)&lt;/a&gt; showed that reasoning skills in large language models are often overestimated. They perform well on familiar tasks but fail when the scenario changes.&lt;/p&gt;

&lt;p&gt;Similarly, &lt;a href="https://arxiv.org/abs/2502.17419?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;From System 1 to System 2: A Survey of Reasoning Large Language Models (2025)&lt;/a&gt; explains that while models can imitate human logic through learned patterns, they rarely achieve the deliberate, abstract reasoning that defines human thought.&lt;/p&gt;

&lt;p&gt;Another paper, &lt;a href="https://arxiv.org/abs/2310.11616?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;Evidence of interrelated cognitive-like capabilities in large language models (2023)&lt;/a&gt;, reinforces this: the models exhibit behaviors that look intelligent but are still driven by correlation, not comprehension.&lt;/p&gt;

&lt;p&gt;Now that we’ve differentiated how humans and LLMs reason, let’s look at how these remarkable systems actually process information and how understanding that can help us get the best out of them.&lt;/p&gt;




&lt;h2&gt;
  
  
  Short-term memory convos
&lt;/h2&gt;

&lt;p&gt;Every interaction with an AI model is built on tokens, tiny pieces of language that represent words, parts of words, or punctuation. Tokens are how the model processes and predicts what comes next in a given sentence. &lt;/p&gt;

&lt;p&gt;For example, the sentence &lt;em&gt;“This is how LLMs break up language”&lt;/em&gt; contains nine tokens on the &lt;a href="https://platform.openai.com/tokenizer" rel="noopener noreferrer"&gt;OpenAI GPT-4 Tokenizer&lt;/a&gt;. Most English words average about ¾ of a token.&lt;/p&gt;

&lt;p&gt;Now, each model has a limit on the number of tokens it can “see” at once. This limit is called the context window, and it works as the model’s short-term memory.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GPT-3.5 handled around 4,000 tokens.&lt;/li&gt;
&lt;li&gt;GPT-4 Turbo and Claude 3 Opus expanded that to roughly 128,000.&lt;/li&gt;
&lt;li&gt;GPT-4.1 and GPT-5 can now manage up to one million token
s.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This expansion allows for long conversations, uploaded documents, and even book-length inputs, but it’s not true memory. Once the window fills up, earlier information is compressed or replaced. The model can’t recall those details unless they’re reintroduced, which explains why AI sometimes contradicts itself or loses track of context: it has simply run out of space to “see” what came before.&lt;/p&gt;

&lt;p&gt;Complex instructions, such as those involving negation (&lt;em&gt;“don’t do X unless Y”&lt;/em&gt;), also depend on this limited window. If earlier details fall out of view, the model might miss conditions or reverse logic.&lt;/p&gt;

&lt;p&gt;The tip here is: when writing prompts, keep instructions focused and reintroduce context when needed. It’s like talking to someone who is taking notes in real time. If you want accuracy, repeat the key points.&lt;/p&gt;




&lt;h2&gt;
  
  
  Chunking and Retrieval-Augmented Generation (RAG)
&lt;/h2&gt;

&lt;p&gt;Behind the scenes, when an AI model reads a long piece of text, it doesn’t process it all at once. Instead, it breaks the text into smaller pieces called &lt;em&gt;chunks&lt;/em&gt;, each one fitting neatly within its context window. This internal process helps the model manage information efficiently without losing track of meaning.&lt;/p&gt;

&lt;p&gt;However, when you provide external data, such as uploading a PDF, website links, or connecting to a database, the model needs a way to access it. That’s where &lt;strong&gt;Retrieval-Augmented Generation (RAG)&lt;/strong&gt; comes in.&lt;/p&gt;

&lt;p&gt;RAG is an external method that allows a model &lt;em&gt;to retrieve&lt;/em&gt; relevant information rather than rely solely on what fits within its window. When you ask a question, the system searches your documents for related sections (chunks) and gives that content back to the model to generate a grounded, more accurate answer.&lt;/p&gt;

&lt;p&gt;In short, &lt;em&gt;chunking&lt;/em&gt; is how the model processes what’s already inside, while RAG helps it reach outside its memory limits to access knowledge it doesn’t currently hold. Together, they help balance speed, scale, and accuracy.&lt;/p&gt;

&lt;p&gt;You can make both processes more effective by preparing your data clearly. Use short sections, descriptive titles, and simple summaries when sharing documents. The better organized your material, the easier it is for the model to retrieve what matters.&lt;/p&gt;




&lt;h2&gt;
  
  
  Wrapping up
&lt;/h2&gt;

&lt;p&gt;LLMs have changed how we write, learn, and create, but understanding how they work changes how we use them.&lt;/p&gt;

&lt;p&gt;They don’t think like humans; they predict patterns based on probability, and when we understand how those patterns are built (through tokens, context windows, chunking, and retrieval), we can guide them more intentionally.&lt;/p&gt;

&lt;p&gt;We could say, then, that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Clarity helps them stay logical&lt;/strong&gt;: the model only works with what it can “see.” Clear prompts reduce confusion and keep its short-term memory focused.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Structure helps them stay consistent&lt;/strong&gt;: chunking and retrieval rely on well-organized information to produce coherent results.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;And our intent gives their output meaning&lt;/strong&gt;: while models predict patterns, only humans can add context, emotion, and purpose.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the end, AI doesn’t replace human creativity or intelligence; it extends it. &lt;/p&gt;

</description>
      <category>genai</category>
      <category>llm</category>
      <category>ai</category>
    </item>
    <item>
      <title>Is it fair to fear AI?</title>
      <dc:creator>Mariana Caldas</dc:creator>
      <pubDate>Fri, 12 Sep 2025 04:04:31 +0000</pubDate>
      <link>https://forem.com/wdp/is-it-fair-to-fear-ai-22pn</link>
      <guid>https://forem.com/wdp/is-it-fair-to-fear-ai-22pn</guid>
      <description>&lt;p&gt;Every great invention has carried both wonder and fear. The printing press spread knowledge but also propaganda. The internet connected the world but also created new ways to exploit and divide it.&lt;/p&gt;

&lt;p&gt;AI sits in that same lineage. It sparks fascination with the promise of medical breakthroughs, climate solutions, and new forms of creativity. At the same time, it raises alarms about misinformation, job loss, and the possibility of systems we can’t fully control.&lt;/p&gt;

&lt;p&gt;The big difference now is &lt;em&gt;scale.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;When the printing press emerged, adoption took centuries. Electricity spread over decades. Even the internet, though fast, rolled out unevenly. Because of globalization and digital infrastructure, a breakthrough in one lab today can impact millions tomorrow. That speed and reach make both the risks and opportunities harder to contain or ignore.&lt;/p&gt;

&lt;p&gt;Both reactions, fear and excitement, are justified. Fear acts as a compass pointing to where risks lie, while excitement is the energy that drives discovery. In this article, we will reflect on why the real work is learning how to carry both at once and to design AI with engines that move us forward and brakes that keep us safe.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Reasoning the fear&lt;/strong&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“AI fear is a response to speed and scope colliding in ways humanity hasn’t faced before.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;AI fears aren’t abstract; they’re grounded in what people already see. Algorithms already shape who gets hired, who receives loans, and how information spreads. In the past, the consequences of new technologies were often limited by geography. A printing error might mislead a city; an electrical fault might black out a neighborhood. With AI, a flaw can propagate globally in seconds, replicated across platforms and industries before anyone notices.&lt;/p&gt;

&lt;p&gt;This scale amplifies existing worries:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The feeling of losing control when decisions are made by systems that most people don’t fully understand.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The concentration of influence when only a few actors hold the keys to the most advanced models.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The unease of watching machines step into not just repetitive labor, but creative and professional spaces that shape identity and purpose.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The erosion of trust as misinformation spreads faster than fact-checks can keep up.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;And finally, the existential unease that even low-probability risks matter when the reach is this vast.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Balancing excitement with caution&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;If fear is amplified by speed and scale, so is excitement. The very qualities that make AI risky—its ability to learn, adapt, and spread quickly—are also what make it powerful. A system that can connect patterns across domains doesn’t just disrupt jobs; it can accelerate cures, design new materials, and help stabilize fragile ecosystems.&lt;/p&gt;

&lt;p&gt;The temptation is to either sprint forward blindly or freeze in panic. But history shows us that progress paired with restraint is what creates lasting value. Electricity didn’t become transformative until we invented standards and safety codes. The internet didn’t become usable until we learned to build protocols and firewalls. With AI, the “brakes” we design now will decide whether its engines move us toward collective progress or collective harm.&lt;/p&gt;

&lt;p&gt;That balance requires a mindset shift: building for resilience, not just speed. It’s not enough to launch faster models. We need oversight that can keep pace, transparency that makes the invisible visible, and social systems flexible enough to absorb disruption without breaking.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;The skills and brakes we’ll need&lt;/strong&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Together, these skills and breaks form the toolkit for resilience. Without them, engines run unchecked. With them, we have a chance to shape where we’re headed.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Unlike past inventions, AI doesn’t give us decades to adjust. Its scale forces us to build engines and brakes at the same time, and that means different kinds of expertise working together from day one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Technical builders&lt;/strong&gt; are the ones who can turn “black boxes” into something interpretable. The brake here is &lt;em&gt;interpretability&lt;/em&gt;, which means code and tools that let humans question the machine before acting.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A practical scenario:&lt;/em&gt; The engine can be represented by an AI model that detects patterns in scans that a human eye would miss, offering earlier diagnoses and potentially saving lives. But the brake matters just as much: every AI-generated recommendation must still pass through medical professionals who can weigh context, ethics, and patient history. Without it, one flawed update could spread misdiagnoses worldwide overnight.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lawyers and ethicists&lt;/strong&gt; turn abstract values into enforceable standards. The brake here is &lt;em&gt;accountability&lt;/em&gt;: clear rules that force organizations to explain and defend automated decisions, just as we expect food or medicine to meet safety codes.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A practical scenario:&lt;/em&gt; In hiring, the engine is an AI system that can screen thousands of resumes in hours. But without accountability, that same system can quietly filter out women or minorities at scale. Audit trails and appeals are the brakes that keep bias from being locked into code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Economists and labor experts&lt;/strong&gt; keep disruption visible. The brake here is &lt;em&gt;preparation&lt;/em&gt;—retraining programs, transition funds, and new models of social support designed &lt;em&gt;before&lt;/em&gt; jobs vanish, not after.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A practical scenario:&lt;/em&gt; The engine could be AI tools producing marketing copy or legal briefs in seconds. But that efficiency could hollow out industries overnight. Preparation through reskilling initiatives and income transition programs can soften the shock and help workers adapt instead of collapsing into unemployment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Psychologists and sociologists&lt;/strong&gt; map the invisible shifts in trust and identity. The brake here is &lt;em&gt;awareness&lt;/em&gt;, which means guidelines and education that help people navigate blurred boundaries.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A practical scenario:&lt;/em&gt; The engine is a chatbot designed to reduce loneliness. For some, it works. For others, it deepens dependency, blurring the line between authentic human connection and simulation. Awareness campaigns and mental health frameworks act as brakes, ensuring tools meant to support don’t quietly harm.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Communicators&lt;/strong&gt;—teachers, journalists, artists—make the invisible visible. The brake here is &lt;em&gt;translation&lt;/em&gt;, turning technical complexity into language and imagery that people can understand and respond to.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A practical scenario:&lt;/em&gt; The engine is AI-powered predictive policing, pitched as a tool for safety. Without translation, communities may never see the biases embedded in the data. By surfacing those biases in clear language, communicators create the space for public debate and resistance.&lt;/p&gt;

&lt;p&gt;And &lt;strong&gt;everyday citizens&lt;/strong&gt; are not just passive recipients of AI; they’re the first to notice when something is off. These &lt;em&gt;lived experiences&lt;/em&gt; are brakes too that alert the rest of us before harms become systemic.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A practical scenario:&lt;/em&gt; The engine is an AI scheduling system rolled out across a retail chain. It boosts efficiency but leaves workers struggling with unpredictable hours. Employees themselves—sharing experiences with unions, co-workers, or the public—will apply the brake by forcing accountability and adjustments.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Fear as compass, excitement as fuel&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;And in the midst of uncertainty, I invite you to start seeing fear and excitement not as opposites, but as partners. I also invite you to imagine a future where this balance works: doctors supported, not replaced, by transparent diagnostic tools; workers retrained before industries collapse; children learning with AI tutors but guided by teachers who keep curiosity alive; climate models open and accountable, driving collective action instead of private gain. That’s what engines and brakes together can look like.&lt;/p&gt;

&lt;p&gt;If humanity gets this right, AI could become a partner that amplifies our better side and helps us protect the beauty of the world we share.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;What do you think?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Do you feel more fear or more excitement about AI right now? And how do you think society can adapt to its increasingly global and fast-moving scale?&lt;/p&gt;

&lt;p&gt;Please drop your thoughts in the comments. I’d love to hear your perspective! &lt;/p&gt;

&lt;p&gt;Talk soon, and take care.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>ethics</category>
      <category>society</category>
    </item>
    <item>
      <title>Getting your product to the right people</title>
      <dc:creator>Mariana Caldas</dc:creator>
      <pubDate>Sun, 03 Aug 2025 04:50:10 +0000</pubDate>
      <link>https://forem.com/wdp/getting-your-product-to-the-right-people-5c90</link>
      <guid>https://forem.com/wdp/getting-your-product-to-the-right-people-5c90</guid>
      <description>&lt;p&gt;And here we are in the final article of the product management lifecycle series, inspired by the Stanford course, &lt;a href="https://online.stanford.edu/courses/xprod110-product-management-transforming-opportunities-great-products" rel="noopener noreferrer"&gt;"Product Management: Transforming Opportunities into Great Products&lt;/a&gt;." In this series, we’ve been walking through the product lifecycle, not just from a theoretical standpoint, but through the lens of what it takes to bring ideas to life in a way that makes sense for users, teams, and businesses.&lt;/p&gt;

&lt;p&gt;A recap of what we’ve covered so far:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/wdp/an-introduction-to-product-management-55ge"&gt;What product management is&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/wdp/defining-the-product-vision-2bc8"&gt;Clarifying product vision&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/wdp/crafting-stories-that-drive-product-success-14i4"&gt;Translating strategy into roadmaps&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/wdp/understanding-the-product-lifecycle-3g93"&gt;Understanding the product lifecycle&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/wdp/designing-the-solution-in-product-management-38i2"&gt;Designing user-centered solutions&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/wdp/its-product-building-time-baby-12gk"&gt;Navigating the build phase&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/wdp/launching-as-the-beginning-of-a-conversation-5fb6"&gt;Launching with clarity&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We now arrive at the final core phase in the product lifecycle: &lt;strong&gt;Go-to-Market (GTM)&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;If launching is the first conversation with our users, then GTM is what keeps that conversation going and helps the right people hear it.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is Go-to-Market?
&lt;/h2&gt;

&lt;p&gt;Go-to-Market is not just a distribution plan; it’s a cross-functional strategy that defines how your product reaches and retains the right users. It includes product design, positioning, pricing, messaging, customer support—and yes, distribution too.&lt;/p&gt;

&lt;p&gt;In the course, GTM was defined as the process of &lt;em&gt;reaching customers in a way that makes acquiring and serving them both viable and effective&lt;/em&gt;. That means understanding not only how people will find your product but also whether your business can sustainably support and grow with them.&lt;/p&gt;

&lt;p&gt;Here’s a quick comparison to ground it:&lt;/p&gt;

&lt;p&gt;Take a mental health app built for working parents. If research shows they trust parenting influencers more than app store ads, your GTM might involve co-creating content with those influencers, streamlining onboarding for busy schedules, and offering family-centric pricing. And if those same parents tend to hear about tools through pediatricians or community groups, your GTM may need to start by establishing partnerships or referral networks with those sources.&lt;/p&gt;




&lt;h2&gt;
  
  
  Three components of every GTM plan
&lt;/h2&gt;

&lt;p&gt;The Stanford framework breaks GTM into three interconnected pillars:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Your product&lt;/strong&gt; — What are you offering, and what makes it uniquely valuable?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Your customer&lt;/strong&gt; — Who are you targeting, and how do they buy, learn, and use products?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Your economics&lt;/strong&gt; — What are your margins, and what can you afford to spend on reaching and retaining users?&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Let’s bring this to life with a few scenarios:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;If you're building payroll software for small teams, your product might be self-serve, your customer is likely a non-technical HR manager, and your margins can’t support a full sales team. Your GTM may rely on SEO landing pages, free trials, and short demo videos.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If your product has a high customer lifetime value (LTV)—such as Workday, with its enterprise contracts—you can afford a long sales cycle and a human-led sales team.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you’re Dropbox, trying to convert individuals with low LTV into paying users, you’ll likely depend on low-cost strategies like referrals or freemium upgrades.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each decision, from pricing to onboarding, flows from this &lt;em&gt;Product-Customer-Economics&lt;/em&gt; triangle. It helps you understand what tactics are viable, and what’s likely to stretch your resources thin.&lt;/p&gt;

&lt;h3&gt;
  
  
  Aligning GTM with product economics
&lt;/h3&gt;

&lt;p&gt;Let’s delve deeper into the economic point to understand its metrics and establish your plan while protecting your profit margins.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;LTV (Customer Lifetime Value)&lt;/strong&gt;: the total revenue a customer brings over time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;CAC (Customer Acquisition Cost)&lt;/strong&gt;: how much you spend to acquire each customer.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your GTM strategy is only viable when CAC is significantly lower than LTV. A healthy ratio is often 1:3 or better.&lt;/p&gt;

&lt;p&gt;For example, if your LTV is $300, you can’t afford a $250 CAC—you’ll burn money with every user. However, if your LTV is $30,000, a higher CAC is acceptable, and GTM efforts, such as demos, onboarding support, or even direct sales, are sustainable.&lt;/p&gt;




&lt;h2&gt;
  
  
  Matching channels to customer types
&lt;/h2&gt;

&lt;p&gt;The course breaks down GTM motions by customer type:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;B2C (Consumer)&lt;/strong&gt;: Prioritizes reach and simplicity. Think referral programs, viral content, and intuitive onboarding.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;SMB (Small Business)&lt;/strong&gt;: Blends self-serve flows with just enough support. Think product-led growth, webinars, and email nurtures.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enterprise&lt;/strong&gt;: Involves high-touch sales, security reviews, and internal enablement. The GTM focus here is helping internal champions make the case.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The lesson here is alignment. If you're designing for enterprises but expecting B2C-style organic growth, you're likely to hit friction in adoption, retention, or scalability.&lt;/p&gt;




&lt;h2&gt;
  
  
  When the product becomes the channel
&lt;/h2&gt;

&lt;p&gt;Sometimes, your best GTM tool is the product itself.  &lt;strong&gt;Hotmail&lt;/strong&gt; did it with one line at the end of every email: &lt;em&gt;“Get your free Hotmail account.”&lt;/em&gt;  &lt;strong&gt;Dropbox&lt;/strong&gt; gave users free storage for inviting friends. &lt;strong&gt;PayPal&lt;/strong&gt; paid users to sign up and send money.&lt;/p&gt;

&lt;p&gt;More than “Marketing hacks”, those companies leveraged design choices that enabled distribution from the inside out.&lt;/p&gt;

&lt;p&gt;Whether through shareable moments, in-app prompts, or embedded use cases, this kind of growth tends to be the most scalable and often the most delightful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💡 Tip:&lt;/strong&gt; Ask yourself: &lt;em&gt;“How could this product help users discover or share it without needing a campaign?”&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;This course takeaway has stayed with me:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Distribution is not a post-launch activity. It’s a product design choice.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When we align pricing, positioning, and onboarding with how people first hear about us—or how they expect to experience value—we’re building GTM into the product, not bolting it on later.&lt;/p&gt;

&lt;p&gt;It’s easy to label this as something “Marketing handles”, but when GTM fails, it’s often because early product decisions weren’t aligned with the business model or customer journey.&lt;/p&gt;

&lt;p&gt;I also want to note that Go-to-Market isn’t the end of the product lifecycle; it’s what connects everything that came before to everything that comes next while making growth sustainable, learnings repeatable, and outcomes visible. It’s where &lt;strong&gt;product and business intersect&lt;/strong&gt; and where your team’s &lt;strong&gt;intentions&lt;/strong&gt; (to help, to solve, to delight) meet the reality of reaching people and growing responsibly. So, GTM turns strategy into traction.&lt;/p&gt;

&lt;p&gt;As this series comes to a close, I hope the core message has been clear:&lt;br&gt;&lt;br&gt;
&lt;em&gt;Product Management requires understanding how &lt;strong&gt;each phase&lt;/strong&gt; informs the next and how each decision builds momentum for the ones that follow.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Thank you for reading, learning, and hopefully building alongside me.&lt;/p&gt;

&lt;p&gt;Talk soon, take care.&lt;/p&gt;

</description>
      <category>productmanagement</category>
      <category>gtm</category>
    </item>
    <item>
      <title>Launching as the beginning of a conversation</title>
      <dc:creator>Mariana Caldas</dc:creator>
      <pubDate>Thu, 03 Jul 2025 00:52:09 +0000</pubDate>
      <link>https://forem.com/wdp/launching-as-the-beginning-of-a-conversation-5fb6</link>
      <guid>https://forem.com/wdp/launching-as-the-beginning-of-a-conversation-5fb6</guid>
      <description>&lt;p&gt;Over the past few months, we’ve been talking about product management through the lens of the Stanford course, &lt;a href="https://online.stanford.edu/courses/xprod110-product-management-transforming-opportunities-great-products" rel="noopener noreferrer"&gt;"Product Management: Transforming Opportunities into Great Products"&lt;/a&gt;. In this series, I’ve been unpacking key ideas from the course and connecting them to my experiences as a product manager: what resonates, what shifts your perspective, and what helps build better teams and products.&lt;/p&gt;

&lt;p&gt;So far, we’ve covered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://dev.to/wdp/an-introduction-to-product-management-55ge"&gt;What product management is&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/wdp/defining-the-product-vision-2bc8"&gt;Clarifying product vision&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/wdp/crafting-stories-that-drive-product-success-14i4"&gt;Translating strategy into roadmaps&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/wdp/understanding-the-product-lifecycle-3g93"&gt;Understanding the product lifecycle&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/wdp/designing-the-solution-in-product-management-38i2"&gt;Designing user-centered solutions&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/wdp/its-product-building-time-baby-12gk"&gt;Navigating the build phase&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now we’ve reached a moment that often gets treated as a milestone, but is actually a starting point: &lt;strong&gt;launching&lt;/strong&gt;. &lt;/p&gt;




&lt;h2&gt;
  
  
  What does it mean to launch?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"It’s more than just shipping code; it's learning how the product lives in someone else’s hands, in their actual workflow."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A launch is commonly thought of as the final step in delivery, but that view is incomplete. Launching marks the first time your product interacts with users beyond your immediate circle. It’s when internal work becomes external reality.&lt;/p&gt;

&lt;p&gt;In the course, the concept of a launch was reframed as a transition—from building something to helping it land. That shift demands not only technical readiness but also user clarity.&lt;/p&gt;




&lt;h2&gt;
  
  
  A clear Beta is often more valuable than a rushed GA
&lt;/h2&gt;

&lt;p&gt;Launch is not just a release; it’s the beginning of a learning process. &lt;em&gt;Beta&lt;/em&gt;, in particular, is your chance to see how people use what you built, without assuming they’ll figure it out. That feedback is essential before going wide.&lt;/p&gt;

&lt;p&gt;That process usually unfolds in three stages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Alpha&lt;/strong&gt;: Shared with close collaborators and internal testers. Feedback is qualitative and focused on the general direction.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Beta&lt;/strong&gt;: Shared with real users who actively opt in. This is where patterns emerge, confusion shows up, and assumptions get tested.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;General Availability (GA)&lt;/strong&gt;: The public version. At this point, your product needs to carry its own message, without someone standing beside it to explain.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Skipping &lt;em&gt;Beta&lt;/em&gt; in the name of urgency often means learning the hard way, in front of a broader audience. For example, imagine launching a redesigned onboarding experience without &lt;em&gt;Beta&lt;/em&gt; testing. What looks intuitive to your team might leave users stuck on the first screen. &lt;em&gt;Beta&lt;/em&gt; gives you a space to see where people hesitate and adjust before it hurts adoption.&lt;/p&gt;




&lt;h2&gt;
  
  
  If the team isn’t aligned, the user won’t be either
&lt;/h2&gt;

&lt;p&gt;The course introduced a framework for assessing &lt;strong&gt;launch risk&lt;/strong&gt; based on two factors:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;How big is this change?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Can we walk it back?&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Large, irreversible changes (like pricing or platform shifts) require strong internal alignment across all functions. Even small, reversible changes can create confusion if the team isn’t on the same page about what’s being released, why it matters, and how it should be presented.&lt;/p&gt;

&lt;h3&gt;
  
  
  Examples
&lt;/h3&gt;

&lt;p&gt;Let’s say you're &lt;strong&gt;changing a subscription pricing model&lt;/strong&gt;. That’s a significant and probably irreversible change as it affects revenue, user trust, and long-term retention. It requires not only technical implementation but also coordinated messaging, clear FAQs, and alignment between Product, Marketing, Sales, and Support.&lt;/p&gt;

&lt;p&gt;On the other hand, &lt;strong&gt;changing the color of CTA buttons&lt;/strong&gt; is a minor and reversible change. However, even then, if Marketing promotes an outdated screenshot, confusion can still creep in.&lt;/p&gt;

&lt;p&gt;That’s where &lt;strong&gt;internal readiness&lt;/strong&gt; comes in. It’s a concept that refers to internal alignment about the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The product works as intended.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Documentation is done and accessible.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Support knows what might generate questions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sales and marketing have a consistent narrative.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The whole team agrees on how success will be measured.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"One process that’s worked for me is running a short cross-functional 'launch readiness' meeting before every GA release. It includes Product, Support, Marketing, and Sales. Everyone brings their checklist: FAQs, updated documentation, messaging drafts, and any last blockers. This meeting ensures we all know what’s going out, how we’ll talk about it, and who owns the follow-up if things go wrong."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In my experience, the fastest way to create external confusion is to let internal uncertainty slip past the launch date.&lt;/p&gt;




&lt;h2&gt;
  
  
  Launch content should be written for users, not for internal validation
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“If your content only makes sense to people inside the building, it’s not ready to go out.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A launch post, email, or in-product message isn’t an internal announcement. It’s how users first encounter what you’ve built. &lt;em&gt;That means that launch materials are not accessories, but part of the product itself.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Good launch content answers three things clearly:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;What’s changing?&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Why does it matter to me?&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;What can I do with it right now?&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A great example we explored was &lt;a href="https://news.airbnb.com/update-on-profile-photos/" rel="noopener noreferrer"&gt;Airbnb’s blog post about profile photo changes&lt;/a&gt;. It starts from the user’s perspective, grounds the update in real feedback, and communicates just enough to inspire confidence and understanding.&lt;/p&gt;

&lt;p&gt;The trick is to write as if you’re speaking to someone who has never seen the product before and needs to decide in one minute whether it’s worth exploring.&lt;/p&gt;




&lt;h2&gt;
  
  
  Simple videos help people get started faster
&lt;/h2&gt;

&lt;p&gt;Another principle I’ve taken forward is the power of short, helpful walkthroughs. Video is one of the most underused assets in a launch. I encourage you to build quick, user-facing demos that show the product in context, even if they’re rough.&lt;/p&gt;

&lt;p&gt;A short video can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Show how to use a new feature, instead of explaining it abstractly&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Humanize the launch&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reduce early support tickets&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create internal alignment on what’s actually shipping&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In one example, &lt;a href="https://www.figma.com/blog/figma-organization/" rel="noopener noreferrer"&gt;Uber and Figma used video testimonials&lt;/a&gt; to tell the story of how a new organizational feature helped real teams. It wasn’t overly produced—it was relatable. That’s often more persuasive than the perfect copy.&lt;/p&gt;




&lt;h2&gt;
  
  
  A quiet, effective launch often performs better than a noisy one that misses the mark
&lt;/h2&gt;

&lt;p&gt;Since launches are critical moments where many things can change, we definitely benefit from seeing them as &lt;strong&gt;transitions&lt;/strong&gt; to be supported, rather than moments to be maximized. In other words, don’t confuse a launch with a one-time announcement. It’s a period of onboarding, feedback, adjustment, and messaging consistency. The goal isn’t to be loud—it’s to be helpful.&lt;/p&gt;

&lt;p&gt;That transition depends on &lt;strong&gt;external readiness&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Are users aware of what’s changed?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Can they quickly understand the benefit?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Are we prepared to support the feedback and questions that follow?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is true whether you’re releasing new UX for a form or introducing a new service tier. Some launches benefit from scale and visibility. Others benefit from focus and stability. But in either case, what matters most is whether people &lt;em&gt;understand and use&lt;/em&gt; what you’ve released, not how loud the campaign was.&lt;/p&gt;




&lt;h2&gt;
  
  
  A launch is part of the product
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Launching is a Product decision, not a Marketing one."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This was one of the most important mindset shifts in the course: launching is a product decision, not a marketing one. When a launch is reduced to a deadline or a campaign, we risk ignoring its most critical function: delivering value.&lt;/p&gt;

&lt;p&gt;That means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;It should be designed intentionally.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It should reflect user context and needs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It should have its own success criteria.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Skipping this work risks wasting the opportunity created by months of development. If we get it right, the launch becomes the moment when our product starts delivering real value.&lt;/p&gt;

&lt;p&gt;When launch becomes an afterthought, you may end up with a strong feature that fails to gain traction simply because no one knew what to do with it. That’s a loss not just for the business, but for the users who never got to benefit from it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Wrapping up
&lt;/h2&gt;

&lt;p&gt;A thoughtful launch goes beyond checking boxes or maximizing attention; it’s meeting the user where they are and making the transition into your product feel obvious, helpful, and worthwhile.&lt;/p&gt;

&lt;p&gt;When we take the time to stage launches through Beta, align internally, clarify the message, and offer a simple walkthrough or two, we make the product stronger. And when we treat the launch as part of the Product, not something layered on top, we start to build trust from the first interaction.&lt;/p&gt;

&lt;p&gt;Launches can spark momentum, but momentum isn’t scalable. The final article in this series will explore how we make products discoverable, repeatable, and sustainable, so that value doesn’t just begin at launch, it continues to grow. Do you know which phase I'm referring to? &lt;/p&gt;

&lt;p&gt;Talk soon, take care.&lt;/p&gt;

</description>
      <category>productstrategy</category>
      <category>productlaunch</category>
      <category>userexperience</category>
      <category>productmanagement</category>
    </item>
    <item>
      <title>Why AI struggles with "no" and what that teaches us about ourselves</title>
      <dc:creator>Mariana Caldas</dc:creator>
      <pubDate>Fri, 23 May 2025 23:32:21 +0000</pubDate>
      <link>https://forem.com/wdp/why-ai-struggles-with-no-and-what-that-teaches-us-about-ourselves-4nlg</link>
      <guid>https://forem.com/wdp/why-ai-struggles-with-no-and-what-that-teaches-us-about-ourselves-4nlg</guid>
      <description>&lt;p&gt;Over the last few months, I’ve been building some pretty layered automation using Zapier, Ghost, PDFMonkey, and Cloudinary, guided step by step by ChatGPT, and it’s been... eye-opening.&lt;/p&gt;

&lt;p&gt;I think AI is the best assistant ever when exploring possibilities to solve a problem, but it occasionally fails in ways that feel surprisingly human. As a former teacher, I’ve come to appreciate two patterns—two things large language models consistently struggle with—that have deep roots in how people think and learn.&lt;/p&gt;

&lt;p&gt;Let’s break them down.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Negation is hard for both humans and machines
&lt;/h2&gt;

&lt;p&gt;One of the most common mistakes I’ve seen ChatGPT make is with “negative commands.”&lt;br&gt;&lt;br&gt;
For example, I once said:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Don’t overwrite existing tags unless the user doesn’t have any.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The result? The tag was overwritten, even when it shouldn’t have been.&lt;/p&gt;

&lt;p&gt;Why? Because large language models don’t “understand” logic like a programmer. They predict the most likely sequence of words based on examples from their training data. When phrasing is &lt;strong&gt;complex or wrapped in multiple negations&lt;/strong&gt;, models often pick up on the &lt;em&gt;structure&lt;/em&gt; of the sentence without truly grasping the logic.&lt;/p&gt;
&lt;h3&gt;
  
  
  This is where it gets human.
&lt;/h3&gt;

&lt;p&gt;Children, especially infants and toddlers, also struggle with negative commands. Telling a 2-year-old, “Don’t touch that,” often leads to… them touching it.&lt;/p&gt;

&lt;p&gt;Why? Because understanding “don’t” requires &lt;strong&gt;holding two ideas in mind&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What the action is (“touch that”)&lt;/li&gt;
&lt;li&gt;That it should &lt;em&gt;not&lt;/em&gt; be done&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Developmental psychologists have studied this for decades. A classic source is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.sfu.ca/~jeffpell/Cogs300/PeaDevelopofNegation.pdf" rel="noopener noreferrer"&gt;&lt;strong&gt;Pea, R. D. (1980).&lt;/strong&gt; “The Development of Negation and Its Role in the Construction of the Self.” &lt;em&gt;Cognitive Science&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Even adults process negative statements more slowly and with more errors than positive ones.&lt;br&gt;&lt;br&gt;
This parallels how LLMs “misread” complex negation—they’re great with surface forms, but logic wrapped in linguistic twists? That’s still a blind spot.&lt;/p&gt;


&lt;h2&gt;
  
  
  2. Memory gets fuzzy when things get long
&lt;/h2&gt;

&lt;p&gt;Here’s another pattern: long conversations with ChatGPT often lead to inconsistent behavior.&lt;/p&gt;

&lt;p&gt;You’ll say something, set up a rule, get it working, and 20 minutes later, the AI starts forgetting the rule or contradicting something it already confirmed.&lt;/p&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;Large language models have a &lt;strong&gt;limited “context window.”&lt;/strong&gt; GPT-4 can look at many tokens (~128k words at most), but the longer the conversation, the more compressed and imprecise that earlier information becomes. It’s like trying to summarize 40 pages of notes and then recall just one detail from page 4—you might miss it.&lt;/p&gt;

&lt;p&gt;OpenAI describes this in its &lt;a href="https://cdn.openai.com/papers/gpt-4.pdf" rel="noopener noreferrer"&gt;technical report on GPT-4&lt;/a&gt;: memory is not long-term; it's a temporary window.&lt;/p&gt;
&lt;h3&gt;
  
  
  Again, this echoes human learning.
&lt;/h3&gt;

&lt;p&gt;When we overload working memory, especially without structured reinforcement, information decays. Educational research shows that &lt;strong&gt;our brains retain new concepts best through spaced repetition&lt;/strong&gt;, simplified input, and direct reinforcement.&lt;/p&gt;

&lt;p&gt;Long chats with no clear breaks? That’s like reading 12 chapters of a textbook in one night and hoping it all sticks.&lt;/p&gt;


&lt;h2&gt;
  
  
  3. “Structured memory” sounds great — but here’s the real story
&lt;/h2&gt;

&lt;p&gt;One thing I wanted to figure out was how to help ChatGPT &lt;em&gt;remember&lt;/em&gt; key info across different workflows. At first, I assumed the new &lt;strong&gt;Projects&lt;/strong&gt; feature meant each workspace had its own memory. Not quite.&lt;/p&gt;

&lt;p&gt;Here’s how it really works:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ChatGPT’s memory is global&lt;/strong&gt;, not project-specific. If memory is on, it might remember something you told it (like your name or that you're working on a Ghost theme), but it doesn’t organize those memories by project.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;Projects&lt;/strong&gt; feature is amazing for keeping chats and uploads organized, but memory isn’t isolated to one project versus another.&lt;/li&gt;
&lt;li&gt;If you go to &lt;code&gt;Settings → Personalization → Manage Memory&lt;/code&gt;, you can see what it remembers and delete specific entries—but it’s still one big pool of memory.&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;
  
  
  So, how do you carry memory across projects?
&lt;/h3&gt;

&lt;p&gt;There’s no native way to export memory and plug it into a new project. But here's what I’ve been doing that actually works:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Export your chat history&lt;/strong&gt;: Go to &lt;code&gt;Settings → Data Controls → Export Data&lt;/code&gt; and you’ll get a ZIP with all your chats.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Save useful logic and notes&lt;/strong&gt; from past chats into a document.&lt;/li&gt;
&lt;li&gt;When starting a new project, upload that document or paste in key info. ChatGPT will use it during that conversation—even if it doesn’t "remember" it forever.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It’s not real memory, but it’s a repeatable way to simulate it.&lt;/p&gt;


&lt;h2&gt;
  
  
  What it teaches us
&lt;/h2&gt;

&lt;p&gt;This is what I love most: these quirks in AI aren’t just bugs—they’re mirrors.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When LLMs trip over negation, they reveal how &lt;strong&gt;language is more than structure—it’s logic in disguise&lt;/strong&gt;, and logic is never as simple as it looks.
When their memory fades, they remind us that attention, reinforcement, and structure matter—not just for machines but also for our own learning.&lt;/li&gt;
&lt;li&gt;When we build systems that help them remember better, we’re also uncovering what we need to &lt;strong&gt;organize complexity in our own minds.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  What I’ve learned
&lt;/h2&gt;

&lt;p&gt;Here’s what’s helped me when working with AI (and people, frankly, haha. 🫠 ):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Say what you want to happen—avoid phrasing in terms of what &lt;em&gt;not&lt;/em&gt; to do
&lt;/li&gt;
&lt;li&gt;Keep logic simple and sequential
&lt;/li&gt;
&lt;li&gt;Break long workflows into smaller steps or shorter conversations
&lt;/li&gt;
&lt;li&gt;Use memory intentionally—don’t expect it to hold your entire logic stack indefinitely
&lt;/li&gt;
&lt;li&gt;Leverage a project-based organization to simulate long-term context
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;And maybe the biggest lesson?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;AI and humans remember things in very different ways.&lt;/p&gt;

&lt;p&gt;For us, memory is layered—it’s shaped by emotion, context, repetition, and meaning. We don’t just recall facts; we hold on to stories, mistakes, and feelings. We forget when we’re overwhelmed, but we remember what touches us deeply.&lt;/p&gt;

&lt;p&gt;ChatGPT’s memory, by contrast, is more like a list: detached, structured, and factual. It forgets by default unless told otherwise, and it doesn’t “feel” the past.&lt;/p&gt;

&lt;p&gt;And yet, watching how AI handles memory—where it helps and where it fails—has taught me a lot about how my own memory works, too:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We need clarity and repetition.
&lt;/li&gt;
&lt;li&gt;We remember better when things are meaningful.
&lt;/li&gt;
&lt;li&gt;And just like AI, we benefit from structure, but we add our own human layers on top.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the end, these tools don’t just assist us, they reflect us. &lt;/p&gt;

&lt;p&gt;If this topic resonates with you, I highly recommend watching this short talk:&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/wv779vmyPVY"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;As the video highlights, we’re not just using AI; we’re working with it, learning alongside it, and shaping what it becomes while reflecting on who we are. If that’s not creativity, I don’t know what is.&lt;/p&gt;




&lt;h2&gt;
  
  
  Want to go deeper?
&lt;/h2&gt;

&lt;p&gt;I’m thinking about writing a short series on how large language models really work and what that means for everyday people using AI in their projects.&lt;/p&gt;

&lt;p&gt;Would that interest you? Leave a comment and let me know. If there’s interest, I’ll dive in 🥽. Talk soon, take care.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>chatgpt</category>
      <category>llm</category>
    </item>
    <item>
      <title>Web Dev Path Updates - May 2025</title>
      <dc:creator>Cheryl M</dc:creator>
      <pubDate>Thu, 22 May 2025 00:11:43 +0000</pubDate>
      <link>https://forem.com/wdp/web-dev-path-updates-may-2025-4o26</link>
      <guid>https://forem.com/wdp/web-dev-path-updates-may-2025-4o26</guid>
      <description>&lt;h2&gt;
  
  
  Expanding the team
&lt;/h2&gt;

&lt;p&gt;Since 2020, Web Dev Path has been building a supportive, hands-on community where entry-level tech professionals grow through real experience. Now, we’re stepping into our next phase: onboarding web projects from Canadian small businesses and non-profits that are willing to fund development costs while supporting community learning.&lt;/p&gt;

&lt;p&gt;In the last month, we have onboarded four scrum masters and project mangers. Now we are looking for two &lt;a href="https://www.linkedin.com/posts/web-dev-path_home-web-dev-path-activity-7326086643902218240-gKoH?utm_source=share&amp;amp;utm_medium=member_desktop&amp;amp;rcm=ACoAAAp-po0BF5N4GzIfnDN7cFdbG4lURvqHSs8" rel="noopener noreferrer"&gt;UI/UX designers&lt;/a&gt; to join our team! If you're interested, please send us a message on our website - &lt;a href="http://www.webdevpath.co" rel="noopener noreferrer"&gt;www.webdevpath.co&lt;/a&gt;. Be sure to include your LinkedIn profile and a short introduction so we can schedule a meeting with you!&lt;/p&gt;

&lt;h2&gt;
  
  
  Migrating to Typescript
&lt;/h2&gt;

&lt;p&gt;We have started planning to migrate our website from JavaScript to TypeScript. This will happen in stages:&lt;/p&gt;

&lt;h4&gt;
  
  
  1. &lt;a href="https://github.com/Web-Dev-Path/web-dev-path/issues/235" rel="noopener noreferrer"&gt;Upgrade all packages&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;This includes upgrading Next.js to version 15, React to v19, and we will also have to upgrade Node.js version on Netlify. &lt;/p&gt;

&lt;h4&gt;
  
  
  2. &lt;a href="https://github.com/Web-Dev-Path/web-dev-path/issues/236" rel="noopener noreferrer"&gt;Setup Typescript Support&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;Following the &lt;a href="https://www.typescriptlang.org/docs/handbook/migrating-from-javascript.html" rel="noopener noreferrer"&gt;Typescript Migration Guide&lt;/a&gt;, we will set up the project in a way that it supports both TypeScript and JavaScript files during the transition phase. All new pages and components will be made with typescript while we gradually migrate old JavaScript files to TypeScript.&lt;/p&gt;

&lt;h2&gt;
  
  
  Moving Away from Styled components
&lt;/h2&gt;

&lt;p&gt;We have completed the migration to styled-components on our website in 2023. Recently, styled-components announced that they are &lt;a href="https://opencollective.com/styled-components/updates/thank-you" rel="noopener noreferrer"&gt;entering maintenance mode&lt;/a&gt;. We had a discussion as to whether we have to move away from styled-components. &lt;/p&gt;

&lt;p&gt;We believe it might be something we eventually need to do, but there is no immediate need to move away from it. In the next few months, we will investigate alternatives to styled-components, and develop a strategy for the migration. &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>career</category>
    </item>
    <item>
      <title>It’s product-building time, baby!</title>
      <dc:creator>Mariana Caldas</dc:creator>
      <pubDate>Mon, 21 Apr 2025 18:27:09 +0000</pubDate>
      <link>https://forem.com/wdp/its-product-building-time-baby-12gk</link>
      <guid>https://forem.com/wdp/its-product-building-time-baby-12gk</guid>
      <description>&lt;p&gt;In our Web Dev Path product management series based on the Stanford course &lt;a href="https://online.stanford.edu/courses/xprod110-product-management-transforming-opportunities-great-products" rel="noopener noreferrer"&gt;Product Management: Transforming Opportunities into Great Products&lt;/a&gt;, we've talked about the importance of identifying user problems, designing thoughtful solutions, and crafting a product vision that aligns business goals with user needs. Now, it's time to turn those ideas into something tangible: we build.&lt;/p&gt;

&lt;p&gt;The build phase is where the vision starts to materialize—where all the research, alignment, and ideation converge into a first version of the product. But this phase is more than just execution. It’s where clarity turns into momentum, and where product managers must balance speed, focus, and adaptability.&lt;/p&gt;




&lt;h2&gt;
  
  
  Vision vs. Product: What are we building?
&lt;/h2&gt;

&lt;p&gt;We already know that the &lt;a href="https://dev.to/wdp/defining-the-product-vision-2bc8"&gt;product vision&lt;/a&gt; translates the company’s mission into an actionable blueprint. But in the build phase, it’s worth zooming in on one key idea:&lt;/p&gt;

&lt;p&gt;A product is only successful if it stays &lt;strong&gt;true to the vision&lt;/strong&gt; while adapting to real-world constraints.&lt;/p&gt;

&lt;p&gt;This is where alignment becomes critical. Each line of code, each feature shipped, should move us closer to the future we’ve committed to creating. If your product vision emphasizes transparency and trust, then what you build— and how you build it —must reflect those values. This includes aspects such as how data is handled, the onboarding experience, and how content is personalized.&lt;/p&gt;

&lt;p&gt;For PMs, this means checking in constantly: &lt;em&gt;Is what we’re building consistent with our vision? Or are we prioritizing what’s easy to ship over what actually matters?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The answer to those questions should guide how we define our &lt;strong&gt;Minimum Viable Product (MVP).&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Minimum Viable Product (MVP)
&lt;/h2&gt;

&lt;p&gt;An MVP is not a half-baked product. It’s the smallest version of your solution that delivers real value to your target users and helps you learn something meaningful from a quick testing phase with user validation through surveys and user experience sessions, for example.&lt;/p&gt;

&lt;p&gt;Your MVP should:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Solve a clear and validated problem.
&lt;/li&gt;
&lt;li&gt;Deliver one strong core feature that reflects your vision.
&lt;/li&gt;
&lt;li&gt;Be measurable so that you can quickly assess your success.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Tip:&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Avoid bloating your MVP with assumptions disguised as must-haves. Instead, focus on what gets you the highest learning return for the lowest build cost. If you can’t clearly explain the problem your MVP solves and what you’re testing, it’s probably not minimal or viable.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  How do we measure what we’re building?
&lt;/h2&gt;

&lt;p&gt;Building a product without tracking whether it works is like flying blind. That’s where metrics and, more specifically, &lt;strong&gt;OKRs (Objectives and Key Results)&lt;/strong&gt; come in.&lt;/p&gt;

&lt;p&gt;Here’s how metrics support the build phase:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;They align the team around what success looks like.
&lt;/li&gt;
&lt;li&gt;They help you prioritize what to build first.
&lt;/li&gt;
&lt;li&gt;They provide early signals to validate (or invalidate) your assumptions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s break that down. Start by setting a &lt;strong&gt;clear objective&lt;/strong&gt;, which is the desired outcome for your users or business. Then, define 3–5 measurable key results that indicate whether you’re on track. These aren’t just aspirational—they should be &lt;em&gt;quantifiable, realistic, and time-bound&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Example: a dating app feature that assists users in filling out their profiles&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Objective:&lt;/strong&gt; Help users feel more in control of their online dating experience.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Key Result 1:&lt;/strong&gt; Increase profile completion rate from 50% to 90%.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Key Result 2:&lt;/strong&gt; Increase match numbers by 30% due to more complete profiles.   &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Key Result 3:&lt;/strong&gt; Reduce profile editing churn (users who abandon mid-way when they find the process boring or too complex) by 40%.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once your OKRs are in place, you’ll want to track them using lightweight dashboards or tools like:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://support.atlassian.com/platform-experiences/docs/use-goal-status-to-track-objectives-and-key-results/" rel="noopener noreferrer"&gt;JIRA dashboards&lt;/a&gt; (paired with sprint goals),&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Google Sheets or Notion (for early-stage products),&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Product analytics tools, such as &lt;a href="https://mixpanel.com/" rel="noopener noreferrer"&gt;Mixpanel&lt;/a&gt;, can be used to monitor user behavior in real-time.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Tip:&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Pair quantitative metrics with qualitative feedback.&lt;/strong&gt; A rise in profile completion is great, but hearing &lt;em&gt;why&lt;/em&gt; users finished their profile (or didn’t) through user interviews or surveys is what brings context to the numbers.&lt;/p&gt;

&lt;p&gt;Whether you’re using OKRs or another framework, the principle remains the same: build with accountability. Metrics ensure you’re solving the right problem the right way, with evidence to back it up.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  What is the PM's job in this phase?
&lt;/h2&gt;

&lt;p&gt;During this phase, the PM serves as a translator between the strategic and tactical levels. You’re not here to micromanage, you’re here to keep the team aligned, empowered, and unblocked. You’re also responsible for keeping the product cohesive, ensuring that each feature connects to the overall product strategy, rather than becoming a scattered list of to-dos.&lt;/p&gt;

&lt;h3&gt;
  
  
  Here’s how you show up:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Clarify the “why”&lt;/strong&gt;—every sprint, every ticket, every iteration should map back to your product vision.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Unblock the team&lt;/strong&gt;—whether it’s cross-team coordination, late decisions, or shifting priorities.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hold the line on quality&lt;/strong&gt;—not in a perfectionist way, but to protect user trust.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Keep the energy up&lt;/strong&gt;—acknowledge wins, protect focus, and yes, sometimes bring the donuts.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An experienced Product Manager knows that structure enables creativity. During the build phase, systems such as sprint planning, QA gates, retrospectives, and feedback loops (thanks, well-applied Scrum Agile!) help keep the team moving in sync.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;These systems create clarity on what’s next.
&lt;/li&gt;
&lt;li&gt;They ensure velocity without chaos.
&lt;/li&gt;
&lt;li&gt;And they give everyone confidence that the product is moving in the right direction.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The build phase is also when we start thinking about what comes next—the launch. But we’re not there &lt;em&gt;yet&lt;/em&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  What’s coming next: launch types and go-to-market
&lt;/h2&gt;

&lt;p&gt;Once your MVP is ready, the next natural step is to get it into the hands of users. But not all launches are the same. In our upcoming articles, we’ll cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Different &lt;strong&gt;types of product launches&lt;/strong&gt;—from soft beta rollouts to full public releases.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How to design a thoughtful &lt;strong&gt;go-to-market (GTM) strategy&lt;/strong&gt; that drives adoption and closes the loop on your product lifecycle.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the final stretch of the Stanford course—and it’s where all the upstream thinking pays off.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final thoughts: build with clarity, test with intention
&lt;/h2&gt;

&lt;p&gt;If defining the product vision gave you the blueprint, then building is where you lay the foundation. And just like any structure, what you build now will shape everything that comes next, so it pays to be intentional.&lt;/p&gt;

&lt;p&gt;Focus on solving the core problem. Use metrics to keep your eyes on the outcome. And empower your team to build something meaningful, not just shippable.&lt;/p&gt;

&lt;p&gt;Talk soon, take care, and get ready to launch 🚀&lt;/p&gt;

</description>
      <category>productmanagement</category>
      <category>productlifecycle</category>
      <category>build</category>
      <category>mvp</category>
    </item>
    <item>
      <title>My Experience with OpenStack Ironic</title>
      <dc:creator>Satoshi S.</dc:creator>
      <pubDate>Fri, 14 Mar 2025 17:56:14 +0000</pubDate>
      <link>https://forem.com/wdp/my-experience-with-openstack-ironic-24hi</link>
      <guid>https://forem.com/wdp/my-experience-with-openstack-ironic-24hi</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F50fcg3m5yfsmaibvbxhq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F50fcg3m5yfsmaibvbxhq.png" alt="ironic and mlh logos" width="350" height="100"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Intro
&lt;/h2&gt;

&lt;p&gt;I'm excited to share that I've been accepted into the MLH fellowship program for the third time. This time, I work on OpenStack/Ironic under the guidance of the G-Research Open Source Team.&lt;/p&gt;

&lt;p&gt;If you are interested in my previous experiences in the program, please check the posts below.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/satoshi-sh/how-i-prepared-mlh-fellowship-application-as-a-career-switcher-1co9"&gt;How I prepared MLH Fellowship Application as a Career Switcher&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/satoshi-sh/my-experience-with-apache-airflow-1dpl"&gt;My Experience with Apache Airflow&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/wdp/devops-practical-experience-with-home-lab-379p"&gt;DevOps Practical Experience with Home Lab&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is OpenStack?
&lt;/h2&gt;

&lt;p&gt;OpenStack is an open-source cloud computing platform that allows organizations to manage compute, storage, and networking resources. It provides an alternative to proprietary cloud platforms like AWS, Azure, and GCP, offering similar services while giving users full control over their infrastructure.&lt;/p&gt;

&lt;p&gt;OpenStack follows a modular architecture, meaning it consists of multiple components, each responsible for different aspects of cloud management. One of these components is Ironic, which I'm working on in this fellowship.&lt;/p&gt;

&lt;p&gt;For more details, visit &lt;a href="https://www.openstack.org/" rel="noopener noreferrer"&gt;the OpenStack website&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Ironic?
&lt;/h2&gt;

&lt;p&gt;Ironic is an OpenStack component designed for managing bare metal infrastructure. It allows users to provision and manage physical servers in a way similar to virtual machines, providing greater flexibility and automation for hardware deployments.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Works
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Writing Hardware Manager Container-Based Cleaning (75%)&lt;/li&gt;
&lt;li&gt;Fixing bugs and updating documenatation (20%)&lt;/li&gt;
&lt;li&gt;Code Review (5%)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Writing Hardware Manager Container-Based Cleaning
&lt;/h3&gt;

&lt;p&gt;My mentor assigned this as my main task for the internship. I feel fortunate to work on this feature, as G-Research (the program sponsor) has wanted it for a while. I’ve spent most of my time implementing it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ironic Python Agent&lt;/strong&gt; is a key actor in Ironic, responsible for preparing machines for deployment. It runs on a ramdisk and performs cleaning, inspection, and provisioning actions by performing "steps" in a given order. As you can tell, I'm going to enhance the cleaning process.&lt;/p&gt;

&lt;p&gt;I created &lt;a href="https://bugs.launchpad.net/ironic/+bug/2100556" rel="noopener noreferrer"&gt;this issue&lt;/a&gt; which was approved in the Ironic Team meeting. Currently updating Cleaning tools for Ironic nodes(servers) requires modifying and redistributing the entire IPA ramdisk image. With this new feature, users will only need to update their cleaning container image, significantly simplifying the process.&lt;/p&gt;

&lt;p&gt;When I was first assigned my main task, I had no idea where to start. But after following my mentors' step-by-step guide, I gradually gained a clear understanding. Here are some of the steps I went through.&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 1: Deploy Devstack on AWS VM
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;DevStack is a lightweight way to set up an OpenStack environment for development and testing.&lt;/li&gt;
&lt;li&gt;Running it on an AWS VM provides a cloud-based environment to test Ironic and Ironic Python Agent.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;OpenStack development happens on remote server, which I find really enjoyable. So far, I've broken my VM 3 times so far and had to start over from scratch each time.&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 2: Add Custom Cleaning process to the IPA RAM
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Confirm the autocleaning leave the log(Ex print("Cleaned by Satoshi"))&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Step 3: Add Podman(Container) operations to the cleaning
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Integrate container operation into the custom cleaning process using Podman &lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Step 4: Implement a config-driven approach
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;This allows users to set up container-based cleaning steps easily by modifying config files, without needing to change the project's code. &lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  End Goal
&lt;/h4&gt;

&lt;p&gt;I'm almost done with the feature implementation, but landing three PRs across different repositories is not easy.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add ContainerHardwareManager (&lt;a href="https://review.opendev.org/c/openstack/ironic-python-agent/+/941714" rel="noopener noreferrer"&gt;PR&lt;/a&gt; to ironic-python-agent)&lt;/li&gt;
&lt;li&gt;Create Podman DIB (&lt;a href="https://review.opendev.org/c/openstack/ironic-python-agent-builder/+/943348" rel="noopener noreferrer"&gt;PR&lt;/a&gt; to ironic-python-agent-builder)&lt;/li&gt;
&lt;li&gt;Send Container Configuration to IPA(upcoming PR to ironic)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The first two are waiting for reviews and I'm about to start working on the third PR. If I manage to land all three, I'll consider this a big success. &lt;/p&gt;

&lt;h2&gt;
  
  
  Some Issues I worked on so far
&lt;/h2&gt;

&lt;p&gt;Besides the main task, I picked up some issues. &lt;/p&gt;

&lt;h3&gt;
  
  
  Documentation - Create Reference Page
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv9ijr0i8gxnsjkvznxfo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv9ijr0i8gxnsjkvznxfo.png" alt="Ironic Reference Page" width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This was my first PR to the OpenStack/Ironic. I learned how to use development tools (Gerrit, Launchpad) and how to write commit messages for OpenStack. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4kfeecjzmp6tutx8clqj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4kfeecjzmp6tutx8clqj.png" alt="Slack message by my mentor about my first PR" width="800" height="324"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am glad I impressed my mentor with this PR.😄&lt;/p&gt;

&lt;h3&gt;
  
  
  Code - Code Refactoring and Log enhancement
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9aulo443qtig2xtx8wrs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9aulo443qtig2xtx8wrs.png" alt="Code updates" width="766" height="535"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While this wasn’t technically challenging, I’m really proud of this work because it will help future developers. During development, I initially missed making the kernel/ram image public, and the log simply stated that the image wasn’t found.&lt;/p&gt;

&lt;p&gt;In this log enhancement, I made it much easier to spot the actual issue: a permission problem. It took me quite a bit of time to fix, but it was worth it to improve the debugging process for anyone working with the code in the future.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I'm grateful for this great learning opportunity provided by MLH fellowship and G-Research. A lot of learning has happened in this short amount of time. I will be implementing a feature that many companies will rely on sooner.&lt;/p&gt;

&lt;p&gt;Happy coding!!&lt;/p&gt;

&lt;h2&gt;
  
  
  After Notes
&lt;/h2&gt;

&lt;p&gt;I successfully wrapped up my internship with OpenStack/Ironic. You can check my contributions &lt;a href="https://review.opendev.org/q/satoshi-sh" rel="noopener noreferrer"&gt;here&lt;/a&gt;. I created 15 PRs, including container-based cleaning features, and reviewed 5 PRs during the program.&lt;/p&gt;

&lt;p&gt;It's been an incredible learning experience. I hope this journey opens doors to new opportunities.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fncrlovkha12jlgdoxv26.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fncrlovkha12jlgdoxv26.png" alt="OpenStack Contributor's Badge" width="800" height="292"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>mlh</category>
      <category>python</category>
      <category>devops</category>
    </item>
    <item>
      <title>Defining the product vision</title>
      <dc:creator>Mariana Caldas</dc:creator>
      <pubDate>Mon, 17 Feb 2025 21:21:53 +0000</pubDate>
      <link>https://forem.com/wdp/defining-the-product-vision-2bc8</link>
      <guid>https://forem.com/wdp/defining-the-product-vision-2bc8</guid>
      <description>&lt;p&gt;Hey, community! It’s time to talk about the importance of understanding the product vision to help our teams make the best decisions when creating a new product or extending its reach with new features.&lt;/p&gt;

&lt;p&gt;A clear product vision is like a compass in product development. Over time, I’ve discovered that it’s not just about a catchy statement—it can be turned into a guiding framework that helps every decision, every feature, and every iteration stay true to the core value we want to deliver.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is product vision?
&lt;/h2&gt;

&lt;p&gt;Before we dive in, let’s clear up any confusion: while &lt;a href="https://www.atlassian.com/work-management/strategic-planning/mission-and-vision" rel="noopener noreferrer"&gt;company vision&lt;/a&gt; is the broad, overarching goal that shapes the entire organization, product vision is a focused, actionable blueprint for a specific product. In essence, the product vision takes the company's big-picture aspirations into concrete plans that drive every decision, feature, and iteration.&lt;/p&gt;

&lt;p&gt;Product vision is the strategic guide that answers two essential questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Why does this product exist?&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What value does it deliver to our users?&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This clarity anchors your team’s efforts, ensuring every decision is aligned with solving a real user problem.&lt;/p&gt;




&lt;h2&gt;
  
  
  The product vision framework
&lt;/h2&gt;

&lt;p&gt;I find it helpful to break down product vision into five detailed elements. Each one plays a role in shaping the product’s direction:&lt;/p&gt;

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

&lt;p&gt;Begin by defining who you’re serving—the persona—and pinpoint the specific challenge they face.  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Imagine community organizers (persona) who need timely, culturally relevant information to coordinate events (problem).&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Solution
&lt;/h3&gt;

&lt;p&gt;Outline what a Minimum Viable Product (MVP) would look like to address that problem directly.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;A basic dashboard that aggregates and displays real-time community updates. This initial version should serve as the foundation for further enhancements.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Improvements
&lt;/h3&gt;

&lt;p&gt;Envision additional features that could expand on the MVP over time.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;As the product matures, you might layer on customizable notifications or predictive analytics to better anticipate community needs.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Trade-offs
&lt;/h3&gt;

&lt;p&gt;Consider the necessary compromises by balancing security, performance, and cultural sensitivity.  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;A geolocation feature might promise localized content delivery. However, if it restricts access in a way that frustrates users, those trade-offs must be carefully weighed.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Wild ideas
&lt;/h3&gt;

&lt;p&gt;Leave room for bold, innovative thinking that challenges the status quo—ideas that might seem unconventional at first but could redefine your product’s potential.  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Experimenting with AI-driven personalization may start as a conceptual idea but can eventually open entirely new avenues for user engagement.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Product vision in action
&lt;/h2&gt;

&lt;p&gt;Let’s examine two contrasting real-case scenarios I’ve experienced as a product manager that show why a well-defined product vision is essential.&lt;/p&gt;

&lt;h3&gt;
  
  
  Case 1: The geolocation misstep
&lt;/h3&gt;

&lt;h4&gt;
  
  
  The idea:
&lt;/h4&gt;

&lt;p&gt;A product team set out to boost content relevance by developing a geolocation-based feature. The idea was to restrict access to specific content based on a user's location to ensure that only the most relevant audience could engage with it. The goal was to create a more personalized experience, ensuring that sensitive or context-specific information was only visible to those within a designated area.&lt;/p&gt;

&lt;h4&gt;
  
  
  What went wrong:
&lt;/h4&gt;

&lt;p&gt;While the team correctly identified the problem—making content more relevant by tying it to physical locations—they didn’t account for how different users would perceive the restriction.&lt;/p&gt;

&lt;p&gt;For some users, the feature made perfect sense. However, for others, it felt like an unnecessary barrier, blocking them from accessing content that was previously available to them. This misalignment stemmed from not fully understanding the cultural and practical expectations of their target users. In communities where shared knowledge and open access to resources are highly valued, the restriction unintentionally created frustration and disengagement.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Without a comprehensive product vision that accounted for user context, cultural sensitivity, and accessibility needs (the personas' full picture), the feature failed to deliver the intended value.&lt;/u&gt; Instead of enhancing engagement, it alienated users who felt excluded from important content, weakening trust in the platform.&lt;/p&gt;

&lt;h3&gt;
  
  
  Case 2: The data integration overhaul
&lt;/h3&gt;

&lt;h4&gt;
  
  
  The Idea:
&lt;/h4&gt;

&lt;p&gt;In another scenario, a team discovered that their method of connecting users to essential data was outdated and inefficient. They had an opportunity to rethink their API integration strategy.&lt;/p&gt;

&lt;h4&gt;
  
  
  What worked well:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Problem:&lt;/strong&gt; The core issue was slow data access caused by an inefficient REST-based approach, negatively impacting user satisfaction.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Solution:&lt;/strong&gt; Their MVP was a new integration model that streamlined data retrieval and improved performance.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Improvements:&lt;/strong&gt; The vision allowed for future enhancements, such as stronger security measures and real-time monitoring as the product evolved.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trade-offs:&lt;/strong&gt; The team carefully balanced the need for performance improvements while maintaining data security and system stability.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wild Ideas:&lt;/strong&gt; They stayed open to exploring alternative technologies that could push performance even further.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This approach resulted in a measurable boost in performance and perfectly aligned with both user needs and business objectives—a clear demonstration of how a well-articulated product vision can drive success.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final thoughts: see product vision as a blueprint.
&lt;/h2&gt;

&lt;p&gt;Think of your product vision as a blueprint that empowers you to confidently say “yes” to initiatives that matter and “no” to distractions that deviate from your true objectives. Besides benefiting prioritization, being guided by a strong product vision will foster the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Alignment:&lt;/strong&gt; It ensures every feature and decision supports the product’s core purpose.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consistency:&lt;/strong&gt; It keeps your team on track, even as market conditions and user needs evolve.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A well-defined product vision can be more than an abstract concept—it can become a practical framework that shapes every aspect of product development. By clearly identifying the problem, defining an MVP, planning for future improvements, weighing trade-offs, and daring to dream with wild ideas, you build a robust foundation for success.&lt;/p&gt;

&lt;p&gt;What strategies do you use to ensure your product vision remains the guiding force in your projects? I’d love to hear your thoughts and experiences.&lt;/p&gt;

&lt;p&gt;Talk soon, take care.&lt;/p&gt;

</description>
      <category>productmanagement</category>
      <category>productvision</category>
    </item>
    <item>
      <title>Start contributing to a Popular Open Source Project</title>
      <dc:creator>Satoshi S.</dc:creator>
      <pubDate>Tue, 28 Jan 2025 19:33:49 +0000</pubDate>
      <link>https://forem.com/wdp/start-contributing-to-a-popular-open-source-project-5ea</link>
      <guid>https://forem.com/wdp/start-contributing-to-a-popular-open-source-project-5ea</guid>
      <description>&lt;h2&gt;
  
  
  Prelude
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/Avaiga/taipy" rel="noopener noreferrer"&gt;Taipy&lt;/a&gt; is a Python web framework for data-driven applications. Developers can build web applications only with Python. The simple method for building web applications is especially beneficial for Data Scientists and analytics professionals. They are gaining popularity in the field. At the time of writing this post, they have 1.9k forks and 17.6k stars.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpz583camvghfbssdferm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpz583camvghfbssdferm.png" alt="Taipy repo stats" width="800" height="49"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I have been contributing to Taipy for a while now. I started because of my strong interest in data science and analytics, and I felt that my tech skills aligned well with the project. Contributing has given me practical experience solving problems for developers using this framework, and I’ve learned a lot from feedback provided by experienced maintainers. During Hacktoberfest, I found many developers struggled to test their updates on their environment. I want to share my workflow in this post. I hope this helps someone who wants to contribute to Taipy. &lt;/p&gt;

&lt;h2&gt;
  
  
  Setup the workflow
&lt;/h2&gt;

&lt;p&gt;When you want to start contributing to a project, you will go to the &lt;a href="https://github.com/Avaiga/taipy/blob/develop/CONTRIBUTING.md" rel="noopener noreferrer"&gt;CONTRIBUTING.md&lt;/a&gt; first. Once you read through the contribution guide. You will find Taipy is using React behind the scenes even though users don't need to touch any JavaScript. &lt;/p&gt;

&lt;p&gt;The majority of my contributions are for the React part. To check updates, you need to build the React, install the updated Taipy to your Python environment, and run a test Tapy script. It's a bit of work to do this every time. I created a bash script for this. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;taipy-build.sh&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#!/bin/bash
# automate build process of Taipy repo

# Build taipy-gui
cd ~/projects/taipy/frontend/taipy-gui/dom;
npm i;
cd ..;
npm i --omit=optional;
npm run build;

# Build taipy
cd ~/projects/taipy/frontend/taipy;
npm i;
npm run build;

# install new taipy

cd ~/projects/test-taipy;
source venv/bin/activate
pip install ../taipy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After running this script, I just run &lt;code&gt;taipy run --use-reloader main.py&lt;/code&gt; in the virtual environment. You can see the updated behavior. &lt;/p&gt;

&lt;p&gt;&lt;code&gt;pip install ../taipy&lt;/code&gt; is important you install taipy locally. Please point to the taipy in your file system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example PR
&lt;/h2&gt;

&lt;p&gt;Let's take a look at &lt;a href="https://github.com/Avaiga/taipy/pull/2425" rel="noopener noreferrer"&gt;my first PR&lt;/a&gt; to Taipy in 2025. &lt;/p&gt;

&lt;p&gt;A developer found the height property is not working on the Selector component in Radio mode. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe2o94ecjjlg86b6389vl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe2o94ecjjlg86b6389vl.png" alt="Github issue description" width="800" height="442"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;The first thing to do is to create a simple Python script to reproduce the bug. Otherwise, we cannot check if the update fixed the issue. In this issue, the maintainer provided a script, so I used his script. &lt;/p&gt;

&lt;p&gt;Once I reproduced the bug, I started looking at the Taipy codebase. While searching "Selector", I found the file to work on for this issue "Selector.tsx". I also found the height property is not used for radio mode and check mode in the selector component. I need to pass the height property somehow. Following other styling property handling, it's better to use useMemo and create heights. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fryjiu0am851y86e3i2nv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fryjiu0am851y86e3i2nv.png" alt="heightSx" width="703" height="489"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Initially, I passed the Sx to the parent element(FormControl), it worked fine as expected but the maintainer gave me feedback that it's better to control styling from RadioGroup/FormGroup level as the label remains visible on the Taipy app. This gave me a challenge because the styling didn't work as expected in this way. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5itg8nkjt6rgky5grigt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5itg8nkjt6rgky5grigt.png" alt="Styling is not working" width="800" height="486"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While playing with the styling on the browser developer tools, I found that &lt;code&gt;flexFlow: column wrap&lt;/code&gt; was the reason for this behavior. I added &lt;code&gt;flexFlow: 'column nowrap&lt;/code&gt; to the heightSx. I validated this work as expected with the test script after installing the updated taipy. &lt;/p&gt;

&lt;p&gt;After implementing it, I need to create unit tests. Adding a new test case is not so bad as I can see many examples from the existing tests. I added new tests for radio and check mode height styling. &lt;/p&gt;

&lt;p&gt;It looks straightforward but it took me lots of tries and errors. After refining a PR with the maintainers' feedback, it's getting approved and merged.🎉🎉&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp3xvhi187gx0p457r9ze.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp3xvhi187gx0p457r9ze.png" alt="Approvements" width="800" height="486"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Pick the right issue for you
&lt;/h2&gt;

&lt;p&gt;I know the feeling that you want to do impressive work, however, it's not sustainable for you and the maintainers if you take too difficult issues for your level. Easier issues will get you familiar with the project and you also learn something new. I usually research the issue a bit before asking for the assignment to ensure I can handle it.&lt;/p&gt;

&lt;p&gt;As Tomo Fujita says&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Don't Worry&lt;br&gt;
Don't Compare&lt;br&gt;
Don't expect too fast&lt;br&gt;
Be kind to yourself&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If contributing to Taipy repo is too much, you can also take a look at &lt;a href="https://github.com/Avaiga/taipy-doc" rel="noopener noreferrer"&gt;taipy-doc&lt;/a&gt;. Documentation matters for libraries. &lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Contributing to Taipy has been a rewarding journey. Whether you’re fixing bugs, enhancing features, or improving documentation, every contribution matters. Don’t hesitate to start small—your efforts could help the next developer struggling with the same issue!&lt;/p&gt;

</description>
      <category>python</category>
      <category>opensource</category>
      <category>taipy</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Designing the solution in product management</title>
      <dc:creator>Mariana Caldas</dc:creator>
      <pubDate>Fri, 10 Jan 2025 23:03:49 +0000</pubDate>
      <link>https://forem.com/wdp/designing-the-solution-in-product-management-38i2</link>
      <guid>https://forem.com/wdp/designing-the-solution-in-product-management-38i2</guid>
      <description>&lt;p&gt;In our &lt;a href="https://www.webdevpath.co/blog" rel="noopener noreferrer"&gt;Web Dev Path&lt;/a&gt; product management series guided by the Stanford program, &lt;a href="https://online.stanford.edu/courses/xprod110-product-management-transforming-opportunities-great-products" rel="noopener noreferrer"&gt;Product Management: Transforming Opportunities into Great Products&lt;/a&gt;, we’ve been exploring themes such as &lt;a href="https://dev.to/wdp/an-introduction-to-product-management-55ge"&gt;the role of a Product Manager&lt;/a&gt;, the &lt;a href="https://dev.to/wdp/understanding-the-problem-space-in-product-management-1ffi"&gt;problem space&lt;/a&gt;, the &lt;a href="https://dev.to/wdp/understanding-the-product-lifecycle-3g93"&gt;product lifecycle&lt;/a&gt; and &lt;a href="https://dev.to/wdp/crafting-stories-that-drive-product-success-14i4"&gt;how to create roadmaps&lt;/a&gt;. Now, it’s time to move into the &lt;strong&gt;solution space&lt;/strong&gt;, where creativity meets structure. This phase—&lt;strong&gt;designing the solution&lt;/strong&gt;—is where product managers work with their teams to brainstorm, prototype, and identify ideas that balance desirability, viability, and feasibility.&lt;/p&gt;

&lt;p&gt;Let’s break it down and dive into how we transform opportunities into thoughtful, user-centered solutions.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Divergence: generating ideas&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The first step in designing the solution is &lt;strong&gt;divergence&lt;/strong&gt;—creating choices and capturing a wide range of ideas. Divergence invites your team to explore possibilities and think creatively about how to address user problems.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Framing opportunities with "How might we"&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;“How might we” (HMW) statements are a powerful tool for framing opportunities and guiding brainstorming sessions. A good HMW captures the essence of the problem while leaving room for creativity.&lt;/p&gt;

&lt;p&gt;Once you’ve crafted HMW statements, clustering ideas into themes aligned with user concerns ensures your brainstorming remains focused and actionable. For example, if users struggle with “authenticity” on dating platforms, themes might include profile personalization, user-to-user communication, or storytelling tools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;"How might we help well-educated professionals make more meaningful online connections?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;To refine HMW statements, consider:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adding context from user feedback (e.g., “I don’t attract the kind of people I like on dating apps”).
&lt;/li&gt;
&lt;li&gt;Segmenting your customers for tailored insights.
&lt;/li&gt;
&lt;li&gt;Exploring follow-up questions to uncover additional perspectives.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;"Emerging strong themes help identify possible solutions tied to user concerns."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;The role of design constraints&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Design constraints&lt;/strong&gt; are truths about your customer, problem, or company that help narrow down solutions. For example, Ikea prioritizes affordability, while Tesla's early constraints focused on premium pricing and battery technology.&lt;/p&gt;

&lt;p&gt;After defining your HMW statements, filter them through your constraints to prioritize what is achievable. On that matter, it’s important to understand the concepts of desirability, viability and feasibility:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Desirability (human):&lt;/strong&gt; Does the solution address a genuine user need or desire?
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Viability (organization):&lt;/strong&gt; Is the solution aligned with the company’s business goals and financially sustainable?
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Feasibility (technology):&lt;/strong&gt; Can the solution be built with available resources, skills, and technologies?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, when defining design constraints, ask yourself:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is &lt;strong&gt;desirable&lt;/strong&gt; for our users?
&lt;/li&gt;
&lt;li&gt;What is &lt;strong&gt;viable&lt;/strong&gt; for our business?
&lt;/li&gt;
&lt;li&gt;What is &lt;strong&gt;feasible&lt;/strong&gt; given our technology or resources?&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Scenario:&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;"For a meal delivery service targeting urban professionals, desirability might mean offering fast and healthy options, viability could hinge on competitive pricing, and feasibility would depend on existing delivery infrastructure."&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The intersection of desirability, viability, and feasibility is where innovation thrives."&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Convergence: prioritizing and testing ideas&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Once you’ve created your ideas and filtered them through divergence, it’s time to converge—narrowing down the options and testing the most promising ones.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Testing solutions: Which ideas should be tested first?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;After capturing a wide range of ideas during divergence, the next step is convergence, where you refine and prioritize the best options for testing. Focus on de-risking by identifying assumptions that could make or break your solution. Rank assumptions by uncertainty and importance.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Example of assumptions to test:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Do we have demand for this product?&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Will users integrate this feature easily into their daily routines?&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Are there technical or budget constraints?&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Scenario:&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;"A language-learning app team might test whether users will pay for premium features and if reminders boost engagement or lead to app fatigue."&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The goal is to test assumptions cheaply and iteratively while maintaining quality."&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Prototyping on a budget&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Prototyping doesn’t have to be expensive. Tools like &lt;strong&gt;Figma&lt;/strong&gt;, &lt;strong&gt;Adobe XD&lt;/strong&gt;, and &lt;strong&gt;InVision&lt;/strong&gt; allow teams to create high-quality digital prototypes quickly and at a low cost. &lt;a href="https://www.productplan.com/glossary/usability-testing/" rel="noopener noreferrer"&gt;Usability testing&lt;/a&gt; then validates whether the prototype works as intended.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Tips for usability testing:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Test with 5–10 users to capture diverse insights.
&lt;/li&gt;
&lt;li&gt;Remain neutral during sessions to avoid influencing responses.
&lt;/li&gt;
&lt;li&gt;Ask open-ended questions like:

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;“What do you think this is for?”&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;&lt;em&gt;“What would you do next? Why?”&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;"Prototyping helps you de-risk while ensuring you don’t design something users might hate."&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Working with design&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Design represents the &lt;strong&gt;user's voice&lt;/strong&gt;, while product represents the &lt;strong&gt;voice of the business&lt;/strong&gt;. Together, these perspectives create the ideal product.&lt;/p&gt;

&lt;p&gt;Collaboration with the design team should be &lt;strong&gt;iterative and user-centric&lt;/strong&gt; by following some principles, such as:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Establish shared goals:&lt;/strong&gt; Ensure everyone is aligned on the user problem and business objectives.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Iterative process:&lt;/strong&gt; Share early drafts or low-fidelity designs with the team to gather feedback quickly.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User involvement:&lt;/strong&gt; Run usability tests together to hear user feedback firsthand.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clear roles:&lt;/strong&gt; Define design, product, and engineering responsibilities to avoid overlaps and ensure efficient collaboration.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Case study: P&amp;amp;G’s Swiffer innovation&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In 1994, P&amp;amp;G set out to generate $5 billion from new products. Their user research revealed cleaning pain points:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;People changed into dirty clothes before mopping.
&lt;/li&gt;
&lt;li&gt;Mopping required sweeping first.
&lt;/li&gt;
&lt;li&gt;The process was messy and time-consuming.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of creating another detergent, which is what other companies were doing, P&amp;amp;G reframed the problem as:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"How might we reimagine the tools we use to mop?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This evolved into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;“How might we remove the step of sweeping before mopping?”&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;“How might we build a tool so users never have to touch dirt?”&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;&lt;em&gt;“How might we create a mop that could attract dirt to itself?”&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result? The &lt;strong&gt;Swiffer&lt;/strong&gt; launched in 1999 and generated over $100 million in revenue within four months.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The best solutions emerge when user insights, constraints, and creativity intersect."&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Overview of the Designing the Solution Process&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Designing the solution requires balancing creativity with practicality. Here’s a recap of key takeaways:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Divergence:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Start with a clear user problem statement from the problem space (Evaluating Opportunity phase).
&lt;/li&gt;
&lt;li&gt;Create thoughtful HMW statements and cluster ideas into themes.
&lt;/li&gt;
&lt;li&gt;Establish design constraints to filter those ideas.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Convergence:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Identify key assumptions from the filtered ideas and test them first.
&lt;/li&gt;
&lt;li&gt;Use tools like Figma to prototype quickly and cheaply.
&lt;/li&gt;
&lt;li&gt;Involve users through usability testing to refine your solution.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Think about a challenge your team is currently facing. How might these approaches to divergence and convergence help you design a better solution?&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Final thoughts&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In product management, designing the solution is where the magic starts to happen. By balancing divergence and convergence, you ensure that creativity and user insights drive your solutions while practical constraints guide their execution.&lt;/p&gt;

&lt;p&gt;Our following articles will dive into the next phases of the product lifecycle—building and shipping your product. Until then, let us know: &lt;em&gt;What techniques do you use to generate and test ideas?&lt;/em&gt; Talk soon, take care.&lt;/p&gt;

</description>
      <category>productmanagement</category>
      <category>designthinking</category>
    </item>
  </channel>
</rss>
