<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ product development - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ product development - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sat, 23 May 2026 19:40:59 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/product-development/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ How to Prioritize as a Product Manager – Product Prioritization Frameworks Explained ]]>
                </title>
                <description>
                    <![CDATA[ Prioritization in product management is hardly about what metric takes precedence over the other. Of all the roles a product manager plays, one of the most difficult is deciding what to work on next. Why? Because everything feels urgent. Engineers wa... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-prioritize-as-a-product-manager/</link>
                <guid isPermaLink="false">697bf73e79322b4a93ac0fb8</guid>
                
                    <category>
                        <![CDATA[ Product Management ]]>
                    </category>
                
                    <category>
                        <![CDATA[ agile ]]>
                    </category>
                
                    <category>
                        <![CDATA[ user experience ]]>
                    </category>
                
                    <category>
                        <![CDATA[ product development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Onyinyechi Nwaucha ]]>
                </dc:creator>
                <pubDate>Fri, 30 Jan 2026 00:11:42 +0000</pubDate>
                <media:content url="https://cdn.hashnode.com/res/hashnode/image/upload/v1769731875495/c2d3feca-a09e-454c-93de-bc00607ac517.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Prioritization in product management is hardly about what metric takes precedence over the other. Of all the roles a product manager plays, one of the most difficult is deciding what to work on next. Why? Because everything feels urgent. Engineers want to fix technical debt, users want improvements, stakeholders have more opinions than practical solutions, and so on. With that kind of pressure and without a proper framework, it is easy to focus on the wrong thing.</p>
<p>And this is where prioritization comes in. In this article, you'll learn how product managers prioritize work, what guides their decisions, and the frameworks they use to decide what does and does not get built.</p>
<h2 id="heading-table-of-contents">Table of Contents</h2>
<ul>
<li><p><a class="post-section-overview" href="#heading-why-prioritization-is-difficult">Why Prioritization is Difficult</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-what-do-product-managers-really-prioritize">What Do Product Managers Really Prioritize?</a></p>
<ul>
<li><p><a class="post-section-overview" href="#heading-user-problems-and-not-feature-ideas">User Problems and Not Feature Ideas</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-business-outcomes-not-tasks">Business Outcomes, not Tasks</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-trade-offs-not-preferences">Trade-offs, not Preferences</a></p>
</li>
</ul>
</li>
<li><p><a class="post-section-overview" href="#heading-what-inputs-drive-product-prioritization">What Inputs Drive Product Prioritization?</a></p>
<ul>
<li><p><a class="post-section-overview" href="#heading-user-feedback-and-research">User Feedback and Research</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-product-metrics">Product Metrics</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-business-goals">Business Goals</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-technical-limits-and-demands">Technical Limits and Demands</a></p>
</li>
</ul>
</li>
<li><p><a class="post-section-overview" href="#heading-prioritization-frameworks">Prioritization Frameworks</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-why-do-prioritization-frameworks-exist">Why Do Prioritization Frameworks Exist?</a></p>
<ul>
<li><p><a class="post-section-overview" href="#heading-rice-scoring">RICE Scoring</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-kano-model">Kano Model</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-moscow-method">MoSCoW Method</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-ice-framework">ICE Framework</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-impact-vs-effort-matrix">Impact vs Effort Matrix</a></p>
</li>
</ul>
</li>
<li><p><a class="post-section-overview" href="#heading-how-to-choose-the-right-framework">How to Choose the Right Framework</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-common-prioritization-mistakes">Common Prioritization Mistakes</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-conclusion">Conclusion</a></p>
</li>
</ul>
<h2 id="heading-why-prioritization-is-difficult">Why Prioritization is Difficult</h2>
<p>Prioritization can be difficult because product managers must almost always choose between multiple viable options. Between requests centered on optimization and bug fixing, increasing revenue, and reliability concerns from users, stakeholders, the design team, engineers, and sales departments, we can see how easy it is to build the wrong thing.</p>
<p>Each of the requests would be entirely legitimate when considered separately, but determining which is more crucial at any given moment can be challenging. Prioritization decisions are frequently made based on incomplete information, such as not knowing which features users will actually adopt, whether a request represents a real problem or just a loud minority, or whether it will significantly improve a metric. which, in contrast to engineering tasks, are simple: is the bug there or not? Does the code work or not?</p>
<p>The fact that the trade-offs are not immediately apparent is another factor making prioritization challenging. Other worthwhile projects are postponed or abandoned when a product manager gives priority to one. Although these lost chances don't immediately result in failures, their effects can mount up over time and affect long-term results, growth, and product quality.</p>
<h2 id="heading-what-do-product-managers-really-prioritize">What Do Product Managers Really Prioritize?</h2>
<p>A common misconception is that product managers only prioritize features. PMs don’t just choose between whether to ‘add dark mode’ or ‘add in-app messaging’, they also choose between reducing churn and improving retention. Therefore, what PMs are really prioritizing are:</p>
<h3 id="heading-user-problems-and-not-feature-ideas">User Problems and Not Feature Ideas</h3>
<p>At face value, user feedback consists of solutions and not problems, like:</p>
<ul>
<li><p>Add dark mode</p>
</li>
<li><p>I want to be able to edit a typo after posting on my story</p>
</li>
<li><p>Can you make it possible to export this as a PDF?</p>
</li>
</ul>
<p>A PM won’t just take these requests as they are but will ask why, how, and what.</p>
<ul>
<li><p>What pain point is the user experiencing?</p>
</li>
<li><p>How many users are experiencing this?</p>
</li>
<li><p>Why does the user want this?</p>
</li>
</ul>
<p>After asking these questions, the PM doesn’t just prioritize being adding the dark mode feature but rather, evaluates that users requested for that feature because, apart from personal preference, they struggle to use the product for long periods especially at night and that dark mode is one possible solution and there may be others</p>
<h3 id="heading-business-outcomes-not-tasks">Business Outcomes, not Tasks</h3>
<p>We can look at it this way: a task is something the team does and an outcome is the result the business wants. Some examples of tasks are:</p>
<ul>
<li><p>Fixing bugs</p>
</li>
<li><p>Redesigning the onboarding process</p>
</li>
<li><p>Adding dark mode</p>
</li>
</ul>
<p>Increasing activation rate is one example of an outcome. Product managers prioritize outcomes because they are measurable, connect work to business goals, and tasks alone do not guarantee impact. So, when deciding what to prioritize, a PM considers whether it will increase engagement, improve retention, or reduce churn.</p>
<h3 id="heading-trade-offs-not-preferences">Trade-offs, not Preferences</h3>
<p>This is where things get complicated because, as a product manager, you occasionally have to make trade-offs between things like speed and quality, features and time, resources and scope, quality and cost, technical debt and new features, and so forth.</p>
<p>What this means is that PMs don’t make preference-based decisions when they have to prioritize, but rather, their decisions are constraint-based. This implies that instead of saying, “I prefer this idea,” they are saying, “If we do this now, we can’t do that.”</p>
<h2 id="heading-what-inputs-drive-product-prioritization">What Inputs Drive Product Prioritization?</h2>
<p>Before anything is prioritized, PMs gather input from multiple sources like:</p>
<h3 id="heading-user-feedback-and-research"><strong>User Feedback and Research</strong></h3>
<p>These include interviews, usability tests, user reviews, social media comments, direct feature requests, quantitative data from product analytics, and metrics like Net Promoter Score (NPS) or customer satisfaction (CSAT) scores, which offer a human-centered approach that relies heavily on customer needs, behaviors, and pain points.</p>
<h3 id="heading-product-metrics"><strong>Product Metrics</strong></h3>
<p>Metrics like activation rate, churn, feature adoption, retention, session duration, Daily Active Users (DAU) and Monthly Active Users (MAU), session frequency, and so on, help PMs understand if and where the product is underperforming.</p>
<h3 id="heading-business-goals"><strong>Business Goals</strong></h3>
<p>Prioritization has to align with the company’s strategy and vision because every product exists to serve a business objective, and those objectives directly influence what a product manager prioritizes at any point in time. Business objectives have a big impact on product priorities. While a revenue-focused company might invest in monetization features, a growth-oriented company might prioritize onboarding and acquisition. Product managers frequently give core user experience enhancements and dependability top priority when retention is the aim. Because of these changing objectives, prioritization is dynamic and changes as the company does. So, it depends on whether the business is focused on growth, retention, cost optimization, or revenue.</p>
<h3 id="heading-technical-limits-and-demands"><strong>Technical Limits and Demands</strong></h3>
<p>Simply put, even if an idea is great, it may not be possible at the moment because, even if they sound simple, they may be quite complex to implement. For example, a product that supports offline mode. Also, many features depend on another being completed. Lastly, there is technical debt, which basically refers to shortcuts taken that make a system hard to change in the future. An example includes poor documentation or design. Technical debt, amongst other things, increases bugs and slows down development.</p>
<h2 id="heading-prioritization-frameworks">Prioritization Frameworks</h2>
<p>Prioritization frameworks are structured approaches that product managers use to make explainable and rational decisions. They are decision aids that help PMs compare options. Prioritization frameworks eliminate guesswork from decision-making in product management, thereby helping the product manager make informed guesses instead of instinctive ones.</p>
<p>Let us have a look at some of these frameworks, why they exist, why and when to use them.</p>
<h2 id="heading-why-do-prioritization-frameworks-exist">Why Do Prioritization Frameworks Exist?</h2>
<p>Prioritization frameworks are like aids, not formulas that help a product manager make defensible choices. These frameworks exist to enable PMs make informed decisions, and they do that by asking ‘who?’ and ‘how?’.</p>
<ul>
<li><p>Who does this help?</p>
</li>
<li><p>How does it help?</p>
</li>
<li><p>How is it going to be built?</p>
</li>
<li><p>How does it benefit/align with the company vision?</p>
</li>
</ul>
<p>So no, frameworks do not replace judgement, they only support it. Therefore, instead of making decisions based on whether they think something will be a good idea, PMs they ask the hows and the whats. Some prioritization frameworks in product management include:</p>
<h3 id="heading-rice-scoring">RICE Scoring</h3>
<p>Developed by Sean McBride at Intercom, RICE stands for the four elements—reach, impact, confidence, and effort—that are taken into consideration when developing a product idea. This framework provides an answer to the question of how much value will be produced relative to the effort by comparing each element.</p>
<ul>
<li><p><strong>Reach:</strong> Measures how many users will be affected by the product in a given time period. It is about scale and must always include a timeframe, otherwise the numbers become useless. For example, 5000 users monthly or 35% of weekly active users.</p>
<p>  A small improvement for many users can outweigh a large improvement for very few users. This is evident when comparing the reach of two features, like Feature A, which affects 20,000 users monthly, and Feature B, which affects 500 users monthly. It is evident that even though the improvement is small, its reach surpasses that of the big improvement, therefore making it more significant.</p>
</li>
<li><p><strong>Impact:</strong> Measures how those customers will be affected by the product. Unlike reach which is about scale, impact is about depth or value. <a target="_blank" href="https://www.intercom.com/blog/rice-simple-prioritization-for-product-managers/#:~:text=estimate%20the%20impact%20on%20an%20individual%20person.%20For%20my%20team%2C%20it%E2%80%99s%20%E2%80%9Chow%20much%20will%20this%20project%20increase%20conversion%20rate%20when%20a%20customer%20encounters%20it%3F%E2%80%9D.%20Your%20team%20might%20replace%20this%20with%20another%20goal%2C%20such%20as%20%E2%80%9Cincrease%20adoption%E2%80%9D%2C%20or%20%E2%80%9Cmaximize%20delight%E2%80%9D.">Sean McBride</a> suggests estimating the impact on an individual person. Like, “How much will this project increase the conversion rate when a customer encounters it?” And points out that this can be replaced with other goals, such as “increase adoption” or “maximize delight”. Seeing as impact can be difficult to measure, a scale of 0.25 to 3 is used, where 0.25 is minimal, 0.5 is low, 1 is medium, 2 is high and 3 is massive impact.</p>
</li>
<li><p><strong>Confidence:</strong> This measures the level of confidence in executing ideas and is gotten from sources like user feedback and A/B testing and uses a 100% scale, where 50% is ‘low confidence’, 80% is ‘medium confidence’ and 100% is ‘high confidence’. This accounts for uncertainty and risk, and it helps to answer the question, “How sure are we about this idea?” and prevents speculative ideas from ranking too highly.</p>
</li>
<li><p><strong>Effort:</strong> Refers to the time it will take the team to execute an idea. Effort is like the investment, and the other elements, reach, confidence and impact, are potential benefits. Effort is usually measured in person-months or person-weeks and puts things like engineering time and design work into consideration. This is the most important element in this framework because two ideas with similar value may differ greatly in effort, and a lower effort increases the RICE score.</p>
</li>
</ul>
<p>The RICE formula is:</p>
<p>RICE Score = (<strong>R</strong>each × <strong>I</strong>mpact × <strong>C</strong>onfidence) ÷ <strong>E</strong>ffort</p>
<p>While the RICE scoring method of prioritization is excellent for data-driven teams, it can be too long and difficult to understand.</p>
<h3 id="heading-kano-model"><strong>Kano Model</strong></h3>
<p>This categorizes features based on customer needs and how they affect user satisfaction and was developed by Noraki Kano in 1984. It has three parts, namely:</p>
<ul>
<li><p>Basic needs: Features that customers expect your product to have, like core reliability and login functionality. Sometimes, users don’t notice them when they exist but when they don’t exist, it leads to dissatisfaction.</p>
</li>
<li><p>Performance needs: Features where better performance increases satisfaction. This means that this features scale satisfaction linearly, that is the better they perform, the happier users are. An example is faster load time.</p>
</li>
<li><p>Delighters: Unexpected features that create excitement. These are unexpected features that make users feel heard and happy like TikTok allowing users post images in comment sections.</p>
</li>
</ul>
<p>One of the cons of the kano model is that delighters eventually become basic expectations.</p>
<h3 id="heading-moscow-method"><strong>MoSCoW Method</strong></h3>
<p>This framework was developed by Dai Clegg while working at Oracle in 1994 and it categorizes work into:</p>
<ul>
<li><p>Must have: Essential for the release and can either make, or mar the product.</p>
</li>
<li><p>Should have: Important but not critical. That is, the success of the product is not dependent on it.</p>
</li>
<li><p>Could have: Nice to have but not important.</p>
</li>
<li><p>Won’t have: These are not relevant to the product.</p>
</li>
</ul>
<p>This framework is very easy to use and understand, and that is one of its biggest advantages and it is particularly useful for release planning, MVP definition, and scope control. But the disadvantage is that without proper categorization, every feature can start to look like a must have and categorizing features as a ‘won’t have’ can also prove difficult.</p>
<h3 id="heading-ice-framework"><strong>ICE Framework</strong></h3>
<p>The ICE framework is a lighter-weight alternative to RICE, commonly used when data is limited or speed matters more than precision.</p>
<p>ICE evaluates initiatives based on:</p>
<ul>
<li><p><strong>Impact:</strong> How strongly the initiative is expected to move a key metric.</p>
</li>
<li><p><strong>Confidence:</strong> How certain the team is about the expected impact.</p>
</li>
<li><p><strong>Ease:</strong> How easy the initiative is to implement relative to others.</p>
</li>
</ul>
<p>Each dimension is typically scored from 1–10 with the total average being the ICE score.</p>
<p>ICE works well when:</p>
<ul>
<li><p>Products are early-stage</p>
</li>
<li><p>Teams need quick prioritization</p>
</li>
<li><p>Detailed effort estimates are unavailable</p>
</li>
</ul>
<p>A disadvantage of this framework is that it sacrifices accuracy for speed and it can give biased results.</p>
<h3 id="heading-impact-vs-effort-matrix"><strong>Impact vs Effort Matrix</strong></h3>
<p>This is also known as the <strong>value vs effect</strong> or <strong>value vs effort matrix</strong> and is one of the best suited for visual team discussions and quick alignment with stakeholders.</p>
<p>Initiatives are plotted on a 2×2 grid that is based on the value it will yield (impact) and what it will take to achieve it (effort):</p>
<ul>
<li>High impact/Low effort → They are top priority and also known as big wins.</li>
</ul>
<ul>
<li><p>High impact/High effort → The features that fall into this quadrant are high yielding features but must be planned carefully, hence, the high effort.</p>
</li>
<li><p>Low impact/Low effort → Features that fall here are known as fill-ins. They are optional or nice to have. They require low effort and yield low impact and should only be worked on when high priority tasks are complete.</p>
</li>
<li><p>Low impact/High effort → Low impact and high value? Nobody wants their team to waste time on such features so they should be avoided at all costs.</p>
</li>
</ul>
<p>The elements that make up this framework are much like that of MoSCoW which contributes to its simplicity. It is also intuitive and can serve as a more flexible and visual substitute for RICE. A disadvantage is that it can be subjective and both impact and effort are estimates.</p>
<p>Other frameworks include:</p>
<ul>
<li><p><strong>Weighted Scoring Model</strong>: Prioritizes ideas by scoring them across multiple criteria, such as user impact, strategic alignment, effort, risk, and key metrics, with each criterion weighted according to its importance to the business.</p>
</li>
<li><p><strong>Opportunity Scoring</strong>: Identifies aspects of the product that are of importance to the users but are not being satisfied. The formula for opportunity scoring is: <strong>I</strong>mportance + <strong>(I</strong>mportance – <strong>S</strong>atisfaction<strong>)</strong> = <strong>O</strong>pportunity</p>
</li>
<li><p><strong>Desirability, Feasibility and Viability Framework</strong>: Evaluates ideas based on desirability, feasibility and viability. That is whether users want them, if the team can build them, and finally, if the business can sustain them.</p>
</li>
<li><p><strong>Cost of Delay</strong>: This measures the financial impact of postponing a task and is an excellent framework when dealing with time-sensitive products.</p>
</li>
<li><p><strong>Product Tree</strong>: Is a visual method that replaces the roots, trunk, branches and leaves with systems, current set of features (core functionality), features/enhancements, and new ideas respectively. This helps teams explore ideas and visualize growth in a structured way.</p>
</li>
</ul>
<h2 id="heading-how-to-choose-the-right-framework">How to Choose the Right Framework</h2>
<p>No prioritization framework works in every situation, so choosing the right one depends on the team’s goal at that point in time. Factors that affect how to choose the right framework include:</p>
<ul>
<li><p><strong>The product stage</strong> has significant impacts on framework selection. Early-stage products frequently lack accurate data, therefore a lightweight framework such as Desirability-Feasibility-Viability will be more effective for rapid learning. Growth-stage products often have enough users and analytics to provide structured comparisons, making RICE, Weighted Scoring, and Impact vs Effort more useful. Finally, mature goods prioritize optimization, revenue, and risk, where timing is critical. Frameworks such as the Cost of Delay help to assess added value and urgency.</p>
</li>
<li><p><strong>Data availability</strong> is also an important factor because frameworks presuppose varying degrees of confidence. Using data-driven frameworks without accurate data can result in false precision. When metrics and past performance are available, scoring frameworks become more useful. When they are not, simpler qualitative models are more reliable and honest.</p>
</li>
<li><p><strong>Stakeholder and team requirements</strong> also have to be considered because frameworks are useful for communication as well. They aid persuading stakeholders' decisions, collaboration between teams like design and research is facilitated by user-centered frameworks like the Kano model. Also, teams and stakeholders can rapidly align with frameworks such as the product tree.</p>
</li>
<li><p><strong>Adaptation over rigid use</strong> basically means that frameworks should be modified, instead of using them in a rigid manner. They should be used as guidelines for thinking not a direct path to certainty. That being said, frameworks are often adjusted, simplified, or combined to fit the product stage, available data, and team context.</p>
</li>
</ul>
<h2 id="heading-common-prioritization-mistakes">Common Prioritization Mistakes</h2>
<p>Prioritization can still go wrong even with excellent frameworks and data. Such mistakes are common, but they can have a big impact on long-term results, team trust, and product quality. Some of these mistakes include:</p>
<ul>
<li><p>Prioritizing the loudest speaker is a common mistake in product prioritization which happens more than you’d think. Some stakeholders or team members, for example, speak loudly and frequently that they unintentionally dominate the roadmap even when their ideas or requests don’t align with the user interests or company goals. It is necessary to distinguish between the person making the request and its actual value in order to prioritize tasks effectively.</p>
</li>
<li><p>Confusing urgency with importance is another very common mistake in prioritization because sometimes, everything looks like a must have, but not everything that looks urgent is important. Urgent tasks come with deadlines or short-term pressure—for example, an upcoming demo presentation—but important tasks yield long-term value like reducing technical debt.</p>
</li>
<li><p>Relying on instinct alone and not fact will most likely not get you the desired results as a product manager. If you make a decision just because it feels like a good idea, without validating it through research or grounding it in a prioritization framework, the effort required to fix the resulting mistakes can be significant, often costing more time, resources, and trust.</p>
</li>
</ul>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Finding the ideal framework or making error-free choices are not the goals of prioritization. It is about making conscious trade-offs with limited time, data, and resources—and being able to explain why those trade-offs were necessary. Prioritization frameworks are used as tools to eliminate bias, reveal assumptions, and encourage better decision-making in the face of uncertainty rather than as rigid rules.<br>Finally, because effective prioritization is a constant process, priorities must be revisited often, assumptions must be validated early, and decisions must be documented.</p>
<p>As products evolve, user needs change, and company goals shift, priorities must be examined and adjusted. Product managers who constantly prioritize clarity, proof, and intent are considerably more likely to create solutions that add genuine value for both users and businesses.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How a Czech DJ Built a 3D Printing Empire ]]>
                </title>
                <description>
                    <![CDATA[ By Jaime Arredondo In 2012, a young Czech DJ hobbyist was frustrated with the knobs and faders on his music controllers, so went looking for ways to improve them. That’s when he came across 3D printing, and one of the fastest-growing 3D printing comp... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-prusa3d-became-one-of-the-fastest-growing-startups-in-the-world/</link>
                <guid isPermaLink="false">66d45f333a8352b6c5a2aa65</guid>
                
                    <category>
                        <![CDATA[ BUSINESS INTELLIGENCE  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Life lessons ]]>
                    </category>
                
                    <category>
                        <![CDATA[ product development ]]>
                    </category>
                
                    <category>
                        <![CDATA[  Startup Lessons ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Startups ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Wed, 31 Mar 2021 20:57:40 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2021/03/Josef-Prusa_Prusa-Research_005--1-.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Jaime Arredondo</p>
<p>In 2012, a young Czech DJ hobbyist was frustrated with the knobs and faders on his music controllers, so went looking for ways to improve them. That’s when he came across 3D printing, and one of the fastest-growing 3D printing companies in the world was born.  </p>
<p>Today, I’m going to show you exactly how Prusa3D became one of the fastest-growing hardware manufacturers in Europe. Then you can take inspiration from their exact strategy to grow a hardware company and create a community of contributors who will help you develop and promote your project with close to no resources.</p>
<h2 id="heading-some-background-on-prusa">Some background on Prusa</h2>
<p>Josef Prusa, Prusa Research’s founder, is a superstar in the 3D printers industry.</p>
<p>You might have already heard about him but if you haven’t…</p>
<ul>
<li>Prusa Research was founded as a one-man startup in 2012 by Josef Prusa.</li>
<li>His goal with Prusa Research was to create a kind of Thermomix, Europe's favourite all-in-one, easy-to-use kitchen appliance, for 3D printing. He wanted to make a 3D printer that was easy enough that anyone could use it, with guidance on steps and materials.</li>
<li>In 2018 Prusa Research became the fastest-growing tech company in Central Europe (Deloitte Fast 50 2018) after growing <a target="_blank" href="https://www2.deloitte.com/cz/en/pages/press/articles/technology-fast-500-emea-v-top-petce-hned-dve-ceske-firmy.html">17,118%</a> between 2014 and 2018</li>
<li>Prusa Research has grown from humble beginnings to selling 100,000 printers, employing over 410 employees, and setting up a factory in Prague with 9 floors and a hackerspace on the ground floor</li>
<li>The company brought the Maker Faire to Prague for the first time</li>
<li>Prusa’s website has over one million unique visitors per month, its YouTube Channel has more than 144,000 subscribers, and its forum has over 143,000 members</li>
</ul>
<p>Josef Prusa was lucky, but also did a lot of things well that we can all learn from.</p>
<p>How? Let’s dive in.</p>
<h1 id="heading-how-to-solve-a-problem-of-your-own-give-back-and-build-trust-in-growing-communities">How to solve a problem of your own, give back, and build trust in growing communities</h1>
<p>Before the roller coaster started, Josef enrolled in an economics degree to make his parents proud. This resulted in a lot of spare time, so he and his brother began DJing and building their music controllers. </p>
<p><img src="https://lh4.googleusercontent.com/9dMtMOFCRV1bZ_HecTpH2gEA6qBHOlDU4DuxyfWHP7JZ8r6a7sZP3uGPvYJbST1Ag1P4Glpe6z8mZYcV91ocvM8SIHWGUUVOmu7kgEnIQMFNtxxfwztHguIZbBU7pKmO_CTtzQsG" alt="Image" width="733" height="478" loading="lazy"></p>
<p><em>Josef (above), rocking his DJ skills. Little did he know how his life was about to change.</em></p>
<p>He was looking to make his own knobs and faders, but found the search into it too long and challenging. He then found the RepRap project and Mendel 3D printer.  </p>
<p><img src="https://lh4.googleusercontent.com/E1aDCM352WrnBfNzyFNcUm5OAkmqSPXr-qk_99hlG4oX8lkTxuwb6VnrupN2LoZCW5I3Ml2uxtnMXkQGkDy384h4KIAyhWehZxCWu7djASy2Jnm3z5dtaISi93SAT5KYkKtUOny_" alt="Image" width="723" height="398" loading="lazy"></p>
<p>As you may know, RepRap is a community project started by Doctor Adrian Bowyer at the University of Bath and it kickstarted the desktop 3D printing craze.</p>
<p>The basic idea is that a 3D printer can print as many parts as possible for another 3D printer and as a result, decreases its cost.</p>
<p>But when Josef was building his Mendel Printer, he was finding it too complex. It required many different screw sizes, there were no slots for nuts, and very few parts were push-to-fit.</p>
<p>So he improved the Mendel by making a simpler version; the Simplified Mendel [sic], and shared the designs on GitHub with the rest of the RepRap community. </p>
<p>The community caught up with his simplified model and started using it over the original, and that’s when people started noticing him. </p>
<p>Takeaways:</p>
<ul>
<li>If you’re a student, have spare time, and/or have no dependents, enjoy this time to experiment and try new things. What are you curious about building?</li>
<li>Identify and solve a problem of your own.  What tools are you using? What’s currently frustrating you about them?</li>
<li>Fix or simplify what’s not working. If you don’t know how, what skills would help you? Learn those.</li>
<li>Share your solution in a community that’s active and that has the same problem. You’ll benefit from exposure and feedback to make your solutions better. This way you’ll start building trust among a like-minded audience and you’ll be in touch with what people want.</li>
</ul>
<h1 id="heading-how-to-create-your-first-prototype">How to create your first prototype</h1>
<p>When Josef was trying to solve his problem, printers were still missing one key component to have the ABS plastic print successful: a heated bed. Without it, prints warped and deformed away from the bed.</p>
<p><img src="https://lh5.googleusercontent.com/fB8aJ9C9S_tM_3hzz7WI5olf_HNXAbjO7Lrm3e8MCsfxIvG1TXl9i3SqjYyhNjdRVPkCuYpAKD9M4PAvXwDIiYGPobfLz2ZjdhFGYLHNjX_B26XeA2c8hh-vQb_PD_uqC8nO7Qyc" alt="Image" width="574" height="484" loading="lazy"></p>
<p>To tackle this problem, he came up with a rudimentary prototype (shown above) which consisted of a resistance wire stuck between two sheets of acrylic. It didn’t last very long.</p>
<p><img src="https://lh5.googleusercontent.com/Rmv56o7815WM3I7Bjwb30-UVrnDle0OV5PS5RH4s2QcTwH_vv8T04sM6L8vWqWxI7o4xr6RsW-Ci7QPloP305EnqoBUpGQOxL6H7usSol4ZRkHEARj-s65dv0XNx_9zN1AUnoTlM" alt="Image" width="572" height="487" loading="lazy"></p>
<p>Without letting the setbacks defeat him, he went on to create a second version. This one used a tile instead of acrylics, which was an improvement. But still, it only reached about 90 degrees Celsius, which wasn’t enough either.</p>
<p><img src="https://lh6.googleusercontent.com/5jgo8YFW8Ac8Ca3S-R0QVnsVRvFBsSwnZPVGPpj8ZLNy5K55DLs5qSn48txNilV9iYX2sCpAqo5YkODqUU8B8VJ4OI8EOqVMobnguJHbsbZvSJw-hsZ5AO7XV5QQK-MBgDo7U9gb" alt="Image" width="667" height="522" loading="lazy"></p>
<p>After nearly six months of persistent work, the PCB Heatbed MK1 (above) was complete. It was the first real product he created. </p>
<p>This new heatbed could reach 110ºC, more than enough for ABS and other high-temperature plastics.</p>
<p>But many parts of the heatbed were either too expensive or difficult to get, so he redid many on his own. </p>
<p>He soon started receiving requests to print his Prusa Mendel’s parts. He also organized a few local build events, where everybody could build their own parts. </p>
<p>There was so much demand that it was time for Josef to officially start Prusa 3D with his brother Michal.</p>
<p>What’s interesting is that he didn’t start with the company name, the logo, and so on – rather, he started with a problem he had himself, and then he shared publicly, both his problem and his solutions, with others. </p>
<p>By sharing what he was doing with others, people who had the same problem could order his solution. And there were many people who shared his problem, which translated into many orders.</p>
<p>It’s also important to appreciate the persistence and patience it takes to continue iterating for six months in order to create a product that works and one that people want to use. </p>
<p>Josef and his brother began selling their first parts without an e-shop and instead sold them through email and a phone number on a webpage. They also hadn’t perfectly optimized their packaging yet. In the beginning, they packed their heatbeds in a pizza box and shipped them off to their clients.</p>
<p>Josef and Michal didn’t let the lack of a perfect tech solution get in their way. They simply found a way that was good enough to get their idea out the door and then made it better as they went along.</p>
<p>They were also proactive in creating awareness and trust with their audience. In the early days, they kickstarted the community by organizing presentations and going to events to educate people about the possibilities of this new 3D printing idea.</p>
<p>Josef also embodied honesty in his sales. If people came to him but were looking for something he didn’t sell or was a poor fit, he just told them which technology they should use instead.  </p>
<p>This earned him a community of loyal users who trusted him and regularly came back to share prints and hacks on the new Prusa Printer's online hub. Whenever Prusa was criticized in their Youtube comment section, a flock of fans spoke up in their defense. </p>
<p>Takeaways:</p>
<ul>
<li>Start simple before having everything figured out.</li>
<li>Let go of perfectionism or trying to look like established companies. What is good enough for the stage you’re at to satisfy the needs of the people you can serve? If it’s packaging your products in a pizza box instead of providing a delightful unboxing experience, so be it. If it’s not having an e-shop but just an email and a phone number on a simple website, so be it.</li>
<li>Focus on creating a solution that solves the problem for good. It might take some time, but if it hasn’t been solved yet, there’s a good chance it’s because it’s hard to solve. Being persistent and patient requires you to commit and invest at the beginning, but once you get through the other side of the problem, you’ll have something people will flock to. It took Josef Prusa six months before he found a proper solution for his heatbed.</li>
<li>Be radically honest and defend the best interests of your customers. If there is someone else who can serve them better, redirect them there. This builds trust, as people will remember how you treated them with respect.</li>
</ul>
<h1 id="heading-should-you-do-everything-yourself-or-delegate-certain-tasks">Should you do everything yourself, or delegate certain tasks?</h1>
<p>When we start something and it gets some traction, or even if we just anticipate the traction it can get, thinking about everything that we have to deal with can become overwhelming.</p>
<p>There might be barcode visualization, trademark registration, label design, building walls, building websites, accounting, invoicing, digging drains, dealing with bankers, installing equipment, video-editing, dealing with customer support, and more. </p>
<p>Most of the time we’re not even remotely competent at more than one or two of those things.</p>
<p>So this is the time when we hit a fork in the road. Do we hire or outsource to delegate, or do we do it ourselves?</p>
<p>Prusa’s beginnings are an interesting example of how to go through this period and build for the long term. Below, Josef <a target="_blank" href="https://www.tctmagazine.com/additive-manufacturing-3d-printing-news/pushing-prusa/">explains</a> how they went about preparing to scale:</p>
<blockquote>
<p><em>“We never had resellers so we were always in direct contact with the customers in the community and this proved very important for us because you have instant feedback from the people.</em>  </p>
<p><em>If you are just a manufacturer and somebody else is doing the selling for you, you don’t always get all the information back.</em>  </p>
<p><em>In the beginning, it was much tougher for us to do it this way because we not only needed to learn how to make the printers at scale but we also needed to learn how to run a big webshop and how to do the customer support for all these people. It was more difficult but now it’s paying off that we have this direct contact and know how to run every part of the business on our own.”</em></p>
</blockquote>
<p>It wasn’t until October 2013, three years after finishing the initial prototype, that they hired their first employee, Hanka.</p>
<p>How do you get the cash flow to hire people? Well, you sell in advance and produce after. In the beginning, Prusa always had a two week lead time for customers to get a printer. </p>
<p>As they continued to grow, they also hired a Foxconn engineer to deal with quality and a couple more software engineers to lead the engineering team.</p>
<p>They could have spent months or years trying to raise funding through VC or Kickstarter in order to hire people, outsource production and grow much faster. </p>
<p>But they decided instead to invest in the slower and more demanding path of figuring it out on their own, and keeping contact with the customers and their needs. This path has proven to be a much better strategy in the long run.  </p>
<p>In 2014, Prusa Research had a revenue of 149.000€, which then grew to 70 million €, employing over 250 employees in 2019 just by bootstrapping the business.</p>
<p>If you aim to change the system, you need to be able to exist independently of it. </p>
<p>Takeaways:</p>
<ul>
<li>Embrace DIY and learn to do the critical parts of the business yourself. What skills do you need to learn? Where can you learn them?</li>
<li>Once you can no longer do it yourself, understand what needs to be done, and when you have enough cash flow, hire people to do the work with you.</li>
</ul>
<h1 id="heading-what-prusa-stands-for">What Prusa stands for</h1>
<p>Prusa has exploded because it does a few things very well by always putting their customers' needs first without compromising their values or their price. This in turn helps them build a strong virtuous cycle for their development.</p>
<h3 id="heading-prusa-has-a-long-term-vision">Prusa has a long-term vision</h3>
<p>Josef knows what he wants Prusa to become. He wants his printers to be able to print any object with any material and through guided steps, much like a Thermomix for 3D printing. And he wants the least tech-savvy person to be able to operate it. </p>
<p>Having this clarity helps him and everyone in the company align their efforts towards a common goal.</p>
<h3 id="heading-they-have-amazing-customer-support">They have amazing customer support</h3>
<p>The company also keeps investing in the way it cares for its customers. </p>
<p>They go to great lengths to test every single part of their printers to ensure quality but even that isn’t enough to cover everything – so that’s why they have support. </p>
<p>Almost 20% of their employees work in customer support. They have 12,000 live chats per month in nine languages and deal with over 11,000 emails each month.</p>
<h3 id="heading-prusa-provides-high-quality-products">Prusa provides high quality products</h3>
<p>Investing in making the designs of their 3D printers more functional, simple, and of high quality allows them to avoid competing with the nicer-looking but more expensive 3D printers.</p>
<h3 id="heading-they-make-an-affordable-printer">They make an affordable printer</h3>
<p>This means that they are not too expensive for everyday consumers, and not too cheap for companies. </p>
<p>They’ve also made their 3D printer upgradable because it saves money for their customers and it builds their clients’ autonomy by helping them learn about the construction of the printer’s hardware. </p>
<h3 id="heading-all-prusas-work-is-open-source">All Prusa's work is open source</h3>
<p>Prusa’s clients are “normal Joes” as Josef describes them, and most don’t care much about open source. But the company does.</p>
<p>Those who care about open source provide valuable contributions that can be added back into the products. Some people will make improvements, some will fill in new code, and all of it helps make the printers better. </p>
<p>The open-source approach is also good for users. Those who want to do modifications find it much simpler because they have the original sources for the printer parts, the firmware, and the electronics.</p>
<p>Josef even has a tattoo of the OHSWA logo to keep himself accountable and honest to the open source vision.</p>
<p><img src="https://lh6.googleusercontent.com/_HpRsRZxaIgltuy6qV4kPbS--swoExxD1D_6rWsblfLzIzWfRSsEeJqTu2mgNwbMRDSObQDGC5N89_e5MFtc2bt7KWcoo-xFy4vwQVSK2VQ7c_LEYo3Wt4aeFiGV8kA6Z8_3nDIR" alt="Image" width="640" height="469" loading="lazy">
<em>Source: <a target="_blank" href="https://3dprintingindustry.com/news/aleph-objects-prusa-research-3d-printing-community-others-react-ultimaker-patent-application-107215/">3D printing Industry</a></em></p>
<p>Open source makes it easy for the idea to spread and upskill people who can find new use cases to increase the company’s pace of innovation, and it makes it more affordable to its clients.</p>
<h3 id="heading-they-partner-with-distributors-and-support-their-clients-even-though-it-decreases-their-margins">They partner with distributors and support their clients even though it decreases their margins</h3>
<p>Another counterintuitive thing Prusa does for its clients is that it supports the customers serviced by other distributors. </p>
<p>Many companies would forfeit this channel because it demands high margins and the distributors don’t do support. But they do these distribution partnerships anyway to make it easier for the people they serve to discover and access their printers. </p>
<p>And even if they make no extra money through these channels, they still give them the same level of support as those who buy from their website. </p>
<p>Why? Because caring for their customers is what makes it safe for them to then recommend Prusa to their friends and family, driving more business by word of mouth. </p>
<p>Takeaways:</p>
<ul>
<li>What is the long term vision of what you’re doing? What happens as you keep developing your organization? What results are you helping people achieve?</li>
<li>How can you invest in better supporting your customers?</li>
<li>What parts of your project can you give away for people to build and learn with you?</li>
<li>What partnerships can you build to distribute your project in places where people need it?</li>
</ul>
<h1 id="heading-how-prusa-builds-and-invests-in-the-community">How Prusa Builds and Invests in the Community</h1>
<p>We’ve already spoken a lot about how much they invest in customer support, but Prusa also invests heavily in their community. </p>
<p>This does two things: it builds proof of what their product does in the world, and it helps scale even further what their customer support service can do. </p>
<p>To gather their community they do a few things.</p>
<p>The first thing Prusa does is offer two options to customers: They can either buy printers as kits or assembled. 80% of clients buy the printers in kits. Besides saving time in production, this allows the clients to learn how to build their printers and understand how they work. </p>
<p>This approach is raising a generation of makers who can create and fix instead of throw away, building a lot of goodwill for the Prusa brand. </p>
<p>To keep in touch with the community, in the early days Josef Prusa tried to go to as many shows as possible so that he could talk to fans face to face and hear about the awesome projects that could come to life with the help of their printers. He went to Maker Faires and to DIY or 3D-printing events.</p>
<p>Now that the company has grown so much, he can’t go to as many events. But before the pandemic started, there was a team of three to ten people traveling around the world two to four times a month. And they were also organizing their Maker Faire in the Czech Republic. </p>
<p>Takeaways:</p>
<ul>
<li>Where are your community members hanging out? What blogs or magazines do they read? What podcasts do they listen to? What events do they go to? What youtube channels do they watch? What newsletters do they subscribe to? Who do they follow on Twitter, Facebook, or Linkedin? What forums or groups do they participate in?</li>
<li>What resources do they need to get started that you can facilitate? How can you give them the tools to create what you do?</li>
<li>How can you invite users to participate in the development of your product? Can you open your files and designs for them? How can you invite them to give back and showcase their work or the skills they’re building thanks to you? Where could you use this as proof that your product works?</li>
</ul>
<h1 id="heading-how-to-engage-the-community">How to Engage the Community</h1>
<p>Many people understand the value of giving free stuff away online to attract a crowd. But I feel that many entrepreneurs haven’t embraced the opportunity and the value of connecting the people in their community with each other. </p>
<p>This is a very powerful idea that can go a long way in building trust and reciprocity with your brand and in getting the community members to spread the word and interact with stories of what you do.</p>
<p>One more powerful thing that Prusa is doing is figuring out how to connect the isolated Maker tribe, and at scale. </p>
<p>Once they gather their community by giving away their designs and connecting with them at events, the next challenge is getting these people to engage. And Prusa does a remarkable job at that. </p>
<p>They’ve created a series of resources that make it easy for people to learn the skills and tools they need to become active members of the community.</p>
<p>In their online hub, they share resources for learning and practice, such as a library of 3D printing models with files, and free guides on how to start 3D printing. </p>
<p>Once people are on their website to grab these resources, they can connect with each other locally or online through a map or in the forums to reach out for support or to go for a beer. </p>
<p>As a quick overview, Prusa provides the resources needed to learn the tools and the skills required to set up and hack a 3D printer. There are manuals, such as a free ebook to teach the basics of 3D printing, assembly instructions in video and ebook form, troubleshooting guides, and of course the downloadable drivers and firmware.</p>
<p>Once people have what they need to learn the basics, they can jump into the Forum to talk about their printer model, stay up to date with General Announcements and releases, find those community members in the Hall of Fame, and discuss the software.</p>
<p>Takeaways:</p>
<ul>
<li>What resources does your audience need to develop the skills required to use your product and to participate in the community in order to help each other?</li>
<li>Once they trust you, how can you connect them to find support among their peers? What exchanges can you facilitate or what spaces can you create for them to gather and talk about their questions?</li>
</ul>
<h1 id="heading-in-summary">In Summary</h1>
<p>Prusa’s approach helped them grow over 17,000% without a sales team, only through word of mouth.</p>
<p>It helps that they serve the fast-growing 3D printing market, but still.</p>
<p>Prusa has become a big player and a beloved brand in their industry, proving that  you don’t need a huge marketing team or budget to get similar results. You just need a smart and intentional plan.</p>
<p>Here are the key takeaways you can borrow, modify, and adapt for your own business based on Prusa’s real-life marketing tactics:</p>
<h3 id="heading-takeaway-1-build-a-skill-to-solve-a-problem-of-your-own">Takeaway #1: Build a skill to solve a problem of your own</h3>
<p>What tool are you using that is not working as you wish it did? Learn the skills to fix or simplify what’s not working. </p>
<h3 id="heading-takeaway-2-share-your-solution-in-public">Takeaway #2: Share your solution in public</h3>
<p>Once you create your first working solution, share it with communities who already use these tools and have the same problem as you do. </p>
<p>This builds trust, reciprocity, and if people want to buy your solution or they have other problems you can build on, they can tell you.</p>
<h3 id="heading-takeaway-3-if-its-your-first-time-be-patient">Takeaway #3: If it’s your first time, be patient</h3>
<p>When we first start, we don’t have all the skills we need to find a solution to a problem. Be patient and persistent and embrace failure and rejection. It’s by getting into action that you’ll figure out what’s not working or missing, and what needs adjusting.</p>
<h3 id="heading-takeaway-4-start-simple-even-if-you-dont-have-everything-figured-out">Takeaway #4: Start simple, even if you don’t have everything figured out</h3>
<p>Let go of perfectionism or trying to look like an established company. What is good enough at the stage you’re at to satisfy the needs of the people you can serve? What is good enough for now to solve other people's problems, build your product, and ship it?</p>
<h3 id="heading-takeaway-5-learn-to-do-everything-yourself-and-become-autonomous">Takeaway #5: Learn to do everything yourself and become autonomous</h3>
<p>Don’t delegate too soon. If your goal is to change the system, you’ll have to learn to be autonomous early on and stay in close contact with your customers. </p>
<p>When the time comes to delegate, you’ll know what needs to be done and hire the right people for it. </p>
<h3 id="heading-takeaway-6-be-radically-honest-and-defend-the-interests-of-your-customers">Takeaway #6: Be radically honest and defend the interests of your customers</h3>
<p>If there is a competitor who can serve them better, redirect them there. It will build trust as people will remember how you treated them with respect. </p>
<h3 id="heading-takeaway-7-be-clear-on-what-you-stand-for">Takeaway #7: Be clear on what you stand for</h3>
<p>What is the long term vision of your project? If money and growth is a means to an end, what is that end meant to achieve? What can you do to accelerate or scale this? </p>
<p>For Prusa, it was investing in outstanding customer support and sharing their work in open source to create both a delightful experience and to involve outside experts in their innovation.</p>
<h3 id="heading-takeaway-8-find-and-gather-your-community">Takeaway #8: Find and gather your community</h3>
<p>Go meet your community where they hang out to stay in touch with their needs and to connect with them. What forums or groups do they participate in? What events do they go to?</p>
<p>Once you’ve found them, create spaces for them to gather and connect. Josef Prusa started by participating in the RepRap forums and by going to Maker events. Later on, they started organizing their Maker Faire in the Czech Republic.</p>
<h3 id="heading-takeaway-9-engage-the-community">Takeaway #9: Engage the community</h3>
<p>Give them the resources and tools they need to get started. Then invite them to participate in the development of your product by opening your designs. </p>
<p>For those who contribute, you can showcase their work and skills to show your gratitude, and use these contributions also as proof that your product and community work.</p>
<p>Thanks for reading. Inspiration for this article came from The Road to 100,000 Original Prusa 3D printers. You can watch it here:</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/xX3pDDi9PeU" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ 4 Frameworks to Help You Design Products and Think Strategically About Business ]]>
                </title>
                <description>
                    <![CDATA[ By Adam Naor When you're building a product, there are different frameworks you can deploy to think critically about what to build and why. These frameworks apply to business as well. When designing a product – or launching a startup – you should ans... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/frameworks-to-design-products-and-think-strategically-about-business/</link>
                <guid isPermaLink="false">66d45d648bff11bcd0b9bd4d</guid>
                
                    <category>
                        <![CDATA[ business strategy ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Product Design ]]>
                    </category>
                
                    <category>
                        <![CDATA[ product development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Fri, 05 Mar 2021 16:49:23 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/60424cbfa7946308b76825f3.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Adam Naor</p>
<p>When you're building a product, there are different frameworks you can deploy to think critically about what to build and why. These frameworks apply to business as well.</p>
<p>When designing a product – or launching a startup – you should answer a few fundamental questions:</p>
<ol>
<li>Should I enter the market or not?</li>
<li>Who else exists in this market and what are these firms doing or building?</li>
<li>What are the costs of entering this market? Are these costs fixed or variable in nature?</li>
<li>If I decide to exit the market – or stop building or maintaining my services or software – what are the costs?</li>
<li>Who will use my product or services and what do they value or need?</li>
<li>Am I uniquely equipped to help these people or constituents?</li>
</ol>
<p>This article provides an overview of four interesting, dynamic, and different approaches to probe your assumptions and answer these questions. Ultimately this article is about strategy. </p>
<p>Strategic thinking is about the art of outdoing an adversary knowing that they are trying to do the same to you.</p>
<p>Albert Einstein once asked, “If a cluttered desk is a sign of a cluttered mind, of what, then, is an empty desk a sign?” Just because a <a target="_blank" href="https://wfhadviser.com/product-reviews/best-minimalist-desk/">desk is empty</a> does not mean it’s not contributing utility. For strategies to be effective they too need to be useful, applicable, and relevant. </p>
<p>Oftentimes building a company – or creating a piece of software – is about the application of strategy.</p>
<p>At a more granular level, this article attempts to help you think about the above questions by leveraging mechanisms for transforming inputs – like data, beliefs, and research – into a desired set of outputs that are easy to deploy in your everyday life and useful.</p>
<p>I have learned about these frameworks through a mixture of reading product launch templates, building products with my own hands, and studying how other product and business stakeholders optimize their work to drive the outcomes they desire.</p>
<p>I want to explain each framework and pass on the most salient takeaways from each so that you can rapidly apply these frameworks and build more effectively.</p>
<h2 id="heading-framework-1-the-airplane-crash-test">Framework #1: The Airplane Crash Test</h2>
<p>Reginald H. Jones, the Chief Executive Officer of General Electric from 1972 to 1981, was in search of a successor upon retirement. He asked each of his executive subordinates a question: </p>
<blockquote>
<p>“A plane crashes and you are on the plane. You don’t survive. Who should take over running the company or building the most important products, and why?”</p>
</blockquote>
<p>This is an interesting question to ask yourself, and is especially salient as you build and scale products. Who do you know that is best suited to be the leader in an environment filled with ambiguity?</p>
<p>In your mind, is it you? Is it a peer? What does this person do so well that inspired you to think of them? Try to replicate their behavior and knowledge base to better equip yourself as a builder and product developer.</p>
<p>If you did select yourself, think about why. What skills do you have (technical, business, political, and so on) that can help you drive an organization or product forward? How will you teach those skills to others?</p>
<p>By thinking through the airplane crash test you can reflect holistically on what you do well, why those skills matter, and areas for improvement. You can also gain a deeper sense of appreciation for the skills that others in your life – or on your team – may have.  </p>
<h2 id="heading-framework-2-the-airport-test">Framework #2: The Airport Test</h2>
<p>This framework is very different from the airplane test. In this thought experiment, ask yourself the following: if I were to be stuck at an airport for many hours with someone, what kind of person would I want that person to be? And secondly, if others reflect on the types of people they would want to spend time with, am I one such individual?</p>
<p>Google famously applied an “airport test” to help conceptualize the types of people it would want to hire. On one hand, the airport test lends itself to some admirable outcomes. </p>
<p>If you are stuck at an airport for many hours with someone, it makes sense that you would want to surround yourself with someone who is curious, insightful, and easy to communicate with. These are valuable skills to cultivate in life, and as a builder.</p>
<p>On the other hand, this test has limitations – and the biggest one is seemingly bias. Would you rather spend more or less time with someone who thought and acted like you?</p>
<p>If so, you might be overlooking great people to learn from and spend time with that differ from yourself.</p>
<p>When building products at scale, you will want to think about all potential users. Many users are different from you and come from different walks of life. Think holistically about these users and who they are – their wants, needs, and diverse backgrounds – so that your product or business can best meet their needs.</p>
<p>Think about the airport test as bi-directional. Try to be the type of builder, motivator, or creator that others want to spend time with. Look for others that meet that test for you, too.</p>
<h2 id="heading-framework-3-the-working-backwards-framework">Framework #3: The Working Backwards Framework</h2>
<p>Working backwards is a framework practiced by many product builders because it helps set a North Star rooted in customer feedback.</p>
<p>At its core, Working Backwards is a belief system that states that you should speak with users and customers and listen to feedback about what to build and why. The product designer, after organizing this feedback, can start building tools and services that users care about and want.</p>
<p>By working backwards, a builder can save time and money.</p>
<p>Amazon Founder Jeff Bezos once noted that while he can’t predict the future he can’t imagine a future in which people want slower delivery or higher priced items. </p>
<p>By working backwards from the fundamental needs and goals of users he can build solutions, technology, and products that empower these people. </p>
<p>Many great products that you leverage in your daily life are predicated on designers looking at the needs of users and building based on those inputs. </p>
<p>In the case of image searching technology, coders literally saw that people had an end goal of using images to run searches. Working backwards from that destination enabled the creation of reverse image search technology.</p>
<p>When you are building, try to place yourself in the shoes of users and go speak with them. By building relationships and starting these conversations you can be guided by what your users actually care about. </p>
<p>Once you know what matters, you can obsess over the details that best help you help your users. That is what the Working Backwards method is all about.</p>
<h2 id="heading-framework-4-jobs-to-be-done">Framework #4: Jobs To Be Done</h2>
<p>A fourth and final framework for understanding how to build businesses and products is to think about why people are “hiring” your technology and what problem your technology solves. </p>
<p>The late Clayton Christensen of Harvard Business School famously argued that the “customer is the wrong unit of measurement”. Instead, Christensen noted, people use solutions for “jobs to be done,” or the pain points they face in their lives.</p>
<p>When you are building your next piece of software, or product, or business, ask yourself: why are people hiring me to do this job? If you believe that your customers are rational, evaluate their behavior. </p>
<p>If you think that your rational users are making irrational choices, take time to better understand how your tool is actually being used.</p>
<p>By framing your work in this light you can develop and hone in on a very important skill set for builders to cultivate, and that is empathy. If you can’t empathize with how your product is being used (and for what purpose) you won’t be able to empathize with your users. </p>
<h2 id="heading-bringing-it-all-together-frameworks-for-development">Bringing It All Together: Frameworks for Development</h2>
<p>I have outlined four different frameworks to help you think about your work, how you devise products, and ways to conceptualize the development of your software or products across users, time, space, and markets.</p>
<p>These frameworks are not mine but represent interesting and influential nuggets that I have picked up watching others. These nuggets have influenced how I think about design, feedback, and content, and I hope they are useful for you too.</p>
<p>The application of these frameworks can help you build.</p>
<p>You can apply all, some, or none of the above. However, my hope is that by thinking about these questions and approaches you can dive deeper into solving real problems for real users and that you can better develop the skills, product design mindset, and empathy to align your products with the needs of your current or future users.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ What I've Learned from Building Products – Lessons in Communication and Problem Solving ]]>
                </title>
                <description>
                    <![CDATA[ By Zaid Humayun I spent a year learning how to build products. Rather, I spent that year learning just how hard it is to build good products.  It's been a roller coaster ride so far and I want to share my learnings. I'm going to highlight the most im... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/building-products-lessons-in-communication-and-problem-solving/</link>
                <guid isPermaLink="false">66d461ca787a2a3b05af4427</guid>
                
                    <category>
                        <![CDATA[ communication ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Problem Solving ]]>
                    </category>
                
                    <category>
                        <![CDATA[ product development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Productivity ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Wed, 24 Feb 2021 15:46:49 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2021/02/learning_to_build_products_header.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Zaid Humayun</p>
<p>I spent a year learning how to build products. Rather, I spent that year learning just how hard it is to build good products. </p>
<p>It's been a roller coaster ride so far and I want to share my learnings.</p>
<p>I'm going to highlight the most important lessons I've learned along the way.</p>
<h2 id="heading-what-to-expect-from-this-article">What to Expect from This Article</h2>
<p>Before I start, I do want to specify that this blog post is not as technical as most things you will read on freeCodeCamp. </p>
<p>While exploring the technology will be valuable, I believe it is just as beneficial for programmers to look at the business aspect of things. This is in part because it is not something most programmers pay attention to.</p>
<p>As programming becomes more and more popular and commoditized, it will become more valuable for programmers to understand exactly how they are adding value to a company.</p>
<p>Answering the <strong>why</strong> of problem solving is the most crucial business aspect while building technological solutions.</p>
<h2 id="heading-a-bit-of-background-and-context">A Bit of Background and Context</h2>
<p>I work at a garment manufacturing company headquartered in Bangalore, India. Nope, you read that right. I work in tech at a garment manufacturing company in Bangalore, India.</p>
<p>Not the most glamorous of jobs, but it does provide a lot of opportunities to experiment.</p>
<p>The garment industry is one of the most unorganized industries in India. For people working in the tech world, it's a little hard to grasp just how unorganized it is. </p>
<p>When people in tech think of a problem, they think of sifting through large sets of data to glean insights that might turn into more effective features. </p>
<p>But, what do you do when the data is still written in pencil on paper? How do you even get access to that information? </p>
<p>Sometimes it feels like the rest of the world stormed ahead leaving certain industries lagging far behind that. And it often feels like the wheel of invention is coming spinning back around again.</p>
<h2 id="heading-how-things-work-at-the-company">How Things Work at the Company</h2>
<p>Before I can present the problems, I need to explain how a garment manufacturing unit works. </p>
<p>Here is an extremely simplistic overview of how the supply chain in garment manufacturing works</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/supply_chain_basic-1.png" alt="supply_chain_basic-1" width="600" height="400" loading="lazy"></p>
<p>Pretty simple, right? It really is! And just like every other industry, the devil is in the details.</p>
<p>Let's dive in a little deeper. For brevity's sake, let's examine just the relationship between the textile mill and the garment manufacturer. </p>
<p>It starts with an order placed by the buyer with the garment manufacturer. The buyer will tell the garment manufacturer that they require a specific kind of fabric for their garments. This is called a style of fabric.</p>
<p>Now, when we refer to the style of fabric, it can mean many different things. Here are a few of the variables that comprise the style of the fabric.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/parts_of_style-1.png" alt="parts_of_style-1" width="600" height="400" loading="lazy"></p>
<p>For now, to keep things simple, let's just focus on fabric colour.</p>
<p>The garment manufacturer will then place an order for the fabric with the textile mill. Once the textile mill is ready to ship the fabric, the complexity starts.</p>
<p>The problem is one of scale. When you have over 30 suppliers of fabric, stationed all over a country, keeping track of when you get shipments of fabric is hard.</p>
<h2 id="heading-how-we-can-define-the-problem">How We Can Define the Problem</h2>
<p>Here are the key problems:</p>
<ul>
<li>Keeping track of when you receive the fabric shipment</li>
<li>Keeping track of how much fabric you've received</li>
<li>Keeping track of which supplier you've received the fabric from</li>
<li>Keeping track of which location you've received the fabric at</li>
<li>Whether the fabric passes quality inspection checks</li>
<li>Whether the fabric passes the lab tests indicated by the buyer</li>
</ul>
<p>Our problem is going to focus on only the following three points:</p>
<ul>
<li>When did we receive a shipment of fabric from a supplier?</li>
<li>How much fabric did we receive in a specific shipment?</li>
<li>At which location did we receive the fabric?</li>
</ul>
<p>The most obvious solution is Excel sheets. </p>
<blockquote>
<p><em>Lesson #1: In big organizations, Excel functions as a distributed database.</em></p>
</blockquote>
<p>Excel works well, for a while, and then quickly becomes difficult to maintain.</p>
<p>Why? Let's start a hypothetical garment manufacturing company to answer that.</p>
<h3 id="heading-phase-1">Phase 1</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/simple_excel_sheet_fabric.png" alt="simple_excel_sheet_fabric" width="600" height="400" loading="lazy"></p>
<p>Okay, so we've just started and we have 2 suppliers, 3 factories, and a head office. That's pretty good for a start!</p>
<p>Let's also say that we have 1 buyer. Having a single buyer means that the number of different styles of fabric that we have to deal with are small.</p>
<p>As and when each factory receives fabric, they let the head office know via email the amount of fabric and the style of fabric they received. Then the head office puts that data into an Excel sheet.</p>
<p>Each factory receives fabric once a day, so that means the head office will receive 3 emails a day. Not too bad! </p>
<p>Even if a supplier delays a shipment, it's relatively easy to track because there are only 2 suppliers.</p>
<h3 id="heading-phase-2">Phase 2</h3>
<p>Things are going well, business is growing, and you decide to expand. You set up 5 more factories. </p>
<p>You also increase the number of buyers you're working with, which in turn increases the number of styles of fabric.</p>
<p>You also want to increase your turnover, so 3 of the factories receive fabric twice a day: once in the morning, once in the evening.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/complicated_excel_sheet_fabric.png" alt="complicated_excel_sheet_fabric" width="600" height="400" loading="lazy"></p>
<p>Things just got a little more real. </p>
<p>You'll notice that each supplier's face is now invisible. This is not a coincidence. Yeah, I did it to save space but I also did it to illustrate how as scale increases, your personal relationships with business partners take a back seat. </p>
<p>It's simply not possible to maintain the same kind of personal relationship you had with 2 suppliers, with 6 suppliers and 8 factories to boot!</p>
<p>You might wonder why the above point is relevant. That's because it leads into the next lesson.</p>
<blockquote>
<p>Lesson #2: Business relationships are built almost entirely on trust, especially in the absence of technology.</p>
</blockquote>
<p>Let's examine the lesson above for a bit. It's important because the goal of most technological systems is to eliminate the need for trust. Of course, that's not entirely possible.</p>
<blockquote>
<p>Before continuing, there is one quick thing I need to mention. When suppliers provide fabric to manufacturing units, they usually provide it in the form of a roll of fabric.</p>
</blockquote>
<p>Let's construct a scenario with you as a garment manufacturer. You have a supplier who provides you with rolls of fabric. </p>
<p>One time, you receive 10 rolls of fabric and based on an anonymous tip-off decide to measure the length of each roll of fabric against what the supplier tells you it is.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/trust_relationship.png" alt="trust_relationship" width="600" height="400" loading="lazy"></p>
<p>The above infographic shows you what that would look like. </p>
<p>To your dismay, you find out that the supplier is cheating you and you're short 36m of fabric. In a low-margin industry like garment manufacturing, this counts for a lot.</p>
<p>Also, this was only for 10 rolls of fabric. As your company grows, you're going to order more rolls of fabric from a supplier. Imagine you had a 100 rolls of fabric to go through instead of 10. </p>
<p>Manually checking each roll of fabric is not an operation that can scale, and as your operations scale, trust becomes more important.</p>
<p>Now, back to our problems of scaling. We have a total of 6 suppliers, 8 factories, and more buyers – and therefore more styles of fabric.</p>
<p>With 5 factories receiving fabric once a day and 3 factories receiving fabric twice a day, the head office will receive <code>5*1 + 3*2 = 11 emails</code> a day.</p>
<p>Things have gotten harder not only because the head office is receiving more emails but because the styles of fabric they are receiving have also increased. This adds to the number of rows in an Excel sheet. </p>
<p>Now, when a supplier delays a shipment, things get a lot harder to keep track of because the factories are receiving 11 shipments a day from 6 different suppliers.</p>
<p>But, even now, Excel is not a bad option at all. However, the fabric department is under a lot of strain trying to keep up with the workload, so the head office does what any good organization would do and adds a couple more employees. </p>
<p>Was adding two employees a bad idea? All answers are opinionated.</p>
<p>A technologist would say: "Why would you add two more employees? You need to simplify the process by adding automation!"</p>
<p>A CEO would reply: "Why? The cost of automation is not worth it. It's simpler to add two employees and keep our process the same."</p>
<blockquote>
<p>Lesson #3: Not everything is worth automating. This is the hardest lesson to accept for me.</p>
<p><a target="_blank" href="https://xkcd.com/1205/">Relevant XKCD</a></p>
</blockquote>
<h3 id="heading-phase-3">Phase 3</h3>
<p>Time passes and business continues to boom. Being a capitalistically inclined CEO, you want to increase the scale of the business again!</p>
<p>This time, you increase the number of factories to 14. You also add more buyers to the portfolio, so this increases the number of styles of fabric the factories need to work with. 6 factories receive fabric twice a day and the remaining 8 receive fabric once a day.</p>
<p>You also work with 20 suppliers now because of all the different styles of fabric you require.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/really_complicated_excel_sheet_fabric.png" alt="really_complicated_excel_sheet_fabric" width="600" height="400" loading="lazy"></p>
<p>I haven't bothered to name any of the suppliers or the factories in the image above cause it would be too much effort. </p>
<p>But, again, this is to illustrate that the personal relationship you might have had with each of the managers of the factories deteriorates. You simply can't maintain each of those relationships to the same degree.</p>
<p>Now, the head office will receive <code>8*1 + 6*2 = 20</code> emails a day! Each email also contains more data because we increased the number of styles we are working with.</p>
<p>Maintaining a manual central Excel sheet becomes harder and harder. Simply adding more employees to the task also won't necessarily help because you might just end up with multiple copies of a centralized Excel sheet in the head office.</p>
<h2 id="heading-how-to-solve-the-problem">How To Solve The Problem</h2>
<p>Now, there are multiple ways to solve this problem. </p>
<p>One could be to ask each of the factories to maintain their own daily Excel sheet and send it as an attachment via email to the head office.</p>
<p>However, this again involves someone copying and pasting the data from each factory into one centralized Excel sheet. Nothing wrong with this, but there is probably a more efficient solution.</p>
<p>Another potential solution is we could ask each of the units to maintain an individual Google Sheet and run a script using <a target="_blank" href="https://developers.google.com/apps-script">Google App Script</a> every day like a <a target="_blank" href="https://en.wikipedia.org/wiki/Cron">cron job</a> and pick up the data.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/google_sheet_cron_job.png" alt="google_sheet_cron_job" width="600" height="400" loading="lazy"></p>
<p>However, if you want more data like the length of each roll, you're out of luck. There is no way you can ask people working in factories to manually enter the length of each roll of fabric everyday. Because, like we said earlier, you could potentially receive 150 rolls of fabric a day.</p>
<h3 id="heading-our-solution">Our Solution</h3>
<p>The solution we ultimately went for, at my company, isn't a surprising one: we decided to use barcodes.</p>
<p>We place a barcode on each roll of fabric. The barcode correlates to the length of a roll, the style of fabric, and which buyer it's for.</p>
<p>We built a small Android application that allows users to scan barcodes with the device camera, and on each scan hits an API indicating that this specific barcode was scanned in a specific location (picked up via GPS).</p>
<p>Scanning a roll of fabric allows us to pick up the location of the roll via GPS and the date and time.</p>
<p>Adding up all the rolls of fabric scanned at a location allows us to know the total length of fabric received by a factory.</p>
<p>Best of all, this reduces the workload for the factories themselves. Their only job now is to scan the rolls of fabric. Scanning one roll of fabric takes ~3 seconds, so scanning 100 rolls of fabric takes ~5 minutes.</p>
<p>Here is a basic schematic of what we built: </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/fabtrak_architecture_deployment.png" alt="fabtrak_architecture_deployment" width="600" height="400" loading="lazy"></p>
<ul>
<li>A web based application that is used to generate the barcodes</li>
<li>An Android application that is used to scan the barcodes</li>
<li>An API that both the web app and Android app communicate with. The API in turn communicates with the MySQL DB.</li>
</ul>
<p>The whole thing is hosted on AWS and the Android app is hosted on Google Play Store.</p>
<p>The solution seems simple enough, but it isn't.</p>
<h3 id="heading-what-we-learned-from-solving-the-problem">What We Learned From Solving The Problem</h3>
<blockquote>
<p>Lesson #4: Building things for people is hard because there is often a disconnect between the people building the thing and the people the thing is being built for.</p>
</blockquote>
<p>This disconnect is why it's a great idea to build a product that fulfills a need you've long wished existed.</p>
<p>One of the first mistakes we made with the Android app was giving our users too many options
<img src="https://www.freecodecamp.org/news/content/images/2021/02/initial_fabscan_sketch.png" alt="initial_fabscan_sketch" width="600" height="400" loading="lazy"></p>
<p>The sketch above shows what a very early verion of our application looked like. Clicking each of those buttons took you to the camera screen. However, each of them made a different API call and so returned a different result. </p>
<p>The rationale for including the Enter button was that, if the barcode were to get scratched and couldn't be picked up by the phone camera, the user could then enter the barcode instead and it would count as a scan.</p>
<p>Here's what one of our barcode numbers looks like: <code>k29_%!s5qG</code>. There is no chance that anybody is going to sit down and enter that sequence of characters. </p>
<p>The rationale for the Read button was that if someone were to want to identify what kind of fabric a specific roll was, they could scan the barcode in Read mode and it would return information about that roll of barcode.</p>
<p>The factories already had their own method of storing information about the roll, though. They just wrote it down in pencil and paper and stuck it to a tag that gets attached to the roll. </p>
<p>Is it the most technologically advanced system? Heck no! But, does it work? Heck yes! And we should have respected the fact that they already had their own way of doing the same operation.</p>
<p>The end result is that almost no one even bothers clicking on either of the Read or Enter buttons.</p>
<p>When building things, keep things to the bare minimum. There is no reason to add additional features unless absolutely required.</p>
<p>The second mistake we made was not knowing our audience.</p>
<p>When we came up with the idea of building a web application for people to use to generate barcodes, it seemed like a no-brainer.</p>
<p>We ran into a funny problem, though.</p>
<p>When we explained to the people working in the factories that they needed to enter the address into the address bar, we got blank looks in response.</p>
<p>You see, with the privileged background most of us come from, we tend to forget that there is a large majority of the population that doesn't know how to interact with a web browser. Why? They've never had the need to. They interact with the internet primarily through smartphone apps.</p>
<p>This might seem like a bit of a stretch but I've seen the evidence with my own eyes. This is not to suggest that people who don't know how to use a browser are less intelligent by any stretch of the imagination. It simply means that we need to communicate things to them differently.</p>
<p>Now, this topic of communication brings me to the final lesson I've learnt. Probably the most hard-earned lesson and definitely the most insightful.</p>
<blockquote>
<p>Lesson #5: All problems in an organization are communication problems.</p>
</blockquote>
<p>Look back at what we've covered in this article. </p>
<p>The first issue we uncovered was the issue of emails. When an organization is small, fewer emails are exchanged. As an organization scales, the number of emails increases and it becomes harder to keep track. Communication problem.</p>
<p>The second issue we uncovered was one of trust between the supplier and the manufacturer. The supplier communicated wrong/false information to the manufacturer. The manufacturer had to spend valuable time correcting this false information. Communication problem.</p>
<p>The third issue we uncovered was how to explain to people who've never used a web browser, how to navigate to a specific page. Communication problem.</p>
<p>I know it sounds a little like pigeon holing where I'm trying to force every problem into a communication problem, but at the heart of most problems is just that: poor communication.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>I glossed over the more technical aspects of the solution we built. However, I think that is not the interesting part. What is interesting is how we've attempted to solve problems. </p>
<p>If you think the problems I am working on are interesting, take a look at our <a target="_blank" href="https://www.id-flo.com/careers">job listings</a>.</p>
<p>If you can't find a role that suits you in the listings, please shoot me a mail at zaid@indian-designs.com.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ The Art of Asking For Intentional Product Feedback ]]>
                </title>
                <description>
                    <![CDATA[ By Adam Naor Would you use product X? Do you like product X? What do you enjoy most about the user experience? These questions all elicit feedback. However, these questions are broad. If you want more specific feedback that you can transform into cha... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/the-art-of-asking-for-intentional-product-feed-back/</link>
                <guid isPermaLink="false">66d45d7b768263422736e8a3</guid>
                
                    <category>
                        <![CDATA[ Feedback ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Product Design ]]>
                    </category>
                
                    <category>
                        <![CDATA[ product development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Tue, 19 Jan 2021 17:42:33 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/6006618d0a2838549dcb49e6.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Adam Naor</p>
<p>Would you use product X?</p>
<p>Do you like product X?</p>
<p>What do you enjoy most about the user experience?</p>
<p>These questions all elicit feedback. However, these questions are broad. If you want more specific feedback that you can transform into changes to your product, you will want to ask questions that elicit more details.</p>
<p>If this insight seems obvious, why do we - as builders, designers, and coders - all too often ask for product feedback that leaves us no better off than we were before asking?</p>
<p>I believe - and will provide examples to support in the article that follows - that by asking probing questions, we can collect actionable feedback that leads us to make worthwhile product improvements. </p>
<p>But only by asking the right questions, at the right time and in the right way, can this value be unlocked. If you need help learning to ask the right questions (and follow-up questions), this article is for you. </p>
<p>I have learned how to ask questions through a mixture of patience, practice, coaching, and building.</p>
<p>First, some relevant stories from my past missteps.</p>
<h2 id="heading-how-my-firsthand-experiences-building-led-me-to-ask-different-types-of-questions">How my firsthand experiences building led me to ask different types of questions</h2>
<p>When I started a FinTech company to help kids and parents learn about financial education at home, I asked parents if they thought financial education was important to the well being of their children. </p>
<p>What do you think these parents said? As a matter of fact, nearly 100% said that “yes” such education was important. </p>
<p>Guess how many of these parents went on to use the product I built? Only a fraction.</p>
<p>This short example illustrates the importance of asking the right questions. I asked the wrong one. Perhaps I should have asked the following:</p>
<ul>
<li>What tools do you use today to teach your children about financial education?</li>
<li>Why do you value teaching your children about money?</li>
<li>How are you planning to educate your children about money?</li>
</ul>
<p>All three of these questions probe the same assumption as the first question: namely, that parents will want to teach their children about financial literacy. </p>
<p>But these questions are fundamentally better because they probe deeper and give the user room to explain their logic and rationale. </p>
<p>This qualitative feedback - where we can go deeper beyond assumptions and platitudes - is where insights exist to shape better product experiences. And that is a central goal for builders.</p>
<p>A second aim of builders is to not only build products that people use, but to build products that people find uniquely valuable. </p>
<p>When I was starting my career I had aspirations of being a Product Manager. A friend, who was a successful Senior Product Manager at Google, challenged me with a simple assignment: build a product that 10,000 people use.</p>
<p>I thought deeply about the challenge and looked into tools to help with student loans and Mapping APIs. Ultimately I decided that I would build a tool that helped solve various problems in my own life. I sat down and thought through these questions:</p>
<ul>
<li>What is a problem I currently have that technology can help address?</li>
<li>Can I build a solution?</li>
<li>Do I know how to build the technology?</li>
<li>If I build a product, can others benefit from it too?</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/01/Screen-Shot-2021-01-18-at-8.40.21-PM.png" alt="Image" width="600" height="400" loading="lazy">
<em>If you build it they may come...but you need to ask what your users want and need first.</em></p>
<p>I decided to build a Chrome extension that enabled users to quickly switch between tabs. After roughly 6 months on the Chrome store the free extension passed 10,000 active users. </p>
<p>I sat down with friends and started asking them how they used the tool and what they needed the tool to do to add more value in their lives.</p>
<p>I honed in by asking very specific questions:</p>
<ul>
<li>How many times do you use the tool (and I would cross reference this with internal data)?</li>
<li>What does the tool not help you do that you need it to do?</li>
<li>Can I join you at your workstation or desk and observe you using the tool?</li>
</ul>
<p>These questions led to new insights. </p>
<p>Ultimately I decided that the improvements users wanted were beyond my technical capacity.</p>
<p>So I let the tool sustain itself without further coding improvements.</p>
<h2 id="heading-what-did-i-learn-from-this-experience">What did I learn from this experience?</h2>
<p>Firstly, building is rewarding. Solving your own problems with small tools and hacks can be great fun and also educational.</p>
<p>Secondly, when you build something that has utility, and others start to use it, you have a unique opportunity to learn from users to make improvements.</p>
<p>These improvements, in turn, can yield even better product features, designs, and outcomes. These enhancements can better satisfy and align with the needs of your users. </p>
<p>Hence a small flywheel can be set in motion.</p>
<p>And lastly, it’s ok to build and push the limits without committing to further releases and development work. It’s ok to say “no” and allocate your time and technical resources elsewhere.</p>
<h2 id="heading-by-asking-the-right-questions-you-can-unlock-real-value">By asking the right questions you can unlock real value.</h2>
<p>But this value does not need to be applied just to development cycles. It can also make you realize you are headed down a path you don’t want to be on. </p>
<p>And you can use insights from users - and gleaned from the questions that you ask - to make better informed decisions.</p>
<p>I had a product manager who once noted: “if the feedback is not a strong yes, then it's a no.” I think about this belief system a lot because I am always looking for perspectives that can help shape, inspire, and influence the products I design and build.</p>
<p>I would challenge that product manager - and you - to amend that quote: “If the feedback is not a strong yes, ask why not. If you can’t glean insights from users, then it’s a no.”</p>
<h2 id="heading-the-art-of-intentional-product-feedback-starts-with-you-the-builder-and-an-open-mind">The art of intentional product feedback starts with you - the builder - and an open mind.</h2>
<p>But tied closely to an open mindset is the ability to ask the right questions. It is healthy to say “in the spirit of open-mindedness, I’m striving to learn and I am learning by asking questions.”</p>
<p>There are many educational tools, online schools, engineering communities with online coding tests, and communities like freeCodeCamp to help you learn to engineer, design, wireframe, and deploy products. </p>
<p>But how many of these tools teach you how to ask questions, think critically about the replies, and then circle back with relevant follow up questions?</p>
<p>When building anything for others - a tool, a website, an app, or highly specialized software (like a QR Code Generator) - you need to know what people want, need, and most strongly value. </p>
<p>Only by asking questions can you learn these things. Only by asking questions can you produce a product that gets your users to a “strong yes.”  </p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Project-Based Teams VS Product-Based Teams – Which is better for Building Software? ]]>
                </title>
                <description>
                    <![CDATA[ By Enrico Piccinin Suppose you have to add a new major feature to an app.  Is it easier to add this major feature to a relatively small app, still under construction and not yet in production? Or is it easier on a big app that has grown over time, ]]>
                </description>
                <link>https://www.freecodecamp.org/news/project-based-to-product-based-teams-in-software-development/</link>
                <guid isPermaLink="false">66d4608affe6b1f641b5fa4d</guid>
                
                    <category>
                        <![CDATA[ Junior developer  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ product development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ software development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Wed, 01 Jul 2020 18:09:02 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/5f9c99ed740569d1a4ca2275.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Enrico Piccinin</p>
<p>Suppose you have to add a <strong>new major feature</strong> to an app. </p>
<p>Is it easier to add this major feature to a <strong>relatively small app</strong>, still under construction and not yet in production? Or is it easier on a <strong>big app</strong> that has grown over time, whose overall quality is questionable, and which is already running in production serving several clients?</p>
<p>Well, there is no doubt. The second is a much more challenging task. </p>
<p>So then why do we usually find the most experienced developers, the architects – the "cool kids" – mostly involved in working on those smaller apps, while the rest of the folks are often buried in the large projects?</p>
<h2 id="heading-my-story">My story</h2>
<p>Many years ago, I joined the dev team responsible for one of the core systems of a big corporation. The first position I was given was in the Application Maintenance (AM) team responsible for the legacy parts of the app. </p>
<p>The reasons were simple and were shared with me: I was new to the place, and new projects were running fast. They were using leading edge technologies for which there was not much experience. So AM was the right place for me to grow without too much pressure. </p>
<p>They told me that as soon as I had gathered enough knowledge and experience I would move to the Project team. This was the team developing new features with new technologies, the team of the experienced devs. </p>
<p>After one year or so this actually happened, but I will never forget that supposedly not-so-stressful period of AM.</p>
<h2 id="heading-the-project-team-and-the-am-team">The Project team and the AM team</h2>
<p>All this was many years ago but, since then, I have seen the same pattern repeated many times, often in much more extreme forms. </p>
<p>When you have a new initiative, you start with the Project team. The Project team develops the architecture and the features. The Project team accumulates delays with respect to a very optimistic initial plan, and then they start working extra hours, cutting corners along the way. </p>
<p>Quality is often sacrificed to the altar of the Plan, tests are forgotten, and patches are added on top of patches. Developers start adding comments “To be refactored as soon as we have some time”. Technical debt is already there and it'll only grow.</p>
<p>Eventually the thing is brought to production and then, immediately after it goes live, the Project team starts the transition towards the AM team. </p>
<p>After some overlapping period, the AM team is left sailing alone. The AM team is usually younger, less experienced, and considered not as strong as the Project team. </p>
<p>But the tough part is over, the project is now live. Now it is AM time – it is easier, it has to cost less, and the company can afford a new junior team.</p>
<h2 id="heading-one-year-after-the-go-live">One year after the go live</h2>
<p>Fast forward, and it has been one year of intense work. Bugs have been fixed, little things have been changed, and little things have been added. </p>
<p>The system has been eventually made ready to sustain a real production load and the codebase has grown. At this point the AM Team receives a request to add a new big feature. </p>
<p>And we are back to the initial question. Is it easier to add the new feature now or was it easier to add a new feature when we were in project mode?</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/06/1-leZpJJQ4qsyleIHMzG7Tdg.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>The answer is clear: the task for the AM team is much more difficult. It is true that the AM team is sitting on their experience developed over time. But at the same time the AM team needs to deal with a not-very-stable code base, avoid introducing regressions without having a decent test safety net, and devise a way to deploy a new major version without creating disruption.</p>
<p>Let’s say it. The AM team often faces a much tougher job than the Project team. So why, if the task of the AM team is tougher, do all the experienced developers work in the Project team (and are now somewhere else, probably doing something else cool)?</p>
<h2 id="heading-a-possible-answer-the-project-team-needs-to-lay-the-right-foundations">A possible answer: the Project team needs to lay the right foundations</h2>
<p>One reason to have the most experienced people starting a Project is that, at the beginning, we need to lay the foundations for what is to come. We need to define the architecture and make some fundamental decisions about the design of the solution, so the right experience is required.</p>
<p>At the same time though, at the beginning of a Project, we usually have only a limited knowledge of the problem we are called to solve. </p>
<p>At the start of any significant Project there are many known unknowns and also many unknown unknowns. For this reason, the Architecture of the system always has to be considered evolutionary. We need to be aware that many crucial decisions can not be made at the beginning but have to be made when the unknowns start to reveal themselves.</p>
<p>Architectural decisions can rarely be decided once for all at the beginning of a project. Critical architectural questions may pop up at any time in the life of the SW system. And those critical decisions made at the start of the project may have to be overhauled later – maybe because of new requirements, maybe because of new technologies like the Cloud, maybe because they were simply the wrong ones for the problem to solve.</p>
<p>So yes, it is true, the Project team has to make architectural decisions. But the AM also team has to make architectural decisions, and it has to make them in a much more complex environment.</p>
<h3 id="heading-you-simply-can-not-do-the-reverse">You simply can not do the reverse</h3>
<p>While the classical model of a strong Project team followed by a more junior AM team is not the most efficient in the medium term, the opposite is not an answer either. </p>
<p>Most companies can't imagine having a junior team starting a project and then transitioning it to a more senior team for maintenance. It's just not an option.</p>
<h2 id="heading-a-case-for-subconsciousness">A case for subconsciousness</h2>
<p>Maybe one profound reason why more senior people start new Projects with cool new technologies is that they like to start new things and play with new tech. But then over time, when the work seem to become more repetitive, they simply want to move on to other challenges.</p>
<p>This is good for their tech curiosity and this is good for their resume. But this is probably not good for the long term health of the SW system they are building.</p>
<h2 id="heading-from-project-team-to-product-team">From Project team to Product team</h2>
<p>In 2006 Werner Vogels CTO at Amazon coined the famous <a target="_blank" href="https://queue.acm.org/detail.cfm?id=1142065">“you build it, you run it”</a> motto. It conveyed the idea that a team responsible for a Product needs to take care of it from its inception down to its run phase (where run covers both the Ops aspects as well as the evolution aspects). </p>
<p>To put it simply, the same team is responsible for all phases required for a Product to be successful: design, build, run, evolve. </p>
<p>This is the model adopted by the digital giants that have emerged in the last decade, from Amazon to Facebook to AirB&amp;B. Their undisputed success is the proof that the model is the right one in the digital era.</p>
<p>Nowadays a growing number of people are emphasizing the need to move from a project-oriented way of organising work to a more product-oriented model. </p>
<p>This is a complex transformation which involves many aspects of an organisation. But for the topic we are debating here it definitely means that we need to abandon the idea of separate Project and AM teams and create more stable Product teams. </p>
<p>Product teams need to have the right mix of experienced people and more junior people who need to grow. Working together with the experienced devs, juniors gradually become experienced themselves. Controlled rotation is then possible without tampering the quality of the team.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>In the era we are living, the Digital era, we should be suspicious when we hear something like <em>“and when the Project ends we will transition to AM”</em>. </p>
<p>This is not to say that there is no space for AM any more. There are still old legacy systems, usually serving the back office, which are egregiously doing their work, which are very stable, and which just need some Maintenance. </p>
<p>But when it comes time to develop new differentiating digital capabilities we need to move away from the Project/AM model and embrace a Product oriented model. </p>
<p>In this model, teams are designed to be responsible for building not only the first version of the Product they also run it. And they learn from running it while evolving it over time to make sure it remains relevant for its end users.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ I left my full-time job one year ago to ride the indie hacker road. This is what I've learned. ]]>
                </title>
                <description>
                    <![CDATA[ By Pierre de Wulf My partner Kevin and I have been working and talking about different side projects/startups for over 5 years. Two years ago we released our first product to the public, but it was one year ago that we decided to go full time on the ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/12-months-3-products-some-mrr-and-one-irrigation-pivot/</link>
                <guid isPermaLink="false">66d4608af855545810e934ad</guid>
                
                    <category>
                        <![CDATA[ Life lessons ]]>
                    </category>
                
                    <category>
                        <![CDATA[ product development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ product hunt ]]>
                    </category>
                
                    <category>
                        <![CDATA[ startup ]]>
                    </category>
                
                    <category>
                        <![CDATA[  Startup Lessons ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Mon, 07 Oct 2019 06:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2019/10/1_tiAicAxobXZwIwERPf03tA.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Pierre de Wulf</p>
<p>My partner Kevin and I have been working and talking about different side projects/startups for over 5 years. Two years ago we released our first product to the public, but it was one year ago that we decided to go full time on the indie hacker road. In this post, I’m going to explain our journey, our background and how we did it after many failed attempts.</p>
<p>This post is not about some magic product we launched in 2 days while getting 10k signups and reaching $20k MRR in one month while working 4 hours a week in Hawaï. This post is more about the small wins and loses we had during our first year in the Indie Hacker world, and the things we wish we knew before starting.</p>
<p>This post is about 3 products: one irrigation pivot, one startup pivot, and of course, some MRR.</p>
<p><em>(Disclaimer: ScrapingBee was initially launched as ScrapingNinja, but due to some copyright issues we had to quickly rebrand it. We'll talk about it in a future blog post.)</em></p>
<h2 id="heading-background">Background</h2>
<p>It started when we were both employed in different startups as software developers. We had lots of ideas and we loved to build side-projects for fun.</p>
<p>Kevin and I were doing lots of Web Scraping in our jobs. Kevin worked at a Fintech startup called Fiduceo which was acquired by a big French bank, and they were doing bank account aggregation, like <a target="_blank" href="http://mint.com/">Mint.com</a> in the US. He was leading a small team handling the web scraping code and infrastructure.</p>
<p>I worked in the US and then came back to France to work in the biggest French real-estate data provider as a data engineer. Part of my job was to find, gather, extract and load new data sets from the web.</p>
<p>So we both had experience with Web Scraping and data at scale.</p>
<h2 id="heading-our-first-project-shoptolist">Our first project: ShopToList</h2>
<p>One of the first “mini-success” we had was <a target="_blank" href="https://www.shoptolist.com/">Shoptolist.com</a>, a B2C website/browser extension which is a universal wishlist that sends you alerts if it sees any price drop. It was really just a fun side project that was never meant to be more.</p>
<p>It allowed us to try many different things and to discover that acquisition is really, really, really hard. We quickly reached 1k users by just submitting our product on frugal/fashion subreddits. We were very happy about it because it was just an experiment. </p>
<p>Every day we had a script that scraped each product in our database to update its price, and we were sending an email in case of a price drop. The links in the email were affiliate links, so we took a small percentage if the user ended up buying the product.</p>
<p>In theory, this model works great, but in practice here is what happened:</p>
<ul>
<li>Out of 1000 emails sent, about 20–30% were opened</li>
<li>2% click on the product links that were on sale</li>
<li>Out of this 2 %, 5–10% buy the product</li>
</ul>
<p>The percentage we earned was very small, depending on the niche it was 0.5–5%, so this business model only works with millions of users.</p>
<p>And this is where we hit a wall, we did not manage to create sustainable growth. We tested many things, content marketing, affiliation, some paid advertising, but we just did not manage to create growth. And since it was just a little side project that only took us 2 weeks to build, we were ok with that.</p>
<p>For us, this was a very good experience, because this was the first project we really shipped to real users, and we learned a lot.</p>
<p>By digging into the database we noticed that a few users had thousands of products saved inside ShopToList. It seems strange unless they were crazy impulsive buyers, the majority of users had like 20 products saved on average…</p>
<p>So after a little “investigation”, we discovered that these users were E-commerce owners that were “spying” on their competitor…</p>
<h2 id="heading-our-first-pivot-pricingbot">Our first pivot: PricingBot</h2>
<p>We assumed that those people were doing this to receive alerts when their competitor’s products were changing the price. There were many solutions on the web that allowed someone to do this, but ShopToList allowed them to monitor thousands of products for free when other solutions were quite expensive.</p>
<p>We did a small market research and discovered that many tools offered to monitor your competitor’s product, however, all those tools seemed either really difficult to use or really expensive.</p>
<p>Because we felt we could do better, the PricingBot idea was born. I quit my job and we both decided to commit full-time on this. Side project era was over ?.</p>
<p>We made a landing page explaining our value proposition, nothing fancy but something clear and nice enough so people could trust us. We got 60 signups from different E-commerce owners in different niches.</p>
<p>While technically challenging, extracting E-commerce product data was something we knew how to do thanks to ShopToList, so building the MVP was pretty quick.</p>
<p>We launched our beta on ProductHunt on November 2018 and it was a big success, followed by a big crash, the classic <strong>startup trough of sorrow.</strong></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/1_t_YsErGF5PCdAzpwaQ7Vzw.jpeg" alt="Image" width="600" height="400" loading="lazy">
<em>ProductHunt launch</em></p>
<p>You had to upload a CSV file with your product catalog, and for each product match it with a competitor product URL.nIt’s ok for several dozens of products, but people had often hundreds or thousands of product in their online store.</p>
<p>So with this feedback, we created some integration with popular E-commerce platforms like Shopify and Woocommerce to let people import their catalog in one click.</p>
<p>Our activation <strong>tripled ? ,</strong> we were very happy about how things were going. One thing to note, though, is that until this moment the product was completely free and we did not ask people for money.</p>
<p>At this point in time here are the few numbers we had that made use happy:</p>
<ul>
<li>We managed to have around 200 signups with $0 spent</li>
<li>20 users seemed to use the product and had their account fully set up</li>
</ul>
<p>What could go wrong right?</p>
<p>We decide to close the beta and start asking our user to pay for our software with a classic SaaS model with three plans, $29/$99/$299 per month based on volume.</p>
<p>The first day was magic because literally several seconds after sending the email announcing the end of the beta we got our first customer for a $29 plan ?</p>
<p>We also managed to signup a $299 soon after, but for him, we had to manually set up his account and manually match 1000 products across 10 websites. It was long but we felt it was worth it. We were wrong! Just before renewing he churned telling us PricingBot was very good but not useful enough for him. We were sad and angry, mostly at ourselves, but decided to move forward and continue.</p>
<p>It seemed we were on a good path and that we just needed to go all-in on marketing. And that’s what we did. Content marketing, cold outreach, affiliation, SEO you name it!</p>
<p>But before diving into this, let’s talk again about our activation</p>
<h2 id="heading-mistake-1-bad-metrics-leads-to-bad-conclusion-bad-conclusion-leads-to-bad-decisions-in-yodas-voice">Mistake #1: bad metrics leads to bad conclusion, bad conclusion leads to bad decisions (in Yoda’s voice)</h2>
<p>When we first decided to monitor our activation rate we assumed that one user was activated when he did two things:</p>
<ul>
<li>Add at least one of his product, (or link his store with our built-in integration)</li>
<li>Add at least one of his competitor’s product</li>
</ul>
<p>And so, with that definition, we had around 10% of our users that were “activated”. Considering that at that time most of our users were coming from ProductHunt and that hunters are known to easily signup to products they don’t plan to use and just for the sake of it we were happy with these numbers.</p>
<p>But we were wrong.</p>
<p>This definition meant that someone who owns a Shopify store with 4000 products, and who adds only one competitor’s product, was activated. This was silly. Someone who only adds one competitor’s product out of 4000 of is own catalog won’t use PricingBot to do price monitoring and surely won’t pay for it. We learned this the hard way.</p>
<p>Because soon after we had this first paying customer, nobody followed, literally nobody. At first, we did not understand. Then it was obvious: out of 200 signups, we had 20 active users, out of 20 active users we had 1 paying customers, so the only solutions were to have more signups.</p>
<p>This was another mistake.</p>
<h2 id="heading-mistake-2-thinking-our-only-problem-was-acquisition">Mistake #2: Thinking our only problem was acquisition</h2>
<p>We thought we only needed more users and just went full marketing. Because we did not know the e-commerce community very well we had some trouble starting. But we eventually managed to write some piece of content that was shared on relevant Facebook/Reddit/LinkedIn group that brought in a few leads.</p>
<p>We also did some paid advertising and cold outreach but it failed miserably.</p>
<p>One month later, we needed to see the obvious: we were not on the right path.</p>
<p>Our leads used the product but did not pay, and even if all the leads we brought in paid, it would have not been sustainable.</p>
<p>At this point in time we finally decide to understand better why users don’t use our product more and with feedback request and lots of analytics insight we discover two things:</p>
<ul>
<li>For most of our users, PricingBot was a nice to have, but it was not something worth paying for </li>
<li>Most of our users didn't want to do the setup because it is too tedious, but they didn't want to pay us to do it for them.</li>
</ul>
<p>Next thing we knew we revamped our whole onboarding process and try to automate as much as possible. But it was still not working.</p>
<p>When you want, as an e-commerce owner, to monitor your competitors, you first have to link your products with your competitors - and this was the hard part. This part alone meant approximately 1 hour of work per 100 products you want to match. This was way too much time for an e-commerce owner working alone with a 10k products catalog.</p>
<h2 id="heading-fear-uncertainty-and-doubt">Fear, Uncertainty, and Doubt</h2>
<p>To help you understand how we felt at that point in time let me just recap the timeline:</p>
<ul>
<li>January 2018: ? we launch ShopToList</li>
<li>July 2018: ? I quit my job and we decide to build PricingBot</li>
<li>October 2018: ? After a busy summer and 1 month of code we launch the MVP in beta</li>
<li>January 2019: ? First paying customer</li>
<li>February-March 2019: Acquisition, product dev</li>
</ul>
<p>Back in May 2019 we kind of hit a wall. Nothing we did really worked and it was hard staying motivated. The only silver lining was that we managed to rank well on Google so we had, every day, around 3 new signups without any acquisition.</p>
<p>But we still did not manage to make them pay. And we still did not manage to make them configure their account.</p>
<p>This period of time was hard because it was full of negativity. My cofounder and I both knew that we were not moving forward. While this did not degrade our working relationship, it certainly degraded our working productivity.</p>
<p>We both felt that no matter what we did, we were not able to move any meaningful needle that could have boosted our business.</p>
<p>We improved the product a lot, managed to gather some signups along the way but it was not enough. Here is a look at our revenue.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/1__V2G-InXFLPChcA2eF2Wpg.jpeg" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-one-agricultural-pivot-to-build-one-startup-pivot-to-make">One agricultural pivot to build, one startup pivot to make</h2>
<p>Mid-June 2019 things are not looking good, we only have 3 months to launch a successful business. We both agreed in 2018 that we gave ourselves 1 year to launch something that worked, 1 year to reach “<a target="_blank" href="http://www.paulgraham.com/ramenprofitable.html">ramen profitability</a>” ?.</p>
<p>We had a long talk beginning of June and we both agreed that we needed to step back. We currently had 3 options:</p>
<ol>
<li>Continue with PricingBot hoping that some magic happens and that we cross 4k MRR in 3 months</li>
<li>Leaving the company and start going our own way</li>
<li>Building something else</li>
</ol>
<p>Point 1 was hard because we were both fed up with the product. Everything we did seemed useless and it was not working. Point 2 needed to be addressed, but although it was not a success we felt that working together was working really well (in the human side of things). It would be a pity to give up. </p>
<p>But we chose option 3, and we are both very happy with the outcome of that talk and full of energy. We only needed one thing: to choose what we would build.</p>
<p>We also decide to do something we should have done earlier, we sold ShopToList. The whole deal was done in less than 1 month thanks to <a target="_blank" href="http://1kprojects.com/">1kprojects.com</a> and it brought some welcomed money in our company bank account.</p>
<p>In the same time, my father in law, a farmer in the south of France called because he needed help assembling an irrigation pivot. The heatwave was supposed to be hard in June (and guess what, it was), and it was an urgent job. We both decided that this was a good opportunity to take a break, to think, each on our side, about the future product, and to come back full of ideas and motivation.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/1_tiAicAxobXZwIwERPf03tA-1.jpeg" alt="Image" width="600" height="400" loading="lazy"></p>
<p>It was kind of ironic because this pivot kind of funded our pivot.</p>
<p><em>Disclaimer: If you ever need to buy an irrigation pivot</em> I <em>strongly suggest that you look into Valley pivot (PS: this post was not sponsored by Valley in any way)</em></p>
<h2 id="heading-scrapingbee">ScrapingBee</h2>
<p>Two weeks later, we both found ourselves with a bullet list of product ideas, some good, some bad, some crazy, some boring, some exciting, well, you get the idea. Both lists were diverse. However we quickly agreed on one idea, because it really stood out from the others. Let me explain.</p>
<p>While working on Shoptolist and Pricingbot, and also in our previous work experience, there were three things that we always needed to do for our web scraping infrastructure: </p>
<ul>
<li>Transforming websites into a structured API, </li>
<li>Running headless browsers at scale, </li>
<li>and managing a pool of proxies.</li>
</ul>
<p>When you extract data from lots of different websites, you always have to deal with Javascript-heavy websites / Single Page application, and you don’t really have other choices than running headless browsers to render all this Javascript.</p>
<p>Running a headless browser like Chrome is really painful because the same thing happening on your desktop (high memory usage, poorly coded Single page application eating 100% of your CPU) will happen on your servers. So it is not only painful but very expensive to do this on your own when you don’t know what you are doing.</p>
<p>When doing web scraping at scale, you often have to use proxies for different reasons. The website you are visiting with your bot may show different information based on your location - for example, a price in Euro in the Euro-zone and a price in dollars in the US.</p>
<p>Dealing with proxies is painful too. There are lots of shady companies selling bad quality proxies so you either have to run your own proxies or test dozens of proxy companies to make sure your proxy pool is always up.</p>
<p>We used to solve all those problems using APIs that were either not really efficient or crazy expensive. These are problems that we solve multiple times in our projects so we thought about packaging it into an API and leveraging our experience to make all kinds of web scraping APIs.</p>
<p>We decided this time, to make things right and to try to avoid doing the mistakes we made with PricingBot while creating <a target="_blank" href="https://www.scrapingbee.com/">ScrapingBee</a>.</p>
<h2 id="heading-mistake-avoided-1-creating-a-product-you-wont-use">Mistake avoided #1: creating a product you won’t use</h2>
<p>One of the biggest problems we had with PricingBot was to find where our potential users gathered online. What group did they follow, what blog did they read, what influencers did they listen to. And the reason was simple, having never worked with or in the e-commerce industry except for some freelancing gigs, the whole landscape was unknown to us.</p>
<p>With ScrapingBee we would be our own users and it changed everything. I know this advice is not new, but often this advice is meant to build a better product. And sure, being one of your own users allows you to build a better product.</p>
<p>But for us, the game-changing fact was that being our own users meant that we knew exactly where to find and how to reach potentials leads.</p>
<p>Kevin and I also have our own blogs running for quite a bit of time and I wrote last year a book dedicated to web scraping in Java. This directly translated into 20k monthly visits that we could leverage to promote ScrapingBee.</p>
<p>And it worked. In about 2 months, we reached 150 beta signup, 4 times the amount of beta testers we had for PricingBot.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/1_s0LCG7DV7ZRrtQL2dN3HsQ.jpeg" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-mistake-avoided-2-spending-too-much-money">Mistake avoided #2: Spending too much money</h2>
<p>While building PricingBot, we spent a lot of money on useless infrastructure, APIs and software without reaching Product-Market Fit.</p>
<p>We got to get our money back thanks to ShopToList sale and my agricultural skills before we launched ScrapingBee, but this time, we were way more careful about how we spent it.</p>
<p>I know spending several thousand dollars to bootstrap a project is not a lot of money but we weren’t comfortable with spending more. So we decided to be careful with how we would spend it with ScrapingBee.</p>
<p>We basically reduced our costs by only finding deals (❤ AWS Credits) like <a target="_blank" href="https://www.joinsecret.com/">Secret</a> which basically give you 6 months free for lots of SaaS or a huge discount.</p>
<p>We decided to do more with what we had, and so far we don’t regret it.</p>
<p>I’ll talk more about products and tools we used in a future blog post, this one is already long enough.</p>
<h2 id="heading-launch-and-mistake-avoided-3-not-asking-for-money-from-day-one">? Launch ? and mistake avoided #3: not asking for money from day one</h2>
<p>One thing that did not work well with PricingBot is that for months, we built a product that was free to use. I know this is a classic mistake, but this is not the worst part. The worst part is that we knew it was a mistake. In the last 4 years, we’ve read tons of books, interview, blog posts about startup and everyone seems to agree that the sooner you ask for money the better.</p>
<p>But it was easier said than done and we did not dare ask for money while building PricingBo. We just did not think anyone would pay for an unfinished product.</p>
<p>We did for ScrapingBee. The pricing for ScrapingBee is again a classic three plan SaaS based on API call volume/feature starting at $9 / $29 / $99 per month and an Enterprise plan.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/1_u8GtUK5YwugRzzDPJ11BBA.jpeg" alt="Image" width="600" height="400" loading="lazy"></p>
<p>We “soft-launched” first to our mailing list and got our first few small paying customers. Again, we had the same experience with PricingBot but this time it was different. With PricingBot, every paying customer we had was really hard to get, we had sent them tons and tons of email and they took a long time to finally pay.</p>
<p>With ScrapingBee it was different. Our first 2 customers had never talked with us before.</p>
<p>We then started to blog and got tons of leads along with a few more paying customers including a big Enterprise plan as you can see in the MRR chart below.</p>
<p>Then it all went quickly, Kevin and I both having blogged about programming, creating insightful content about Web scraping is not a problem for us, and we knew how and where to promote it.</p>
<p>One particular piece of content we wrote, a <a target="_blank" href="https://www.scrapingninja.co/blog/web-scraping-without-getting-blocked">web scraping guide</a> completely exceed our expectations.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/1_afh6y24VhYabHLd0vFbCbA.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>This post alone meant that in 2 months we had 3 times the traffic we had in one year of PricingBot. This post not only brought traffic but also customers with real $. It also allowed us to signup the first big enterprise plan that allowed us to reach and cross $1000 MRR.</p>
<h2 id="heading-the-future">The future</h2>
<p>Of course, it’s really early to say if <a target="_blank" href="https://www.scrapingninja.co/">ScrapingBee</a> will be a success or not.</p>
<p>This big enterprise customers thanks to the success of our first blog post could only be an outlier phenomenon that won’t reproduce in the future. Maybe it will. But one thing is certain, things are looking way better with ScrapingBee.</p>
<p>We have lots of engagement from our users and leads, the conversion rate from trial to paying customer being close to 5%.</p>
<p>We also love to talk with our potential customers (❤️ Zoom) and we have the feeling that ScrapingBee is really a must-have for them, instead of a “nice to have”. (small tips: we offer 10 000 free API credits for users that accept to have a small 15 minutes talk with us, this already allowed us to have 50 real conversations with real people about ScrapingBee)</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/1_qr_1khM2_jK0eooATk8JbQ.png" alt="Image" width="600" height="400" loading="lazy">
<em>In-app message to incentivize users to schedule a call with us.</em></p>
<p>In the months to come a big challenge will be to find profitable and scalable acquisition channels. We hope that content marketing will continue to work and that it will improve our SEO to get organic traffic. Writing a good piece of content may not be enough and we really have to discover other acquisition channels.</p>
<p>The other big challenge is to prioritize features in the API-store. Meaning figuring out what users <strong>need</strong> not blindly implementing what they want, and hopefully, manage to get them to pay before the feature is implemented.</p>
<p>We still don’t know what we want to do with PricingBot, we seriously think about selling it but are a bit afraid of all the paperwork involved (it was much easier with ShopToList because ShopToList did not bring any money in, so no bank account, Stripe account, etc…)</p>
<p>We also still have a lot to learn and a lot to prove before being able to say that we build a sustainable and profitable business but for the first time in our lives, we feel that it can be done, time will tell us if we’re right.</p>
<p>I really hope you liked our little story and that your learned some interesting bits along the way. We plan to do this kind of posts every 3 months at least, please tell me if you'd like to read the next one ;).</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to drive innovation in software teams ]]>
                </title>
                <description>
                    <![CDATA[ By George Krasadakis Innovation is difficult. To empower innovation and transform how teams work, you need the right mix of culture, technology, processes and inspiration — and this takes time. Typically, it requires an ambitious, long-term transform... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/leading-innovation-in-engineering-teams-ca9890bcad7c/</link>
                <guid isPermaLink="false">66c359949de50ee9ca7fa6cf</guid>
                
                    <category>
                        <![CDATA[ agile ]]>
                    </category>
                
                    <category>
                        <![CDATA[ innovation ]]>
                    </category>
                
                    <category>
                        <![CDATA[ product development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ software development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Mon, 09 Jul 2018 19:22:00 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*Hv0uAAM5S4GI6-i72LWUew.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By George Krasadakis</p>
<p><strong>Innovation is difficult.</strong></p>
<p>To empower innovation and transform how teams work, you need the right mix of culture, technology, processes and inspiration — and this takes time. Typically, it requires an ambitious, long-term transformation programme.</p>
<p>In the context of software business, this program could face additional challenges. As engineers focus heavily on technical excellence — which is great — they frequently find themselves disconnected from the commercial world or the end-users of their products.</p>
<p><strong>To become truly innovative</strong>, engineering teams need to also capture the ‘big picture’ and fully understand the purpose and the commercial aspects of the business.</p>
<p>Novelty, innovation and success could all mean different things and have various priorities in an engineering team. This means that you need to adjust your innovation strategy, communication style, and tactics.</p>
<h3 id="heading-1-define-innovation"><strong>1. Define ‘Innovation’</strong></h3>
<p>In the corporate world, innovation could be anything novel that creates value for its users and has potential for commercial success.</p>
<p>Innovation could be incremental or breakthrough. It can happen at any time, such as following a ‘call to innovate’ like a <a target="_blank" href="https://medium.com/innovation-machine/hacking-the-hackathon-40c109c1a6ea">hackathon</a> or design sprint, or randomly — driven by original ideas, genuine talent and inspiration.</p>
<p>Innovative thinking typically leads to ideas and concepts regarding products or product features. In an engineering context, the outcome of innovation may also take other forms — from abstract technical concepts, patents, algorithms, data models to architecture patterns and functional prototypes.</p>
<p>It can also trigger process improvements. For instance, novel ways and tools to speed up your overall development lifecycle and boost DevOps KPIs.</p>
<h4 id="heading-engineers-as-innovation-leaders"><strong>Engineers as innovation leaders</strong></h4>
<p>In many cases, software engineers innovate ‘silently’, inside their own microcosm. This can be at a lower level (the actual design and implementation) or at a higher level (components and system’s architecture).</p>
<p>But, engineers can play a more important role in leading innovation.</p>
<p>In fact, they have a great advantage in driving innovation efforts. They are the ones with deep understanding of technology and they are often passionate about it. This allows engineers to easily spot both the opportunities and the underlying constraints of technology.</p>
<p>Moreover, engineers are expected to understand the principles of experimentation and be ready to take risks following a ‘fail fast, fail-safe’ approach.</p>
<p>Either as part of wider multidisciplinary team or as an independent software development unit, skillful engineers can thrive in leading real innovation, beyond the hype. What is needed is <a target="_blank" href="https://medium.com/innovation-machine/innovation-culture-ecf2c1be3102">the right culture</a> and steering — the key signals and a clear direction from the leadership.</p>
<h3 id="heading-2-empower-innovation"><strong>2. Empower Innovation</strong></h3>
<h4 id="heading-set-the-right-context"><strong>Set the right context</strong></h4>
<p>The culture in engineering teams is special. Engineers tend to have limited engagement with over-hyped business terms and marketing buzzwords — and <em>innovation</em> is one of them.</p>
<p>To change that perception, engineering leaders need to define innovation in the context of the company and with the right language for the team.</p>
<p>The discussion on innovation must be supported by solid definitions, examples, programs and tools. Teams need to relate to innovation success stories — and understand what ‘innovation success’ means in their specific setup.</p>
<p>Examples and references could come from the public domain, or ideally from the recent history of the company.</p>
<h4 id="heading-establish-the-right-culture"><strong>Establish the right culture</strong></h4>
<p>Engineers need to see themselves as innovators, creators, and builders. They need to realize that they don’t just implement a feature, a component or a process in isolation. They are part of something bigger which typically drives significant financial value, or other important corporate KPIs.</p>
<p>As an engineering leader, you need to encourage teams and fellow engineers to share their ideas and thoughts. But not only in their domain of expertise — literally on anything in your business reality. And you need the mechanisms to capture these thoughts and enable effective discovery and collaboration scenarios.</p>
<p>Your engineers need to feel trusted, also in terms of time and focus. They need to have some autonomy on when and how to pursue their ideas. And this is where you need a strategy and a framework to ensure that you maintain the right balance between productivity and ‘dreaming’.</p>
<p>Having productivity baselines along with metrics on innovation activity can help you monitor, understand and steer the innovation efforts.</p>
<p>Depending on the current workload and velocity of the team, you can set the appropriate balance between productivity and innovation. For example, by de-prioritizing innovation-related work/ideas or reducing the frequency of ideation sessions.</p>
<p>Technology can provide great support here. Intelligent ideation platforms can easily capture and automatically handle ideas, thoughts, problem statements and even connect this <a target="_blank" href="https://medium.com/innovation-machine/a-stream-of-ideas-the-foundation-of-an-innovation-machine-2ebcfe4e0653">innovation stream</a> to your product backlog with relevance and intelligent prioritization.</p>
<h4 id="heading-invest-in-technology"><strong>Invest in technology</strong></h4>
<p>Modern teams need <a target="_blank" href="https://medium.com/innovation-machine/principles-of-a-great-ideation-channel-539cf91dbbf2">an always-on channel for ideation and collaboration</a> — which could also get connected to your engineering processes.</p>
<p>Imagine if your product’s backlog entries were seamlessly matched with incoming ideas. Or, if ideas were automatically scored against backlog relevance, or having an intelligent process that groups and summarises all known-issues, bugs, performance limitations, system constraints, negative user feedback etc. as well-defined, prioritized ‘problems to be solved’.</p>
<p>Innovators from within your team or across the organization could discover relevant-to-them content and respond with novel ideas on potential improvements and fixes, or innovative ways to solve the problems stated.</p>
<h4 id="heading-enable-rapid-prototyping-and-experimentation"><strong>Enable rapid prototyping and experimentation</strong></h4>
<p>Failure is part of the overall innovation process — as soon as it is fast and safe, it provides important learning opportunities through insights and findings.</p>
<p>Following practices like ‘rapid prototyping’ and ‘fail fast’, ideas can be quickly tested with real users, to support informed decisions, as early as possible and at minimum cost.</p>
<p><a target="_blank" href="https://uxdesign.cc/is-it-a-prototype-or-an-mvp-well-its-a-proof-of-concept-f8df5bb8940a">Rapid prototyping</a> is also a key principle: in contrast to the ‘production mode’ where engineers need to follow certain processes, coding principles and protocols, ‘rapid mode’ allows engineers to use shortcuts, make assumptions, hard-code if necessary and use artificial data to quickly build functional instances of an idea. This rapid mode, focuses on building prototypes, that can be exposed to selected users and capture feedback towards possible next steps in the development process.</p>
<p>‘Rapid prototyping’ requires both ‘a different mode of operation’ for your developers, but also the right technology readiness. You need to maintain, reusable components, APIs, UI elements, standardized data sets and other assets, to enable quick assembly of realistic, functional prototypes, without wasting effort on functionality which is not directly relevant to the core idea — the one to be tested or validated.</p>
<h3 id="heading-3-measure-innovation">3. Measure Innovation</h3>
<p>Quantifying innovation is difficult. Measuring innovation activity is easier. You need to introduce a framework to capture events which are relevant to innovation — this could be ideation, contribution to ideas, prototyping efforts, patent filing etc. Having a rich, reliable history of such activity is fundamental in defining related baselines and reference points. Innovation activity metrics could then be linked to certain KPIs and analysed against product and financial performance.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/W7CDGHV8reNJQbwQP3glSc7ha0NEHK8yRjir" alt="Image" width="800" height="400" loading="lazy"></p>
<p>Qualitative assessment regarding the overall innovation performance within your team and the entire corporation can also be very useful. As an additional set of innovation indicators, domain experts could assess the novelty and level of innovation in specific deliverables or product releases, against the corresponding state of the art.</p>
<p>All the above could be linked and presented in a solid <a target="_blank" href="https://medium.com/innovation-machine/how-to-setup-an-innovation-team-d0d3ea377390">Innovation Performance</a> dashboard for both management purposes and for achieving a general awareness related to innovation performance.</p>
<p><em>As <a target="_blank" href="https://www.pluralsight.com/blog">published</a> in ‘Perspectives in Engineering’ by <a target="_blank" href="https://www.pluralsight.com/product/flow">GitPrime</a></em></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How identifying a strong theme can make product development more effective ]]>
                </title>
                <description>
                    <![CDATA[ By Cameron Jenkinson MVPs always seem easy to execute and build. The first version is shipped with a few features and development is simple to manage. This simplicity affords a focus that is disciplined and strong, because those initial features stan... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-themes-simplify-product-development-b6bab1afd01d/</link>
                <guid isPermaLink="false">66c34ecf465d1b2f886ba413</guid>
                
                    <category>
                        <![CDATA[ product development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Product Management ]]>
                    </category>
                
                    <category>
                        <![CDATA[ software development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ startup ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Thu, 21 Jun 2018 11:50:15 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*SztAPNBGkbmLBwK-gTRcMw.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Cameron Jenkinson</p>
<p>MVPs always seem easy to execute and build. The first version is shipped with a few features and development is simple to manage.</p>
<p>This simplicity affords a focus that is disciplined and strong, because those initial features stand for the core idea.</p>
<p>However, as an idea grows, so do its changing product priorities and ever increasing customer feedback demanding change. What was once a simple product vision can become something verbose. You can lose sight of what made it mean something to people in its initial simplicity.</p>
<h3 id="heading-the-problem">The Problem</h3>
<p>Technology companies typically have either a top-down or bottom-up approach to product development.</p>
<p>A top-down focus usually means that leadership directs all product decisions. A bottom-up focus is driven entirely by research and feedback.</p>
<p>Beauty lies somewhere in between, when these two approaches are taken together. But when one weighs in more, problems start to occur.</p>
<h4 id="heading-top-down-focus"><strong>Top down focus</strong></h4>
<p>Characteristics of a top-down approach to product development typically look like this:</p>
<ul>
<li>Investors tell leadership what to tell the product teams to build</li>
<li>Investors and leadership hold meetings where they make decisions about the product without a lead product team member present</li>
<li>Leadership team gives the product team a list of features they want to be built</li>
<li>Leadership changes sprints mid-way through because they want something added or changed immediately</li>
<li>Leadership plans sprints and directs the product roadmap, whereas the product team simply executes with no involvement in those decisions</li>
</ul>
<h4 id="heading-bottom-up-focus"><strong>Bottom up focus</strong></h4>
<p>On the other side, a bottom-up approach usually looks like this:</p>
<ul>
<li>Leadership stays out of product development in general and focuses on setting business priorities in the form of goals, visions, and strategies</li>
<li>Leadership has frequent meetings about the direction of the product with suggestions in hand, but typically accepts push back on their suggestions from product team leads</li>
<li>Leadership makes suggestions, but the product team leads always have the final call</li>
<li>Leadership avoids and rarely engages with individuals in the product team (designers, developers, and so on)</li>
</ul>
<p>Any of this sound familiar?</p>
<p>These characteristics can paint a picture of any product development environment at a startup in the last few years.</p>
<p>So what is the problem with all of this?</p>
<p>It comes down to communication.</p>
<p>The communication of ideas about how to make the product better while keeping it in line with the original vision.</p>
<p>People generally don’t like confrontation. Depending on how top-down or bottom-up the environment is, the degree of honesty people display is going can be vastly different.</p>
<p>This is because people don’t like to know that their ideas and suggestions aren’t very good … and people don’t like to tell people that their ideas and suggestions aren’t very good.</p>
<p>When this honesty isn’t enforced and managed, it can take the original product vision on a rollercoaster ride of changes. These changes are sometimes hard to spot in the beginning, but can result in disasters over the long term.</p>
<h3 id="heading-solution">Solution</h3>
<h4 id="heading-product-themes">Product themes</h4>
<p>Product themes are the gatekeepers that are summoned to protect the team’s focus and make communication between people more honest.</p>
<p>Product themes sit at the table when people are talking and making decisions about the product.</p>
<p>You can think of themes like the secret service or the armed guard. They have sworn an oath to protect the team’s focus from being hurt, lost, or altered in any way.</p>
<p>Instagram used themes, and we can all agree that they’ve done pretty well to keep their product under control.</p>
<blockquote>
<p>“In the early days of Instagram, Krieger and his team recorded their action items in a rolling Google Doc, organized by themes.” — <a target="_blank" href="http://firstround.com/review/how-instagram-co-founder-mike-krieger-took-its-engineering-org-from-0-to-300-people/">Source</a></p>
</blockquote>
<p>Product themes act as a negotiator between people, because they interject and help facilitate people’s ideas about or related to product development.</p>
<blockquote>
<p>“One of our themes was being the fastest photo-sharing app in the world. What are we working toward within that theme? Next, we wanted to make the photos look incredible, way beyond what you’d expect from a cell phone. What are we doing on that? Anything that didn’t fit into those things went by the wayside. “ — Mike Krieger, Instagram</p>
</blockquote>
<p>“Anything that didn’t fit into those things went by the wayside” — <strong>this is</strong> <strong>the important piece here.</strong></p>
<p>Instagram used themes to keep their focus in check.</p>
<p>It would’ve been easy for the Instagram team to hold a meeting and accept suggestions. But these suggestions could have taken them away from the focus of “<em>becoming the fastest photo sharing app in the world”</em> if that theme wasn’t defined clearly before<em>.</em></p>
<p>This is because communication generally has the most impact on focus during meetings. <strong>People easily impart views based on assumptions that can lead their focus astray or down another path.</strong></p>
<p>Imagine if Instagram did not have that theme at the core of what they were building, and instead took suggestions as they went along (like in an Agile environment).</p>
<p>What if they looked at what people wanted at the time — adding more granular photo editing tools — and tried to implement that? Perhaps Instagram would have been closer to what Adobe Photoshop is.</p>
<p>But instead, their product themes protected this from happening. They ensured that the communication between team members was kept on track. And people didn’t have to feel like they were being swept aside or not valued by their team. It wasn’t Mike who said an idea wasn’t good. He used the themes to justify his opinions, so there was little confrontation.</p>
<p><strong>Essentially, product themes give people permission to tell any team member that what they are saying is distracting the team from the core focus.</strong></p>
<h3 id="heading-where-do-themes-come-from">Where do themes come from?</h3>
<p>Product themes come from the creators beliefs about life or the problem they are trying to solve.</p>
<p>Themes have depth and are often rooted in strong beliefs about what should be true about a product or its impact on the world.</p>
<p>A theme is a big idea, and it usually touches on human experiences that everyone can relate to (so they are <strong>not technical descriptions)</strong>.</p>
<h4 id="heading-how-they-work"><strong>How they work</strong></h4>
<p>To create a product theme, you must come up with a set of statements that embody strong beliefs and convictions about the product itself.</p>
<p>Instagram’s main theme was: “<em>to be the fastest photo sharing app in the world</em>.”</p>
<p>This is strong assertion and a clear message that has depth. People looking at Instagram today and would probably say that it embodies that theme.</p>
<p>Instagram’s users support and drive that theme when using it without even thinking it about it — the theme is in the product’s DNA.</p>
<p>When a team is having discussions, planning the execution of the product, this theme must be present and “at the table” with them every day. While the theme is present, it permits the team to discuss only ideas and information that make that theme become a reality.</p>
<p>I guess you could think of a theme as spirit that wants to live in the real world.</p>
<p>It wants you to make it real and protect it from being anything other than what it wants to be.</p>
<p>This is why I believe product themes can be a simple framework that protects the team’s focus and makes the way we build products more inclusive and effective.</p>
<h4 id="heading-how-to-use-them"><strong>How to use them</strong></h4>
<p>In order to take a structured approach when using product themes, you must first adopt the mindset of <a target="_blank" href="https://mikeindustries.com/blog/archive/2016/09/shipping-vs-learning">Shipping VS Learning</a>. In this mindset, teams prioritize learning as a regular deliverable over shipping stuff. This is the underlying method that guides how product themes can be used to drive product decisions.</p>
<p>Here are some things that can go wrong when teams ship stuff without product themes guiding them:</p>
<ul>
<li>Teams ship inferior or non-impactful products in order to say they shipped something</li>
<li>Teams ship things that teach their company nothing</li>
<li>Teams aren’t given enough runway to do great work because of the constant pressure to ship ASAP</li>
</ul>
<p>On the other hand, learning as quickly as possible and making sure that learning is prioritized is the most likely contribution to product success. Shipping is part of the learning process, but learning comes first.</p>
<h4 id="heading-a-sprint-template"><strong>A Sprint template</strong></h4>
<p>Here is what a theme-based sprint could look like over the course of 2 weeks:</p>
<ul>
<li><strong>Product theme:</strong> make achieving any career change the easiest journey possible</li>
<li><strong>What we learned:</strong> Removing steps from our onboarding experience did not reduce user confusion. Instead, clearing up language such that users felt they were making progress resulted in the greatest gains (link to more details here).</li>
<li><strong>Cost to learn:</strong> One researcher, one designer, and one week of their calendar time cost €200 in user participant fees.</li>
<li><strong>Plan to proceed:</strong> Productionize new language within one month.</li>
<li><strong>What’s needed to proceed:</strong> Some internationalization help… we’ll outsource this.</li>
</ul>
<p>According to Shipping vs. Learning, <strong>What we learned</strong> is the key deliverable, and it’s something potentially interesting to many people across the company.</p>
<p><strong>Cost to learn</strong> is a chance to optimise for and highlight efficiency, as spending a year of engineering time carries much greater opportunity costs than running some efficient, qualitative testing.</p>
<p><strong>Plan to proceed</strong> lets people know the outcome of the learning and how it affects the way forward.</p>
<p>And finally, <strong>what’s needed to proceed</strong> spells out what a manager, executive, or anyone outside the core team can do to help.</p>
<p>It can be very easy to spend weeks and weeks shipping product then learn absolutely nothing about how the product theme is going to be realized. This is why it’s so important to learn and spend time rethinking how people within the team approach learning and contributing to how product themes.</p>
<p>Sprints should be organised by each of the product themes, where tasks follow whatever system you are already using. Incomplete tasks under each theme can be pushed along to another sprint, but the identity and purpose of every sprint is never lost.</p>
<p>It isn’t about what are we shipping this week. It should become what can we learn this week to realise the product theme better than we did last week.</p>
<h3 id="heading-wrapping-up">Wrapping up</h3>
<p>In conclusion, when building a product it is imperative that a narrative is made around what the core themes are and how your team prioritises development efforts around them. Everyone within an organisation should be made aware of what the product themes are so that everyone has the opportunity to manage the overall development towards realising them.</p>
<p>Product themes are not an afterthought or something related only to the product’s department. They should be respected and managed just like a company vision or mission statement. I would even suggest that, in some cases, product themes are the foundation to a long lasting company statement of purpose.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to define a Minimum Viable Product ]]>
                </title>
                <description>
                    <![CDATA[ By George Krasadakis Moving from a concept to a properly defined MVP The Minimum Viable Product, although a properly defined term, means different things to different people. In fact, it is one of the most misused terms in the technology domain. It ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/is-it-an-mvp-really-6657db743544/</link>
                <guid isPermaLink="false">66c3588b39357f94469765b6</guid>
                
                    <category>
                        <![CDATA[ design thinking ]]>
                    </category>
                
                    <category>
                        <![CDATA[ innovation ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Product Design ]]>
                    </category>
                
                    <category>
                        <![CDATA[ product development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Sat, 10 Jun 2017 00:04:30 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*c7D3AVflWXNTNe-u_5Yfwg.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By George Krasadakis</p>
<h4 id="heading-moving-from-a-concept-to-a-properly-defined-mvp">Moving from a concept to a properly defined MVP</h4>
<p><img src="https://cdn-media-1.freecodecamp.org/images/7nI2PEezl4vyuLb38mH8pQPiHpPfDFd0cmpb" alt="Image" width="800" height="533" loading="lazy"></p>
<p>The <strong>Minimum Viable Product</strong>, although a properly defined term, means different things to different people. In fact, it is one of the most misused terms in the technology domain. It is often poorly referenced to describe a <strong>prototype</strong>, a <strong>demo</strong> or even <strong>the first deliverable</strong> of a project.</p>
<blockquote>
<p>“In product development, the minimum viable product (MVP) is a product with just enough features to satisfy early customers, and to provide feedback for future development” — <a target="_blank" href="https://en.wikipedia.org/wiki/Minimum_viable_product">Minimum_viable_product</a></p>
</blockquote>
<h3 id="heading-defining-the-mvp">Defining the MVP</h3>
<p>Assuming you have this great idea, you need a method to start defining the <strong>product</strong><em>.</em> More specifically, the subset of the product features that can serve your objectives with the <strong>minimum cost</strong> and <strong>risk</strong>. The following explains how to get from an idea to an MVP.</p>
<h3 id="heading-identify-your-users"><strong>Identify your users</strong></h3>
<p><strong>Set the context</strong> — think of the problem, the situation and the opportunity<em>.</em> Think of what is already available in the market dealing with the same problem. Identify and name the types of users involved and how they interact. Document your <strong>users</strong>, their <strong>needs</strong>, the <strong>problems</strong> they are experiencing, their <strong>expectations</strong>, and the <strong>best-possible experience</strong> they could have in your context.</p>
<p>The <strong>Minimum</strong> in the <strong>MVP</strong> implies that you already have the big picture, you have <strong>the product vision!</strong> A common mistake is when the team ‘easily’ identifies a set of ‘obvious’ use cases as the MVP — without a clear product vision and the big picture.</p>
<blockquote>
<p><strong>Check also: <a target="_blank" href="https://uxdesign.cc/how-and-why-to-write-great-user-stories-f5a110668246">How (and why) to write great User Stories</a></strong></p>
</blockquote>
<h3 id="heading-think-as-a-user">Think as a user</h3>
<p>Having the big picture you need to apply a process to identify the smallest subset of functionality that serves a very specific goal. The goal is <strong>to satisfy your users.</strong> You also want to enable critical user insights and feedback. This feedback can improve the next iteration in your product development plan.</p>
<p>The big picture is the super-set of user stories across all the classes of users identified. It’s a good idea to create a large set of <strong>epic stories.</strong> Then iterate across all identified users and try to define user stories covering their needs and expected benefit/ gains.</p>
<p>Use a compact format as the one proposed in Scrum: <strong>as a  I want to  so that &lt;des</strong>cribe the gain&gt;. You don’t have to worry about priorities at this stage. A good idea would be to name each story/ assign a compact title for easier classification and organization.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/aMQWj9seF26AOzCuL4xNmHMEyejUUgcVSiou" alt="Image" width="800" height="779" loading="lazy"></p>
<p>As soon as you have your product feature super-set, you need to review it to ensure that it defines a product (the <strong>P</strong> of the <strong>MVP</strong>). Search for <strong>continuity</strong>, <strong>homogeneity</strong> and <strong>complementarity</strong> among your user stories.</p>
<p>As a result of this process, you may realize that more than one of the related products are referenced in your backlog and need to be separated. Or you may realize that there are significant gaps that need to be filled.</p>
<p>Again, <strong>think as a user.</strong> Use empathy to identify interactions, scenarios and stories that need to be included.</p>
<p>You need to also <strong>gather feedback</strong> so you can try to <strong>validate your stories</strong> and the product. You can gather feedback through expert advice, user interviews, formal or informal surveys or public domain references (for instance any reliable public domain statistics that can help you test your assumptions).</p>
<h3 id="heading-think-as-an-entrepreneur">Think as an entrepreneur</h3>
<p>Thinking as a user is great. You can be creative and forget, for a moment, about real-world challenges such as technical and financial constraints. Your objective is to compile the product super-set of user stories to satisfy — or to even to excite — all the different types of your users.</p>
<p>Now it’s time to think as an entrepreneur. You need to start considering and documenting implementation costs, priorities, strategic advantages and differentiators against competition.</p>
<p>You need to estimate the development cost of each user story. You also have to quantify the <strong>expected value for the user</strong> along with the expected impact on the business: <strong>your business</strong>.</p>
<p>The logic to identify the <strong>right minimum subset</strong> can be complex — requiring estimates of all the above at the user-story level. For each user story (or Epic) you need to have at least the following:</p>
<ol>
<li><p><strong>The complexity / cost associated / feasibility</strong></p>
</li>
<li><p><strong>The expected value for the user</strong></p>
</li>
</ol>
<p>Estimates of the above dimensions could be on a numerical or ordinal scale. As soon as you have those estimations you can then rank your stories. Also plot them in a simple chart against <strong>complexity</strong> and <strong>expected value for the user</strong>.</p>
<blockquote>
<p><strong>Check also: <a target="_blank" href="https://medium.com/@gkrasadakis/the-successful-product-manager-5f3cb3aacb51">How to become a great Product Manager</a></strong></p>
</blockquote>
<h3 id="heading-prioritize-rank-set-the-focus">Prioritize, Rank, Set the focus</h3>
<p>At this point you can start prioritizing <strong>high-value, low-cost stories</strong> over lower value<em>,</em> costly ones. Be aware, though, of those natural, strong dependencies between product features.</p>
<p>In many cases there are technical or procedural dependencies requiring certain features to be implemented first, although their cost is high and the expected user value low. These dependencies need to be identified and possibly visualized in the user stories mapping.</p>
<p>Having the above for each of the features (user stories) of your product allows you to <strong>define your MVP</strong> as:</p>
<blockquote>
<p>“… the minimum set of features (stories) ensuring a good-enough product experience driving increased user engagement that can secure the next product development cycle”</p>
</blockquote>
<p>You can sort your entire product backlog by <strong>dependency sequence</strong> (start with foundation). Then by the <strong>value for the user</strong> in descending order. Then by <strong>complexity</strong> and <strong>feasibility</strong> in ascending.</p>
<p>You can also combine budget constraints, team’s velocity and go-to-market strategy makes it ‘easy’ to identify the red-line of your to-be-proved Viable MP.</p>
<h3 id="heading-reality-check">Reality check</h3>
<p>In reality though, this will be just <strong>a draft definition of an MVP</strong>. What is needed in an ideal scenario is feedback and validation of the features by real users via prototyping, focus groups, market research, competition analysis and related methods.</p>
<p>The more input from real users, the more confident you can be that your product concept has all it takes to become <strong>Viable</strong> (which also assumes a great execution/ implementation/ launch).</p>
<p>Check out <a target="_blank" href="https://medium.freecodecamp.org/is-it-a-prototype-or-an-mvp-well-its-a-proof-of-concept-f8df5bb8940a">this other article</a> on how to define an MVP (among other things).</p>
<p>Thanks for reading!</p>
<p><em>Images: pixabay</em></p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
