<?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" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Inside 42 - Medium]]></title>
        <description><![CDATA[We shape the future of education. - Medium]]></description>
        <link>https://medium.com/inside-42?source=rss----3ab7f24d0ac1---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>Inside 42 - Medium</title>
            <link>https://medium.com/inside-42?source=rss----3ab7f24d0ac1---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 12:37:49 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/inside-42" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[“Why Are We in This Meeting Again?” A Framework for Rethinking Recurring Meetings]]></title>
            <link>https://medium.com/inside-42/why-are-we-in-this-meeting-again-a-framework-for-rethinking-recurring-meetings-4a95c6bb7101?source=rss----3ab7f24d0ac1---4</link>
            <guid isPermaLink="false">https://medium.com/p/4a95c6bb7101</guid>
            <category><![CDATA[product]]></category>
            <category><![CDATA[project-management]]></category>
            <category><![CDATA[meetings]]></category>
            <category><![CDATA[reorganization]]></category>
            <category><![CDATA[framework]]></category>
            <dc:creator><![CDATA[Apolline Reymond]]></dc:creator>
            <pubDate>Mon, 19 May 2025 12:32:49 GMT</pubDate>
            <atom:updated>2025-05-19T12:32:49.218Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="A framework to reorganize Meetings in a team" src="https://cdn-images-1.medium.com/max/1024/1*uv7WBNc9fKDOPOltBYh-0w.png" /></figure><h3>Summary of the article:</h3><p><strong>I. ☕️ Why Rethinking Meetings Regularly</strong></p><p><strong>II. 👀 What Our Feedback System Looked Like</strong></p><p><strong>III. 📊 How We Treated the Results</strong></p><p><strong>IV. 📋 How to Do This with Your Team?</strong></p><h3>☕️ Why Rethinking Meetings Regularly</h3><p>Most product teams know the feeling: your calendar starts to feel more like a maze than a tool. Between syncs, cross-team check-ins, stakeholder updates, discoveries, demos, retrospectives, and planning sessions, it’s easy to lose track of what each meeting is for — and harder to find time for real work.</p><p>This isn’t unique to any one company or industry. As teams grow and squads multiply, meetings do too. And at some point, leaders begin asking the same questions:</p><ul><li><em>Do we still need all these recurring meetings?</em></li><li><em>Are they still serving a clear purpose?</em></li><li><em>Could some of them be async?</em></li><li><em>How much time are we collectively spending here — and is it worth it?</em></li></ul><figure><img alt="Manager struggling with planning" src="https://cdn-images-1.medium.com/max/1024/1*s1-_5Fub17GJIz6ekU_Ofw.png" /></figure><p>Answering those questions, though, is easier said than done. Understanding the full meeting landscape of a 25+ person product team — involving over 40 regular participants — is no small task. We assumed we’d just pull data from calendars and map everything out. We tried tools like TimeNavi. We tried manually browsing Google Calendar events across squads. It all fell short.</p><p>Eventually, we landed on a simpler and more powerful solution: a shared spreadsheet. Discover the method to reorganize meetings in less than a day below.</p><h3>👀 What Our Feedback System Looked Like</h3><h4>A simple spreadsheet for structured feedback</h4><p>The idea was basic — but effective. Instead of trying to guess which meetings were useful, we asked people directly. We listed every recurring meeting across the product ecosystem and opened it up for feedback: each team could rate the perceived usefulness of a meeting, say whether it could be done asynchronously, and share feedbacks for reorganization.</p><p>And what we learned was surprising. Some meetings that seemed untouchable had lukewarm ratings. Others were valued by one team and not at all by another. Crucially, this wasn’t about whether a meeting was a ritual or not — we treated every recurring slot the same. If a meeting consistently received lower average ratings — especially across multiple teams — it signaled that something needed to be revisited.</p><p>Once a representative number of people had filled out the spreadsheet — with a rating, an async opinion, and sometimes a comment — we moved into analysis and reorganization. In the rest of this article, we’ll break down:</p><ul><li>What our feedback system looked like</li><li>How we processed the results</li><li>How to implement this framework</li></ul><figure><img alt="Reorganizing Meetings in group" src="https://cdn-images-1.medium.com/max/1024/1*WZEpyEcGeBTYelkbaJfV4Q.png" /></figure><p>If you’re trying to clean up your team’s calendar and give people more space to focus, this approach might help you do it.</p><p>Understanding the value of recurring meetings isn’t just about asking people <em>“Do you like this meeting?”.</em> You need to understand who finds it useful, why, and whether it still serves its purpose across a growing, multi-squad product team.</p><p>We didn’t want to host another meeting to talk about meetings. We needed something:</p><ul><li>fast to fill (2–5 minutes per person),</li><li>easy to set up and read,</li><li>and open to the people who attend meetings — not just their managers.</li></ul><p>We built a shared spreadsheet that every team member could contribute to. Simple, scalable, and surprisingly powerful.</p><p>Each meeting had its section. The rows captured structured input; the columns reflected each participant. Here’s what we tracked:</p><figure><img alt="A view on main sections for the framework" src="https://cdn-images-1.medium.com/max/1014/1*hRH9Rt7Yha782yh4KimwGg.png" /></figure><h4>🧩 Rows in Each Meeting Table</h4><ul><li><strong>Team</strong></li></ul><p>We asked people to note their squad (Pedago, LX, Infra, NLX, Platform…). This helped highlight differences in how different teams experienced the same meeting.</p><ul><li><strong>Person</strong></li></ul><p>Names weren’t about control — they helped us follow up, and encouraged people to be more thoughtful in their input.</p><ul><li><strong>Perceived Interest</strong></li></ul><p>A dropdown from <strong>1/5 to 5/5</strong>. This made it easy to scan scores and calculate average ratings for each meeting — and avoid the copy-paste issues of putting numbers in a separate cell.</p><ul><li><strong>Could it Be Done Asynchronously?</strong></li></ul><p>Dropdown with <strong>Yes</strong>, <strong>No</strong>, or <strong>Sometimes</strong>. This field surfaced concrete opportunities to switch from live syncs to updates in Slack, Notion, or Loom.</p><ul><li><strong>Feedback (if you want)</strong></li></ul><p>Open text. Some gave one-liners. Others wrote full suggestions. Either way, it gave context to the scores and helped us challenge or validate assumptions.</p><figure><img alt="Rows and sections — framework on meeting reorganization" src="https://cdn-images-1.medium.com/max/1024/1*qTJUV7T1KhTkrILSB8KG_A.png" /></figure><p>The goal wasn’t full participation, but a representative number of responses across squads. What helped was making it clear that only the input from people who contributed would be taken into account — a simple message that encouraged people to make their voice heard. Nearly everyone who filled it out also left a comment, confirming that when feedback is fast and meaningful, teams are more than happy to engage.</p><h3>📊 How We Treated the Results</h3><p>Once the spreadsheet was filled, the next step was to turn feedback into action, without overcomplicating the process.</p><p><strong>We kept it simple:</strong></p><ul><li>We calculated the <strong>average rating per meeting</strong>, using the dropdown scores.</li><li>When needed, we looked at <strong>team-specific averages</strong> to spot differing experiences.</li><li>We read through the open comments — which turned out to be the most useful part.</li></ul><p>From there came the hard part: rethinking the structure of each meeting. We revisited the <strong>purpose</strong>, the <strong>attendee list</strong>, the <strong>format</strong>, and in some cases the <strong>frequency</strong>. The numbers gave us the direction — but the comments gave us the reasoning.</p><p>We focused first on the lowest-rated meetings, using team feedback to understand what wasn’t working — and what might be enhanced. What made the difference wasn’t just the data — it was that the feedback came from people who genuinely wanted things to improve.</p><h3>📋 How to Do This with Your Team?</h3><figure><img alt="A happy manager with a brand new planning" src="https://cdn-images-1.medium.com/max/1024/1*T7JkS0vSMzLm2ASesQZ9Sw.png" /></figure><h3><strong>Here’s how to get started in under a day:</strong></h3><ol><li><strong>List your recurring meetings.</strong></li><li><strong>Create a spreadsheet with rows for:</strong></li></ol><ul><li>Team</li><li>Person</li><li>Perceived Interest (1–5 dropdown)</li><li>Could be Async? (Yes/No/Sometimes)</li><li>Feedback (optional)</li></ul><ol><li><strong>Invite a representative number of people across teams.</strong></li><li><strong>Make it clear: only filled responses will be considered.</strong></li><li><strong>Review scores and comments.</strong></li><li><strong>Start with the lowest-rated meetings — rethink purpose, format, frequency, and attendees.</strong></li><li><strong>Announce new structure and start date.</strong></li></ol><p>Done. No extra tooling required.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4a95c6bb7101" width="1" height="1" alt=""><hr><p><a href="https://medium.com/inside-42/why-are-we-in-this-meeting-again-a-framework-for-rethinking-recurring-meetings-4a95c6bb7101">“Why Are We in This Meeting Again?” A Framework for Rethinking Recurring Meetings</a> was originally published in <a href="https://medium.com/inside-42">Inside 42</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Sustaining Metrics in Agile Teams: A Comprehensive Starter Guide]]></title>
            <link>https://medium.com/inside-42/sustaining-metrics-in-agile-teams-a-comprehensive-starter-guide-bf1a955002ed?source=rss----3ab7f24d0ac1---4</link>
            <guid isPermaLink="false">https://medium.com/p/bf1a955002ed</guid>
            <category><![CDATA[agile]]></category>
            <category><![CDATA[tech]]></category>
            <category><![CDATA[product]]></category>
            <category><![CDATA[teamwork]]></category>
            <category><![CDATA[metrics]]></category>
            <dc:creator><![CDATA[Cesar Miguel]]></dc:creator>
            <pubDate>Wed, 26 Feb 2025 14:51:45 GMT</pubDate>
            <atom:updated>2025-02-28T07:44:03.659Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*uDnz0QrB5ZlkjlZbL-KhUQ.jpeg" /></figure><p><em>A more practical article today, let’s dive into some common metrics teams can use, their advantages and limitations. Take this article as a starting point of a practical discussion to set up the right metrics for your team that will ensure you consistently create value for the customers, the business and maintain a healthy team.</em></p><p>In the fast-paced world of agile development, sustaining high performance and ensuring product quality are crucial. And you all know by now (I hope):</p><blockquote>You cannot optimize/improve what you do not measure.</blockquote><p>Teams must rely on a variety of metrics to measure their efficiency, productivity, and overall health.</p><p>This article aims to provide a comprehensive but very quick overview of some key metrics used in various agile frameworks, serving as a baseline for teams to consider what is important and what should be measured. You probably shouldn’t measure ALL of them in the long-run and definite ly not just these, but I would suggest you start with something like this and iterate.</p><h3>Agile Business Metrics</h3><p>While agile teams often focus on project-specific metrics, it’s crucial to consider broader business indicators that align with the core agile principles of customer satisfaction, value delivery, and adaptability.</p><h4>Customer Satisfaction Score (CSAT):</h4><p>Measuring customer satisfaction through surveys or rating scales provides valuable insights into how well your product or service meets user needs. This metric helps teams prioritize features and improvements that directly impact customer experience.</p><ul><li>✅ Direct feedback from customers</li><li>✅ Helps prioritize features</li><li>❌ Subjective and may not capture nuances</li><li>❌ Can be influenced by temporary emotions</li></ul><p><em>Note: With the power of LLMs, it has become so much easier to analyse huge amounts of textual inputs, allowing CSATs and other indicators of the sort to dive deeper into qualitative feedbacks.</em></p><h4>Net Promoter Score (NPS):</h4><p>The NPS gauges customer loyalty and advocacy by asking how likely they are to recommend your product. A high NPS indicates strong customer relationships and a positive brand perception.</p><p><em>Editor’s note: I hate NPS, there it is, out in the open 😅 It is very bad measure as it is strongly dependent on cultural biases and would only make sense in a viral Product-Led Growth context, which is rarely the case of most products…</em></p><ul><li>✅ Easy to implement</li><li>✅ Measures customer loyalty</li><li>❌ Oversimplifies complex sentiments</li><li>❌ May not reflect all customer experiences</li></ul><h4>Value Delivery:</h4><p>Quantifying the value of features or tasks delivered to customers allows teams to measure their impact on business objectives. Value can be assigned monetary values, points, or scorecards.</p><ul><li>✅ Aligns with business objectives</li><li>✅ Helps prioritize impactful features</li><li>❌ Challenging to define and measure</li><li>❌ Difficult for non-tangible aspects</li></ul><h3>Scrum Metrics</h3><p>Scrum, one of the most widely adopted agile frameworks, emphasizes iterative development and adaptive planning. Here are some key scrum metrics to guide product managers and tech leads:</p><h4>Sprint Burndown:</h4><p>This metric tracks the team’s progress within a sprint, showing the amount of work completed against the remaining work.</p><ul><li>✅ Provides visibility into progress</li><li>✅ Helps identify scope changes early</li><li>❌ May not reflect task complexity</li><li>❌ Changes in scope can distort the metric</li></ul><h4>Velocity:</h4><p>Velocity measures the average amount of work a team can realistically complete within a sprint, helping to plan future sprints and set realistic expectations.</p><ul><li>✅ Aids in sprint planning</li><li>✅ Sets realistic expectations</li><li>❌ Assumes consistent team and work complexity</li><li>❌ Can be misleading if not normalized</li></ul><h4>Escaped Defects:</h4><p>Tracking the number of defects or bugs that reach production environments is crucial for identifying areas for improvement in testing and quality assurance processes.</p><ul><li>✅ Highlights areas for quality improvement</li><li>✅ Helps improve testing processes</li><li>❌ Doesn’t capture defect severity</li><li>❌ Low count doesn’t guarantee quality</li></ul><h3>Kanban Metrics</h3><p>Kanban, an agile methodology focused on visualizing work and optimizing flow, offers a different set of metrics for product managers and tech leads to consider.</p><h4>Cycle Time:</h4><p>Measuring the time it takes for a task to go from start to finish, including time spent on reopened issues, provides insights into process efficiency.</p><ul><li>✅ Indicates process efficiency</li><li>✅ Helps identify bottlenecks</li><li>❌ Influenced by external factors</li><li>❌ May not reflect actual effort</li></ul><h4>Lead Time:</h4><p>Lead time measures the total time a task exists, from creation to completion, capturing the impact of waiting times and bottlenecks.</p><ul><li>✅ Captures end-to-end delivery time</li><li>✅ Identifies waiting time issues</li><li>❌ May not reflect team’s effort</li><li>❌ Can be influenced by dependencies</li></ul><h4>Throughput:</h4><p>Throughput measures the team’s capacity to deliver completed work within a given time period, helping to identify bottlenecks and manage workload effectively.</p><ul><li>✅ Indicates delivery capacity</li><li>✅ Helps manage workload</li><li>❌ Doesn’t account for work complexity</li><li>❌ May not reflect work value</li></ul><h4>Work in Progress (WIP):</h4><p>Limiting the amount of work in progress can improve focus and efficiency.</p><ul><li>✅ Improves focus</li><li>✅ Enhances efficiency</li><li>❌ Finding optimal limit is challenging</li><li>❌ Requires careful consideration of team dynamics</li></ul><h3>Engineering and Code Metrics</h3><p>For teams practicing DevOps and continuous delivery, engineering and code metrics offer insights into the technical aspects of quality and productivity.</p><h4>Defect Resolution Time:</h4><p>The time taken to fix defects.</p><ul><li>✅ Measures responsiveness to issues</li><li>✅ Helps identify bottlenecks in the resolution process</li><li>❌ Doesn’t reflect defect severity</li><li>❌ Can be influenced by external dependencies</li></ul><h4>Failed Deployments:</h4><p>The number of failed deployments within a given timeframe.</p><ul><li>✅ Indicates deployment process stability</li><li>✅ Helps identify process issues</li><li>❌ Doesn’t capture the severity of failures</li><li>❌ High rate may indicate deeper issues</li></ul><h4>Production Downtime:</h4><p>Measures the time work is stalled due to issues in production.</p><ul><li>✅ Highlights operational issues</li><li>✅ Critical for maintaining uptime</li><li>❌ Can be influenced by external factors</li><li>❌ Doesn’t capture root causes</li></ul><h4>Code Coverage:</h4><p>Measuring the percentage of code covered by tests helps ensure thorough testing practices and identify areas with insufficient test coverage.</p><ul><li>✅ Indicates test thoroughness</li><li>✅ Helps identify untested code</li><li>❌ High coverage doesn’t guarantee quality</li><li>❌ May not reflect test effectiveness</li></ul><h4>Defect Density:</h4><p>Tracking the number of defects per 1,000 lines of code provides a quantifiable measure of code quality.</p><ul><li>✅ Provides a quality benchmark</li><li>✅ Helps identify problematic areas</li><li>❌ Influenced by code complexity</li><li>❌ Doesn’t account for defect severity</li></ul><h4>Deployment Frequency:</h4><p>Measuring how often code is deployed to production environments reflects the team’s ability to deliver value continuously.</p><ul><li>✅ Indicates delivery frequency</li><li>✅ Helps gauge team’s agility</li><li>❌ High frequency doesn’t ensure quality</li><li>❌ May not reflect release value</li></ul><p><em>Note: I have red lately many articles linking Product maturity to continuous deployment (hence, short deployment frequency). While I mostly agree that shorter cycles are usually better, I don’t the direct correlation can be made between the two as it strongly depends on the type of product (if there is hardware involved, legislations…)</em></p><h3>Sustaining a Balanced Approach</h3><p>While metrics provide valuable data-driven insights, we need a balance between quantitative measurements and qualitative feedback. Product managers and tech leads should prioritize metrics that align with their team’s specific goals, priorities, and challenges, while also considering the human aspects of teamwork and collaboration.</p><p>Effective metric tracking and utilization require a culture of continuous learning, experimentation, and adaptation. Teams should regularly review and adjust their metric focus to ensure they are measuring the right things at the right time. Additionally, cross-functional collaboration and open communication are essential for interpreting metrics accurately and driving meaningful improvements.</p><p>Remember, this article WAS NOT a complete guide of metrics, but a starting point for a discussion with your team/squad on how to measure value, quality, cadence and ultimately team health.</p><p>What metrics did I miss? Don’t hesitate to share in the comments 😉</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=bf1a955002ed" width="1" height="1" alt=""><hr><p><a href="https://medium.com/inside-42/sustaining-metrics-in-agile-teams-a-comprehensive-starter-guide-bf1a955002ed">Sustaining Metrics in Agile Teams: A Comprehensive Starter Guide</a> was originally published in <a href="https://medium.com/inside-42">Inside 42</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Bridging Visual and Textual Roadmaps for Product Teams]]></title>
            <link>https://medium.com/inside-42/bridging-visual-and-textual-roadmaps-for-product-teams-504a802e613d?source=rss----3ab7f24d0ac1---4</link>
            <guid isPermaLink="false">https://medium.com/p/504a802e613d</guid>
            <category><![CDATA[product]]></category>
            <category><![CDATA[project-management]]></category>
            <category><![CDATA[roadmaps]]></category>
            <dc:creator><![CDATA[Apolline Reymond]]></dc:creator>
            <pubDate>Wed, 08 Jan 2025 13:29:27 GMT</pubDate>
            <atom:updated>2025-01-08T13:29:27.497Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*RIuqX6FmQdQP5DhAYJeZlA.png" /><figcaption>Roadmap</figcaption></figure><p>Visual roadmaps are essential tools in product management — they align teams on direction and high-level milestones. At 42 School, with over 50 campuses already running and a dozen set to launch in 2025, we faced the unique challenge of revamping our platform while ensuring a smooth transition from the existing system.</p><p>To address this complexity, we combined a visual roadmap for macro milestones with a textual roadmap in Notion to add context, flexibility, and granularity. This hybrid approach helped us bridge high-level strategy with day-to-day execution. Here’s how a textual roadmap can complement a visual roadmap and better support product teams.</p><h3>I. Where Visual Roadmaps Need Support</h3><p>While visual roadmaps are invaluable for communicating high-level strategy and milestones, they often come with limitations that make day-to-day execution more challenging:</p><ul><li><strong>No Filters or Custom Views</strong>: Visual roadmaps provide a static snapshot, lacking the ability to filter by team, priority, or dependency. This one-size-fits-all approach can leave important details obscured.</li><li><strong>Limited Context</strong>: Key information like documentation, blockers, and rationale for decisions often lives elsewhere, leading to disjointed communication.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*CHHBKsFiIP3QlGfPmJVlXg.png" /><figcaption>Macro bloc on Roadmap</figcaption></figure><ul><li><strong>Cumbersome Updates</strong>: Keeping visual roadmaps up-to-date requires significant manual effort, especially as priorities shift.</li><li><strong>Information Overload</strong>: Adding granular details to a visual roadmap can make it cluttered and unreadable, defeating its purpose.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*x1suq7Xi-2mnq_5-kwQk1g.png" /><figcaption>Roadmap view for 1 squad</figcaption></figure><ul><li><strong>Disconnected Rollout Planning</strong>: Critical rollout milestones often aren’t integrated into team-specific views, creating visibility gaps across squads.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/1*1-kXiBFlhrsn6XHzY--kmg.jpeg" /><figcaption>Several Milestones Example</figcaption></figure><p>These limitations prompted us to rethink our approach.</p><h3>II. Why Textual Roadmaps Work in practice</h3><p>In our case, we complemented the macro-level visual roadmap with a detailed textual roadmap in Notion. Here’s why this approach proved effective for our team and how it can work for yours:</p><h4>1. Centralized Knowledge</h4><p>Textual roadmaps serve as a single source of truth. By organizing milestones, tasks, and dependencies in a structured database, we eliminated the inefficiency of scattered updates and documents. Everything — from rollout milestones to meeting notes — lived in one place, accessible to all stakeholders.</p><h4>2. Dynamic Updates and Filtering</h4><p>Unlike static visual roadmaps, textual roadmaps are flexible. Teams could filter tasks by priority, owner, or deadline, creating tailored views for different needs. This adaptability made it easy to manage changing priorities without disrupting workflows.</p><h4>3. Seamless Rollout Integration</h4><p>One of the standout advantages was the ability to integrate rollout milestones alongside development tasks. This ensured that every deliverable was aligned with deployment timelines, reducing last-minute surprises and improving cross-team coordination.</p><h4>4. Enhanced Collaboration</h4><p>Notion’s built-in commenting and tagging features encouraged asynchronous collaboration. Teams could flag blockers, ask questions, and share updates directly within the roadmap, reducing reliance on meetings while keeping decision histories transparent.</p><p>By addressing the limitations of visual roadmaps, this method not only improved our alignment but also streamlined task management across squads.</p><h3>III. How to Build an Effective Textual Roadmap</h3><p>Here’s a step-by-step approach to creating a textual roadmap that improves efficiency and collaboration:</p><h4>1. Define Milestones and Rollout Events</h4><p>Start by listing key milestones and rollout events, such as a beta release, internal demo, or final product launch. These milestones act as anchors for your roadmap, ensuring all tasks align with overarching deadlines.</p><p>In our case, we added a text property to clearly label each milestone (e.g., “31/12 Release Day”). This allowed us to automate timelines later while keeping milestones clear and easy to reference.</p><h4>2. Build a Database with Key Relationships</h4><p>Create a database in Notion to capture all tasks and link them to milestones.</p><p>The following properties formed the core of our database:</p><ul><li><strong>Milestone (text)</strong>: The milestone for quick reference (e.g., “31/12 Release Day”).</li><li><strong>Milestone (date)</strong>: The due dates for tasks based on milestone deadlines.</li><li><strong>Task/Need</strong>: A description of the task or deliverable.</li><li><strong>Owner</strong>: The individual or team responsible for the task.</li><li><strong>Dependencies</strong>: Links tasks to highlight dependencies, blockers, or iterations.</li><li><strong><em>Optional Properties</em></strong><em>: Additional fields based on team needs (e.g., “To Be Discussed”).</em></li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*LFdmgDqHYsBgozTALbIg_w.png" /><figcaption>A notion roadmap bloc</figcaption></figure><p>By structuring the database this way, we created a flexible, interconnected system that ensured every task was tied to the broader project goals.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*y21GlccvsHoiGb-QTHnHyA.png" /><figcaption>Timeline view after first steps</figcaption></figure><h4>3. Align Sizing Across Teams</h4><p>Before assigning sizes to tasks, it’s crucial to align sizing definitions with all teams. For example, we standardized our sizing as follows:</p><ul><li><strong>S</strong>: Tasks that take less than 1 week.</li><li><strong>M</strong>: Tasks that take 1–3 weeks.</li><li><strong>L</strong>: Tasks that take more than 3 weeks.</li><li><strong>?</strong>: Tasks with unknown or unclear effort estimates.</li></ul><p>This consistency ensured that all squads used the same criteria, making sizing discussions and timeline planning smoother.</p><p>Including a “?” size helped us flag ambiguous requirements early. For example, some features lacked clarity on the solution or dependencies, and sizing them as “?” highlighted areas that needed further exploration or explicit stakeholder input. This approach prevented delays and reduced guesswork later in the process.</p><h4>4. Automate Timeline Creation</h4><p>Once milestones and tasks were defined, we automated start dates and task durations using simple formulas in Notion, saving time and reducing manual updates. For example:</p><ul><li>Tasks linked to a milestone automatically inherited its deadline.</li><li>Start dates were calculated by working backward from the milestone, based on task size.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/642/1*GO9jWPI4KKQ9aSt-zWuD4Q.png" /><figcaption>Notion formula to calculate start date from sizing</figcaption></figure><p>This automation saved significant time and effort, especially when updating timelines as priorities shifted and allowed us to get a draft roadmap view without moving any bloc on our own.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*oAMjOV5dA3XJYt0DAAGGjA.png" /><figcaption>Roadmap automated view</figcaption></figure><h4>5. Enable Tailored Views for Stakeholders</h4><p>By combining visual and textual roadmaps, teams gained both a high-level overview and the granular details needed for execution. For example:</p><ul><li><strong>Leadership View</strong>: Focuses on high-level milestones and overall progress.</li><li><strong>Squad View</strong>: Filters tasks by team or owner, helping squads prioritize their work.</li><li><strong>Rollout View</strong>: Highlights dependencies and milestones to track deployment readiness.</li><li><strong>Timeline view</strong>: Provides a visual overview of the roadmap and tracks progress over time.</li></ul><p>These views ensure everyone sees the information they need without being overwhelmed by irrelevant details.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*xUxfd2a08H9KEAEHzYIHng.png" /><figcaption>Execution &amp; Progress View</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*M8CO8aOZoBJr52_0ujROIw.png" /><figcaption>Macro Strategic View</figcaption></figure><h4>6. Optional Integrations for Enhanced Collaboration</h4><p>This system can work on its own or be enhanced by linking to platforms like Jira, or Miro. For instance, development teams might link tasks to Jira tickets, while design teams use Miro for wireframes. Even in simpler setups, hyperlinks to external documents or tools can centralize context.</p><h3>What We Learned</h3><p>Textual roadmaps bridge the gap between high-level strategy and detailed execution: they add flexibility, granularity, and a centralized point of truth. By combining a visual roadmap for macro strategy with a textual roadmap for execution, we improved collaboration, alignment, and visibility across teams. This hybrid approach ensures product teams can navigate complex projects and rollouts with greater efficiency. Looking ahead, this hybrid approach positions our teams to manage future rollouts efficiently, ensuring both high-level alignment and executional clarity.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=504a802e613d" width="1" height="1" alt=""><hr><p><a href="https://medium.com/inside-42/bridging-visual-and-textual-roadmaps-for-product-teams-504a802e613d">Bridging Visual and Textual Roadmaps for Product Teams</a> was originally published in <a href="https://medium.com/inside-42">Inside 42</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Modelling the future of your Product thanks to AI.]]></title>
            <link>https://medium.com/inside-42/modelling-the-future-of-your-product-thanks-to-ai-9ee1f1ac610c?source=rss----3ab7f24d0ac1---4</link>
            <guid isPermaLink="false">https://medium.com/p/9ee1f1ac610c</guid>
            <category><![CDATA[product]]></category>
            <category><![CDATA[python]]></category>
            <category><![CDATA[tech]]></category>
            <category><![CDATA[chatgpt]]></category>
            <category><![CDATA[product-discovery]]></category>
            <dc:creator><![CDATA[Cesar Miguel]]></dc:creator>
            <pubDate>Mon, 16 Dec 2024 15:29:18 GMT</pubDate>
            <atom:updated>2024-12-16T15:29:18.516Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-J4XmyCdP-zfrSGpCivscg.jpeg" /></figure><blockquote><strong>TL;DR: </strong>Modelling and simulating a system can help get insights on a product viability (even in contexts like education). Historically a complex task requiring a scientific and deep technical expertise, now thanks to genAI it can be used by anyone and we can get results in record time!</blockquote><p><strong><em>Editor’s note: </em></strong><em>This is an article based on the conference made on the 12th of December 2024 </em><a href="https://smile.eu/en/publications-and-events/ux-meet-ia-experience"><em>UX-Meet: AI Experience</em></a><em>.</em></p><h3>I. Introduction:</h3><p>In the early days of my career, I spent countless hours as a Simulation Engineer at Volvo modelling complex systems — engines, turbos, aftertreatments — you name it.</p><p>Back then, we didn’t have the term “Data Scientist” (gosh, I am old, that word didn’t even exist at that time…). My tools were Matlab and Simulink… ah good old times 😝</p><p>Fast forward to today, and while my role has evolved significantly becoming the Product leader I am, my passion for the technical side of things is always there. I believe that retaining a deep understanding of the tech side is a great asset in the world of Product.</p><p>Recently, I faced a challenge that brought all these worlds — modelling, product discovery, and AI — colliding together. The challenge was centered around the infamous “it’s not possible” statement, a phrase I’m sure many of you are familiar with.</p><h3>II. The Dilemma: Smith vs Keynes</h3><p>Let me give you some context. At 42, we use an innovative approach called “peer-to-peer learning,” which relies heavily on projects and peer evaluations. Evaluations are crucial, but participation varies widely among students: some do a lot, some do the bare minimum, and others start strong only to drop off later. This variability poses a question: should we intervene in the evaluation system, or leave it to self-regulate?</p><p>To draw a parallel, this is akin to the debate in economics between laissez-faire and government intervention. On one hand, you have Adam Smith’s idea of the “invisible hand” in free markets, where the system regulates itself. On the other, you have Keynesian economics, which advocates for regulation to prevent market failures.</p><p>In our context the evaluation system is like an economic system… leaving the evaluation system to run on its own puts all the responsibility on the student, resulting in behaviors that are all over the place. Since our goal is educational, it seems obvious that we’d want some control to ensure that every student is engaged and learning, that the group advances together and reaches the final goal. But here’s the tricky part: setting up controlling rules often leads to the collapse of the system.</p><p>So how do we explore a solution for such a complex dilemma? The answer lies in modelling.</p><h3>III. Modelling: A Discipline for Understanding Complex Systems</h3><p>Modelling is a powerful tool used across various industries to simulate and understand complex systems. Whether in automotive engineering, finance, or even biology, modelling allows us to create a simplified representation of reality, enabling us to test different scenarios and predict outcomes without the high costs or risks of real-world experimentation.</p><p>Here is an example of modelling a very simple system: imagine a basket ball you hold in your hands. You release it: where will it be in 10 seconds? What would happend if you dropped it in sand vs the field’s floor?<br>One could 3D scan the ball, place hundreds of sensor around to measure all air fluctuation and run a numerical simulation for hundreds of hours with super-computer to try to get an accurate estimation.<br>Or… we could model the system in a much simpler way, making it accessible to compute. We need to simplify and take some shortcuts (like assuming there is no air friction, the ball is perfect sphere…), and voilà! you get an easily calculated approximation allowing you to simulate the behavior and test hypothesis… that’s modelling.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/744/1*2JPKdF6KYvCnqnzwVORSig.png" /><figcaption>Bouncing ball simplified model simulation</figcaption></figure><p>Back to 42, what I would have done in my past life, I would have fired up Matlab, built a code-based system to simulate consumer behavior in a macro-economic system, and run simulations to see if the system would collapse or not. But that was 2009.</p><p>Now, in 2024, I wondered — could AI help me build this system? And more importantly, could it do so much faster and more efficiently than I ever could?</p><p><strong>Simplifying reality</strong></p><p>This is an example of a current Holygraph, a visual representation of 42 cursus.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/407/1*mD7vqVCw7BNE6CpvMsFm-g.png" /><figcaption>Example of Holygraph, visual representation of the 42 cursus</figcaption></figure><p>This represents the different connections between projects as a student progresses. As you can see this is highly non-linear and it is based on projects that would require a different amount of time from one student to the next.</p><p>Let’s make a<strong> BIG</strong> simplification by considering the cursus linear. Projects are like steps in a linear progression and require a fixed amount of time to be completed (the same for everyone), for example:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*wciLomhulFwjqRLi3XiAyA.png" /><figcaption>Linear progression representation, one step after the other, with a required fixed number of days per step.</figcaption></figure><p>We cannot simulate a continuous system (at least not with reasonable calculation power) so we will make the system discreet. We will run a simulation calculation at every interval. We could simulate every second, every minute, every hour, but this would make the system really complex. Another BIG simplification: the simulation interval is 1 day, so only 1 thing can happen each day (we can assume that no event = the student is just working on the project).</p><p><strong>Building the System</strong></p><p>Now that we have the simulation parameters, let’s define the system rules.</p><p>Here’s what I came up with (and remember, modelling is all about simplifying reality to make calculations feasible while retaining the basic behaviors and principles to make predictions, keeping in mind that this does introduce some uncertainty):</p><ul><li><strong>Turn-based System:</strong> Each turn represents a day (the simulation interval).</li><li><strong>Step-based Progression:</strong> Each step is a project requiring a predefined number of days to complete, the order is fixed and we can only move from one project to the next.</li><li><strong>Daily Evaluation:</strong> Every day, a user can choose to evaluate another student or not, depending on their profile, and only once per day.</li><li><strong>Points System:</strong> Evaluating earns the user 1 point (this is like our currency in the system, a token you earn and spend)</li><li><strong>User Profiles:</strong> We create different user profiles that will do the minimum evaluations, with varying probabilities of choosing to evaluate when given the chance beyond that (U1: 0% = will never evaluate beyond the bare minimum required, U2: 50% = will evaluate half of the times when they are given the chance beyond the minimum required, U3: 20% = same with 20% chance of evaluating)</li></ul><p>Now we have the basic system.</p><p>We know there are behaviors we want to avoid, so we introduced some rules to prevent deviations or be able to control the system:</p><ul><li><strong>Advance cost:</strong> To advance, a student must spend 3 evaluation points = this prevents students from not evaluating at all and moving forward, making it indirectly compulsory (I am not telling you that you have to evaluate, but you cannot move forward if you don’t).</li><li><strong>Zero Points Rule:</strong> If a student has 0 points, they are forced to evaluate and time doesn’t count for the step = this forces students no avoid dropping to 0 and keeping on eye on their credits</li><li><strong>Maximum Points Cap:</strong> there is a maximum of 10 points, after which points are no longer earned = to prevent hoarding once when it is “easy” and never evaluating again</li><li><strong>Decay Factor:</strong> everyone loses 1 point after 4 turns = to ensure consistent engagement</li><li><strong>Evaluation Availability:</strong> A student can only evaluate if there are enough peers at the same step to be evaluated = like in real life… if you go much faster than the rest of your peers or you lag behind, you cannot evaluate/be evaluated since you are alone in your step… you are “stuck” waiting.</li></ul><p>Now we had a system and a set of rules.</p><p>But could we ask GPT-4o to model this system for us? You bet!</p><h3>IV. AI to the Rescue</h3><p>With a few prompts explaining the system, with the given rules, GPT-4o generated a neat Python code that could simulate exactly this system.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/480/1*D4R0QQ5iEs8gxlJ7zFua0Q.gif" /><figcaption>Wait… what?</figcaption></figure><p><em>(I was thinking of including the code but I assume most of you don’t really care much 😅 I will put at the end of the article just in case and spare you the long scrolling to keep reading the article’s content)</em></p><p><strong>The result?</strong></p><p>What would have taken me days of programming in the past was done in no time! 🤯</p><blockquote>And then I start thinking: maybe chatGPT-6 or 7 will in the future provide the formalisation, run the code, and perform all the analysis by just formulating the need… Amazing but scary: will anyone take the time to learn modelling and automation engineering if systems like these can do the job? And if so, who will know if the systems are right? Will we lose our capacity to understand the world because of our laziness? I am derailing a bit into the philosophical implications of genAI, let’s come back to this usecase <em>😅</em></blockquote><p>So here are the results of running the simulation for 100 days.</p><blockquote>Note: to run the code you can either install Python’s environment on your machine or simply use a service like Google colab and run it on the cloud (for free)</blockquote><pre>U1 Statistics:<br>Average Step: 8.00<br>Average Credits: 3.00<br>Average Reviews: 27.00<br>Average Wait Turns: 9.00<br>Minimum Step Reached: 8<br>Maximum Step Reached: 8<br><br>U2 Statistics:<br>Average Step: 9.00<br>Average Credits: 8.48<br>Average Reviews: 35.48<br>Average Wait Turns: 1.00<br>Minimum Step Reached: 9<br>Maximum Step Reached: 9<br><br>U3 Statistics:<br>Average Step: 8.91<br>Average Credits: 3.36<br>Average Reviews: 30.09<br>Average Wait Turns: 2.62<br>Minimum Step Reached: 8<br>Maximum Step Reached: 9</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*bLECOoQ4M2OftApvtBOGlg.png" /></figure><p>The code allowed us to play with the probabilities of evaluation, user quantities, number of turns, decay factor, and other parameters. We could easily simulate the behavior of this “economic” system under different conditions.</p><h3>Does It Work?</h3><p>It seems so! 🥳</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/480/1*YeP8EvyPH74Rl0RXg2TZcA.gif" /></figure><p>After 100 turns (or even 1000), the different profiles ended up roughly at the same step/project, meaning no user was left behind and there was a pedagogical cohesion of the entire group, the system remained sustainable and controlled, reducing disparities and abnormal behaviors from users.</p><blockquote><em>This is an approximation of course, but it already gives a good feeling on the sustainability of such a system.</em></blockquote><p>There are many things to improve (by the time this article is published, I am sure I will have exponentially improved/complexified the simulation, I know myself, some things never change 😂). Here are some ideas at the time of writing:</p><ul><li>randomising step duration to account for different human learning speeds</li><li>removing the basic current user strategy of having always at least 3 points (some real students are not that strategic in real life and will really leave it for the very last moment😝)</li><li>randomising the probability of reviews for each student (not just by group)</li><li>introducing expulsion rules</li><li>Have more user profile types</li><li>Include mechanisms to help students that are left behind</li><li>…</li></ul><h3>V. Conclusion: The Future of Product Discovery</h3><p>I’m genuinely amazed by the power of AI tools today. Fifteen years ago, I never would have imagined that the skills I honed in modelling automotive systems would one day be applied to Product Discovery in education. But here we are, blending the old with the new and opening doors to innovative solutions.</p><blockquote><em>There are so many tools today to explore </em><a href="https://www.linkedin.com/pulse/opportunity-vacuum-framework-part-12-role-innovation-cesar-miguel/"><em>the adjacents</em></a><em>. The adjacent possible and acceptable are already well covered: Figma, no-code (N8N, Nodered, Zapier, Make…)… But now it so easy to use modeling and simulation to explore the adjacent viable!</em></blockquote><p>This is most likely not the final system we will be implementing at 42, but it gave precious insights: <br><strong>“Yes, we can have a regulated system that maximizes pedagogical value for our students at 42!”</strong> <br>At least in theory 😅.</p><p>With the right tools, the possibilities of Product Discovery are endless.</p><blockquote><em>Note: Of course, it helps that I have the skills to conceptualize the problem, reframe it, and tweak the resulting code. But the fact that AI tools now enable us to bridge the gap between discovery in complex systems and the world of modelling and simulation is nothing short of amazing.</em></blockquote><p><em>What do you think? Have you tried using AI for modelling in your own product discovery processes? Share your thoughts in the comments below, and let’s continue the conversation!</em></p><p>Here is the code for those of you who are curious 😉</p><pre>import random<br>import matplotlib.pyplot as plt<br><br># Simulation parameters<br>INITIAL_CREDITS = 0<br>MAX_CREDITS = 10<br>ADVANCE_COST = 3<br>MINIMUM_USERS_TO_REVIEW = ADVANCE_COST * 3<br>REVIEW_GAIN = 1<br>DECAY_INTERVAL = 1000<br>DECAY_AMOUNT = 1<br>SIMULATION_TURNS = 100<br><br># User counts<br>U1_COUNT = 33<br>U2_COUNT = 33<br>U3_COUNT = 34<br><br># Step requirements<br>STEP_REQUIREMENTS = [9, 12, 10, 7, 14, 16, 5, 9, 14, 15]<br><br># User behavior parameters: once they do the minimum required reviews (ADVANCE_COST), what is the probability of doing an extra review if they can?<br>U1_REVIEW_PROBABILITY = 0.0<br>U2_REVIEW_PROBABILITY = 0.5<br>U3_REVIEW_PROBABILITY = 0.2<br><br>class User:<br>    def __init__(self, user_type, review_probability):<br>        self.user_type = user_type<br>        self.review_probability = review_probability<br>        self.credits = INITIAL_CREDITS<br>        self.step = 0<br>        self.turns_in_step = 0<br>        self.total_reviews = 0<br>        self.total_wait_turns = 0<br>        self.total_stuck_turns = 0<br>        self.credit_history = [INITIAL_CREDITS]<br><br>    def can_review(self, users_at_step):<br>        return users_at_step &gt;= MINIMUM_USERS_TO_REVIEW<br><br>    def advance(self):<br>        if self.credits &gt;= ADVANCE_COST:<br>            self.credits -= ADVANCE_COST<br>            self.step += 1<br>            self.turns_in_step = 0<br>            return True<br>        return False<br><br>    def review(self):<br>        if self.credits &lt; MAX_CREDITS:<br>            self.credits = min(self.credits + REVIEW_GAIN, MAX_CREDITS)<br>            self.total_reviews += 1<br>            return True<br>        return False<br><br>    def update(self):<br>        if self.credits &gt; 0:<br>            self.turns_in_step += 1<br>        else:<br>            self.total_wait_turns += 1<br>        self.credit_history.append(self.credits)<br><br>class Simulation:<br>    def __init__(self):<br>        self.users = []<br>        self.turn = 0<br>        self.credit_histories = []<br>        self.total_stuck_users = 0<br><br>    def add_users(self, count, user_type, review_probability):<br>        for _ in range(count):<br>            self.users.append(User(user_type, review_probability))<br><br>    def run_turn(self):<br>        self.turn += 1<br>        step_counts = {step: 0 for step in range(len(STEP_REQUIREMENTS))}<br><br>        for user in self.users:<br>            step_counts[user.step] += 1<br><br>        for user in self.users:<br>            user.update()<br><br>            can_advance = user.turns_in_step &gt;= STEP_REQUIREMENTS[user.step % len(STEP_REQUIREMENTS)]<br>            users_at_same_step = step_counts[user.step]<br><br>            if can_advance and user.credits &lt; ADVANCE_COST:<br>                user.total_wait_turns += 1<br><br>            if user.credits &lt; ADVANCE_COST and user.can_review(users_at_same_step):<br>                user.review()<br>            elif can_advance and user.credits &gt;= ADVANCE_COST:<br>                user.advance()<br>            elif user.credits == 0 or random.random() &lt; user.review_probability:<br>                if user.can_review(users_at_same_step):<br>                    user.review()<br>                else:<br>                    user.total_stuck_turns += 1<br>                    self.total_stuck_users += 1<br><br>        if self.turn % DECAY_INTERVAL == 0:<br>            for user in self.users:<br>                user.credits = max(user.credits - DECAY_AMOUNT, 0)<br><br>    def run_simulation(self, turns):<br>        for _ in range(turns):<br>            self.run_turn()<br>        self.credit_histories = [user.credit_history for user in self.users]<br><br>    def get_stats(self):<br>        stats = {<br>            &quot;U1&quot;: {&quot;avg_step&quot;: 0, &quot;avg_credits&quot;: 0, &quot;avg_reviews&quot;: 0, &quot;avg_wait&quot;: 0, &quot;avg_stuck&quot;: 0, &quot;min_step&quot;: float(&#39;inf&#39;), &quot;max_step&quot;: float(&#39;-inf&#39;), &quot;count&quot;: 0},<br>            &quot;U2&quot;: {&quot;avg_step&quot;: 0, &quot;avg_credits&quot;: 0, &quot;avg_reviews&quot;: 0, &quot;avg_wait&quot;: 0, &quot;avg_stuck&quot;: 0, &quot;min_step&quot;: float(&#39;inf&#39;), &quot;max_step&quot;: float(&#39;-inf&#39;), &quot;count&quot;: 0},<br>            &quot;U3&quot;: {&quot;avg_step&quot;: 0, &quot;avg_credits&quot;: 0, &quot;avg_reviews&quot;: 0, &quot;avg_wait&quot;: 0, &quot;avg_stuck&quot;: 0, &quot;min_step&quot;: float(&#39;inf&#39;), &quot;max_step&quot;: float(&#39;-inf&#39;), &quot;count&quot;: 0}<br>        }<br>        for user in self.users:<br>            stats[user.user_type][&quot;avg_step&quot;] += user.step<br>            stats[user.user_type][&quot;avg_credits&quot;] += user.credits<br>            stats[user.user_type][&quot;avg_reviews&quot;] += user.total_reviews<br>            stats[user.user_type][&quot;avg_wait&quot;] += user.total_wait_turns<br>            stats[user.user_type][&quot;avg_stuck&quot;] += user.total_stuck_turns<br>            stats[user.user_type][&quot;min_step&quot;] = min(stats[user.user_type][&quot;min_step&quot;], user.step)<br>            stats[user.user_type][&quot;max_step&quot;] = max(stats[user.user_type][&quot;max_step&quot;], user.step)<br>            stats[user.user_type][&quot;count&quot;] += 1<br><br>        for user_type in stats:<br>            if stats[user_type][&quot;count&quot;] &gt; 0:<br>                for key in [&quot;avg_step&quot;, &quot;avg_credits&quot;, &quot;avg_reviews&quot;, &quot;avg_wait&quot;, &quot;avg_stuck&quot;]:<br>                    stats[user_type][key] /= stats[user_type][&quot;count&quot;]<br><br>        return stats<br><br>def plot_credit_evolution(sim):<br>    plt.figure(figsize=(15, 10))<br>    for i, history in enumerate(sim.credit_histories):<br>        if i &lt; U1_COUNT:<br>            color = &#39;red&#39;<br>        elif i &lt; U1_COUNT + U2_COUNT:<br>            color = &#39;green&#39;<br>        else:<br>            color = &#39;yellow&#39;<br>        plt.plot(history, color=color, alpha=0.5)<br>    <br>    plt.xlabel(&#39;Turns&#39;)<br>    plt.ylabel(&#39;Credits&#39;)<br>    plt.title(&#39;Credit Evolution for All Users&#39;)<br>    plt.legend([&#39;U1 (Red)&#39;, &#39;U2 (Green)&#39;, &#39;U3 (Yellow)&#39;])<br>    plt.show()<br><br># Run the simulation<br>sim = Simulation()<br>sim.add_users(U1_COUNT, &quot;U1&quot;, U1_REVIEW_PROBABILITY)<br>sim.add_users(U2_COUNT, &quot;U2&quot;, U2_REVIEW_PROBABILITY)<br>sim.add_users(U3_COUNT, &quot;U3&quot;, U3_REVIEW_PROBABILITY)<br>sim.run_simulation(SIMULATION_TURNS)<br><br># Print results<br>results = sim.get_stats()<br>for user_type, data in results.items():<br>    print(f&quot;\\n{user_type} Statistics:&quot;)<br>    print(f&quot;Average Step: {data[&#39;avg_step&#39;]:.2f}&quot;)<br>    print(f&quot;Average Credits: {data[&#39;avg_credits&#39;]:.2f}&quot;)<br>    print(f&quot;Average Reviews: {data[&#39;avg_reviews&#39;]:.2f}&quot;)<br>    print(f&quot;Average Wait Turns: {data[&#39;avg_wait&#39;]:.2f}&quot;)<br>    print(f&quot;Average Stuck Turns: {data[&#39;avg_stuck&#39;]:.2f}&quot;)<br>    print(f&quot;Minimum Step Reached: {data[&#39;min_step&#39;]}&quot;)<br>    print(f&quot;Maximum Step Reached: {data[&#39;max_step&#39;]}&quot;)<br><br># Print total stuck users<br>print(f&quot;\\nTotal Stuck Turns Across All Users: {sim.total_stuck_users}&quot;)<br><br># Plot credit evolution<br>plot_credit_evolution(sim)</pre><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9ee1f1ac610c" width="1" height="1" alt=""><hr><p><a href="https://medium.com/inside-42/modelling-the-future-of-your-product-thanks-to-ai-9ee1f1ac610c">Modelling the future of your Product thanks to AI.</a> was originally published in <a href="https://medium.com/inside-42">Inside 42</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[42’s mission extended to schoolkids with IOTA]]></title>
            <link>https://medium.com/inside-42/42s-mission-extended-to-schoolkids-with-iota-bbaf7e215a9c?source=rss----3ab7f24d0ac1---4</link>
            <guid isPermaLink="false">https://medium.com/p/bbaf7e215a9c</guid>
            <dc:creator><![CDATA[Taninna Portebos]]></dc:creator>
            <pubDate>Fri, 11 Oct 2024 15:21:01 GMT</pubDate>
            <atom:updated>2024-10-11T15:21:01.580Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Hme5hZsQWsC7R2wPD6ZClw.jpeg" /></figure><h3><strong>What is IOTA ?</strong></h3><p><strong>IOTA is a peer learning platform on digital skills for school kids</strong> <strong>from 3rd to 5th-grade (from CE2 to CM2 for the french system)</strong> that is being developed by 42 since 2021 in France and is backed by the French Ministry of Education. <strong>The platform is free and ready to use for teachers who often feel helpless when it comes to teaching these new skills.</strong></p><p>By July 2024, IOTA expanded its reach both in France and internationally, involving <strong>7,000 children and 350 classes across 54 French departments</strong>, including two overseas (Guadeloupe and French Guiana), and three countries abroad (Madagascar, Morocco, and Ivory Coast).</p><p>92% of the teachers who used the platform last year declared that they were eager to carry on the project that not only helps kids to develop <strong>hard skills such as programming or digital content creation </strong>but it also enables them to work on their <strong>human skills such as critical thinking, autonomy, perseverance, communication, listening and empathy</strong>.</p><p>IOTA targets children before adolescence to <strong>combat gender stereotypes in computer science</strong> and helps them develop a learning methodology focused on autonomy and collaboration, aligning better with the challenges of our society.</p><h3>Research and impact measurement</h3><p>After 3 years of experimentation, our research team composed of two education economists, Fanny Landaud and Camille Terrier, are currently working on the analysis of the projects’ data. <strong>Their findings will be released in early 2025 </strong>and will focus on the development of students’ digital and life skills, as well as changes in teachers’ educational practices.</p><h3><strong>Tackling societal issues</strong></h3><p>The situation in France is concerning. Statistics reveal a significant lag in <strong>digital transition</strong> and the increase of <strong>cyberbullying</strong>.</p><blockquote><strong>43% of French students have low or very low digital literacy levels according to the 2018 ICILS survey.</strong></blockquote><blockquote><strong>24% of French students from 11 to 15 have already experienced cyberbullying.</strong></blockquote><p>Digital education has been part of the school curriculum since 2016, but the digital divide continues to widen. <strong>There is a genuine need for ready-to-use educational resources to teach this broad field of skills to students and to raise their awareness of balanced and thoughtful digital use.</strong></p><p>With teenagers spending an increasing amount of time online, these figures highlight the <strong>urgent need for education to foster digital literacy and safety.</strong></p><p>IOTA aims to make a significant societal impact by reducing inequalities in access to digital education.</p><h3><strong>What’s next ?</strong></h3><p>The partnership with the French Ministry of Education is renewed for the 2024/2025 season, with the main objective of scaling up to reach 10,000 students across France !</p><h3>Let’s bring IOTA to your kids’ schools</h3><p>If you are a parent, you are probably struggling with the use of social networks or video games on a daily basis. <strong>You might not find the right words to explain to your kids how they should be using these tools but we can do it with IOTA in a fun way ! </strong>They will come to you then and teach you why you should not be on your phone all the time for sure. :)</p><p>Below, a few elements you can send to a school<em>* </em>or to a teacher :</p><ul><li><a href="https://projet-iota.fr/">IOTA website</a></li><li><a href="https://primabord.eduscol.education.fr/projet-iota">Presentation kit</a></li><li><a href="https://www.youtube.com/@ProjetIOTA">Youtube page</a></li></ul><p><em>*Only french public schools and private schools under contract with the ministry have a free access on IOTA</em></p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FwGQ8tXDIIbc%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DwGQ8tXDIIbc&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FwGQ8tXDIIbc%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/a2d9c41716d6a85053908ff833107ed7/href">https://medium.com/media/a2d9c41716d6a85053908ff833107ed7/href</a></iframe><p>If you have any question, feel free to contact us : <strong>contact@projet-iota.fr</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/350/1*N5szDRoVIF2X2OFoD2ia4Q.png" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=bbaf7e215a9c" width="1" height="1" alt=""><hr><p><a href="https://medium.com/inside-42/42s-mission-extended-to-schoolkids-with-iota-bbaf7e215a9c">42’s mission extended to schoolkids with IOTA</a> was originally published in <a href="https://medium.com/inside-42">Inside 42</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Building a Product Organization at 42: How We Stay Agile and Innovate]]></title>
            <link>https://medium.com/inside-42/building-a-product-organization-at-42-how-we-stay-agile-and-innovate-53ae6607853d?source=rss----3ab7f24d0ac1---4</link>
            <guid isPermaLink="false">https://medium.com/p/53ae6607853d</guid>
            <category><![CDATA[data]]></category>
            <category><![CDATA[product]]></category>
            <category><![CDATA[tech]]></category>
            <category><![CDATA[pedagogy]]></category>
            <category><![CDATA[organization]]></category>
            <dc:creator><![CDATA[Cesar Miguel]]></dc:creator>
            <pubDate>Mon, 07 Oct 2024 08:21:37 GMT</pubDate>
            <atom:updated>2024-10-07T08:21:36.989Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*EcVFj-R1G_bDR8tY9tjnhg.png" /></figure><h3><strong>Building a Product Organisation at 42: How We Stay Agile and Innovate</strong></h3><p>At 42, we’ve always believed in pushing the boundaries — whether it’s in how we approach education, the tools we build, or the teams that power our innovation. Over the years, 42 has evolved from a single, revolutionary school to a global network that champions free, inclusive, and peer-led learning. But with that growth comes a responsibility to ensure our structures and processes evolve in tandem, hence a shift toward a product organisation.</p><p>Let’s quickly explore some key theory about team organization and see how they’ve shaped the way we work at 42.</p><h3>I. The Theory: Team Topologies and Why They Matter</h3><p>Creating an effective product organization starts with understanding the structure of your teams. <br>There are many theories and frameworks, here is one of the most widely known: <a href="https://www.amazon.com/Team-Topologies-Organizing-Business-Technology/dp/1942788819"><em>Team Topologies</em></a>, by Matthew Skelton and Manuel Pais, outlines four fundamental team types that help modern organizations design systems for better collaboration, speed, and scalability.</p><h4>1. Stream-Aligned Teams</h4><p>Stream-aligned teams are focused on a specific flow of work, whether it’s a product, a set of features, or a user journey. These teams are designed to operate independently, meaning they can design, build, and release features without relying heavily on other teams. <br>In many ways, stream-aligned teams are the lifeblood of agile organizations, delivering value quickly and safely to users.</p><h4>2. Platform Teams</h4><p>Platform teams provide the internal services and infrastructure needed by stream-aligned teams to move quickly. They support other teams by offering tools, infrastructure, and environments that can be used on demand, minimizing dependencies. In an ideal setup, platform teams and stream-aligned teams interact minimally, with platform teams offering services that are self-serve and scalable.</p><h4>3. Complicated Subsystem Teams</h4><p>For certain technical challenges that require specialized knowledge, a complicated subsystem team is formed. These teams are experts in specific areas that a typical stream-aligned team may not have the depth to handle — such as complex algorithms, AI models, or high-performance computing. Their role is to ensure that these complicated pieces function seamlessly within the broader product.</p><h4>4. Enabling Teams</h4><p>Finally, enabling teams exist to bridge knowledge gaps for stream-aligned teams. Whether it’s introducing new technologies, sharing best practices, or guiding teams on specific challenges, enabling teams act as temporary mentors, helping their counterparts to upskill and adopt new tools or methodologies.</p><h3>II. How We’ve Organized Ourselves at 42</h3><p>At 42, we’ve applied the principles of team topologies to create a structure that allows us to stay agile, deliver value, and focus on user-centricity. Our squads are multidisciplinary, combining the expertise of product managers, UX designers, and developers, all working together to solve real problems and innovate. Each squad operates with autonomy, but their work is supported by a solid infrastructure that enables them to move fast.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/828/1*Ei5lyhN9twiKaSlywsO5mA.png" /><figcaption>Squads at 42: LX, NLX, v2v3, Platform, Pedago and Data</figcaption></figure><h4>1. Feature Squads: Our Stream-Aligned Teams</h4><p>Our product organization is centered around stream-aligned feature squads. These squads are cross-functional and multidisciplinary, meaning they have everything they need to deliver value from start to finish.</p><ul><li><strong>LX (Learning Experience) Squad:</strong> This squad focuses on the core learning journey, ensuring that students have a seamless, personalized experience as they progress through 42’s unique educational model. They manage everything from project libraries to evaluations, working on features that directly impact student outcomes.</li><li><strong>NLX (Non-Learning Experience) Squad:</strong> The NLX squad handles all non-pedagogical aspects of the platform — everything from the application process to administrative document management. Their goal is to streamline the behind-the-scenes operations, ensuring that both students and staff can focus on what matters most.</li></ul><h4>2. Platform Team</h4><p>Our <strong>Platform Squad</strong> recently merged with the <strong>Infra Team</strong> to create a single, powerful support function. This team provides the backbone services, infrastructure, and tooling that enable the feature squads to focus on delivering value without being bogged down by technical hurdles. From managing CRMs to automating marketing processes, this support team ensures that the platform remains scalable and secure.</p><p>Together, these teams form the foundational support system that keeps our operations smooth and reliable. They offer services through an “X-as-a-service” model, minimizing the need for direct collaboration, which helps the feature squads maintain their speed and independence.</p><h4>3. Complex subsystem team: v2v3</h4><p>The <strong>v2v3 Squad </strong>has a broad knowledge and is the expert of the current system that has helped 42 thrive for the past 10 years. <br>They help key features that might not be in the target in the short term for neither LX nor NLX, move forward faster.</p><p><em>Once we reach a more stabilised scenario, this team will reintegrate the other stream aligned or platform teams.</em></p><h4>4. Data and Pedagogy Teams: Specialized Expertise</h4><p>Alongside our core feature and support teams, we have specialized teams focused on data and pedagogy:</p><ul><li><strong>Data Team:</strong> This team provides crucial insights that inform product decisions across all squads. By managing our data warehouse and ensuring best practices in data analysis, they allow us to take a data-driven approach to product development, ensuring that we’re always making informed choices.</li><li><strong>Pedagogy Team:</strong> Responsible for ensuring that our educational content aligns with the latest pedagogical theories and market needs, the Pedagogy Team works closely with feature squads to redesign the learning journey and adapt our curriculum to future demands.</li></ul><h3>III. The Value Added</h3><p>Why does this organizational structure work so well for us at 42? It’s because this approach is the only way to truly build a Product organization that thrives.</p><p>Have you heard about <a href="https://en.wikipedia.org/wiki/Conway%27s_law">Conway’s law</a>? The organisation and the system they support are tightly linked. If you want to do Product, your organisation must reflect it (hence my belief that Matrix organisation will always struggle to do Product, here are some article I wrote in the past: <a href="https://www.linkedin.com/pulse/agile-management-vs-matrix-organisations-cesar-miguel/">Agile Management VS Matrix Organisations</a> and <a href="https://www.linkedin.com/pulse/decoupling-organisations-only-way-product-culture-can-cesar-miguel/">Decoupling organisations: the only way a product culture can thrive</a>).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*OOeMSSP-0_XP4SI_AkgC1w.png" /><figcaption>Product is at the intersection of UX (Product Discovery loop), Agile (Product Delivery loop), and Data (data centric approach).</figcaption></figure><p>The value we bring revolves around three key pillars:</p><ul><li><strong>Agility</strong>: Autonomy is at the core of our agile practice. Our squads can iterate rapidly, making decisions independently and adding value in complex, ever-changing environments. Using frameworks like the <em>Cynefin model</em>, we understand that not all problems have straightforward solutions, which is why we focus on iterative learning and adaptation particularly in a context like 42. This allows us to manage uncertainty and complexity effectively.</li><li><strong>UX</strong>: A design-thinking approach is crucial to how we explore both problem and solution spaces. Our multidisciplinary squads constantly interact with users to uncover pain points, validate ideas, and craft solutions that genuinely enhance the user experience. By emphasizing empathy and iteration in our process, we ensure that our product evolves in line with real-world needs.</li><li><strong>Data</strong>: Data lies at the heart of our decision-making process. We track meaningful metrics, leveraging data to inform every major decision. This ensures we aren’t just guessing what might work — we’re continuously learning from our users and refining our product based on hard evidence. The ability to track, measure, and analyze helps us focus on delivering maximum value both to the user and the business.</li></ul><p>Together, these pillars — agility, UX, and data — create an organization that is not only adaptable and user-focused but one that continually delivers tangible value to our students, staff, and stakeholders.</p><p>By structuring ourselves in this way, we can stay ahead of the curve and ensure that 42 remains a leader in the ever-evolving landscape of education and technology.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=53ae6607853d" width="1" height="1" alt=""><hr><p><a href="https://medium.com/inside-42/building-a-product-organization-at-42-how-we-stay-agile-and-innovate-53ae6607853d">Building a Product Organization at 42: How We Stay Agile and Innovate</a> was originally published in <a href="https://medium.com/inside-42">Inside 42</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Validate a respondent’s email address in Tally]]></title>
            <link>https://medium.com/inside-42/validate-a-respondents-email-address-in-tally-49160396f3b2?source=rss----3ab7f24d0ac1---4</link>
            <guid isPermaLink="false">https://medium.com/p/49160396f3b2</guid>
            <category><![CDATA[forms]]></category>
            <category><![CDATA[product]]></category>
            <category><![CDATA[tally]]></category>
            <category><![CDATA[tutorial]]></category>
            <category><![CDATA[prototyping]]></category>
            <dc:creator><![CDATA[Thomas Bailly-Salins]]></dc:creator>
            <pubDate>Wed, 04 Sep 2024 11:44:48 GMT</pubDate>
            <atom:updated>2024-11-18T13:47:16.556Z</atom:updated>
            <content:encoded><![CDATA[<blockquote>Since this article was first written, Tally has released an official feature to do exactly this! <a href="https://tally.so/changelog#1148a570dd6a816095e0f6ea13f5d04b"><strong>Learn more on the official website</strong></a></blockquote><blockquote>💡 <strong>Test it yourself!</strong></blockquote><blockquote>You can try out what I have described in this article by filling out <a href="https://tally.so/r/w2r10p">this Tally form</a></blockquote><blockquote>You can also use <a href="https://tally.so/templates/form-with-respondent-s-email-address-validation/mKV9zn">this public template</a> to start building yours</blockquote><p><a href="https://tally.so/"><em>Tally</em></a> is an incredible form solution. We use it every day to gather feedback from our users. Recently, I looked into how Tally could be integrated with our product, a Learning Management System for 20,000 students at <a href="https://42network.org/"><em>42</em></a>.</p><p>We identified a few needs that Tally could address. One of them is a voting system where our <em>pisciners</em> — the participants in our immersive selection process known as the <a href="https://42.fr/en/admissions/42-piscine/"><em>piscine</em></a> — can upvote each other. This system helps us assess how collaborative and sociable each <em>pisciner</em> is.</p><p>But let’s be honest, an upvoting feature isn’t exactly where we can add the most value to our product. We need something that just works. Can it be a through a simple form? Well, keep reading and you’ll soon find out.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*XOl00BfnQZcbUJbmBPhqJg.jpeg" /></figure><p>That’s when I started digging into the requirements we have for this system. Tally was the ideal solution for both our budget and feature needs. However, there were three requirements it didn’t cover:</p><ol><li>Preventing a <em>pisciner</em> from voting twice.</li><li>Preventing a <em>pisciner</em> from stealing someone else’s vote.</li><li>Preventing non-<em>pisciners</em> from voting.</li></ol><p>I could boil these down to one key need: authenticating each vote submission. Since each <em>pisciner</em> has an email address, I figured I could easily meet these requirements by sending a confirmation email upon submission, right?</p><p>Here’s the catch: Tally doesn’t offer this feature. And to be honest, not many form solutions do. Some even provide “official workarounds”!</p><p>So I ultimately decided to move forward with Tally because it was the best solution in many aspects. In this article, I’ll show you the most elegant solution I came up with to validate a respondent’s email address using Tally.</p><h3>Concept and form structure</h3><p>The same form will handle two things:</p><ol><li>The vote of each <em>pisciner</em> (or in your case, the content of the form you want to authenticate)</li><li>A second submission, almost invisible, to confirm the vote and authenticate the submission</li></ol><p>The form will be structured in five parts:</p><ol><li>Welcome</li><li>Answer</li><li>Confirm your submission</li><li>Check your inbox (<a href="https://tally.so/help/how-to-create-a-thank-you-page"><em>’thank you’ page</em></a>)</li><li>Submission confirmed (’thank you’ page)</li></ol><p>Here’s what will happen: the first time a user lands on the form, they’ll go through steps 1, 2, and 4.</p><p>We’ll then set up an email to be sent with a new link to the same form, so the user will go through steps 1, 3, and 5.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1Yq6nAEvf9H5x2cfprJeMg.png" /></figure><h3>Send a unique link upon submission</h3><h4>Submission ID</h4><p>Each time a form is completed, a submission is created with a <em>Submission ID</em>. You can view this <em>Submission ID</em> by clicking “Download CSV” from the “Submissions” tab in the admin panel. It’s a 6-character string.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*h_gA45c0caBP8xCg5AcdEg.png" /></figure><p>We will use the <em>Submission ID</em> to create a unique link, which will be sent <a href="https://tally.so/help/dynamic-email-notifications"><em>by email</em></a> after submission for the user to validate their answer. In my example, the email will look like this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*sdQK704wggCSEia8d5Fg7A.png" /></figure><p>Now, when the user completes the form, they receive an email with a link to the same form, including the <em>Submission ID</em> (which we called <em>s</em>) in the URL. Tally can capture this value as a <a href="https://tally.so/help/hidden-fields"><em>hidden field</em></a>.</p><p>When the user lands on the form for the second time, Tally will detect the <em>s</em> value and understand that it’s a confirmation of a submission, not the initial submission. Using <a href="https://tally.so/help/conditional-form-logic"><em>Tally’s conditional logic</em></a>, we will display pages 1, 3 and 5.</p><p>Keep in mind that by default, the next page appears when the user click “Next”. To ensure a controlled flow, I used the condition “<em>s</em> is empty / is not empty” on each page.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/754/1*Y_MHGl5imx1cE9ogrFtdUg.png" /></figure><h3>How to analyze the data?</h3><p>Here’s how a complete submission looks like.</p><p>The initial submission contains all the information from your form. The second — almost empty submission (with <em>s) — </em>matches the initial submission.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/746/1*CTr7pqtHuGMKbwCKEPYvCA.png" /></figure><p>Using Excel, Google Sheets, SQL, or any another solution, you can easily filter out unconfirmed submissions or confirmation submissions that don’t contain any data.</p><p>That’s it, your users can now fill out your form! They’ll then receive an email and click on the link inside to validate their submission!</p><h3>Conclusion</h3><p>When tackling user problems, it’s tempting to develop an in-house solution from scratch. But here’s the exciting truth: many of these daily challenges aren’t at the core of your business and can often be tackled more efficiently by leveraging existing solutions that are already out there.</p><p>Look for workarounds for any missing features — you might save up some time and learn a thing or two along the way!</p><blockquote>💡 <strong>Test it yourself!</strong></blockquote><blockquote>You can try out what I have described in this article by filling out <a href="https://tally.so/r/w2r10p">this Tally form</a></blockquote><blockquote>You can also use <a href="https://tally.so/templates/form-with-respondent-s-email-address-validation/mKV9zn">this public template</a> to start building yours</blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=49160396f3b2" width="1" height="1" alt=""><hr><p><a href="https://medium.com/inside-42/validate-a-respondents-email-address-in-tally-49160396f3b2">Validate a respondent’s email address in Tally</a> was originally published in <a href="https://medium.com/inside-42">Inside 42</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What is a Design System?]]></title>
            <link>https://medium.com/inside-42/what-is-a-design-system-b76f4e6a45a8?source=rss----3ab7f24d0ac1---4</link>
            <guid isPermaLink="false">https://medium.com/p/b76f4e6a45a8</guid>
            <category><![CDATA[product-design]]></category>
            <category><![CDATA[design]]></category>
            <category><![CDATA[product]]></category>
            <category><![CDATA[design-systems]]></category>
            <dc:creator><![CDATA[Gaetan Lefebvre]]></dc:creator>
            <pubDate>Thu, 22 Aug 2024 13:28:41 GMT</pubDate>
            <atom:updated>2024-08-22T13:28:41.251Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*PpYUBUj-RutDnRLarRcLWQ.png" /><figcaption>A glimpse of a Design System (<a href="https://unsplash.com/photos/silver-imac-9VzoRKfBsMM">photography</a> by <a href="https://unsplash.com/@balazsketyi">Balázs Kétyi</a> on <a href="https://unsplash.com/">Unsplash</a>)</figcaption></figure><h4>As part of a new project for Ecole 42, we worked with the product team to create a new Design System. But what is a Design System, and why did we decide to start from scratch? How can you convince your company, which is just starting out with a product approach, to use it ? We will answer all these questions in this article.</h4><blockquote><em>The aim of this article is not to explain in detail how to create a Design System, but to explain how it works, how it’s composed and how to manage its evolution.</em></blockquote><h3>Context</h3><p>Today, 42 aims to revolutionize computer science and education with a unique model. This model is based on several criteria:</p><ul><li>Emphasizing inclusivity and the quality of higher education</li><li>Allowing for free tuition fees</li><li>Promoting peer learning</li><li>Expanding a school into a global network with more than 50 campuses</li><li>Orchestrating a complex computer system</li></ul><p>In this vein, several user interviews were conducted, highlighting new objectives:</p><ul><li>Adapting the training to the future needs of the market</li><li>Providing cutting-edge technologies to meet the needs of the next decade</li><li>Improving the global experience through inter-campus collaboration and a common experience</li><li>Emphasizing pedagogy and student success</li></ul><p>The emergence of these different needs called for a renovation of the spirit of 42, leading to a reconfiguration of user interfaces. It is in this dynamic that we wanted to present to you the importance of a Design System.</p><h3>What is a Design System?</h3><p>A design system is a library of visual components but also codes to follow when designing a product. It’s a kit that will evolve over time. It offers a UX (User Experience) and UI (User Interface) reference for designers and developers.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*-4-LT7renHo2nlDn.png" /><figcaption>A glimpse of a Design System (<a href="https://unsplash.com/photos/silver-imac-9VzoRKfBsMM">photography</a> by <a href="https://unsplash.com/@balazsketyi">Balázs Kétyi</a> on <a href="https://unsplash.com/">Unsplash</a>)</figcaption></figure><ul><li>It facilitates the work of the concerned teams</li><li>It can be designed using tools such as <a href="https://www.figma.com/fr-fr/">Figma</a>, <a href="https://www.sketch.com/">Sketch</a> or <a href="https://www.framer.com/">Framer</a></li><li>It includes what we used to call the ergonomic charter and/or the graphic charter.</li><li>It allows for designing business applications, e-commerce sites, etc.</li></ul><h3>What does it consist of?</h3><p>The content of the design system depends on the company’s identity, its ecosystem, and its needs. However, we can find common elements:</p><ul><li>Color palette and associated rules (<strong>Colors</strong>)</li><li>Visual principle around typography (<strong>Typography</strong>)</li><li>Iconography and imagery (<strong>Iconography</strong>)</li><li>Grids to structure elements and spaces (<strong>Grids and Spaces</strong>)</li><li>UI components and patterns (<strong>Component Library</strong>)</li><li>Accessibility and user experience rules (<strong>Accessibility</strong>)</li><li>Templates (<strong>Templates</strong>)</li></ul><blockquote><em>Before discussing these categories, it’s important to note a few points. In order to facilitate understanding among each of the teams, it’s necessary to use a common nomenclature. For example, when we use text sizes or spacing, it would be wise to use sm, md, lg, xl, etc. Similarly, for colors, we will use the color name followed by a number according to its intensity (see example below).</em></blockquote><h3>Colors</h3><p>Colors have a crucial role in a Design System. Indeed, they will impact accessibility, the product’s identity, and its communication. The color palette can be thought of in different ways, but it is most frequently constructed as follows:</p><ul><li>Primary / main colors</li><li>Secondary colors / color scale 1</li><li>Tertiary colors / color scale 2</li><li>Informative colors / success and errors</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*FqXxRb920u3ZgFKg.png" /><figcaption>Color palette (color scale 1)</figcaption></figure><h3>Typography</h3><p>Each Design System is composed of a type scale, that is, a scale that allows listing the different typographies used (if there are several) and defining the categories (titles, subtitles, links, etc.), sizes, and text spacings. This also allows having a coherent, readable, and accessible product on different screen sizes.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*eCItrYoVauByRq-M.png" /><figcaption>Typographic scale (titles)</figcaption></figure><h3>Iconography</h3><p>Iconography both supports your designs (buttons, information, successes, errors, etc.) and accentuates your brand’s identity. It’s important to maintain a similar size and weight (that is, thickness) to achieve consistent content.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*4KUeHBQezIbGBZIj.png" /><figcaption>Icon Library</figcaption></figure><h3>Grids and Spaces</h3><p>Grids are used to structure and align texts and objects forming components and layouts. The transition between each breakpoint will be much simpler with the help of a grid, making the responsive cleaner and pixel perfect. Additionally, spacings are added to maintain consistency between each element by defining precise rules.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*oMf1n09XdUuAP42q.png" /><figcaption>4-column grids and spacing</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*X0JGN_U06X1PmhaT.png" /><figcaption>Example of Desktop and Mobile responsive</figcaption></figure><h3>Component Library</h3><p>Generally, components are a grouping of everything we have previously mentioned in terms of UI (colors, typography, iconography, etc.). Let’s take a simple example of a button: its creation requires text, a color, spacing, an icon, and rounded edges if our identity demands it.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*4-72_s3nT5bcg59O.gif" /><figcaption>Example of creating a “button” component in Figma</figcaption></figure><p>After creating a component, it is common to subsequently create variants. These are variations of the component that represent its different states. For example, a button can be primary or secondary depending on its importance, it can have different states (default, hover, click), a variable size, or even the possibility of having an icon or not.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*NS1bAyRLeZI3EFWa.png" /><figcaption>Example of a “buttons” variant on Figma</figcaption></figure><h3>Accessibility</h3><p>Design Systems are the best solution to create accessible content for people with disabilities. Right from the initial stages of creating a product, it’s crucial to ensure that it is viable for everyone. This is probably the most important part of a Design System. We will discuss the rules and best practices to follow later on.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*EbKzdacOOJYYDNKv.png" /><figcaption>“Accessibility of the primary color on a white background (via <a href="https://coolors.co/contrast-checker/112a46-acc8e5">coolors</a>)”</figcaption></figure><p><strong>For further information on the subject:</strong></p><p><a href="https://www.figma.com/fr-fr/blog/the-future-of-design-systems-is-accessible/">L&#39;avenir des design systems est dans l&#39;accessibilité | Blog Figma | Figma Blog</a></p><h3>Templates</h3><p>Now that the Design System has been created, it’s time for the screens. However, this phase leads to numerous iterations, and the Figma space can become overloaded with a number of mock-ups. As a result, we need to ensure that the team can easily navigate through them.</p><p>To facilitate exchanges between teams, it is preferable to indicate the status of screens/pages (to be done, in progress, done, to be reviewed, etc.). Finally, it’s important to provide complete and precise documentation to deliver a final Design System to developers. This can take the form of a brief description of the flow, or annotations on the screens.</p><p>The purpose of templates is to meet these different needs: to order, simplify and facilitate the handover between designer and developer.</p><h3>How a Design System works?</h3><p>There are several key stages to follow, from the birth of the project to its completion:</p><ol><li>Why do we need a Design System? What will it do?</li><li>Carry out UI audits and talk to the users concerned to understand their needs and frictions.</li><li>Look for solutions based on technological possibilities, budget, deadlines and priorities.</li><li>Choose a vocabulary (nomenclature) that is easy for the whole team to understand.</li><li>Build the Design System, iterate and test.</li><li>Bring the Design System to life to meet new user and team needs.</li></ol><h3>Accessibility in a Design System</h3><p>Accessibility means ensuring that products meet the needs and expectations of people with disabilities. It means taking into account all human diversity in terms of ability, language, gender, culture, age, etc. This is why a step such as the Design System, which “introduces” the design of a product, is crucial.</p><p>Accessibility rules frequently include :</p><ul><li>Colors for everyone</li><li>Text sizes readable on all types of screens (desktop, mobile, tablet, etc.)</li><li>Keyboard compatibility</li><li>Available audio interface and adapted media (subtitles, translations, etc.)</li><li>Wording adapted and comprehensible to all, describing certain actions</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*63U1WHcRormXrAMV.png" /><figcaption>Illustrations of some accessibility rules</figcaption></figure><p>However, there are over fifty of them, each with its own importance and impact on your product. So don’t hesitate to check out the page below, listing all the accessibility rules 🙂.</p><p><a href="https://en.wikipedia.org/wiki/Web_Content_Accessibility_Guidelines">Web Content Accessibility Guidelines - Wikipedia</a></p><h3>What future for a Design System?</h3><p>The Design System has been conceived, finalized, organized and completed with various templates, and complies with accessibility rules. What’s next? The work has really only just begun, because a Design System never stops evolving.</p><p>We’ve realized that it facilitates exchanges between each team, but this must remain valid for the weeks, months and years to come. That’s why it’s important to keep a close eye on its evolution, not to define it as “finished”, but to continue feeding it, while clarifying it for future handovers within the team.</p><p>Last but not least, the Design System is intended to help its users (designers, developers, marketing managers, etc.). It is by improving it and taking into account the various needs that we can provide a product that best meets consumer expectations.</p><h3>Glossary</h3><ol><li><a href="https://www.socialectric.com/post/layout-design-getting-to-know-its-principles-why-is-it-so-important-to-visual-designs#:~:text=Briefly,%20layout%20refers%20to%20the,matter%20how%20great%20it%20looks.)">What is a layout?</a></li><li><a href="https://www.nngroup.com/articles/breakpoints-in-responsive-design/#:~:text=A%20breakpoint%20defines%20a%20screen,),%20the%20layout%20will%20change.)">What is a breakpoint?</a></li><li><a href="https://www.matridtech.net/what-is-actually-pixel-perfect-design-and-how-to-create-it/#:~:text=In%20simple%20terms,%20a%20pixel,distortions%20and%20other%20design%20imperfections.)">What is pixel perfect?</a></li></ol><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b76f4e6a45a8" width="1" height="1" alt=""><hr><p><a href="https://medium.com/inside-42/what-is-a-design-system-b76f4e6a45a8">What is a Design System?</a> was originally published in <a href="https://medium.com/inside-42">Inside 42</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Agile Games France: A Playground for Learning and Growth]]></title>
            <link>https://medium.com/inside-42/agile-games-france-a-playground-for-learning-and-growth-d8e1c7affdaf?source=rss----3ab7f24d0ac1---4</link>
            <guid isPermaLink="false">https://medium.com/p/d8e1c7affdaf</guid>
            <category><![CDATA[product]]></category>
            <category><![CDATA[agile]]></category>
            <category><![CDATA[learning]]></category>
            <category><![CDATA[agile-games-france]]></category>
            <category><![CDATA[serious-games]]></category>
            <dc:creator><![CDATA[Emilie Franchomme]]></dc:creator>
            <pubDate>Thu, 08 Aug 2024 14:21:05 GMT</pubDate>
            <atom:updated>2024-08-08T14:21:05.819Z</atom:updated>
            <content:encoded><![CDATA[<p><em>Have you ever struggled to learn or teach a new concept in a traditional setting and resources?</em></p><p><em>A game might exist to help you make learning fun and engaging, with a long-lasting impression! And if it doesn’t, how about gamifying the experience and creating one?</em></p><p>My fascination for the power of games and how they can transform learning led me to participate in <a href="https://www.agilegamesfrance.fr/doku.php?id=start">Agile Games France</a>. I attended a few annual editions, starting in 2012 in Nantes, and the most recent one in Valence in March 2024 that left me packed with insights and inspiration.</p><figure><img alt="Agile Games Valence illustration — A character running with an Olympic flamme in a Super Mario Bros background" src="https://cdn-images-1.medium.com/max/600/0*pwsIsp4oDwqKeYDz" /></figure><p>Agile Games France is an immersive two-day experience, with participants from a variety of backgrounds and experiences.</p><p>Throughout the day, participants have the freedom to choose which sessions they want to join, thanks to an approach called <a href="https://openspaceworld.org/wp2/">“Open Space” technology</a>. These sessions can be anything from playing existing games to testing out unreleased ones, or even brainstorming new games designed for specific purposes and situations.</p><p>As expected with an Open Space event, there are a lot of things happening simultaneously, and one needs to make choices and embrace the “Two feet” rule.</p><p>Here is an overview of the sessions I observed, facilitated, and engaged in.</p><h3>Mission anti sabotage</h3><p>(facilitated by Alexandre Boutin, with the support of Emilie Esposito)</p><p>Players are teamed up and discover real-life-inspired sabotage scenarios that can plague any team or organization and throw a wrench in their progress.</p><p>By working together to unblock your team, you’ll hone your communication and collaboration skills, while learning <strong>anti-sabotage strategies</strong>.</p><h3>Le jeu des prénoms</h3><p>(facilitated by Moïra Degroote)</p><p>One of the best games I know to demonstrate the <strong>resource utilisation trap</strong> and a few Kanban practices.</p><h3>Artistes et spécifieurs — express</h3><p>(facilitated by Moïra Degroote)</p><figure><img alt="A drawing of geometrical figures" src="https://cdn-images-1.medium.com/max/1024/0*vfF8jJrBkyUx79uo" /><figcaption>An example of a picture that Artists must reproduce, based on specifications provided by the Specifiers</figcaption></figure><p>Variations based on another of my favorite games (<a href="https://web.archive.org/web/20170627010506/http://alistair.cockburn.us/The+Draw+the+Drawing+Game">Draw the drawing game</a>, by Alistair Cockburn), to experience the importance of <strong>feedback loops</strong>, communication, alignment on the vision, and iteration, in bridging the gap between vision and execution.</p><h3>Agile Mind</h3><p>(facilitated by Moïra Degroote)</p><p>Using a mechanism inspired from Master Mind board game, this game emphasizes the importance of short <strong>feedback loops</strong>.</p><h3>Mind Maze</h3><p>(facilitated by Zakaria Hzami)</p><p>This game explored <strong>cognitive biases</strong>, those mental shortcuts that can sometimes lead to flawed judgment, through 4 decks of cards (Standard, cyber, marketing, HR, DevOps).</p><h3>Empathic</h3><p>(facilitated by Kevin Chaput)</p><p>Participants develop empathy by being encouraged to step into the shoes of others and understand their <strong>emotions and needs</strong>.</p><p>Kevin adapted the game mechanics and emotion cards from the game Empathico, and created new cards to play this game in a professional context.</p><figure><img alt="Picture of Empathico board game box and Empathic new cards" src="https://cdn-images-1.medium.com/max/1024/0*fii_zyFnkJJFsxCy" /><figcaption>Empathico cards game &amp; new cards</figcaption></figure><p>I also had a sneak peek at:</p><ul><li><strong>Cadran d’Ofman</strong> (with Patrice Boisieau): exploring how to gamify the teaching or usage of this <strong>coaching tool</strong></li><li><strong>Changer de perspective</strong> (apologies I forgot to write down who facilitated this): highlighting how, in a group, each person has their perspective on a situation, and there is no “right” or “wrong”</li><li><strong>Le mystère de la pyramide de Toutankhascrum</strong> (with Rebecca Carlier and Lilian Roche): Agile teamwork meets ancient Egypt! Use collaboration to solve puzzles and retrieve the treasure from the pyramid!</li><li><strong>Préjugés </strong>(with Alexandre Boutin): a board game exploring stereotypes and prejudice. We are still wondering if and in which settings it could be used, as we found that the topics are sensitive and require careful handling (even with friends).</li></ul><p>At the end of the day and until late at night for a few of us 🥱, participants continue chatting and playing more casually.</p><p>I played at:</p><ul><li><strong>Action!</strong> : use small artefacts like cubes representing people to mime situations</li><li><strong>Mantis</strong> : colorful and addictive card game, “to bank or not to bank”</li><li><strong>Moi c’est madame </strong>: learn and practice alternative reactions against common sexist situations</li></ul><figure><img alt="Picture of a hand of “Moi c’est madame” game cards" src="https://cdn-images-1.medium.com/max/1024/0*0aD62mVG1Mw6NZy7" /><figcaption>Hand of “Moi c’est madame” card game</figcaption></figure><ul><li><strong>Taco gateau chapeau cadeau pizza </strong>: simple and hilariously fast-paced card game.</li><li><strong>Space team</strong> : noisily fun and cooperative fast-paced card game</li></ul><figure><img alt="Picture of the content of Spaceteam board game box" src="https://cdn-images-1.medium.com/max/1024/1*R4fq4mPpcCQmbX0lru5u8g.png" /><figcaption>Spaceteam material</figcaption></figure><ul><li><strong>Nouvelles contrées</strong> : cooperative board game using your own books as game material. It also provides a firsthand experience of the challenges of doing cognitive work and <strong>multi-tasking</strong>.</li><li><strong>PowerPoint karaoké </strong>: improvisation on slides</li></ul><p>Agile Games France is a playground for not just exploring existing games, but also brainstorming and creating new ones specifically tailored to address challenges.</p><p>At 42, we tap into games or gamification techniques :</p><p>1. Internally, to facilitate workshops, team activities, training…</p><p>2. As well as part of the learning experience.</p><p>Beyond the professional side, Agile Games France fostered a vibrant community that’s become a source of friendship and support.</p><figure><img alt="Picture of Agile Games France Valence 2024 participants" src="https://cdn-images-1.medium.com/max/1024/0*puiF-7e9yoFTTdL7" /><figcaption>Agile Games France Valence 2024 participants</figcaption></figure><p>If you’re interested in exploring gamified learning or connecting with passionate individuals, I highly recommend attending an event like Agile Games France or incorporating some playful elements into your teaching.</p><p>As a starting point, follow <a href="https://www.linkedin.com/company/agile-games-france/posts/">Agile Games France on Linkedin</a>, explore other participants’ experience reports, or pick a game to experiment from <a href="https://www.agilegamesfrance.fr/doku.php?id=jeux">Agile Games France Wiki</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d8e1c7affdaf" width="1" height="1" alt=""><hr><p><a href="https://medium.com/inside-42/agile-games-france-a-playground-for-learning-and-growth-d8e1c7affdaf">Agile Games France: A Playground for Learning and Growth</a> was originally published in <a href="https://medium.com/inside-42">Inside 42</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Workflow for recruiting a User Tester community around the world]]></title>
            <link>https://medium.com/inside-42/building-a-user-tester-database-and-planning-ux-workshops-around-the-world-abe69baf9fb9?source=rss----3ab7f24d0ac1---4</link>
            <guid isPermaLink="false">https://medium.com/p/abe69baf9fb9</guid>
            <category><![CDATA[product]]></category>
            <dc:creator><![CDATA[Sami Leleu]]></dc:creator>
            <pubDate>Fri, 28 Jun 2024 10:33:23 GMT</pubDate>
            <atom:updated>2024-06-28T10:46:34.375Z</atom:updated>
            <content:encoded><![CDATA[<h3>Context</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*YwDvUkyAECMiJ1OrLG4Hdw.png" /></figure><p>Over the past decade, 42 has evolved from a single campus to a dynamic network of campuses worldwide. Founded with the vision of revolutionizing education, today 42 boasts a global presence, with numerous campuses dedicated to nurturing the next generation of tech talent.</p><p>As part of this growth, effective communication and engagement with our international community is crucial. How do we make Discovery easier, reaching our users faster? To support our mission, we aimed to build a comprehensive user tester database, a User Tester community. This would enable us to invite participants to UX workshops, gather invaluable insights, and continuously improve our offerings.</p><p>Here are some tips on how to achieve this.</p><h3>What tools did we use?</h3><ol><li><strong>Tally</strong>: Tally provided a highly customizable form building solution that enabled direct integration with Notion, automating the data capture process into our central database efficiently.</li><li><strong>Notion</strong>: Serving as our centralized data repository, Notion allowed for sophisticated data management and organization, securely housing the information collected from global participants.</li><li><strong>Slack</strong>: This platform was essential for distributing the Tally form across our extensive network, enabling instantaneous communication and coordination across 52 campuses.</li><li><strong>Calendly</strong>: Facilitated the scheduling of UX workshops across multiple time zones by allowing participants to select suitable times via links automatically sent to their emails after form submission.</li><li><strong>Gmail</strong>: Utilized to contact individuals who responded to the form, Gmail facilitated further communications, including the sharing of Calendly links for workshop scheduling, ensuring seamless interaction with participants by responding to their questions if needed.</li></ol><h3>A GDPR process</h3><p>Ensuring GDPR compliance was a critical priority for us, particularly in terms of building a database that securely handles the personal data of our students and staff.</p><p>In collaboration with our Data Protection Officer (DPO), we carefully considered the most appropriate and reasonable data retention periods and implemented measures for data anonymization.</p><p>For instance, test data is anonymized after 6 months and completely deleted after 2 years to safeguard privacy.</p><p>Access to this sensitive data is strictly limited to ensure additional security. Currently, only a select group within our product team has access, which includes:</p><ul><li>1 Chief Product Officer (CPO)</li><li>3 Product Managers (PM)</li><li>2 Product Designers</li></ul><p>This approach helps us maintain a high standard of data protection and privacy in compliance with GDPR regulations.</p><h3>Build an adaptative Tally Form</h3><p><strong>Objective:</strong> Develop a Tally Form that automatically customizes its questions based on the respondent’s role, ensuring relevance and efficiency in data collection.</p><p><strong>Key Features:</strong></p><ol><li><strong>Role-Based Questions:</strong> Begin with a fundamental question to identify the respondent’s role (e.g., staff, student, alumni). Tailor subsequent questions to address specific needs and gather relevant information for each group.</li><li><strong>Dynamic Content:</strong> Use conditional logic to modify the form’s content in real-time based on previous responses. This ensures that participants only see questions that are pertinent to their specific circumstances.</li></ol><p><strong>Form flow</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*JL65GaT0LMnSwjkn2D_9Qw.jpeg" /><figcaption>Miro Flow</figcaption></figure><p><strong>Tally form</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*dqxXdDhAcm99g1hy_SQp_g.png" /></figure><p><strong>One of the most important questions :</strong></p><p><strong>Who are you?</strong> (Staff, student,):</p><p>This helps to qualify our user testers in order to better target who to address for validating our hypotheses and gathering insights.</p><ul><li>Case of staff: We ask for their specialty/department because a staff member working in marketing does not have the same needs or professional knowledge as one in education.</li><li>Case of student: We request the student’s login to track their progress in the 42 curriculum, and other interesting information such as their attendance, when they started at 42 school, etc.</li></ul><h3>Connect Tally to notion</h3><p>Then, we wanted the results of the Tally form to be automatically incorporated into Notion Database. Tally allows for this, which is one of the reasons why we chose this tool. The seamless connectivity between these two platforms further enhances our workflow efficiency.</p><p><strong>Tally integration panel</strong></p><blockquote><em>Here you can access the integration panel of Tally with Notion. We have mapped to ensure that each data received by the form is properly integrated into the Notion table.</em></blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*69ioEH795fvBfLIkECga6w.png" /></figure><p><strong>Notion Database</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*AkuCRDaFUFRpNEI4VPvwEw.png" /></figure><p><strong>Connexion explained</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*e2Btu563upYbRxLWDzV7rA.jpeg" /></figure><h3>Reaching the audience</h3><p>At 42, we have a Slack channel that brings together all the students and staff from the 52 campuses spread across 31 countries around the world.</p><p>We took advantage of this to send a message with the form in this channel.</p><p><strong>Screenshot of slack message</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*P62IfUiOmIvvVE3_MdUK1Q.png" /></figure><h3>Manage and suit multiple time zone with Calendly slots</h3><p>At 42 school, campuses span various time zones. The aim was to identify time slots suitable for accommodating</p><p>Here are the campuses with the most significant time difference from Paris</p><ul><li>Australia — Adelaide (GMT+9:30, with a time difference of +7 hours from Paris)</li><li>Canada — Québec (GMT-4, with a time difference of -6 hours from Paris)</li></ul><p>Consequently, we devised multiple workshop schedules ensuring product team wouldn’t have to work late into the night, and would campuses be not disturbed by early morning activities at 5 am…</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*a_A7m-0GHeQi3XooxbV7Rw.png" /></figure><h3>Send email to invite our userbase to workshop</h3><p>According to our needs and the type of users we desire for our tests, we select and filter from our database what interests us.</p><p>Then, we send an email to this selection inviting them to the workshop</p><p>The fact that the CPO sent this message add more strength and credibility to our requests.</p><h3>Conclusion</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*rpCCG3UVxmaQh8Wm2dfbzg.png" /></figure><p><strong>Workshop attendance results</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/420/1*IbJ3_YWWJHkFhZ3yt7XJ9A.png" /></figure><p>The initiative to build a User Tester Database and plan regular UX workshops across the globe has been a transformative step for our organization</p><p>By utilizing tools such as Slack, Tally, Notion, and Calendly, we have effectively created a GDPR-compliant system that respects user privacy while engaging our community effectively. Our approach has not only streamlined the process of collecting and managing data but has also fostered a more collaborative and inclusive environment.</p><p>Moving forward, our focus will be on refining these processes and expanding our reach to include more diverse user groups and leverage the built community for more diverse initiatives.</p><p>We are excited about the future possibilities this initiative opens up and are committed to continuing our journey towards excellence in user experience design.</p><p>Don’t hesitate to clap and share this post if you think it can help someone around you build their first user tester community!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=abe69baf9fb9" width="1" height="1" alt=""><hr><p><a href="https://medium.com/inside-42/building-a-user-tester-database-and-planning-ux-workshops-around-the-world-abe69baf9fb9">Workflow for recruiting a User Tester community around the world</a> was originally published in <a href="https://medium.com/inside-42">Inside 42</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>