[{"data":1,"prerenderedAt":7791},["ShallowReactive",2],{"blog-post-en-eu-ai-act-for-product-teams":3,"blog-posts-by-locale":896},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"slug":10,"author":11,"authorImage":12,"role":13,"date":14,"category":15,"image":16,"seoTitle":17,"seoDescription":18,"body":19,"_type":890,"_id":891,"_source":892,"_file":893,"_stem":894,"_extension":895},"/blog/ai-act","blog",false,"en","The EU AI Act for Teams That Just Wanted to Add Some AI","Adding AI to a product is easy. Understanding your responsibilities is not. Here is what the EU AI Act actually means for normal product teams.","eu-ai-act-for-product-teams","Tobias Schmidt","tobias.webp","Product Maker","2026-06-17","AI","/media/blog/blog_ai_act_teams.webp","EU AI Act Explained for Product Teams","A practical guide to the EU AI Act for startups, SMEs and product teams. Learn what changes when AI becomes part of your product.",{"type":20,"children":21,"toc":865},"root",[22,27,35,41,46,51,56,61,66,71,76,81,90,95,103,108,116,119,125,130,135,140,145,150,155,160,165,170,175,178,184,189,194,199,208,213,243,248,253,258,261,267,272,277,282,287,292,297,302,307,312,317,322,327,330,336,341,346,351,356,363,368,381,386,399,405,409,422,427,445,451,455,468,472,490,495,500,503,509,514,519,524,529,534,539,542,548,553,576,581,589,594,599,604,609,614,617,623,628,634,639,644,649,654,659,664,670,675,680,686,691,696,702,707,712,717,723,728,733,738,741,747,752,757,762,767,772,777,782,785,791,796,801,809,814,819,824,829,834,839,844,849,854,857],{"type":23,"tag":24,"props":25,"children":26},"element","hr",{},[],{"type":23,"tag":28,"props":29,"children":31},"h2",{"id":30},"we-just-wanted-to-add-an-ai-chatbot",[32],{"type":33,"value":34},"text","We just wanted to add an AI chatbot...",{"type":23,"tag":36,"props":37,"children":38},"p",{},[39],{"type":33,"value":40},"That is usually how it starts.",{"type":23,"tag":36,"props":42,"children":43},{},[44],{"type":33,"value":45},"Someone suggests adding AI to customer support.",{"type":23,"tag":36,"props":47,"children":48},{},[49],{"type":33,"value":50},"Someone else wants AI-generated content.",{"type":23,"tag":36,"props":52,"children":53},{},[54],{"type":33,"value":55},"The product team experiments with automatic ticket classification.",{"type":23,"tag":36,"props":57,"children":58},{},[59],{"type":33,"value":60},"Recruiting wants AI-powered candidate screening.",{"type":23,"tag":36,"props":62,"children":63},{},[64],{"type":33,"value":65},"Marketing wants faster content creation.",{"type":23,"tag":36,"props":67,"children":68},{},[69],{"type":33,"value":70},"A week later there is a prototype.",{"type":23,"tag":36,"props":72,"children":73},{},[74],{"type":33,"value":75},"A month later there is a feature.",{"type":23,"tag":36,"props":77,"children":78},{},[79],{"type":33,"value":80},"A few months later someone asks:",{"type":23,"tag":36,"props":82,"children":83},{},[84],{"type":23,"tag":85,"props":86,"children":87},"strong",{},[88],{"type":33,"value":89},"\"Wait... does the EU AI Act affect us?\"",{"type":23,"tag":36,"props":91,"children":92},{},[93],{"type":33,"value":94},"The short answer:",{"type":23,"tag":36,"props":96,"children":97},{},[98],{"type":23,"tag":85,"props":99,"children":100},{},[101],{"type":33,"value":102},"Probably.",{"type":23,"tag":36,"props":104,"children":105},{},[106],{"type":33,"value":107},"The slightly longer answer:",{"type":23,"tag":36,"props":109,"children":110},{},[111],{"type":23,"tag":85,"props":112,"children":113},{},[114],{"type":33,"value":115},"Much earlier than most teams expect.",{"type":23,"tag":24,"props":117,"children":118},{},[],{"type":23,"tag":28,"props":120,"children":122},{"id":121},"the-ai-act-is-not-just-for-openai-and-google",[123],{"type":33,"value":124},"The AI Act is not just for OpenAI and Google",{"type":23,"tag":36,"props":126,"children":127},{},[128],{"type":33,"value":129},"Many teams assume the AI Act only applies to large AI companies.",{"type":23,"tag":36,"props":131,"children":132},{},[133],{"type":33,"value":134},"That would be convenient.",{"type":23,"tag":36,"props":136,"children":137},{},[138],{"type":33,"value":139},"It is also wrong.",{"type":23,"tag":36,"props":141,"children":142},{},[143],{"type":33,"value":144},"The AI Act does not only look at who builds AI models.",{"type":23,"tag":36,"props":146,"children":147},{},[148],{"type":33,"value":149},"It also looks at who uses them.",{"type":23,"tag":36,"props":151,"children":152},{},[153],{"type":33,"value":154},"And that's where many companies suddenly find themselves part of the conversation.",{"type":23,"tag":36,"props":156,"children":157},{},[158],{"type":33,"value":159},"You do not need to train your own large language model.",{"type":23,"tag":36,"props":161,"children":162},{},[163],{"type":33,"value":164},"You do not need a team of AI researchers.",{"type":23,"tag":36,"props":166,"children":167},{},[168],{"type":33,"value":169},"You do not need your own datacenter.",{"type":23,"tag":36,"props":171,"children":172},{},[173],{"type":33,"value":174},"If your product uses AI to support decisions, generate content, classify people or automate processes, you should at least understand what responsibilities come with it.",{"type":23,"tag":24,"props":176,"children":177},{},[],{"type":23,"tag":28,"props":179,"children":181},{"id":180},"most-teams-are-not-building-ai",[182],{"type":33,"value":183},"Most teams are not building AI",{"type":23,"tag":36,"props":185,"children":186},{},[187],{"type":33,"value":188},"They are building products.",{"type":23,"tag":36,"props":190,"children":191},{},[192],{"type":33,"value":193},"And that distinction matters.",{"type":23,"tag":36,"props":195,"children":196},{},[197],{"type":33,"value":198},"A lot of product teams don't wake up in the morning thinking:",{"type":23,"tag":36,"props":200,"children":201},{},[202],{"type":23,"tag":203,"props":204,"children":205},"em",{},[206],{"type":33,"value":207},"\"Let's create an AI system.\"",{"type":23,"tag":36,"props":209,"children":210},{},[211],{"type":33,"value":212},"Instead they think:",{"type":23,"tag":214,"props":215,"children":216},"ul",{},[217,223,228,233,238],{"type":23,"tag":218,"props":219,"children":220},"li",{},[221],{"type":33,"value":222},"Let's improve support response times.",{"type":23,"tag":218,"props":224,"children":225},{},[226],{"type":33,"value":227},"Let's automate repetitive work.",{"type":23,"tag":218,"props":229,"children":230},{},[231],{"type":33,"value":232},"Let's make onboarding easier.",{"type":23,"tag":218,"props":234,"children":235},{},[236],{"type":33,"value":237},"Let's help recruiters process applications faster.",{"type":23,"tag":218,"props":239,"children":240},{},[241],{"type":33,"value":242},"Let's generate content more efficiently.",{"type":23,"tag":36,"props":244,"children":245},{},[246],{"type":33,"value":247},"The goal is usually business value.",{"type":23,"tag":36,"props":249,"children":250},{},[251],{"type":33,"value":252},"AI is just the tool.",{"type":23,"tag":36,"props":254,"children":255},{},[256],{"type":33,"value":257},"Unfortunately, regulators care about the tool as well.",{"type":23,"tag":24,"props":259,"children":260},{},[],{"type":23,"tag":28,"props":262,"children":264},{"id":263},"the-first-question-what-is-the-ai-actually-doing",[265],{"type":33,"value":266},"The first question: What is the AI actually doing?",{"type":23,"tag":36,"props":268,"children":269},{},[270],{"type":33,"value":271},"Not all AI systems are treated equally.",{"type":23,"tag":36,"props":273,"children":274},{},[275],{"type":33,"value":276},"The AI Act follows a risk-based approach.",{"type":23,"tag":36,"props":278,"children":279},{},[280],{"type":33,"value":281},"Some use cases are considered low risk.",{"type":23,"tag":36,"props":283,"children":284},{},[285],{"type":33,"value":286},"Others require significantly more attention.",{"type":23,"tag":36,"props":288,"children":289},{},[290],{"type":33,"value":291},"A simple example:",{"type":23,"tag":36,"props":293,"children":294},{},[295],{"type":33,"value":296},"Using AI to generate draft blog posts?",{"type":23,"tag":36,"props":298,"children":299},{},[300],{"type":33,"value":301},"Usually lower risk.",{"type":23,"tag":36,"props":303,"children":304},{},[305],{"type":33,"value":306},"Using AI to evaluate job applicants?",{"type":23,"tag":36,"props":308,"children":309},{},[310],{"type":33,"value":311},"Very different conversation.",{"type":23,"tag":36,"props":313,"children":314},{},[315],{"type":33,"value":316},"One affects content production.",{"type":23,"tag":36,"props":318,"children":319},{},[320],{"type":33,"value":321},"The other can directly influence people's opportunities and livelihoods.",{"type":23,"tag":36,"props":323,"children":324},{},[325],{"type":33,"value":326},"The more an AI system influences important decisions about people, the more attention regulators expect.",{"type":23,"tag":24,"props":328,"children":329},{},[],{"type":23,"tag":28,"props":331,"children":333},{"id":332},"the-danger-zone-is-often-closer-than-expected",[334],{"type":33,"value":335},"The danger zone is often closer than expected",{"type":23,"tag":36,"props":337,"children":338},{},[339],{"type":33,"value":340},"Many teams accidentally move into higher-risk territory.",{"type":23,"tag":36,"props":342,"children":343},{},[344],{"type":33,"value":345},"Not because they have bad intentions.",{"type":23,"tag":36,"props":347,"children":348},{},[349],{"type":33,"value":350},"Because the feature sounds useful.",{"type":23,"tag":36,"props":352,"children":353},{},[354],{"type":33,"value":355},"Consider these examples:",{"type":23,"tag":357,"props":358,"children":360},"h3",{"id":359},"customer-support",[361],{"type":33,"value":362},"Customer Support",{"type":23,"tag":36,"props":364,"children":365},{},[366],{"type":33,"value":367},"Low risk:",{"type":23,"tag":214,"props":369,"children":370},{},[371,376],{"type":23,"tag":218,"props":372,"children":373},{},[374],{"type":33,"value":375},"AI summarises tickets",{"type":23,"tag":218,"props":377,"children":378},{},[379],{"type":33,"value":380},"AI suggests responses",{"type":23,"tag":36,"props":382,"children":383},{},[384],{"type":33,"value":385},"Potentially problematic:",{"type":23,"tag":214,"props":387,"children":388},{},[389,394],{"type":23,"tag":218,"props":390,"children":391},{},[392],{"type":33,"value":393},"AI automatically makes binding decisions",{"type":23,"tag":218,"props":395,"children":396},{},[397],{"type":33,"value":398},"AI rejects customer requests without oversight",{"type":23,"tag":357,"props":400,"children":402},{"id":401},"recruiting",[403],{"type":33,"value":404},"Recruiting",{"type":23,"tag":36,"props":406,"children":407},{},[408],{"type":33,"value":367},{"type":23,"tag":214,"props":410,"children":411},{},[412,417],{"type":23,"tag":218,"props":413,"children":414},{},[415],{"type":33,"value":416},"AI helps write job descriptions",{"type":23,"tag":218,"props":418,"children":419},{},[420],{"type":33,"value":421},"AI summarises interview notes",{"type":23,"tag":36,"props":423,"children":424},{},[425],{"type":33,"value":426},"Higher risk:",{"type":23,"tag":214,"props":428,"children":429},{},[430,435,440],{"type":23,"tag":218,"props":431,"children":432},{},[433],{"type":33,"value":434},"AI scores candidates",{"type":23,"tag":218,"props":436,"children":437},{},[438],{"type":33,"value":439},"AI ranks applicants",{"type":23,"tag":218,"props":441,"children":442},{},[443],{"type":33,"value":444},"AI recommends hiring decisions",{"type":23,"tag":357,"props":446,"children":448},{"id":447},"internal-tools",[449],{"type":33,"value":450},"Internal Tools",{"type":23,"tag":36,"props":452,"children":453},{},[454],{"type":33,"value":367},{"type":23,"tag":214,"props":456,"children":457},{},[458,463],{"type":23,"tag":218,"props":459,"children":460},{},[461],{"type":33,"value":462},"AI organises documents",{"type":23,"tag":218,"props":464,"children":465},{},[466],{"type":33,"value":467},"AI generates meeting summaries",{"type":23,"tag":36,"props":469,"children":470},{},[471],{"type":33,"value":385},{"type":23,"tag":214,"props":473,"children":474},{},[475,480,485],{"type":23,"tag":218,"props":476,"children":477},{},[478],{"type":33,"value":479},"AI evaluates employee performance",{"type":23,"tag":218,"props":481,"children":482},{},[483],{"type":33,"value":484},"AI influences promotions",{"type":23,"tag":218,"props":486,"children":487},{},[488],{"type":33,"value":489},"AI determines disciplinary actions",{"type":23,"tag":36,"props":491,"children":492},{},[493],{"type":33,"value":494},"The difference is often not technical.",{"type":23,"tag":36,"props":496,"children":497},{},[498],{"type":33,"value":499},"It is about impact.",{"type":23,"tag":24,"props":501,"children":502},{},[],{"type":23,"tag":28,"props":504,"children":506},{"id":505},"but-were-only-using-chatgpt",[507],{"type":33,"value":508},"\"But we're only using ChatGPT\"",{"type":23,"tag":36,"props":510,"children":511},{},[512],{"type":33,"value":513},"This is one of the most common misconceptions.",{"type":23,"tag":36,"props":515,"children":516},{},[517],{"type":33,"value":518},"Using an external AI provider does not automatically transfer responsibility.",{"type":23,"tag":36,"props":520,"children":521},{},[522],{"type":33,"value":523},"If an AI-powered feature becomes part of your product or business process, your responsibilities do not magically disappear because someone else trained the model.",{"type":23,"tag":36,"props":525,"children":526},{},[527],{"type":33,"value":528},"Think of it like cloud hosting.",{"type":23,"tag":36,"props":530,"children":531},{},[532],{"type":33,"value":533},"Running your application on a cloud provider does not remove your responsibility for security.",{"type":23,"tag":36,"props":535,"children":536},{},[537],{"type":33,"value":538},"Using an AI provider does not remove your responsibility for how AI is used.",{"type":23,"tag":24,"props":540,"children":541},{},[],{"type":23,"tag":28,"props":543,"children":545},{"id":544},"product-teams-need-a-new-habit",[546],{"type":33,"value":547},"Product teams need a new habit",{"type":23,"tag":36,"props":549,"children":550},{},[551],{"type":33,"value":552},"For years we have asked questions like:",{"type":23,"tag":214,"props":554,"children":555},{},[556,561,566,571],{"type":23,"tag":218,"props":557,"children":558},{},[559],{"type":33,"value":560},"Is this technically feasible?",{"type":23,"tag":218,"props":562,"children":563},{},[564],{"type":33,"value":565},"Is this valuable?",{"type":23,"tag":218,"props":567,"children":568},{},[569],{"type":33,"value":570},"Is this usable?",{"type":23,"tag":218,"props":572,"children":573},{},[574],{"type":33,"value":575},"Is this secure?",{"type":23,"tag":36,"props":577,"children":578},{},[579],{"type":33,"value":580},"Now there is another question:",{"type":23,"tag":36,"props":582,"children":583},{},[584],{"type":23,"tag":85,"props":585,"children":586},{},[587],{"type":33,"value":588},"Is this AI use case appropriate?",{"type":23,"tag":36,"props":590,"children":591},{},[592],{"type":33,"value":593},"Not every problem should be solved with AI.",{"type":23,"tag":36,"props":595,"children":596},{},[597],{"type":33,"value":598},"Not every workflow benefits from automation.",{"type":23,"tag":36,"props":600,"children":601},{},[602],{"type":33,"value":603},"Not every decision should be delegated to a model.",{"type":23,"tag":36,"props":605,"children":606},{},[607],{"type":33,"value":608},"Good product teams already know this instinctively.",{"type":23,"tag":36,"props":610,"children":611},{},[612],{"type":33,"value":613},"The AI Act simply forces us to think about it more explicitly.",{"type":23,"tag":24,"props":615,"children":616},{},[],{"type":23,"tag":28,"props":618,"children":620},{"id":619},"the-practical-checklist",[621],{"type":33,"value":622},"The practical checklist",{"type":23,"tag":36,"props":624,"children":625},{},[626],{"type":33,"value":627},"Before adding AI to a product, ask:",{"type":23,"tag":357,"props":629,"children":631},{"id":630},"_1-does-the-ai-influence-decisions-about-people",[632],{"type":33,"value":633},"1. Does the AI influence decisions about people?",{"type":23,"tag":36,"props":635,"children":636},{},[637],{"type":33,"value":638},"Hiring.",{"type":23,"tag":36,"props":640,"children":641},{},[642],{"type":33,"value":643},"Promotion.",{"type":23,"tag":36,"props":645,"children":646},{},[647],{"type":33,"value":648},"Education.",{"type":23,"tag":36,"props":650,"children":651},{},[652],{"type":33,"value":653},"Healthcare.",{"type":23,"tag":36,"props":655,"children":656},{},[657],{"type":33,"value":658},"Financial decisions.",{"type":23,"tag":36,"props":660,"children":661},{},[662],{"type":33,"value":663},"If yes, slow down and investigate further.",{"type":23,"tag":357,"props":665,"children":667},{"id":666},"_2-is-there-meaningful-human-oversight",[668],{"type":33,"value":669},"2. Is there meaningful human oversight?",{"type":23,"tag":36,"props":671,"children":672},{},[673],{"type":33,"value":674},"Can a human review, override or challenge the output?",{"type":23,"tag":36,"props":676,"children":677},{},[678],{"type":33,"value":679},"Or is the AI effectively making the decision?",{"type":23,"tag":357,"props":681,"children":683},{"id":682},"_3-would-users-expect-ai-to-be-involved",[684],{"type":33,"value":685},"3. Would users expect AI to be involved?",{"type":23,"tag":36,"props":687,"children":688},{},[689],{"type":33,"value":690},"Transparency matters.",{"type":23,"tag":36,"props":692,"children":693},{},[694],{"type":33,"value":695},"People should not have to guess.",{"type":23,"tag":357,"props":697,"children":699},{"id":698},"_4-could-the-output-cause-harm-if-it-is-wrong",[700],{"type":33,"value":701},"4. Could the output cause harm if it is wrong?",{"type":23,"tag":36,"props":703,"children":704},{},[705],{"type":33,"value":706},"Every AI system makes mistakes.",{"type":23,"tag":36,"props":708,"children":709},{},[710],{"type":33,"value":711},"The question is not whether mistakes happen.",{"type":23,"tag":36,"props":713,"children":714},{},[715],{"type":33,"value":716},"The question is what happens when they do.",{"type":23,"tag":357,"props":718,"children":720},{"id":719},"_5-can-you-explain-how-the-feature-works",[721],{"type":33,"value":722},"5. Can you explain how the feature works?",{"type":23,"tag":36,"props":724,"children":725},{},[726],{"type":33,"value":727},"Not the model internals.",{"type":23,"tag":36,"props":729,"children":730},{},[731],{"type":33,"value":732},"The product behaviour.",{"type":23,"tag":36,"props":734,"children":735},{},[736],{"type":33,"value":737},"If you cannot explain it to a customer, you probably need to understand it better yourself.",{"type":23,"tag":24,"props":739,"children":740},{},[],{"type":23,"tag":28,"props":742,"children":744},{"id":743},"the-biggest-mistake-is-waiting-too-long",[745],{"type":33,"value":746},"The biggest mistake is waiting too long",{"type":23,"tag":36,"props":748,"children":749},{},[750],{"type":33,"value":751},"Most compliance problems are surprisingly cheap to prevent.",{"type":23,"tag":36,"props":753,"children":754},{},[755],{"type":33,"value":756},"They become expensive when they are discovered after launch.",{"type":23,"tag":36,"props":758,"children":759},{},[760],{"type":33,"value":761},"The teams that struggle most are usually not reckless.",{"type":23,"tag":36,"props":763,"children":764},{},[765],{"type":33,"value":766},"They simply treat compliance as something to think about later.",{"type":23,"tag":36,"props":768,"children":769},{},[770],{"type":33,"value":771},"The teams that succeed ask the uncomfortable questions early.",{"type":23,"tag":36,"props":773,"children":774},{},[775],{"type":33,"value":776},"Not because lawyers told them to.",{"type":23,"tag":36,"props":778,"children":779},{},[780],{"type":33,"value":781},"Because it helps them build better products.",{"type":23,"tag":24,"props":783,"children":784},{},[],{"type":23,"tag":28,"props":786,"children":788},{"id":787},"the-ai-act-is-really-about-trust",[789],{"type":33,"value":790},"The AI Act is really about trust",{"type":23,"tag":36,"props":792,"children":793},{},[794],{"type":33,"value":795},"When people hear regulation, they often think about paperwork.",{"type":23,"tag":36,"props":797,"children":798},{},[799],{"type":33,"value":800},"But underneath the legal language, the AI Act is trying to solve a simple problem:",{"type":23,"tag":36,"props":802,"children":803},{},[804],{"type":23,"tag":85,"props":805,"children":806},{},[807],{"type":33,"value":808},"How do we create trust in AI systems?",{"type":23,"tag":36,"props":810,"children":811},{},[812],{"type":33,"value":813},"Customers want to know when AI is involved.",{"type":23,"tag":36,"props":815,"children":816},{},[817],{"type":33,"value":818},"Employees want fair treatment.",{"type":23,"tag":36,"props":820,"children":821},{},[822],{"type":33,"value":823},"Users want transparency.",{"type":23,"tag":36,"props":825,"children":826},{},[827],{"type":33,"value":828},"Companies want innovation without unnecessary risk.",{"type":23,"tag":36,"props":830,"children":831},{},[832],{"type":33,"value":833},"Those goals are not enemies.",{"type":23,"tag":36,"props":835,"children":836},{},[837],{"type":33,"value":838},"In fact, they are surprisingly aligned.",{"type":23,"tag":36,"props":840,"children":841},{},[842],{"type":33,"value":843},"The best AI products are rarely the ones that automate the most.",{"type":23,"tag":36,"props":845,"children":846},{},[847],{"type":33,"value":848},"They are the ones that earn the most trust.",{"type":23,"tag":36,"props":850,"children":851},{},[852],{"type":33,"value":853},"And trust has always been a product problem long before it became a regulatory one.",{"type":23,"tag":24,"props":855,"children":856},{},[],{"type":23,"tag":36,"props":858,"children":859},{},[860],{"type":23,"tag":203,"props":861,"children":862},{},[863],{"type":33,"value":864},"At BitBitHooray, we love building with AI. But we believe responsible AI starts long before compliance audits and legal reviews. It starts with asking better questions when designing products. Because the fastest way to ship an AI feature is not always the smartest way to build one.",{"title":866,"searchDepth":867,"depth":867,"links":868},"",2,[869,870,871,872,873,879,880,881,888,889],{"id":30,"depth":867,"text":34},{"id":121,"depth":867,"text":124},{"id":180,"depth":867,"text":183},{"id":263,"depth":867,"text":266},{"id":332,"depth":867,"text":335,"children":874},[875,877,878],{"id":359,"depth":876,"text":362},3,{"id":401,"depth":876,"text":404},{"id":447,"depth":876,"text":450},{"id":505,"depth":867,"text":508},{"id":544,"depth":867,"text":547},{"id":619,"depth":867,"text":622,"children":882},[883,884,885,886,887],{"id":630,"depth":876,"text":633},{"id":666,"depth":876,"text":669},{"id":682,"depth":876,"text":685},{"id":698,"depth":876,"text":701},{"id":719,"depth":876,"text":722},{"id":743,"depth":867,"text":746},{"id":787,"depth":867,"text":790},"markdown","content:en:blog:ai-act.md","content","en/blog/ai-act.md","en/blog/ai-act","md",[897,1406,2101,2779,3243,4105,4567,5139,5485,5962,6408,6690,6900,7064,7253,7568],{"_path":898,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":899,"description":900,"author":901,"date":902,"category":903,"tags":904,"readingTime":909,"featured":910,"slug":911,"image":912,"imageAlt":913,"seoTitle":914,"seoDescription":915,"body":916,"_type":890,"_id":1403,"_source":892,"_file":1404,"_stem":1405,"_extension":895},"/blog/cyber-resilience-act-what-it-means-for-digital-products","EU Cyber Resilience Act: What it means for digital products","The Cyber Resilience Act turns cybersecurity into a product responsibility. What manufacturers, SaaS teams and digital product owners should prepare now.","BitBitHooray Team","2026-06-25","Security",[905,906,907,908],"Cybersecurity","EU","Compliance","Product Development",7,true,"cyber-resilience-act-what-it-means-for-digital-products","blog_eu_resiliance_act.webp","Illustration for the EU Cyber Resilience Act and secure digital products","EU Cyber Resilience Act: What digital product teams need to know | BitBitHooray","The Cyber Resilience Act introduces mandatory cybersecurity requirements for products with digital elements. Here is what matters now.",{"type":20,"children":917,"toc":1390},[918,923,928,934,950,964,969,975,980,985,1018,1023,1029,1034,1039,1045,1050,1055,1083,1088,1094,1099,1104,1132,1137,1143,1148,1153,1181,1186,1192,1197,1202,1207,1235,1241,1246,1251,1256,1290,1295,1301,1306,1311,1316,1321,1354,1359,1365,1370,1375,1380,1385],{"type":23,"tag":36,"props":919,"children":920},{},[921],{"type":33,"value":922},"The EU Cyber Resilience Act sounds like another compliance topic that gets passed around between legal, security and product management. In reality, it is something else: a signal that cybersecurity can no longer be treated as an add-on.",{"type":23,"tag":36,"props":924,"children":925},{},[926],{"type":33,"value":927},"If a product has digital elements, security should be part of the product. Not after launch. Not after the first incident. And not only as a PDF in an audit folder.",{"type":23,"tag":28,"props":929,"children":931},{"id":930},"what-is-the-cyber-resilience-act",[932],{"type":33,"value":933},"What is the Cyber Resilience Act?",{"type":23,"tag":36,"props":935,"children":936},{},[937,939,948],{"type":33,"value":938},"The ",{"type":23,"tag":940,"props":941,"children":945},"a",{"href":942,"rel":943},"https://digital-strategy.ec.europa.eu/en/policies/cyber-resilience-act",[944],"nofollow",[946],{"type":33,"value":947},"Cyber Resilience Act",{"type":33,"value":949}," is an EU regulation for products with digital elements. This can include software, hardware, connected devices, IoT products and many digital components.",{"type":23,"tag":36,"props":951,"children":952},{},[953,955,962],{"type":33,"value":954},"The legal basis is ",{"type":23,"tag":940,"props":956,"children":959},{"href":957,"rel":958},"https://eur-lex.europa.eu/eli/reg/2024/2847/oj",[944],[960],{"type":33,"value":961},"Regulation (EU) 2024/2847",{"type":33,"value":963},". It was published in 2024 and applies in stages: reporting obligations for certain vulnerabilities and security incidents start earlier, while most requirements become relevant from 11 December 2027.",{"type":23,"tag":36,"props":965,"children":966},{},[967],{"type":33,"value":968},"The goal is simple: products should be developed, shipped, maintained and documented more securely.",{"type":23,"tag":28,"props":970,"children":972},{"id":971},"why-this-matters-for-product-teams",[973],{"type":33,"value":974},"Why this matters for product teams",{"type":23,"tag":36,"props":976,"children":977},{},[978],{"type":33,"value":979},"Many teams think of regulation as a checklist problem. The CRA is more of a product and process problem.",{"type":23,"tag":36,"props":981,"children":982},{},[983],{"type":33,"value":984},"The questions behind it are practical:",{"type":23,"tag":214,"props":986,"children":987},{},[988,993,998,1003,1008,1013],{"type":23,"tag":218,"props":989,"children":990},{},[991],{"type":33,"value":992},"How do we handle security updates?",{"type":23,"tag":218,"props":994,"children":995},{},[996],{"type":33,"value":997},"Who evaluates vulnerabilities?",{"type":23,"tag":218,"props":999,"children":1000},{},[1001],{"type":33,"value":1002},"Which components are inside our product?",{"type":23,"tag":218,"props":1004,"children":1005},{},[1006],{"type":33,"value":1007},"How long do we support a product after release?",{"type":23,"tag":218,"props":1009,"children":1010},{},[1011],{"type":33,"value":1012},"How do we document security decisions?",{"type":23,"tag":218,"props":1014,"children":1015},{},[1016],{"type":33,"value":1017},"How quickly can we react if a vulnerability is actively exploited?",{"type":23,"tag":36,"props":1019,"children":1020},{},[1021],{"type":33,"value":1022},"These are not purely legal questions. They are architecture, DevOps, product and ownership questions.",{"type":23,"tag":28,"props":1024,"children":1026},{"id":1025},"what-changes-in-practice",[1027],{"type":33,"value":1028},"What changes in practice",{"type":23,"tag":36,"props":1030,"children":1031},{},[1032],{"type":33,"value":1033},"The CRA shifts more responsibility to manufacturers and providers. Anyone making products with digital elements available in the EU must be able to show, depending on the product class, that cybersecurity has been considered systematically.",{"type":23,"tag":36,"props":1035,"children":1036},{},[1037],{"type":33,"value":1038},"In practice, this means:",{"type":23,"tag":357,"props":1040,"children":1042},{"id":1041},"_1-security-by-design-becomes-mandatory",[1043],{"type":33,"value":1044},"1. Security by design becomes mandatory",{"type":23,"tag":36,"props":1046,"children":1047},{},[1048],{"type":33,"value":1049},"Security should not be bolted on later. Product teams need to consider risk during discovery, architecture and development.",{"type":23,"tag":36,"props":1051,"children":1052},{},[1053],{"type":33,"value":1054},"This includes, for example:",{"type":23,"tag":214,"props":1056,"children":1057},{},[1058,1063,1068,1073,1078],{"type":23,"tag":218,"props":1059,"children":1060},{},[1061],{"type":33,"value":1062},"secure default configurations",{"type":23,"tag":218,"props":1064,"children":1065},{},[1066],{"type":33,"value":1067},"access control and authentication",{"type":23,"tag":218,"props":1069,"children":1070},{},[1071],{"type":33,"value":1072},"protection against unauthorized access",{"type":23,"tag":218,"props":1074,"children":1075},{},[1076],{"type":33,"value":1077},"secure update mechanisms",{"type":23,"tag":218,"props":1079,"children":1080},{},[1081],{"type":33,"value":1082},"reducing known attack vectors",{"type":23,"tag":36,"props":1084,"children":1085},{},[1086],{"type":33,"value":1087},"In short: \"We'll patch it later\" is becoming an increasingly weak product strategy.",{"type":23,"tag":357,"props":1089,"children":1091},{"id":1090},"_2-vulnerability-management-becomes-part-of-the-product",[1092],{"type":33,"value":1093},"2. Vulnerability management becomes part of the product",{"type":23,"tag":36,"props":1095,"children":1096},{},[1097],{"type":33,"value":1098},"A product is not done when it is released. It needs a process for vulnerabilities.",{"type":23,"tag":36,"props":1100,"children":1101},{},[1102],{"type":33,"value":1103},"Teams should clarify:",{"type":23,"tag":214,"props":1105,"children":1106},{},[1107,1112,1117,1122,1127],{"type":23,"tag":218,"props":1108,"children":1109},{},[1110],{"type":33,"value":1111},"Where can users or researchers report security issues?",{"type":23,"tag":218,"props":1113,"children":1114},{},[1115],{"type":33,"value":1116},"Who triages those reports?",{"type":23,"tag":218,"props":1118,"children":1119},{},[1120],{"type":33,"value":1121},"How are fixes prioritized?",{"type":23,"tag":218,"props":1123,"children":1124},{},[1125],{"type":33,"value":1126},"How are security updates delivered?",{"type":23,"tag":218,"props":1128,"children":1129},{},[1130],{"type":33,"value":1131},"How are known risks documented?",{"type":23,"tag":36,"props":1133,"children":1134},{},[1135],{"type":33,"value":1136},"That may sound dry, but it is exactly the difference between \"we hope nothing happens\" and \"we can respond\".",{"type":23,"tag":357,"props":1138,"children":1140},{"id":1139},"_3-documentation-becomes-more-important",[1141],{"type":33,"value":1142},"3. Documentation becomes more important",{"type":23,"tag":36,"props":1144,"children":1145},{},[1146],{"type":33,"value":1147},"The CRA will not make documentation more popular. But it does make it more relevant.",{"type":23,"tag":36,"props":1149,"children":1150},{},[1151],{"type":33,"value":1152},"Product teams should be able to explain:",{"type":23,"tag":214,"props":1154,"children":1155},{},[1156,1161,1166,1171,1176],{"type":23,"tag":218,"props":1157,"children":1158},{},[1159],{"type":33,"value":1160},"which components are used",{"type":23,"tag":218,"props":1162,"children":1163},{},[1164],{"type":33,"value":1165},"which security assumptions were made",{"type":23,"tag":218,"props":1167,"children":1168},{},[1169],{"type":33,"value":1170},"which risks were assessed",{"type":23,"tag":218,"props":1172,"children":1173},{},[1174],{"type":33,"value":1175},"which update and support periods are planned",{"type":23,"tag":218,"props":1177,"children":1178},{},[1179],{"type":33,"value":1180},"which conformity assessment is needed",{"type":23,"tag":36,"props":1182,"children":1183},{},[1184],{"type":33,"value":1185},"That is not only useful for auditors. It also helps your own team understand six months later why a decision was made.",{"type":23,"tag":357,"props":1187,"children":1189},{"id":1188},"_4-supply-chains-become-more-visible",[1190],{"type":33,"value":1191},"4. Supply chains become more visible",{"type":23,"tag":36,"props":1193,"children":1194},{},[1195],{"type":33,"value":1196},"Almost no digital product is built entirely from scratch today. Frameworks, libraries, APIs, cloud services, container images, SaaS components: all of them are part of the supply chain.",{"type":23,"tag":36,"props":1198,"children":1199},{},[1200],{"type":33,"value":1201},"The CRA fits a development that has been necessary for a while anyway: teams need more transparency over their software supply chain.",{"type":23,"tag":36,"props":1203,"children":1204},{},[1205],{"type":33,"value":1206},"At minimum, teams should know:",{"type":23,"tag":214,"props":1208,"children":1209},{},[1210,1215,1220,1225,1230],{"type":23,"tag":218,"props":1211,"children":1212},{},[1213],{"type":33,"value":1214},"Which external components do we use?",{"type":23,"tag":218,"props":1216,"children":1217},{},[1218],{"type":33,"value":1219},"Which of them are critical?",{"type":23,"tag":218,"props":1221,"children":1222},{},[1223],{"type":33,"value":1224},"How do we learn about vulnerabilities?",{"type":23,"tag":218,"props":1226,"children":1227},{},[1228],{"type":33,"value":1229},"How quickly can we update?",{"type":23,"tag":218,"props":1231,"children":1232},{},[1233],{"type":33,"value":1234},"Who is responsible if a component becomes insecure or unavailable?",{"type":23,"tag":28,"props":1236,"children":1238},{"id":1237},"what-should-not-happen-now",[1239],{"type":33,"value":1240},"What should not happen now",{"type":23,"tag":36,"props":1242,"children":1243},{},[1244],{"type":33,"value":1245},"The worst reaction would be to ignore the CRA until 2027 and then try to pour \"compliance\" over an existing product in a hurry.",{"type":23,"tag":36,"props":1247,"children":1248},{},[1249],{"type":33,"value":1250},"That will be expensive, slow and unpleasant.",{"type":23,"tag":36,"props":1252,"children":1253},{},[1254],{"type":33,"value":1255},"A more pragmatic start:",{"type":23,"tag":1257,"props":1258,"children":1259},"ol",{},[1260,1265,1270,1275,1280,1285],{"type":23,"tag":218,"props":1261,"children":1262},{},[1263],{"type":33,"value":1264},"Roughly classify existing products",{"type":23,"tag":218,"props":1266,"children":1267},{},[1268],{"type":33,"value":1269},"Clarify security responsibilities",{"type":23,"tag":218,"props":1271,"children":1272},{},[1273],{"type":33,"value":1274},"Define update and vulnerability processes",{"type":23,"tag":218,"props":1276,"children":1277},{},[1278],{"type":33,"value":1279},"Inventory dependencies",{"type":23,"tag":218,"props":1281,"children":1282},{},[1283],{"type":33,"value":1284},"Integrate security requirements into new product work",{"type":23,"tag":218,"props":1286,"children":1287},{},[1288],{"type":33,"value":1289},"Start documentation where real risks are created",{"type":23,"tag":36,"props":1291,"children":1292},{},[1293],{"type":33,"value":1294},"Not everything has to be perfect immediately. But the direction needs to be clear.",{"type":23,"tag":28,"props":1296,"children":1298},{"id":1297},"what-this-means-for-saas-and-digital-platforms",[1299],{"type":33,"value":1300},"What this means for SaaS and digital platforms",{"type":23,"tag":36,"props":1302,"children":1303},{},[1304],{"type":33,"value":1305},"For pure SaaS products, classification is not always trivial. The CRA focuses on products with digital elements and covers certain software and hardware scenarios. At the same time, there are overlaps with other frameworks such as NIS2, DORA, GDPR or the AI Act.",{"type":23,"tag":36,"props":1307,"children":1308},{},[1309],{"type":33,"value":1310},"So the practical question is not: \"Are we definitely covered?\"",{"type":23,"tag":36,"props":1312,"children":1313},{},[1314],{"type":33,"value":1315},"The better question is: \"Which CRA principles should we implement anyway because they are good product engineering?\"",{"type":23,"tag":36,"props":1317,"children":1318},{},[1319],{"type":33,"value":1320},"Our answer:",{"type":23,"tag":214,"props":1322,"children":1323},{},[1324,1329,1334,1339,1344,1349],{"type":23,"tag":218,"props":1325,"children":1326},{},[1327],{"type":33,"value":1328},"security by design",{"type":23,"tag":218,"props":1330,"children":1331},{},[1332],{"type":33,"value":1333},"clear update processes",{"type":23,"tag":218,"props":1335,"children":1336},{},[1337],{"type":33,"value":1338},"dependency management",{"type":23,"tag":218,"props":1340,"children":1341},{},[1342],{"type":33,"value":1343},"traceable technical documentation",{"type":23,"tag":218,"props":1345,"children":1346},{},[1347],{"type":33,"value":1348},"incident and vulnerability processes",{"type":23,"tag":218,"props":1350,"children":1351},{},[1352],{"type":33,"value":1353},"making product decisions with security impact visible",{"type":23,"tag":36,"props":1355,"children":1356},{},[1357],{"type":33,"value":1358},"Even if a product is not fully covered by the CRA in the end, these points are not wasted effort.",{"type":23,"tag":28,"props":1360,"children":1362},{"id":1361},"our-take",[1363],{"type":33,"value":1364},"Our take",{"type":23,"tag":36,"props":1366,"children":1367},{},[1368],{"type":33,"value":1369},"The Cyber Resilience Act is not just a compliance project. It is a maturity test for digital product development.",{"type":23,"tag":36,"props":1371,"children":1372},{},[1373],{"type":33,"value":1374},"Teams that already build, document, patch and take responsibility in a structured way will have fewer problems. Teams that treat security as a later ticket will need to catch up.",{"type":23,"tag":36,"props":1376,"children":1377},{},[1378],{"type":33,"value":1379},"The best time to prepare is not December 2027. It is now.",{"type":23,"tag":36,"props":1381,"children":1382},{},[1383],{"type":33,"value":1384},"Not with panic. Not with 80-page policies as the first move. But with a clear look at product architecture, processes and responsibilities.",{"type":23,"tag":36,"props":1386,"children":1387},{},[1388],{"type":33,"value":1389},"In short: security is moving from side note to product feature.",{"title":866,"searchDepth":867,"depth":867,"links":1391},[1392,1393,1394,1400,1401,1402],{"id":930,"depth":867,"text":933},{"id":971,"depth":867,"text":974},{"id":1025,"depth":867,"text":1028,"children":1395},[1396,1397,1398,1399],{"id":1041,"depth":876,"text":1044},{"id":1090,"depth":876,"text":1093},{"id":1139,"depth":876,"text":1142},{"id":1188,"depth":876,"text":1191},{"id":1237,"depth":867,"text":1240},{"id":1297,"depth":867,"text":1300},{"id":1361,"depth":867,"text":1364},"content:en:blog:cyber-resilience-act-what-it-means-for-digital-products.md","en/blog/cyber-resilience-act-what-it-means-for-digital-products.md","en/blog/cyber-resilience-act-what-it-means-for-digital-products",{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"slug":10,"author":11,"authorImage":12,"role":13,"date":14,"category":15,"image":16,"seoTitle":17,"seoDescription":18,"body":1407,"_type":890,"_id":891,"_source":892,"_file":893,"_stem":894,"_extension":895},{"type":20,"children":1408,"toc":2079},[1409,1412,1416,1420,1424,1428,1432,1436,1440,1444,1448,1452,1459,1463,1470,1474,1481,1484,1488,1492,1496,1500,1504,1508,1512,1516,1520,1524,1528,1531,1535,1539,1543,1547,1554,1558,1581,1585,1589,1593,1596,1600,1604,1608,1612,1616,1620,1624,1628,1632,1636,1640,1644,1648,1651,1655,1659,1663,1667,1671,1675,1679,1690,1694,1705,1709,1713,1724,1728,1743,1747,1751,1762,1766,1781,1785,1789,1792,1796,1800,1804,1808,1812,1816,1820,1823,1827,1831,1850,1854,1861,1865,1869,1873,1877,1881,1884,1888,1892,1896,1900,1904,1908,1912,1916,1920,1924,1928,1932,1936,1940,1944,1948,1952,1956,1960,1964,1968,1972,1976,1979,1983,1987,1991,1995,1999,2003,2007,2011,2014,2018,2022,2026,2033,2037,2041,2045,2049,2053,2057,2061,2065,2069,2072],{"type":23,"tag":24,"props":1410,"children":1411},{},[],{"type":23,"tag":28,"props":1413,"children":1414},{"id":30},[1415],{"type":33,"value":34},{"type":23,"tag":36,"props":1417,"children":1418},{},[1419],{"type":33,"value":40},{"type":23,"tag":36,"props":1421,"children":1422},{},[1423],{"type":33,"value":45},{"type":23,"tag":36,"props":1425,"children":1426},{},[1427],{"type":33,"value":50},{"type":23,"tag":36,"props":1429,"children":1430},{},[1431],{"type":33,"value":55},{"type":23,"tag":36,"props":1433,"children":1434},{},[1435],{"type":33,"value":60},{"type":23,"tag":36,"props":1437,"children":1438},{},[1439],{"type":33,"value":65},{"type":23,"tag":36,"props":1441,"children":1442},{},[1443],{"type":33,"value":70},{"type":23,"tag":36,"props":1445,"children":1446},{},[1447],{"type":33,"value":75},{"type":23,"tag":36,"props":1449,"children":1450},{},[1451],{"type":33,"value":80},{"type":23,"tag":36,"props":1453,"children":1454},{},[1455],{"type":23,"tag":85,"props":1456,"children":1457},{},[1458],{"type":33,"value":89},{"type":23,"tag":36,"props":1460,"children":1461},{},[1462],{"type":33,"value":94},{"type":23,"tag":36,"props":1464,"children":1465},{},[1466],{"type":23,"tag":85,"props":1467,"children":1468},{},[1469],{"type":33,"value":102},{"type":23,"tag":36,"props":1471,"children":1472},{},[1473],{"type":33,"value":107},{"type":23,"tag":36,"props":1475,"children":1476},{},[1477],{"type":23,"tag":85,"props":1478,"children":1479},{},[1480],{"type":33,"value":115},{"type":23,"tag":24,"props":1482,"children":1483},{},[],{"type":23,"tag":28,"props":1485,"children":1486},{"id":121},[1487],{"type":33,"value":124},{"type":23,"tag":36,"props":1489,"children":1490},{},[1491],{"type":33,"value":129},{"type":23,"tag":36,"props":1493,"children":1494},{},[1495],{"type":33,"value":134},{"type":23,"tag":36,"props":1497,"children":1498},{},[1499],{"type":33,"value":139},{"type":23,"tag":36,"props":1501,"children":1502},{},[1503],{"type":33,"value":144},{"type":23,"tag":36,"props":1505,"children":1506},{},[1507],{"type":33,"value":149},{"type":23,"tag":36,"props":1509,"children":1510},{},[1511],{"type":33,"value":154},{"type":23,"tag":36,"props":1513,"children":1514},{},[1515],{"type":33,"value":159},{"type":23,"tag":36,"props":1517,"children":1518},{},[1519],{"type":33,"value":164},{"type":23,"tag":36,"props":1521,"children":1522},{},[1523],{"type":33,"value":169},{"type":23,"tag":36,"props":1525,"children":1526},{},[1527],{"type":33,"value":174},{"type":23,"tag":24,"props":1529,"children":1530},{},[],{"type":23,"tag":28,"props":1532,"children":1533},{"id":180},[1534],{"type":33,"value":183},{"type":23,"tag":36,"props":1536,"children":1537},{},[1538],{"type":33,"value":188},{"type":23,"tag":36,"props":1540,"children":1541},{},[1542],{"type":33,"value":193},{"type":23,"tag":36,"props":1544,"children":1545},{},[1546],{"type":33,"value":198},{"type":23,"tag":36,"props":1548,"children":1549},{},[1550],{"type":23,"tag":203,"props":1551,"children":1552},{},[1553],{"type":33,"value":207},{"type":23,"tag":36,"props":1555,"children":1556},{},[1557],{"type":33,"value":212},{"type":23,"tag":214,"props":1559,"children":1560},{},[1561,1565,1569,1573,1577],{"type":23,"tag":218,"props":1562,"children":1563},{},[1564],{"type":33,"value":222},{"type":23,"tag":218,"props":1566,"children":1567},{},[1568],{"type":33,"value":227},{"type":23,"tag":218,"props":1570,"children":1571},{},[1572],{"type":33,"value":232},{"type":23,"tag":218,"props":1574,"children":1575},{},[1576],{"type":33,"value":237},{"type":23,"tag":218,"props":1578,"children":1579},{},[1580],{"type":33,"value":242},{"type":23,"tag":36,"props":1582,"children":1583},{},[1584],{"type":33,"value":247},{"type":23,"tag":36,"props":1586,"children":1587},{},[1588],{"type":33,"value":252},{"type":23,"tag":36,"props":1590,"children":1591},{},[1592],{"type":33,"value":257},{"type":23,"tag":24,"props":1594,"children":1595},{},[],{"type":23,"tag":28,"props":1597,"children":1598},{"id":263},[1599],{"type":33,"value":266},{"type":23,"tag":36,"props":1601,"children":1602},{},[1603],{"type":33,"value":271},{"type":23,"tag":36,"props":1605,"children":1606},{},[1607],{"type":33,"value":276},{"type":23,"tag":36,"props":1609,"children":1610},{},[1611],{"type":33,"value":281},{"type":23,"tag":36,"props":1613,"children":1614},{},[1615],{"type":33,"value":286},{"type":23,"tag":36,"props":1617,"children":1618},{},[1619],{"type":33,"value":291},{"type":23,"tag":36,"props":1621,"children":1622},{},[1623],{"type":33,"value":296},{"type":23,"tag":36,"props":1625,"children":1626},{},[1627],{"type":33,"value":301},{"type":23,"tag":36,"props":1629,"children":1630},{},[1631],{"type":33,"value":306},{"type":23,"tag":36,"props":1633,"children":1634},{},[1635],{"type":33,"value":311},{"type":23,"tag":36,"props":1637,"children":1638},{},[1639],{"type":33,"value":316},{"type":23,"tag":36,"props":1641,"children":1642},{},[1643],{"type":33,"value":321},{"type":23,"tag":36,"props":1645,"children":1646},{},[1647],{"type":33,"value":326},{"type":23,"tag":24,"props":1649,"children":1650},{},[],{"type":23,"tag":28,"props":1652,"children":1653},{"id":332},[1654],{"type":33,"value":335},{"type":23,"tag":36,"props":1656,"children":1657},{},[1658],{"type":33,"value":340},{"type":23,"tag":36,"props":1660,"children":1661},{},[1662],{"type":33,"value":345},{"type":23,"tag":36,"props":1664,"children":1665},{},[1666],{"type":33,"value":350},{"type":23,"tag":36,"props":1668,"children":1669},{},[1670],{"type":33,"value":355},{"type":23,"tag":357,"props":1672,"children":1673},{"id":359},[1674],{"type":33,"value":362},{"type":23,"tag":36,"props":1676,"children":1677},{},[1678],{"type":33,"value":367},{"type":23,"tag":214,"props":1680,"children":1681},{},[1682,1686],{"type":23,"tag":218,"props":1683,"children":1684},{},[1685],{"type":33,"value":375},{"type":23,"tag":218,"props":1687,"children":1688},{},[1689],{"type":33,"value":380},{"type":23,"tag":36,"props":1691,"children":1692},{},[1693],{"type":33,"value":385},{"type":23,"tag":214,"props":1695,"children":1696},{},[1697,1701],{"type":23,"tag":218,"props":1698,"children":1699},{},[1700],{"type":33,"value":393},{"type":23,"tag":218,"props":1702,"children":1703},{},[1704],{"type":33,"value":398},{"type":23,"tag":357,"props":1706,"children":1707},{"id":401},[1708],{"type":33,"value":404},{"type":23,"tag":36,"props":1710,"children":1711},{},[1712],{"type":33,"value":367},{"type":23,"tag":214,"props":1714,"children":1715},{},[1716,1720],{"type":23,"tag":218,"props":1717,"children":1718},{},[1719],{"type":33,"value":416},{"type":23,"tag":218,"props":1721,"children":1722},{},[1723],{"type":33,"value":421},{"type":23,"tag":36,"props":1725,"children":1726},{},[1727],{"type":33,"value":426},{"type":23,"tag":214,"props":1729,"children":1730},{},[1731,1735,1739],{"type":23,"tag":218,"props":1732,"children":1733},{},[1734],{"type":33,"value":434},{"type":23,"tag":218,"props":1736,"children":1737},{},[1738],{"type":33,"value":439},{"type":23,"tag":218,"props":1740,"children":1741},{},[1742],{"type":33,"value":444},{"type":23,"tag":357,"props":1744,"children":1745},{"id":447},[1746],{"type":33,"value":450},{"type":23,"tag":36,"props":1748,"children":1749},{},[1750],{"type":33,"value":367},{"type":23,"tag":214,"props":1752,"children":1753},{},[1754,1758],{"type":23,"tag":218,"props":1755,"children":1756},{},[1757],{"type":33,"value":462},{"type":23,"tag":218,"props":1759,"children":1760},{},[1761],{"type":33,"value":467},{"type":23,"tag":36,"props":1763,"children":1764},{},[1765],{"type":33,"value":385},{"type":23,"tag":214,"props":1767,"children":1768},{},[1769,1773,1777],{"type":23,"tag":218,"props":1770,"children":1771},{},[1772],{"type":33,"value":479},{"type":23,"tag":218,"props":1774,"children":1775},{},[1776],{"type":33,"value":484},{"type":23,"tag":218,"props":1778,"children":1779},{},[1780],{"type":33,"value":489},{"type":23,"tag":36,"props":1782,"children":1783},{},[1784],{"type":33,"value":494},{"type":23,"tag":36,"props":1786,"children":1787},{},[1788],{"type":33,"value":499},{"type":23,"tag":24,"props":1790,"children":1791},{},[],{"type":23,"tag":28,"props":1793,"children":1794},{"id":505},[1795],{"type":33,"value":508},{"type":23,"tag":36,"props":1797,"children":1798},{},[1799],{"type":33,"value":513},{"type":23,"tag":36,"props":1801,"children":1802},{},[1803],{"type":33,"value":518},{"type":23,"tag":36,"props":1805,"children":1806},{},[1807],{"type":33,"value":523},{"type":23,"tag":36,"props":1809,"children":1810},{},[1811],{"type":33,"value":528},{"type":23,"tag":36,"props":1813,"children":1814},{},[1815],{"type":33,"value":533},{"type":23,"tag":36,"props":1817,"children":1818},{},[1819],{"type":33,"value":538},{"type":23,"tag":24,"props":1821,"children":1822},{},[],{"type":23,"tag":28,"props":1824,"children":1825},{"id":544},[1826],{"type":33,"value":547},{"type":23,"tag":36,"props":1828,"children":1829},{},[1830],{"type":33,"value":552},{"type":23,"tag":214,"props":1832,"children":1833},{},[1834,1838,1842,1846],{"type":23,"tag":218,"props":1835,"children":1836},{},[1837],{"type":33,"value":560},{"type":23,"tag":218,"props":1839,"children":1840},{},[1841],{"type":33,"value":565},{"type":23,"tag":218,"props":1843,"children":1844},{},[1845],{"type":33,"value":570},{"type":23,"tag":218,"props":1847,"children":1848},{},[1849],{"type":33,"value":575},{"type":23,"tag":36,"props":1851,"children":1852},{},[1853],{"type":33,"value":580},{"type":23,"tag":36,"props":1855,"children":1856},{},[1857],{"type":23,"tag":85,"props":1858,"children":1859},{},[1860],{"type":33,"value":588},{"type":23,"tag":36,"props":1862,"children":1863},{},[1864],{"type":33,"value":593},{"type":23,"tag":36,"props":1866,"children":1867},{},[1868],{"type":33,"value":598},{"type":23,"tag":36,"props":1870,"children":1871},{},[1872],{"type":33,"value":603},{"type":23,"tag":36,"props":1874,"children":1875},{},[1876],{"type":33,"value":608},{"type":23,"tag":36,"props":1878,"children":1879},{},[1880],{"type":33,"value":613},{"type":23,"tag":24,"props":1882,"children":1883},{},[],{"type":23,"tag":28,"props":1885,"children":1886},{"id":619},[1887],{"type":33,"value":622},{"type":23,"tag":36,"props":1889,"children":1890},{},[1891],{"type":33,"value":627},{"type":23,"tag":357,"props":1893,"children":1894},{"id":630},[1895],{"type":33,"value":633},{"type":23,"tag":36,"props":1897,"children":1898},{},[1899],{"type":33,"value":638},{"type":23,"tag":36,"props":1901,"children":1902},{},[1903],{"type":33,"value":643},{"type":23,"tag":36,"props":1905,"children":1906},{},[1907],{"type":33,"value":648},{"type":23,"tag":36,"props":1909,"children":1910},{},[1911],{"type":33,"value":653},{"type":23,"tag":36,"props":1913,"children":1914},{},[1915],{"type":33,"value":658},{"type":23,"tag":36,"props":1917,"children":1918},{},[1919],{"type":33,"value":663},{"type":23,"tag":357,"props":1921,"children":1922},{"id":666},[1923],{"type":33,"value":669},{"type":23,"tag":36,"props":1925,"children":1926},{},[1927],{"type":33,"value":674},{"type":23,"tag":36,"props":1929,"children":1930},{},[1931],{"type":33,"value":679},{"type":23,"tag":357,"props":1933,"children":1934},{"id":682},[1935],{"type":33,"value":685},{"type":23,"tag":36,"props":1937,"children":1938},{},[1939],{"type":33,"value":690},{"type":23,"tag":36,"props":1941,"children":1942},{},[1943],{"type":33,"value":695},{"type":23,"tag":357,"props":1945,"children":1946},{"id":698},[1947],{"type":33,"value":701},{"type":23,"tag":36,"props":1949,"children":1950},{},[1951],{"type":33,"value":706},{"type":23,"tag":36,"props":1953,"children":1954},{},[1955],{"type":33,"value":711},{"type":23,"tag":36,"props":1957,"children":1958},{},[1959],{"type":33,"value":716},{"type":23,"tag":357,"props":1961,"children":1962},{"id":719},[1963],{"type":33,"value":722},{"type":23,"tag":36,"props":1965,"children":1966},{},[1967],{"type":33,"value":727},{"type":23,"tag":36,"props":1969,"children":1970},{},[1971],{"type":33,"value":732},{"type":23,"tag":36,"props":1973,"children":1974},{},[1975],{"type":33,"value":737},{"type":23,"tag":24,"props":1977,"children":1978},{},[],{"type":23,"tag":28,"props":1980,"children":1981},{"id":743},[1982],{"type":33,"value":746},{"type":23,"tag":36,"props":1984,"children":1985},{},[1986],{"type":33,"value":751},{"type":23,"tag":36,"props":1988,"children":1989},{},[1990],{"type":33,"value":756},{"type":23,"tag":36,"props":1992,"children":1993},{},[1994],{"type":33,"value":761},{"type":23,"tag":36,"props":1996,"children":1997},{},[1998],{"type":33,"value":766},{"type":23,"tag":36,"props":2000,"children":2001},{},[2002],{"type":33,"value":771},{"type":23,"tag":36,"props":2004,"children":2005},{},[2006],{"type":33,"value":776},{"type":23,"tag":36,"props":2008,"children":2009},{},[2010],{"type":33,"value":781},{"type":23,"tag":24,"props":2012,"children":2013},{},[],{"type":23,"tag":28,"props":2015,"children":2016},{"id":787},[2017],{"type":33,"value":790},{"type":23,"tag":36,"props":2019,"children":2020},{},[2021],{"type":33,"value":795},{"type":23,"tag":36,"props":2023,"children":2024},{},[2025],{"type":33,"value":800},{"type":23,"tag":36,"props":2027,"children":2028},{},[2029],{"type":23,"tag":85,"props":2030,"children":2031},{},[2032],{"type":33,"value":808},{"type":23,"tag":36,"props":2034,"children":2035},{},[2036],{"type":33,"value":813},{"type":23,"tag":36,"props":2038,"children":2039},{},[2040],{"type":33,"value":818},{"type":23,"tag":36,"props":2042,"children":2043},{},[2044],{"type":33,"value":823},{"type":23,"tag":36,"props":2046,"children":2047},{},[2048],{"type":33,"value":828},{"type":23,"tag":36,"props":2050,"children":2051},{},[2052],{"type":33,"value":833},{"type":23,"tag":36,"props":2054,"children":2055},{},[2056],{"type":33,"value":838},{"type":23,"tag":36,"props":2058,"children":2059},{},[2060],{"type":33,"value":843},{"type":23,"tag":36,"props":2062,"children":2063},{},[2064],{"type":33,"value":848},{"type":23,"tag":36,"props":2066,"children":2067},{},[2068],{"type":33,"value":853},{"type":23,"tag":24,"props":2070,"children":2071},{},[],{"type":23,"tag":36,"props":2073,"children":2074},{},[2075],{"type":23,"tag":203,"props":2076,"children":2077},{},[2078],{"type":33,"value":864},{"title":866,"searchDepth":867,"depth":867,"links":2080},[2081,2082,2083,2084,2085,2090,2091,2092,2099,2100],{"id":30,"depth":867,"text":34},{"id":121,"depth":867,"text":124},{"id":180,"depth":867,"text":183},{"id":263,"depth":867,"text":266},{"id":332,"depth":867,"text":335,"children":2086},[2087,2088,2089],{"id":359,"depth":876,"text":362},{"id":401,"depth":876,"text":404},{"id":447,"depth":876,"text":450},{"id":505,"depth":867,"text":508},{"id":544,"depth":867,"text":547},{"id":619,"depth":867,"text":622,"children":2093},[2094,2095,2096,2097,2098],{"id":630,"depth":876,"text":633},{"id":666,"depth":876,"text":669},{"id":682,"depth":876,"text":685},{"id":698,"depth":876,"text":701},{"id":719,"depth":876,"text":722},{"id":743,"depth":867,"text":746},{"id":787,"depth":867,"text":790},{"_path":2102,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":2103,"description":2104,"slug":2105,"author":11,"authorImage":12,"role":13,"date":14,"category":2106,"image":2107,"seoTitle":2108,"seoDescription":2109,"body":2110,"_type":890,"_id":2776,"_source":892,"_file":2777,"_stem":2778,"_extension":895},"/blog/wcag-2.2","WCAG 2.2 Is Here. Your Focus State Probably Isn’t.","Most accessibility issues are not complex. They are expensive little details nobody noticed until users struggle. WCAG 2.2 turns those details into requirements.","wcag-22-is-here-your-focus-state-probably-isnt","Accessibility","/media/blog/blog_wcag22_focus.webp","WCAG 2.2 Explained: The Accessibility Basics Most Teams Still Miss","WCAG 2.2 focuses on practical accessibility improvements like visible focus states, larger click targets and accessible authentication. Learn what matters and why.",{"type":20,"children":2111,"toc":2766},[2112,2115,2121,2126,2138,2143,2148,2153,2158,2163,2168,2173,2178,2186,2189,2195,2200,2214,2219,2224,2229,2234,2239,2244,2249,2254,2259,2264,2269,2272,2278,2283,2288,2293,2298,2303,2308,2313,2318,2323,2346,2351,2356,2361,2364,2370,2375,2380,2385,2390,2395,2400,2405,2410,2415,2420,2425,2430,2435,2440,2443,2449,2454,2459,2477,2482,2487,2492,2497,2502,2507,2512,2517,2522,2527,2532,2535,2541,2546,2551,2556,2561,2566,2571,2576,2581,2586,2591,2596,2601,2606,2611,2616,2621,2624,2630,2635,2640,2673,2678,2683,2688,2693,2696,2702,2707,2712,2730,2735,2740,2745,2750,2755,2758],{"type":23,"tag":24,"props":2113,"children":2114},{},[],{"type":23,"tag":28,"props":2116,"children":2118},{"id":2117},"wcag-22-is-not-about-accessibility-experts",[2119],{"type":33,"value":2120},"WCAG 2.2 is not about accessibility experts",{"type":23,"tag":36,"props":2122,"children":2123},{},[2124],{"type":33,"value":2125},"It is about everyone else.",{"type":23,"tag":36,"props":2127,"children":2128},{},[2129,2131,2136],{"type":33,"value":2130},"When people hear ",{"type":23,"tag":203,"props":2132,"children":2133},{},[2134],{"type":33,"value":2135},"accessibility",{"type":33,"value":2137},", they often imagine complex regulations, expensive audits and endless checklists. In reality, most websites fail because of surprisingly small things.",{"type":23,"tag":36,"props":2139,"children":2140},{},[2141],{"type":33,"value":2142},"Buttons that are difficult to click.",{"type":23,"tag":36,"props":2144,"children":2145},{},[2146],{"type":33,"value":2147},"Keyboard focus that disappears completely.",{"type":23,"tag":36,"props":2149,"children":2150},{},[2151],{"type":33,"value":2152},"Drag-and-drop interactions that have no alternative.",{"type":23,"tag":36,"props":2154,"children":2155},{},[2156],{"type":33,"value":2157},"Login flows that force users to remember information they shouldn't have to remember.",{"type":23,"tag":36,"props":2159,"children":2160},{},[2161],{"type":33,"value":2162},"None of these problems sound dramatic.",{"type":23,"tag":36,"props":2164,"children":2165},{},[2166],{"type":33,"value":2167},"Until you are the person affected by them.",{"type":23,"tag":36,"props":2169,"children":2170},{},[2171],{"type":33,"value":2172},"WCAG 2.2 was created to address exactly these kinds of issues. Not theoretical edge cases. Real-world barriers that prevent people from using digital products.",{"type":23,"tag":36,"props":2174,"children":2175},{},[2176],{"type":33,"value":2177},"And the uncomfortable truth is:",{"type":23,"tag":36,"props":2179,"children":2180},{},[2181],{"type":23,"tag":85,"props":2182,"children":2183},{},[2184],{"type":33,"value":2185},"Most teams don't have a big accessibility problem. They have hundreds of tiny ones.",{"type":23,"tag":24,"props":2187,"children":2188},{},[],{"type":23,"tag":28,"props":2190,"children":2192},{"id":2191},"the-invisible-focus-problem",[2193],{"type":33,"value":2194},"The invisible focus problem",{"type":23,"tag":36,"props":2196,"children":2197},{},[2198],{"type":33,"value":2199},"Let's start with one of the most common mistakes.",{"type":23,"tag":36,"props":2201,"children":2202},{},[2203,2205,2212],{"type":33,"value":2204},"You open a website and press the ",{"type":23,"tag":2206,"props":2207,"children":2209},"code",{"className":2208},[],[2210],{"type":33,"value":2211},"Tab",{"type":33,"value":2213}," key.",{"type":23,"tag":36,"props":2215,"children":2216},{},[2217],{"type":33,"value":2218},"Suddenly you have no idea where you are.",{"type":23,"tag":36,"props":2220,"children":2221},{},[2222],{"type":33,"value":2223},"Many design systems either remove the browser's default focus style or replace it with something so subtle that nobody can actually see it.",{"type":23,"tag":36,"props":2225,"children":2226},{},[2227],{"type":33,"value":2228},"Designers often do it because the default outline feels \"ugly\".",{"type":23,"tag":36,"props":2230,"children":2231},{},[2232],{"type":33,"value":2233},"Developers often inherit it from component libraries.",{"type":23,"tag":36,"props":2235,"children":2236},{},[2237],{"type":33,"value":2238},"Nobody notices because most people use a mouse.",{"type":23,"tag":36,"props":2240,"children":2241},{},[2242],{"type":33,"value":2243},"WCAG 2.2 notices.",{"type":23,"tag":36,"props":2245,"children":2246},{},[2247],{"type":33,"value":2248},"The new Focus Appearance requirements raise the bar significantly. Keyboard users must be able to clearly identify where they currently are.",{"type":23,"tag":36,"props":2250,"children":2251},{},[2252],{"type":33,"value":2253},"Not somewhere.",{"type":23,"tag":36,"props":2255,"children":2256},{},[2257],{"type":33,"value":2258},"Not maybe.",{"type":23,"tag":36,"props":2260,"children":2261},{},[2262],{"type":33,"value":2263},"Clearly.",{"type":23,"tag":36,"props":2265,"children":2266},{},[2267],{"type":33,"value":2268},"A beautiful interface that becomes unusable without a mouse is not a beautiful interface.",{"type":23,"tag":24,"props":2270,"children":2271},{},[],{"type":23,"tag":28,"props":2273,"children":2275},{"id":2274},"small-targets-create-big-frustrations",[2276],{"type":33,"value":2277},"Small targets create big frustrations",{"type":23,"tag":36,"props":2279,"children":2280},{},[2281],{"type":33,"value":2282},"We've all seen them.",{"type":23,"tag":36,"props":2284,"children":2285},{},[2286],{"type":33,"value":2287},"Tiny icon buttons.",{"type":23,"tag":36,"props":2289,"children":2290},{},[2291],{"type":33,"value":2292},"Minimalistic checkboxes.",{"type":23,"tag":36,"props":2294,"children":2295},{},[2296],{"type":33,"value":2297},"Links squeezed into crowded navigation menus.",{"type":23,"tag":36,"props":2299,"children":2300},{},[2301],{"type":33,"value":2302},"They look clean in Figma.",{"type":23,"tag":36,"props":2304,"children":2305},{},[2306],{"type":33,"value":2307},"They are much less clean when someone tries to tap them on a moving train, with one hand, on a mobile device.",{"type":23,"tag":36,"props":2309,"children":2310},{},[2311],{"type":33,"value":2312},"WCAG 2.2 introduces stronger requirements around target size because accessibility is not only about disability.",{"type":23,"tag":36,"props":2314,"children":2315},{},[2316],{"type":33,"value":2317},"It is also about usability.",{"type":23,"tag":36,"props":2319,"children":2320},{},[2321],{"type":33,"value":2322},"The same improvements that help someone with limited motor control help:",{"type":23,"tag":214,"props":2324,"children":2325},{},[2326,2331,2336,2341],{"type":23,"tag":218,"props":2327,"children":2328},{},[2329],{"type":33,"value":2330},"Parents carrying a child",{"type":23,"tag":218,"props":2332,"children":2333},{},[2334],{"type":33,"value":2335},"People using older devices",{"type":23,"tag":218,"props":2337,"children":2338},{},[2339],{"type":33,"value":2340},"Users on crowded public transport",{"type":23,"tag":218,"props":2342,"children":2343},{},[2344],{"type":33,"value":2345},"Literally anyone with large fingers",{"type":23,"tag":36,"props":2347,"children":2348},{},[2349],{"type":33,"value":2350},"Accessibility improvements often improve the experience for everyone.",{"type":23,"tag":36,"props":2352,"children":2353},{},[2354],{"type":33,"value":2355},"That's why we rarely think of accessibility as a separate feature.",{"type":23,"tag":36,"props":2357,"children":2358},{},[2359],{"type":33,"value":2360},"It's simply good product design.",{"type":23,"tag":24,"props":2362,"children":2363},{},[],{"type":23,"tag":28,"props":2365,"children":2367},{"id":2366},"drag-and-drop-is-not-enough-anymore",[2368],{"type":33,"value":2369},"Drag and drop is not enough anymore",{"type":23,"tag":36,"props":2371,"children":2372},{},[2373],{"type":33,"value":2374},"Many modern products love drag and drop.",{"type":23,"tag":36,"props":2376,"children":2377},{},[2378],{"type":33,"value":2379},"Kanban boards.",{"type":23,"tag":36,"props":2381,"children":2382},{},[2383],{"type":33,"value":2384},"Calendar tools.",{"type":23,"tag":36,"props":2386,"children":2387},{},[2388],{"type":33,"value":2389},"Dashboard builders.",{"type":23,"tag":36,"props":2391,"children":2392},{},[2393],{"type":33,"value":2394},"File uploads.",{"type":23,"tag":36,"props":2396,"children":2397},{},[2398],{"type":33,"value":2399},"The interaction feels intuitive.",{"type":23,"tag":36,"props":2401,"children":2402},{},[2403],{"type":33,"value":2404},"Unless you cannot use it.",{"type":23,"tag":36,"props":2406,"children":2407},{},[2408],{"type":33,"value":2409},"WCAG 2.2 strengthens requirements around dragging movements. If an action requires dragging, there should be another way to achieve the same result.",{"type":23,"tag":36,"props":2411,"children":2412},{},[2413],{"type":33,"value":2414},"Why?",{"type":23,"tag":36,"props":2416,"children":2417},{},[2418],{"type":33,"value":2419},"Because not everyone can perform precise pointer movements.",{"type":23,"tag":36,"props":2421,"children":2422},{},[2423],{"type":33,"value":2424},"The goal isn't to remove advanced interactions.",{"type":23,"tag":36,"props":2426,"children":2427},{},[2428],{"type":33,"value":2429},"The goal is to ensure they are not the only option.",{"type":23,"tag":36,"props":2431,"children":2432},{},[2433],{"type":33,"value":2434},"Good products provide flexibility.",{"type":23,"tag":36,"props":2436,"children":2437},{},[2438],{"type":33,"value":2439},"Bad products provide obstacles.",{"type":23,"tag":24,"props":2441,"children":2442},{},[],{"type":23,"tag":28,"props":2444,"children":2446},{"id":2445},"the-password-problem-nobody-asked-for",[2447],{"type":33,"value":2448},"The password problem nobody asked for",{"type":23,"tag":36,"props":2450,"children":2451},{},[2452],{"type":33,"value":2453},"One of the most practical additions in WCAG 2.2 focuses on authentication.",{"type":23,"tag":36,"props":2455,"children":2456},{},[2457],{"type":33,"value":2458},"Many systems still create unnecessary friction:",{"type":23,"tag":214,"props":2460,"children":2461},{},[2462,2467,2472],{"type":23,"tag":218,"props":2463,"children":2464},{},[2465],{"type":33,"value":2466},"Disabling password managers",{"type":23,"tag":218,"props":2468,"children":2469},{},[2470],{"type":33,"value":2471},"Forcing users to re-enter information repeatedly",{"type":23,"tag":218,"props":2473,"children":2474},{},[2475],{"type":33,"value":2476},"Using memory tests disguised as security",{"type":23,"tag":36,"props":2478,"children":2479},{},[2480],{"type":33,"value":2481},"We've all experienced it.",{"type":23,"tag":36,"props":2483,"children":2484},{},[2485],{"type":33,"value":2486},"The six-digit code.",{"type":23,"tag":36,"props":2488,"children":2489},{},[2490],{"type":33,"value":2491},"The secret phrase.",{"type":23,"tag":36,"props":2493,"children":2494},{},[2495],{"type":33,"value":2496},"The \"please remember exactly what you entered three screens ago.\"",{"type":23,"tag":36,"props":2498,"children":2499},{},[2500],{"type":33,"value":2501},"WCAG 2.2 pushes teams toward authentication flows that work with users instead of against them.",{"type":23,"tag":36,"props":2503,"children":2504},{},[2505],{"type":33,"value":2506},"Password managers.",{"type":23,"tag":36,"props":2508,"children":2509},{},[2510],{"type":33,"value":2511},"Passkeys.",{"type":23,"tag":36,"props":2513,"children":2514},{},[2515],{"type":33,"value":2516},"Autofill.",{"type":23,"tag":36,"props":2518,"children":2519},{},[2520],{"type":33,"value":2521},"Modern authentication methods.",{"type":23,"tag":36,"props":2523,"children":2524},{},[2525],{"type":33,"value":2526},"Security and accessibility are not enemies.",{"type":23,"tag":36,"props":2528,"children":2529},{},[2530],{"type":33,"value":2531},"They should be working together.",{"type":23,"tag":24,"props":2533,"children":2534},{},[],{"type":23,"tag":28,"props":2536,"children":2538},{"id":2537},"accessibility-is-a-product-problem",[2539],{"type":33,"value":2540},"Accessibility is a product problem",{"type":23,"tag":36,"props":2542,"children":2543},{},[2544],{"type":33,"value":2545},"This is where many organisations still get stuck.",{"type":23,"tag":36,"props":2547,"children":2548},{},[2549],{"type":33,"value":2550},"Accessibility often becomes someone's side project.",{"type":23,"tag":36,"props":2552,"children":2553},{},[2554],{"type":33,"value":2555},"A compliance task.",{"type":23,"tag":36,"props":2557,"children":2558},{},[2559],{"type":33,"value":2560},"A checkbox.",{"type":23,"tag":36,"props":2562,"children":2563},{},[2564],{"type":33,"value":2565},"A future sprint.",{"type":23,"tag":36,"props":2567,"children":2568},{},[2569],{"type":33,"value":2570},"A problem for later.",{"type":23,"tag":36,"props":2572,"children":2573},{},[2574],{"type":33,"value":2575},"But accessibility isn't a legal requirement that happens to affect products.",{"type":23,"tag":36,"props":2577,"children":2578},{},[2579],{"type":33,"value":2580},"It's a product requirement.",{"type":23,"tag":36,"props":2582,"children":2583},{},[2584],{"type":33,"value":2585},"Because every accessibility issue ultimately affects a user trying to achieve a goal.",{"type":23,"tag":36,"props":2587,"children":2588},{},[2589],{"type":33,"value":2590},"Someone trying to buy.",{"type":23,"tag":36,"props":2592,"children":2593},{},[2594],{"type":33,"value":2595},"Someone trying to learn.",{"type":23,"tag":36,"props":2597,"children":2598},{},[2599],{"type":33,"value":2600},"Someone trying to book an appointment.",{"type":23,"tag":36,"props":2602,"children":2603},{},[2604],{"type":33,"value":2605},"Someone trying to complete a task.",{"type":23,"tag":36,"props":2607,"children":2608},{},[2609],{"type":33,"value":2610},"Accessibility is not about standards.",{"type":23,"tag":36,"props":2612,"children":2613},{},[2614],{"type":33,"value":2615},"Accessibility is about people.",{"type":23,"tag":36,"props":2617,"children":2618},{},[2619],{"type":33,"value":2620},"The standards simply help us remember that.",{"type":23,"tag":24,"props":2622,"children":2623},{},[],{"type":23,"tag":28,"props":2625,"children":2627},{"id":2626},"what-we-see-most-often",[2628],{"type":33,"value":2629},"What we see most often",{"type":23,"tag":36,"props":2631,"children":2632},{},[2633],{"type":33,"value":2634},"When we review websites and applications, we rarely discover huge catastrophic accessibility failures.",{"type":23,"tag":36,"props":2636,"children":2637},{},[2638],{"type":33,"value":2639},"Instead, we find patterns:",{"type":23,"tag":214,"props":2641,"children":2642},{},[2643,2648,2653,2658,2663,2668],{"type":23,"tag":218,"props":2644,"children":2645},{},[2646],{"type":33,"value":2647},"Missing or invisible focus states",{"type":23,"tag":218,"props":2649,"children":2650},{},[2651],{"type":33,"value":2652},"Insufficient colour contrast",{"type":23,"tag":218,"props":2654,"children":2655},{},[2656],{"type":33,"value":2657},"Tiny interactive elements",{"type":23,"tag":218,"props":2659,"children":2660},{},[2661],{"type":33,"value":2662},"Missing form labels",{"type":23,"tag":218,"props":2664,"children":2665},{},[2666],{"type":33,"value":2667},"Components that only work with a mouse",{"type":23,"tag":218,"props":2669,"children":2670},{},[2671],{"type":33,"value":2672},"Authentication flows that create unnecessary barriers",{"type":23,"tag":36,"props":2674,"children":2675},{},[2676],{"type":33,"value":2677},"The good news?",{"type":23,"tag":36,"props":2679,"children":2680},{},[2681],{"type":33,"value":2682},"Most of these issues are surprisingly easy to fix.",{"type":23,"tag":36,"props":2684,"children":2685},{},[2686],{"type":33,"value":2687},"The bad news?",{"type":23,"tag":36,"props":2689,"children":2690},{},[2691],{"type":33,"value":2692},"Most teams never look for them.",{"type":23,"tag":24,"props":2694,"children":2695},{},[],{"type":23,"tag":28,"props":2697,"children":2699},{"id":2698},"start-small-start-now",[2700],{"type":33,"value":2701},"Start small. Start now.",{"type":23,"tag":36,"props":2703,"children":2704},{},[2705],{"type":33,"value":2706},"You don't need a six-month accessibility transformation programme.",{"type":23,"tag":36,"props":2708,"children":2709},{},[2710],{"type":33,"value":2711},"Start with three questions:",{"type":23,"tag":1257,"props":2713,"children":2714},{},[2715,2720,2725],{"type":23,"tag":218,"props":2716,"children":2717},{},[2718],{"type":33,"value":2719},"Can every interactive element be reached and used with a keyboard?",{"type":23,"tag":218,"props":2721,"children":2722},{},[2723],{"type":33,"value":2724},"Can users clearly see where keyboard focus currently is?",{"type":23,"tag":218,"props":2726,"children":2727},{},[2728],{"type":33,"value":2729},"Can all important actions be completed without dragging, guessing or memorising information?",{"type":23,"tag":36,"props":2731,"children":2732},{},[2733],{"type":33,"value":2734},"If the answer to any of those questions is \"not sure\", you already know where to begin.",{"type":23,"tag":36,"props":2736,"children":2737},{},[2738],{"type":33,"value":2739},"Accessibility does not happen because a company writes it into a strategy deck.",{"type":23,"tag":36,"props":2741,"children":2742},{},[2743],{"type":33,"value":2744},"Accessibility happens because teams care enough to notice the details.",{"type":23,"tag":36,"props":2746,"children":2747},{},[2748],{"type":33,"value":2749},"And WCAG 2.2 is mostly about details.",{"type":23,"tag":36,"props":2751,"children":2752},{},[2753],{"type":33,"value":2754},"The kind that users remember long after they forget your feature list.",{"type":23,"tag":24,"props":2756,"children":2757},{},[],{"type":23,"tag":36,"props":2759,"children":2760},{},[2761],{"type":23,"tag":203,"props":2762,"children":2763},{},[2764],{"type":33,"value":2765},"At BitBitHooray, we believe accessibility is not a compliance exercise. It's part of building products that respect people's time, abilities and circumstances. Better accessibility usually leads to better products. And better products create better businesses.",{"title":866,"searchDepth":867,"depth":867,"links":2767},[2768,2769,2770,2771,2772,2773,2774,2775],{"id":2117,"depth":867,"text":2120},{"id":2191,"depth":867,"text":2194},{"id":2274,"depth":867,"text":2277},{"id":2366,"depth":867,"text":2369},{"id":2445,"depth":867,"text":2448},{"id":2537,"depth":867,"text":2540},{"id":2626,"depth":867,"text":2629},{"id":2698,"depth":867,"text":2701},"content:en:blog:wcag-2.2.md","en/blog/wcag-2.2.md","en/blog/wcag-2.2",{"_path":2780,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":2781,"description":2782,"slug":2783,"author":11,"authorImage":12,"role":2784,"date":2785,"category":15,"image":2786,"featured":910,"seoTitle":2787,"seoDescription":2782,"body":2788,"_type":890,"_id":3240,"_source":892,"_file":3241,"_stem":3242,"_extension":895},"/blog/ai-agents-revolution-2026","AI Agents in 2026: Revolution or Overhyped Trend?","Breaking down the reality of autonomous AI agents, what actually works today, and what is still science fiction.","ai-agents-revolution-2026","CPO / CXO","2026-02-04","blog_aiAgents2026.webp","AI Agents in 2026: Revolution or Overhyped Trend? | BitBitHooray Blog",{"type":20,"children":2789,"toc":3221},[2790,2796,2801,2806,2818,2824,2829,2835,2878,2884,2889,2907,2913,2918,2924,2929,2935,2940,2958,2963,2969,2974,2992,2998,3003,3021,3026,3032,3037,3043,3086,3092,3097,3102,3125,3134,3140,3145,3163,3168,3186,3191,3196,3201,3206,3211],{"type":23,"tag":28,"props":2791,"children":2793},{"id":2792},"the-promise-vs-the-reality",[2794],{"type":33,"value":2795},"The Promise vs. The Reality",{"type":23,"tag":36,"props":2797,"children":2798},{},[2799],{"type":33,"value":2800},"We're in the midst of an AI agent hype cycle that makes the blockchain craze look like a sleepy kitten. Every tech conference, every LinkedIn feed, every startup pitch deck mentions \"autonomous AI agents\" as if they're already running our businesses while we sip margaritas on a beach.",{"type":23,"tag":36,"props":2802,"children":2803},{},[2804],{"type":33,"value":2805},"But here's the uncomfortable truth: most \"AI agents\" today are just glorified chatbots with fancy marketing. Sorry, not sorry. 🦖",{"type":23,"tag":2807,"props":2808,"children":2810},"h4",{"id":2809},"an-ai-agent-that-cant-reliably-book-a-meeting-isnt-an-agent-its-a-digital-intern-that-needs-its-own-intern",[2811,2816],{"type":23,"tag":85,"props":2812,"children":2813},{},[2814],{"type":33,"value":2815},"\"An AI agent that can't reliably book a meeting isn't an agent – it's a digital intern that needs its own intern.\"",{"type":33,"value":2817},"**",{"type":23,"tag":28,"props":2819,"children":2821},{"id":2820},"what-actually-works-today",[2822],{"type":33,"value":2823},"What Actually Works Today",{"type":23,"tag":36,"props":2825,"children":2826},{},[2827],{"type":33,"value":2828},"Let's separate the wheat from the chaff. Here's what AI agents can actually do reliably in 2026:",{"type":23,"tag":357,"props":2830,"children":2832},{"id":2831},"_1-narrow-well-defined-tasks",[2833],{"type":33,"value":2834},"1. Narrow, Well-Defined Tasks",{"type":23,"tag":214,"props":2836,"children":2837},{},[2838,2848,2858,2868],{"type":23,"tag":218,"props":2839,"children":2840},{},[2841,2846],{"type":23,"tag":85,"props":2842,"children":2843},{},[2844],{"type":33,"value":2845},"Code review automation:",{"type":33,"value":2847}," AI can catch common bugs, style violations, and security issues",{"type":23,"tag":218,"props":2849,"children":2850},{},[2851,2856],{"type":23,"tag":85,"props":2852,"children":2853},{},[2854],{"type":33,"value":2855},"Content moderation:",{"type":33,"value":2857}," Flagging inappropriate content with 90%+ accuracy",{"type":23,"tag":218,"props":2859,"children":2860},{},[2861,2866],{"type":23,"tag":85,"props":2862,"children":2863},{},[2864],{"type":33,"value":2865},"Customer support triage:",{"type":33,"value":2867}," Routing tickets to the right department",{"type":23,"tag":218,"props":2869,"children":2870},{},[2871,2876],{"type":23,"tag":85,"props":2872,"children":2873},{},[2874],{"type":33,"value":2875},"Data extraction:",{"type":33,"value":2877}," Pulling structured data from unstructured sources",{"type":23,"tag":357,"props":2879,"children":2881},{"id":2880},"_2-augmentation-not-replacement",[2882],{"type":33,"value":2883},"2. Augmentation, Not Replacement",{"type":23,"tag":36,"props":2885,"children":2886},{},[2887],{"type":33,"value":2888},"The real value isn't in replacing humans – it's in making humans 10x more productive. Think Copilot, not autopilot. Like a cat that shows you where the mouse is – but you still have to catch it. 🐱",{"type":23,"tag":214,"props":2890,"children":2891},{},[2892,2897,2902],{"type":23,"tag":218,"props":2893,"children":2894},{},[2895],{"type":33,"value":2896},"Developers using AI pair programming are shipping faster",{"type":23,"tag":218,"props":2898,"children":2899},{},[2900],{"type":33,"value":2901},"Designers using AI for rapid prototyping iterate more",{"type":23,"tag":218,"props":2903,"children":2904},{},[2905],{"type":33,"value":2906},"Analysts using AI for data exploration find insights quicker",{"type":23,"tag":357,"props":2908,"children":2910},{"id":2909},"_3-supervised-workflows",[2911],{"type":33,"value":2912},"3. Supervised Workflows",{"type":23,"tag":36,"props":2914,"children":2915},{},[2916],{"type":33,"value":2917},"Agents work best when there's a human in the loop checking critical decisions. Full autonomy? That's still 3-5 years away for anything beyond trivial tasks.",{"type":23,"tag":28,"props":2919,"children":2921},{"id":2920},"what-doesnt-work-yet",[2922],{"type":33,"value":2923},"What Doesn't Work (Yet)",{"type":23,"tag":36,"props":2925,"children":2926},{},[2927],{"type":33,"value":2928},"Here's where the hype machine oversells reality:",{"type":23,"tag":357,"props":2930,"children":2932},{"id":2931},"complex-multi-step-tasks",[2933],{"type":33,"value":2934},"Complex Multi-Step Tasks",{"type":23,"tag":36,"props":2936,"children":2937},{},[2938],{"type":33,"value":2939},"Try asking an AI agent to:",{"type":23,"tag":214,"props":2941,"children":2942},{},[2943,2948,2953],{"type":23,"tag":218,"props":2944,"children":2945},{},[2946],{"type":33,"value":2947},"Plan a product launch with stakeholder coordination",{"type":23,"tag":218,"props":2949,"children":2950},{},[2951],{"type":33,"value":2952},"Refactor a legacy codebase without breaking things",{"type":23,"tag":218,"props":2954,"children":2955},{},[2956],{"type":33,"value":2957},"Handle customer complaints that require empathy and judgment",{"type":23,"tag":36,"props":2959,"children":2960},{},[2961],{"type":33,"value":2962},"The failure rate is still too high for production use without heavy supervision.",{"type":23,"tag":357,"props":2964,"children":2966},{"id":2965},"long-term-context-memory",[2967],{"type":33,"value":2968},"Long-Term Context & Memory",{"type":23,"tag":36,"props":2970,"children":2971},{},[2972],{"type":33,"value":2973},"Despite promises of \"infinite context windows,\" AI agents still struggle with:",{"type":23,"tag":214,"props":2975,"children":2976},{},[2977,2982,2987],{"type":23,"tag":218,"props":2978,"children":2979},{},[2980],{"type":33,"value":2981},"Maintaining coherent context over days/weeks",{"type":23,"tag":218,"props":2983,"children":2984},{},[2985],{"type":33,"value":2986},"Learning from past mistakes without retraining",{"type":23,"tag":218,"props":2988,"children":2989},{},[2990],{"type":33,"value":2991},"Understanding nuanced company culture and politics",{"type":23,"tag":357,"props":2993,"children":2995},{"id":2994},"reliability-trust",[2996],{"type":33,"value":2997},"Reliability & Trust",{"type":23,"tag":36,"props":2999,"children":3000},{},[3001],{"type":33,"value":3002},"Would you let an AI agent:",{"type":23,"tag":214,"props":3004,"children":3005},{},[3006,3011,3016],{"type":23,"tag":218,"props":3007,"children":3008},{},[3009],{"type":33,"value":3010},"Negotiate a contract?",{"type":23,"tag":218,"props":3012,"children":3013},{},[3014],{"type":33,"value":3015},"Fire someone?",{"type":23,"tag":218,"props":3017,"children":3018},{},[3019],{"type":33,"value":3020},"Make financial decisions?",{"type":23,"tag":36,"props":3022,"children":3023},{},[3024],{"type":33,"value":3025},"If the answer is no, we're not in the \"agent revolution\" yet. We're in the \"agent experimentation\" phase.",{"type":23,"tag":28,"props":3027,"children":3029},{"id":3028},"the-real-business-impact",[3030],{"type":33,"value":3031},"The Real Business Impact",{"type":23,"tag":36,"props":3033,"children":3034},{},[3035],{"type":33,"value":3036},"So should you invest in AI agents? Absolutely – but with realistic expectations.",{"type":23,"tag":357,"props":3038,"children":3040},{"id":3039},"what-we-recommend-to-clients",[3041],{"type":33,"value":3042},"What We Recommend to Clients",{"type":23,"tag":1257,"props":3044,"children":3045},{},[3046,3056,3066,3076],{"type":23,"tag":218,"props":3047,"children":3048},{},[3049,3054],{"type":23,"tag":85,"props":3050,"children":3051},{},[3052],{"type":33,"value":3053},"Start with high-volume, low-risk tasks:",{"type":33,"value":3055}," Customer support FAQs, data entry, code formatting",{"type":23,"tag":218,"props":3057,"children":3058},{},[3059,3064],{"type":23,"tag":85,"props":3060,"children":3061},{},[3062],{"type":33,"value":3063},"Build robust guardrails:",{"type":33,"value":3065}," Human review checkpoints, rollback mechanisms, audit trails",{"type":23,"tag":218,"props":3067,"children":3068},{},[3069,3074],{"type":23,"tag":85,"props":3070,"children":3071},{},[3072],{"type":33,"value":3073},"Measure everything:",{"type":33,"value":3075}," Error rates, time saved, quality metrics, user satisfaction",{"type":23,"tag":218,"props":3077,"children":3078},{},[3079,3084],{"type":23,"tag":85,"props":3080,"children":3081},{},[3082],{"type":33,"value":3083},"Invest in training:",{"type":33,"value":3085}," Your team needs to understand how to work WITH agents, not just deploy them",{"type":23,"tag":28,"props":3087,"children":3089},{"id":3088},"the-2026-reality-check",[3090],{"type":33,"value":3091},"The 2026 Reality Check",{"type":23,"tag":36,"props":3093,"children":3094},{},[3095],{"type":33,"value":3096},"AI agents are powerful tools that can dramatically improve productivity – when used correctly. But they're not magic, and they won't replace your team.",{"type":23,"tag":36,"props":3098,"children":3099},{},[3100],{"type":33,"value":3101},"The companies winning with AI aren't the ones trying to automate everything. They're the ones that:",{"type":23,"tag":214,"props":3103,"children":3104},{},[3105,3110,3115,3120],{"type":23,"tag":218,"props":3106,"children":3107},{},[3108],{"type":33,"value":3109},"Identify specific pain points where AI adds value",{"type":23,"tag":218,"props":3111,"children":3112},{},[3113],{"type":33,"value":3114},"Integrate agents into existing workflows thoughtfully",{"type":23,"tag":218,"props":3116,"children":3117},{},[3118],{"type":33,"value":3119},"Keep humans in control of critical decisions",{"type":23,"tag":218,"props":3121,"children":3122},{},[3123],{"type":33,"value":3124},"Iterate based on real-world results, not hype",{"type":23,"tag":2807,"props":3126,"children":3128},{"id":3127},"the-future-of-work-isnt-humans-vs-ai-its-humans-ai-vs-companies-that-ignore-ai-entirely",[3129],{"type":23,"tag":85,"props":3130,"children":3131},{},[3132],{"type":33,"value":3133},"\"The future of work isn't humans vs. AI. It's humans + AI vs. companies that ignore AI entirely.\"",{"type":23,"tag":28,"props":3135,"children":3137},{"id":3136},"whats-next",[3138],{"type":33,"value":3139},"What's Next?",{"type":23,"tag":36,"props":3141,"children":3142},{},[3143],{"type":33,"value":3144},"We're working on AI agent implementations for clients right now. The results are promising when expectations are realistic:",{"type":23,"tag":214,"props":3146,"children":3147},{},[3148,3153,3158],{"type":23,"tag":218,"props":3149,"children":3150},{},[3151],{"type":33,"value":3152},"40% reduction in support ticket response time",{"type":23,"tag":218,"props":3154,"children":3155},{},[3156],{"type":33,"value":3157},"60% faster code review cycles",{"type":23,"tag":218,"props":3159,"children":3160},{},[3161],{"type":33,"value":3162},"90% automation of data entry tasks",{"type":23,"tag":36,"props":3164,"children":3165},{},[3166],{"type":33,"value":3167},"But we're also seeing failures:",{"type":23,"tag":214,"props":3169,"children":3170},{},[3171,3176,3181],{"type":23,"tag":218,"props":3172,"children":3173},{},[3174],{"type":33,"value":3175},"Agents hallucinating incorrect information to customers",{"type":23,"tag":218,"props":3177,"children":3178},{},[3179],{"type":33,"value":3180},"Workflows breaking when edge cases appear",{"type":23,"tag":218,"props":3182,"children":3183},{},[3184],{"type":33,"value":3185},"Teams over-relying on AI without building proper safeguards",{"type":23,"tag":36,"props":3187,"children":3188},{},[3189],{"type":33,"value":3190},"The key is knowing when to use AI, when to augment with AI, and when to keep humans in charge.",{"type":23,"tag":28,"props":3192,"children":3193},{"id":1361},[3194],{"type":33,"value":3195},"Our Take",{"type":23,"tag":36,"props":3197,"children":3198},{},[3199],{"type":33,"value":3200},"AI agents will transform how we work – but not overnight, and not by replacing everyone. The transformation will be gradual, task-by-task, workflow-by-workflow.",{"type":23,"tag":36,"props":3202,"children":3203},{},[3204],{"type":33,"value":3205},"If you're building AI agents, focus on reliability over capability. A narrow agent that works 99% of the time beats a broad agent that works 70% of the time.",{"type":23,"tag":36,"props":3207,"children":3208},{},[3209],{"type":33,"value":3210},"And if you're evaluating AI agent vendors? Ask for error rates, not feature lists. Ask for case studies, not promises. Ask what happens when things go wrong, not just when they go right.",{"type":23,"tag":36,"props":3212,"children":3213},{},[3214,3219],{"type":23,"tag":85,"props":3215,"children":3216},{},[3217],{"type":33,"value":3218},"The AI agent revolution is coming. But in 2026, we're still in the early innings. Or as our office dinos would say: we just hatched from the egg.",{"type":33,"value":3220}," 🥚🦕",{"title":866,"searchDepth":867,"depth":867,"links":3222},[3223,3224,3229,3234,3237,3238,3239],{"id":2792,"depth":867,"text":2795},{"id":2820,"depth":867,"text":2823,"children":3225},[3226,3227,3228],{"id":2831,"depth":876,"text":2834},{"id":2880,"depth":876,"text":2883},{"id":2909,"depth":876,"text":2912},{"id":2920,"depth":867,"text":2923,"children":3230},[3231,3232,3233],{"id":2931,"depth":876,"text":2934},{"id":2965,"depth":876,"text":2968},{"id":2994,"depth":876,"text":2997},{"id":3028,"depth":867,"text":3031,"children":3235},[3236],{"id":3039,"depth":876,"text":3042},{"id":3088,"depth":867,"text":3091},{"id":3136,"depth":867,"text":3139},{"id":1361,"depth":867,"text":3195},"content:en:blog:ai-agents-revolution-2026.md","en/blog/ai-agents-revolution-2026.md","en/blog/ai-agents-revolution-2026",{"_path":3244,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":3245,"description":3246,"slug":3247,"author":11,"authorImage":12,"role":2784,"date":3248,"category":3249,"image":3250,"seoTitle":3251,"seoDescription":3252,"body":3253,"_type":890,"_id":4102,"_source":892,"_file":4103,"_stem":4104,"_extension":895},"/blog/nuxt-4-what-it-means-for-your-project","Nuxt 4 Is Coming: What It Means for Your Existing Projects","A practical guide to understanding Nuxt 4 breaking changes, migration strategies, and whether you should upgrade now or wait.","nuxt-4-what-it-means-for-your-project","2026-02-03","Development","blog_nuxt4.webp","Nuxt 4 Migration Guide: Breaking Changes & Upgrade Strategy","Complete guide to Nuxt 4 breaking changes, migration strategies, and performance gains. Learn when to upgrade and how to plan your migration.",{"type":20,"children":3254,"toc":4074},[3255,3261,3273,3278,3288,3294,3299,3305,3310,3338,3344,3349,3376,3382,3387,3426,3432,3437,3476,3482,3487,3514,3520,3526,3554,3560,3588,3594,3599,3605,3648,3654,3707,3713,3756,3762,3768,3773,3791,3801,3807,3812,3830,3839,3845,3850,3868,3877,3883,3888,3931,3941,3947,3952,3995,4001,4006,4039,4044,4050,4055,4060,4069],{"type":23,"tag":28,"props":3256,"children":3258},{"id":3257},"the-framework-upgrade-dilemma",[3259],{"type":33,"value":3260},"The Framework Upgrade Dilemma",{"type":23,"tag":36,"props":3262,"children":3263},{},[3264,3266,3271],{"type":33,"value":3265},"Every developer knows the pain: A major framework version drops. You're excited about the new features. Then you read the migration guide and realize it's going to be a week of work minimum. ",{"type":23,"tag":203,"props":3267,"children":3268},{},[3269],{"type":33,"value":3270},"sips coffee nervously",{"type":33,"value":3272}," ☕",{"type":23,"tag":36,"props":3274,"children":3275},{},[3276],{"type":33,"value":3277},"Nuxt 4 is no different. It brings massive improvements – but also breaking changes that will affect almost every project.",{"type":23,"tag":2807,"props":3279,"children":3281},{"id":3280},"upgrading-frameworks-is-like-renovating-a-house-while-people-are-living-in-it-possible-but-requires-planning-and-strong-nerves",[3282,3287],{"type":23,"tag":85,"props":3283,"children":3284},{},[3285],{"type":33,"value":3286},"\"Upgrading frameworks is like renovating a house while people are living in it. Possible, but requires planning – and strong nerves.\"",{"type":33,"value":2817},{"type":23,"tag":28,"props":3289,"children":3291},{"id":3290},"whats-actually-changing-in-nuxt-4",[3292],{"type":33,"value":3293},"What's Actually Changing in Nuxt 4",{"type":23,"tag":36,"props":3295,"children":3296},{},[3297],{"type":33,"value":3298},"Let's cut through the marketing and focus on what matters to your codebase:",{"type":23,"tag":357,"props":3300,"children":3302},{"id":3301},"_1-vue-35-requirement",[3303],{"type":33,"value":3304},"1. Vue 3.5+ Requirement",{"type":23,"tag":36,"props":3306,"children":3307},{},[3308],{"type":33,"value":3309},"Nuxt 4 requires Vue 3.5 or later. This means:",{"type":23,"tag":214,"props":3311,"children":3312},{},[3313,3318,3323,3328],{"type":23,"tag":218,"props":3314,"children":3315},{},[3316],{"type":33,"value":3317},"New Reactivity System improvements",{"type":23,"tag":218,"props":3319,"children":3320},{},[3321],{"type":33,"value":3322},"Better TypeScript support",{"type":23,"tag":218,"props":3324,"children":3325},{},[3326],{"type":33,"value":3327},"Performance gains (especially for large apps)",{"type":23,"tag":218,"props":3329,"children":3330},{},[3331,3336],{"type":23,"tag":85,"props":3332,"children":3333},{},[3334],{"type":33,"value":3335},"But:",{"type":33,"value":3337}," Some older composition API patterns may break",{"type":23,"tag":357,"props":3339,"children":3341},{"id":3340},"_2-vite-6-as-default",[3342],{"type":33,"value":3343},"2. Vite 6 as Default",{"type":23,"tag":36,"props":3345,"children":3346},{},[3347],{"type":33,"value":3348},"Goodbye Webpack (mostly). Vite 6 is now the recommended bundler:",{"type":23,"tag":214,"props":3350,"children":3351},{},[3352,3357,3362,3367],{"type":23,"tag":218,"props":3353,"children":3354},{},[3355],{"type":33,"value":3356},"Faster dev server startup (50-80% faster)",{"type":23,"tag":218,"props":3358,"children":3359},{},[3360],{"type":33,"value":3361},"Better HMR (Hot Module Replacement)",{"type":23,"tag":218,"props":3363,"children":3364},{},[3365],{"type":33,"value":3366},"Improved build times",{"type":23,"tag":218,"props":3368,"children":3369},{},[3370,3374],{"type":23,"tag":85,"props":3371,"children":3372},{},[3373],{"type":33,"value":3335},{"type":33,"value":3375}," Webpack-specific plugins need alternatives",{"type":23,"tag":357,"props":3377,"children":3379},{"id":3378},"_3-breaking-changes-in-auto-imports",[3380],{"type":33,"value":3381},"3. Breaking Changes in Auto-Imports",{"type":23,"tag":36,"props":3383,"children":3384},{},[3385],{"type":33,"value":3386},"The magic auto-import system got stricter. The magic now has a price. 🧙‍♂️",{"type":23,"tag":214,"props":3388,"children":3389},{},[3390,3411,3416],{"type":23,"tag":218,"props":3391,"children":3392},{},[3393,3395,3401,3403,3409],{"type":33,"value":3394},"No more implicit ",{"type":23,"tag":2206,"props":3396,"children":3398},{"className":3397},[],[3399],{"type":33,"value":3400},"ref",{"type":33,"value":3402}," and ",{"type":23,"tag":2206,"props":3404,"children":3406},{"className":3405},[],[3407],{"type":33,"value":3408},"computed",{"type":33,"value":3410}," imports",{"type":23,"tag":218,"props":3412,"children":3413},{},[3414],{"type":33,"value":3415},"Explicit imports required for clarity",{"type":23,"tag":218,"props":3417,"children":3418},{},[3419,3424],{"type":23,"tag":85,"props":3420,"children":3421},{},[3422],{"type":33,"value":3423},"Impact:",{"type":33,"value":3425}," Hundreds of files may need updates",{"type":23,"tag":357,"props":3427,"children":3429},{"id":3428},"_4-new-directory-structure-options",[3430],{"type":33,"value":3431},"4. New Directory Structure Options",{"type":23,"tag":36,"props":3433,"children":3434},{},[3435],{"type":33,"value":3436},"More flexibility, but also potential confusion:",{"type":23,"tag":214,"props":3438,"children":3439},{},[3440,3451,3462,3467],{"type":23,"tag":218,"props":3441,"children":3442},{},[3443,3449],{"type":23,"tag":2206,"props":3444,"children":3446},{"className":3445},[],[3447],{"type":33,"value":3448},"app/",{"type":33,"value":3450}," directory for application code (optional)",{"type":23,"tag":218,"props":3452,"children":3453},{},[3454,3460],{"type":23,"tag":2206,"props":3455,"children":3457},{"className":3456},[],[3458],{"type":33,"value":3459},"server/",{"type":33,"value":3461}," improvements for Nitro",{"type":23,"tag":218,"props":3463,"children":3464},{},[3465],{"type":33,"value":3466},"Better separation of concerns",{"type":23,"tag":218,"props":3468,"children":3469},{},[3470,3474],{"type":23,"tag":85,"props":3471,"children":3472},{},[3473],{"type":33,"value":3335},{"type":33,"value":3475}," Existing projects need migration planning",{"type":23,"tag":357,"props":3477,"children":3479},{"id":3478},"_5-nitro-3-integration",[3480],{"type":33,"value":3481},"5. Nitro 3 Integration",{"type":23,"tag":36,"props":3483,"children":3484},{},[3485],{"type":33,"value":3486},"Deeper server-side capabilities:",{"type":23,"tag":214,"props":3488,"children":3489},{},[3490,3495,3500,3505],{"type":23,"tag":218,"props":3491,"children":3492},{},[3493],{"type":33,"value":3494},"Better database integrations",{"type":23,"tag":218,"props":3496,"children":3497},{},[3498],{"type":33,"value":3499},"Improved caching strategies",{"type":23,"tag":218,"props":3501,"children":3502},{},[3503],{"type":33,"value":3504},"Enhanced edge deployment support",{"type":23,"tag":218,"props":3506,"children":3507},{},[3508,3512],{"type":23,"tag":85,"props":3509,"children":3510},{},[3511],{"type":33,"value":3335},{"type":33,"value":3513}," Server middleware may need updates",{"type":23,"tag":28,"props":3515,"children":3517},{"id":3516},"should-you-upgrade-a-decision-framework",[3518],{"type":33,"value":3519},"Should You Upgrade? A Decision Framework",{"type":23,"tag":357,"props":3521,"children":3523},{"id":3522},"upgrade-now-if",[3524],{"type":33,"value":3525},"Upgrade Now If...",{"type":23,"tag":214,"props":3527,"children":3528},{},[3529,3534,3539,3544,3549],{"type":23,"tag":218,"props":3530,"children":3531},{},[3532],{"type":33,"value":3533},"You're starting a new project (no-brainer)",{"type":23,"tag":218,"props":3535,"children":3536},{},[3537],{"type":33,"value":3538},"Your project is already on Nuxt 3.11+",{"type":23,"tag":218,"props":3540,"children":3541},{},[3542],{"type":33,"value":3543},"You need the performance improvements urgently",{"type":23,"tag":218,"props":3545,"children":3546},{},[3547],{"type":33,"value":3548},"Your team has bandwidth for a 2-3 week migration",{"type":23,"tag":218,"props":3550,"children":3551},{},[3552],{"type":33,"value":3553},"You're using mostly official Nuxt modules",{"type":23,"tag":357,"props":3555,"children":3557},{"id":3556},"wait-if",[3558],{"type":33,"value":3559},"Wait If...",{"type":23,"tag":214,"props":3561,"children":3562},{},[3563,3568,3573,3578,3583],{"type":23,"tag":218,"props":3564,"children":3565},{},[3566],{"type":33,"value":3567},"You're on Nuxt 2 (migrate to Nuxt 3 first)",{"type":23,"tag":218,"props":3569,"children":3570},{},[3571],{"type":33,"value":3572},"You rely heavily on community modules (check compatibility)",{"type":23,"tag":218,"props":3574,"children":3575},{},[3576],{"type":33,"value":3577},"You're mid-sprint on critical features",{"type":23,"tag":218,"props":3579,"children":3580},{},[3581],{"type":33,"value":3582},"Your team is already overloaded",{"type":23,"tag":218,"props":3584,"children":3585},{},[3586],{"type":33,"value":3587},"You have extensive custom Webpack configs",{"type":23,"tag":28,"props":3589,"children":3591},{"id":3590},"migration-strategy-from-our-experience",[3592],{"type":33,"value":3593},"Migration Strategy (From Our Experience)",{"type":23,"tag":36,"props":3595,"children":3596},{},[3597],{"type":33,"value":3598},"We've migrated 8 production projects to Nuxt 4 so far. Here's what worked:",{"type":23,"tag":357,"props":3600,"children":3602},{"id":3601},"phase-1-preparation-week-1",[3603],{"type":33,"value":3604},"Phase 1: Preparation (Week 1)",{"type":23,"tag":1257,"props":3606,"children":3607},{},[3608,3618,3628,3638],{"type":23,"tag":218,"props":3609,"children":3610},{},[3611,3616],{"type":23,"tag":85,"props":3612,"children":3613},{},[3614],{"type":33,"value":3615},"Audit Dependencies:",{"type":33,"value":3617}," List all packages and check Nuxt 4 compatibility",{"type":23,"tag":218,"props":3619,"children":3620},{},[3621,3626],{"type":23,"tag":85,"props":3622,"children":3623},{},[3624],{"type":33,"value":3625},"Review Custom Code:",{"type":33,"value":3627}," Identify auto-import usage, server middleware, Webpack configs",{"type":23,"tag":218,"props":3629,"children":3630},{},[3631,3636],{"type":23,"tag":85,"props":3632,"children":3633},{},[3634],{"type":33,"value":3635},"Set Up Test Environment:",{"type":33,"value":3637}," Branch, clone, and test without affecting production",{"type":23,"tag":218,"props":3639,"children":3640},{},[3641,3646],{"type":23,"tag":85,"props":3642,"children":3643},{},[3644],{"type":33,"value":3645},"Update Documentation:",{"type":33,"value":3647}," Document current setup before changes",{"type":23,"tag":357,"props":3649,"children":3651},{"id":3650},"phase-2-core-migration-week-2-3",[3652],{"type":33,"value":3653},"Phase 2: Core Migration (Week 2-3)",{"type":23,"tag":1257,"props":3655,"children":3656},{},[3657,3667,3677,3687,3697],{"type":23,"tag":218,"props":3658,"children":3659},{},[3660,3665],{"type":23,"tag":85,"props":3661,"children":3662},{},[3663],{"type":33,"value":3664},"Update package.json:",{"type":33,"value":3666}," Nuxt, Vue, Nitro to compatible versions",{"type":23,"tag":218,"props":3668,"children":3669},{},[3670,3675],{"type":23,"tag":85,"props":3671,"children":3672},{},[3673],{"type":33,"value":3674},"Fix Auto-Imports:",{"type":33,"value":3676}," Add explicit imports where needed",{"type":23,"tag":218,"props":3678,"children":3679},{},[3680,3685],{"type":23,"tag":85,"props":3681,"children":3682},{},[3683],{"type":33,"value":3684},"Migrate Server Code:",{"type":33,"value":3686}," Update middleware, API routes",{"type":23,"tag":218,"props":3688,"children":3689},{},[3690,3695],{"type":23,"tag":85,"props":3691,"children":3692},{},[3693],{"type":33,"value":3694},"Test Extensively:",{"type":33,"value":3696}," Every page, every component, every API endpoint",{"type":23,"tag":218,"props":3698,"children":3699},{},[3700,3705],{"type":23,"tag":85,"props":3701,"children":3702},{},[3703],{"type":33,"value":3704},"Fix Edge Cases:",{"type":33,"value":3706}," There will be surprises (there always are)",{"type":23,"tag":357,"props":3708,"children":3710},{"id":3709},"phase-3-optimization-week-4",[3711],{"type":33,"value":3712},"Phase 3: Optimization (Week 4)",{"type":23,"tag":1257,"props":3714,"children":3715},{},[3716,3726,3736,3746],{"type":23,"tag":218,"props":3717,"children":3718},{},[3719,3724],{"type":23,"tag":85,"props":3720,"children":3721},{},[3722],{"type":33,"value":3723},"Leverage New Features:",{"type":33,"value":3725}," Update caching strategies, optimize bundles",{"type":23,"tag":218,"props":3727,"children":3728},{},[3729,3734],{"type":23,"tag":85,"props":3730,"children":3731},{},[3732],{"type":33,"value":3733},"Performance Testing:",{"type":33,"value":3735}," Measure before/after metrics",{"type":23,"tag":218,"props":3737,"children":3738},{},[3739,3744],{"type":23,"tag":85,"props":3740,"children":3741},{},[3742],{"type":33,"value":3743},"Team Training:",{"type":33,"value":3745}," Onboard team on new patterns",{"type":23,"tag":218,"props":3747,"children":3748},{},[3749,3754],{"type":23,"tag":85,"props":3750,"children":3751},{},[3752],{"type":33,"value":3753},"Documentation Update:",{"type":33,"value":3755}," Reflect new setup in docs",{"type":23,"tag":28,"props":3757,"children":3759},{"id":3758},"common-gotchas-weve-encountered",[3760],{"type":33,"value":3761},"Common Gotchas We've Encountered",{"type":23,"tag":357,"props":3763,"children":3765},{"id":3764},"_1-module-compatibility-hell",[3766],{"type":33,"value":3767},"1. Module Compatibility Hell",{"type":23,"tag":36,"props":3769,"children":3770},{},[3771],{"type":33,"value":3772},"Third-party modules are hit-or-miss. We had to:",{"type":23,"tag":214,"props":3774,"children":3775},{},[3776,3781,3786],{"type":23,"tag":218,"props":3777,"children":3778},{},[3779],{"type":33,"value":3780},"Replace 3 modules with alternatives",{"type":23,"tag":218,"props":3782,"children":3783},{},[3784],{"type":33,"value":3785},"Fork and patch 1 module ourselves",{"type":23,"tag":218,"props":3787,"children":3788},{},[3789],{"type":33,"value":3790},"Rewrite custom functionality for 2 modules",{"type":23,"tag":36,"props":3792,"children":3793},{},[3794,3799],{"type":23,"tag":85,"props":3795,"children":3796},{},[3797],{"type":33,"value":3798},"Lesson:",{"type":33,"value":3800}," Check module compatibility BEFORE upgrading.",{"type":23,"tag":357,"props":3802,"children":3804},{"id":3803},"_2-ssr-hydration-mismatches",[3805],{"type":33,"value":3806},"2. SSR Hydration Mismatches",{"type":23,"tag":36,"props":3808,"children":3809},{},[3810],{"type":33,"value":3811},"Vue 3.5+ is stricter about hydration. We saw:",{"type":23,"tag":214,"props":3813,"children":3814},{},[3815,3820,3825],{"type":23,"tag":218,"props":3816,"children":3817},{},[3818],{"type":33,"value":3819},"Warnings on components that previously worked",{"type":23,"tag":218,"props":3821,"children":3822},{},[3823],{"type":33,"value":3824},"Issues with date formatting (client vs server time)",{"type":23,"tag":218,"props":3826,"children":3827},{},[3828],{"type":33,"value":3829},"Problems with third-party UI libraries",{"type":23,"tag":36,"props":3831,"children":3832},{},[3833,3837],{"type":23,"tag":85,"props":3834,"children":3835},{},[3836],{"type":33,"value":3798},{"type":33,"value":3838}," Test SSR thoroughly, especially with dynamic content.",{"type":23,"tag":357,"props":3840,"children":3842},{"id":3841},"_3-build-config-changes",[3843],{"type":33,"value":3844},"3. Build Config Changes",{"type":23,"tag":36,"props":3846,"children":3847},{},[3848],{"type":33,"value":3849},"Vite 6 handles some things differently:",{"type":23,"tag":214,"props":3851,"children":3852},{},[3853,3858,3863],{"type":23,"tag":218,"props":3854,"children":3855},{},[3856],{"type":33,"value":3857},"CSS handling changed (broke some custom themes)",{"type":23,"tag":218,"props":3859,"children":3860},{},[3861],{"type":33,"value":3862},"Asset optimization needed tweaking",{"type":23,"tag":218,"props":3864,"children":3865},{},[3866],{"type":33,"value":3867},"Environment variable loading had subtle changes",{"type":23,"tag":36,"props":3869,"children":3870},{},[3871,3875],{"type":23,"tag":85,"props":3872,"children":3873},{},[3874],{"type":33,"value":3798},{"type":33,"value":3876}," Review your entire build pipeline, not just runtime code.",{"type":23,"tag":28,"props":3878,"children":3880},{"id":3879},"performance-gains-real-numbers",[3881],{"type":33,"value":3882},"Performance Gains (Real Numbers)",{"type":23,"tag":36,"props":3884,"children":3885},{},[3886],{"type":33,"value":3887},"From one of our production apps (e-commerce platform):",{"type":23,"tag":214,"props":3889,"children":3890},{},[3891,3901,3911,3921],{"type":23,"tag":218,"props":3892,"children":3893},{},[3894,3899],{"type":23,"tag":85,"props":3895,"children":3896},{},[3897],{"type":33,"value":3898},"Dev Server Start:",{"type":33,"value":3900}," 8.2s → 2.1s (74% faster)",{"type":23,"tag":218,"props":3902,"children":3903},{},[3904,3909],{"type":23,"tag":85,"props":3905,"children":3906},{},[3907],{"type":33,"value":3908},"Production Build:",{"type":33,"value":3910}," 142s → 89s (37% faster)",{"type":23,"tag":218,"props":3912,"children":3913},{},[3914,3919],{"type":23,"tag":85,"props":3915,"children":3916},{},[3917],{"type":33,"value":3918},"Page Load (LCP):",{"type":33,"value":3920}," 2.8s → 2.1s (25% faster)",{"type":23,"tag":218,"props":3922,"children":3923},{},[3924,3929],{"type":23,"tag":85,"props":3925,"children":3926},{},[3927],{"type":33,"value":3928},"Bundle Size:",{"type":33,"value":3930}," 487kb → 412kb (15% smaller)",{"type":23,"tag":36,"props":3932,"children":3933},{},[3934,3939],{"type":23,"tag":85,"props":3935,"children":3936},{},[3937],{"type":33,"value":3938},"Worth it?",{"type":33,"value":3940}," Absolutely. But only after the migration pain.",{"type":23,"tag":28,"props":3942,"children":3944},{"id":3943},"our-recommendation",[3945],{"type":33,"value":3946},"Our Recommendation",{"type":23,"tag":36,"props":3948,"children":3949},{},[3950],{"type":33,"value":3951},"For most teams, here's the playbook:",{"type":23,"tag":1257,"props":3953,"children":3954},{},[3955,3965,3975,3985],{"type":23,"tag":218,"props":3956,"children":3957},{},[3958,3963],{"type":23,"tag":85,"props":3959,"children":3960},{},[3961],{"type":33,"value":3962},"New Projects:",{"type":33,"value":3964}," Start with Nuxt 4 immediately",{"type":23,"tag":218,"props":3966,"children":3967},{},[3968,3973],{"type":23,"tag":85,"props":3969,"children":3970},{},[3971],{"type":33,"value":3972},"Nuxt 3 Projects:",{"type":33,"value":3974}," Upgrade within Q1 2026",{"type":23,"tag":218,"props":3976,"children":3977},{},[3978,3983],{"type":23,"tag":85,"props":3979,"children":3980},{},[3981],{"type":33,"value":3982},"Nuxt 2 Projects:",{"type":33,"value":3984}," Migrate to Nuxt 3, then Nuxt 4",{"type":23,"tag":218,"props":3986,"children":3987},{},[3988,3993],{"type":23,"tag":85,"props":3989,"children":3990},{},[3991],{"type":33,"value":3992},"Legacy Projects:",{"type":33,"value":3994}," Assess case-by-case (ROI vs effort)",{"type":23,"tag":28,"props":3996,"children":3998},{"id":3997},"what-were-doing-for-clients",[3999],{"type":33,"value":4000},"What We're Doing for Clients",{"type":23,"tag":36,"props":4002,"children":4003},{},[4004],{"type":33,"value":4005},"We offer a structured migration service:",{"type":23,"tag":214,"props":4007,"children":4008},{},[4009,4019,4029],{"type":23,"tag":218,"props":4010,"children":4011},{},[4012,4017],{"type":23,"tag":85,"props":4013,"children":4014},{},[4015],{"type":33,"value":4016},"Week 1:",{"type":33,"value":4018}," Compatibility audit and migration plan",{"type":23,"tag":218,"props":4020,"children":4021},{},[4022,4027],{"type":23,"tag":85,"props":4023,"children":4024},{},[4025],{"type":33,"value":4026},"Week 2-3:",{"type":33,"value":4028}," Execution with daily progress updates",{"type":23,"tag":218,"props":4030,"children":4031},{},[4032,4037],{"type":23,"tag":85,"props":4033,"children":4034},{},[4035],{"type":33,"value":4036},"Week 4:",{"type":33,"value":4038}," Testing, optimization, handoff",{"type":23,"tag":36,"props":4040,"children":4041},{},[4042],{"type":33,"value":4043},"Price depends on project size, but typical range: €5,000 - €15,000 for mid-sized apps.",{"type":23,"tag":28,"props":4045,"children":4047},{"id":4046},"final-thoughts",[4048],{"type":33,"value":4049},"Final Thoughts",{"type":23,"tag":36,"props":4051,"children":4052},{},[4053],{"type":33,"value":4054},"Nuxt 4 is a solid upgrade. The performance gains alone justify the effort for most production apps.",{"type":23,"tag":36,"props":4056,"children":4057},{},[4058],{"type":33,"value":4059},"But don't rush it. Plan properly, test thoroughly, and keep your team in the loop.",{"type":23,"tag":2807,"props":4061,"children":4063},{"id":4062},"the-best-time-to-upgrade-was-during-project-planning-the-second-best-time-is-now-with-a-solid-plan",[4064],{"type":23,"tag":85,"props":4065,"children":4066},{},[4067],{"type":33,"value":4068},"\"The best time to upgrade was during project planning. The second best time is now – with a solid plan.\"",{"type":23,"tag":36,"props":4070,"children":4071},{},[4072],{"type":33,"value":4073},"Need help migrating? We've done this enough times to have a proven playbook. Let's talk.",{"title":866,"searchDepth":867,"depth":867,"links":4075},[4076,4077,4084,4088,4093,4098,4099,4100,4101],{"id":3257,"depth":867,"text":3260},{"id":3290,"depth":867,"text":3293,"children":4078},[4079,4080,4081,4082,4083],{"id":3301,"depth":876,"text":3304},{"id":3340,"depth":876,"text":3343},{"id":3378,"depth":876,"text":3381},{"id":3428,"depth":876,"text":3431},{"id":3478,"depth":876,"text":3481},{"id":3516,"depth":867,"text":3519,"children":4085},[4086,4087],{"id":3522,"depth":876,"text":3525},{"id":3556,"depth":876,"text":3559},{"id":3590,"depth":867,"text":3593,"children":4089},[4090,4091,4092],{"id":3601,"depth":876,"text":3604},{"id":3650,"depth":876,"text":3653},{"id":3709,"depth":876,"text":3712},{"id":3758,"depth":867,"text":3761,"children":4094},[4095,4096,4097],{"id":3764,"depth":876,"text":3767},{"id":3803,"depth":876,"text":3806},{"id":3841,"depth":876,"text":3844},{"id":3879,"depth":867,"text":3882},{"id":3943,"depth":867,"text":3946},{"id":3997,"depth":867,"text":4000},{"id":4046,"depth":867,"text":4049},"content:en:blog:nuxt-4-what-it-means-for-your-project.md","en/blog/nuxt-4-what-it-means-for-your-project.md","en/blog/nuxt-4-what-it-means-for-your-project",{"_path":4106,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":4107,"description":4108,"author":901,"date":4109,"category":15,"tags":4110,"readingTime":4113,"featured":910,"slug":4114,"image":4115,"imageAlt":4116,"seoTitle":4117,"seoDescription":4118,"body":4119,"_type":890,"_id":4564,"_source":892,"_file":4565,"_stem":4566,"_extension":895},"/blog/using-ai-tools-right","Using AI Tools Right: Why Prompt Engineering Alone Isn't Enough","Everyone talks about ChatGPT. But few use it effectively. A guide for non-nerds.","2025-12-15",[15,4111,4112],"Productivity","Tools",6,"using-ai-tools-right","/media/blog/ai-tools.webp","AI Tools Illustration","Using AI Tools Right | Guide for Non-Nerds | BitBitHooray","Why prompt engineering alone isn't enough and how to actually use AI tools productively.",{"type":20,"children":4120,"toc":4552},[4121,4126,4138,4144,4154,4159,4165,4173,4178,4187,4192,4200,4212,4220,4225,4243,4251,4256,4279,4284,4302,4308,4314,4319,4337,4345,4351,4356,4361,4367,4372,4390,4393,4399,4504,4510,4522,4527,4539,4542],{"type":23,"tag":36,"props":4122,"children":4123},{},[4124],{"type":33,"value":4125},"Everyone has used ChatGPT by now. Most are disappointed.",{"type":23,"tag":36,"props":4127,"children":4128},{},[4129,4131,4136],{"type":33,"value":4130},"\"It's okay, but not really helpful...\" – if that's your impression, it's not the tool. It's ",{"type":23,"tag":203,"props":4132,"children":4133},{},[4134],{"type":33,"value":4135},"how",{"type":33,"value":4137}," you're using it. Like a cat sitting in front of a full bowl still complaining. 🐱",{"type":23,"tag":28,"props":4139,"children":4141},{"id":4140},"the-prompt-problem",[4142],{"type":33,"value":4143},"The Prompt Problem",{"type":23,"tag":36,"props":4145,"children":4146},{},[4147,4149],{"type":33,"value":4148},"The internet is full of \"10 prompts that will change your life\". Spoiler: ",{"type":23,"tag":85,"props":4150,"children":4151},{},[4152],{"type":33,"value":4153},"They won't.",{"type":23,"tag":36,"props":4155,"children":4156},{},[4157],{"type":33,"value":4158},"Why? Because a good prompt without context is like a good recipe without ingredients. Useless.",{"type":23,"tag":357,"props":4160,"children":4162},{"id":4161},"what-actually-works",[4163],{"type":33,"value":4164},"What Actually Works",{"type":23,"tag":36,"props":4166,"children":4167},{},[4168],{"type":23,"tag":85,"props":4169,"children":4170},{},[4171],{"type":33,"value":4172},"1. Context is King",{"type":23,"tag":36,"props":4174,"children":4175},{},[4176],{"type":33,"value":4177},"Bad:",{"type":23,"tag":4179,"props":4180,"children":4181},"blockquote",{},[4182],{"type":23,"tag":36,"props":4183,"children":4184},{},[4185],{"type":33,"value":4186},"\"Write me an email to a client\"",{"type":23,"tag":36,"props":4188,"children":4189},{},[4190],{"type":33,"value":4191},"Better:",{"type":23,"tag":4179,"props":4193,"children":4194},{},[4195],{"type":23,"tag":36,"props":4196,"children":4197},{},[4198],{"type":33,"value":4199},"\"You're an account manager at a web agency. Your client (SME, traditional, skeptical about tech) asked if you can also build AI features. Write an email explaining what's possible without sounding too nerdy.\"",{"type":23,"tag":36,"props":4201,"children":4202},{},[4203,4205,4210],{"type":33,"value":4204},"The difference? ",{"type":23,"tag":85,"props":4206,"children":4207},{},[4208],{"type":33,"value":4209},"Role, audience, context, tone.",{"type":33,"value":4211}," The AI needs the same briefing you'd give an employee.",{"type":23,"tag":36,"props":4213,"children":4214},{},[4215],{"type":23,"tag":85,"props":4216,"children":4217},{},[4218],{"type":33,"value":4219},"2. Iterate, Don't Generate",{"type":23,"tag":36,"props":4221,"children":4222},{},[4223],{"type":33,"value":4224},"The first output is never perfect. Use it as a starting point:",{"type":23,"tag":214,"props":4226,"children":4227},{},[4228,4233,4238],{"type":23,"tag":218,"props":4229,"children":4230},{},[4231],{"type":33,"value":4232},"\"That's too formal, make it more casual\"",{"type":23,"tag":218,"props":4234,"children":4235},{},[4236],{"type":33,"value":4237},"\"Cut that in half\"",{"type":23,"tag":218,"props":4239,"children":4240},{},[4241],{"type":33,"value":4242},"\"Add a concrete example\"",{"type":23,"tag":36,"props":4244,"children":4245},{},[4246],{"type":23,"tag":85,"props":4247,"children":4248},{},[4249],{"type":33,"value":4250},"3. Use AI for Drafts, Not Final Products",{"type":23,"tag":36,"props":4252,"children":4253},{},[4254],{"type":33,"value":4255},"AI is fantastic for:",{"type":23,"tag":214,"props":4257,"children":4258},{},[4259,4264,4269,4274],{"type":23,"tag":218,"props":4260,"children":4261},{},[4262],{"type":33,"value":4263},"First drafts",{"type":23,"tag":218,"props":4265,"children":4266},{},[4267],{"type":33,"value":4268},"Brainstorming",{"type":23,"tag":218,"props":4270,"children":4271},{},[4272],{"type":33,"value":4273},"Research summaries",{"type":23,"tag":218,"props":4275,"children":4276},{},[4277],{"type":33,"value":4278},"Code snippets",{"type":23,"tag":36,"props":4280,"children":4281},{},[4282],{"type":33,"value":4283},"AI is bad for:",{"type":23,"tag":214,"props":4285,"children":4286},{},[4287,4292,4297],{"type":23,"tag":218,"props":4288,"children":4289},{},[4290],{"type":33,"value":4291},"Final texts without human editing",{"type":23,"tag":218,"props":4293,"children":4294},{},[4295],{"type":33,"value":4296},"Factual statements without verification",{"type":23,"tag":218,"props":4298,"children":4299},{},[4300],{"type":33,"value":4301},"Creative work that needs to be unique",{"type":23,"tag":28,"props":4303,"children":4305},{"id":4304},"the-underrated-use-cases",[4306],{"type":33,"value":4307},"The Underrated Use Cases",{"type":23,"tag":357,"props":4309,"children":4311},{"id":4310},"automating-meeting-notes",[4312],{"type":33,"value":4313},"Automating Meeting Notes",{"type":23,"tag":36,"props":4315,"children":4316},{},[4317],{"type":33,"value":4318},"Upload a transcription and have AI:",{"type":23,"tag":214,"props":4320,"children":4321},{},[4322,4327,4332],{"type":23,"tag":218,"props":4323,"children":4324},{},[4325],{"type":33,"value":4326},"Create a summary",{"type":23,"tag":218,"props":4328,"children":4329},{},[4330],{"type":33,"value":4331},"Extract action items",{"type":23,"tag":218,"props":4333,"children":4334},{},[4335],{"type":33,"value":4336},"Draft follow-up emails",{"type":23,"tag":36,"props":4338,"children":4339},{},[4340],{"type":23,"tag":85,"props":4341,"children":4342},{},[4343],{"type":33,"value":4344},"Time saved: 70%",{"type":23,"tag":357,"props":4346,"children":4348},{"id":4347},"writing-documentation-having-it-written",[4349],{"type":33,"value":4350},"Writing Documentation (Having It Written)",{"type":23,"tag":36,"props":4352,"children":4353},{},[4354],{"type":33,"value":4355},"Nobody likes writing documentation. AI doesn't either – but it doesn't complain. That's its dino-energy move: just do it, don't whine. 🦕",{"type":23,"tag":36,"props":4357,"children":4358},{},[4359],{"type":33,"value":4360},"Give it your code/process/whatever and have it create a first version. Then you just edit.",{"type":23,"tag":357,"props":4362,"children":4364},{"id":4363},"accelerating-research",[4365],{"type":33,"value":4366},"Accelerating Research",{"type":23,"tag":36,"props":4368,"children":4369},{},[4370],{"type":33,"value":4371},"Instead of 20 tabs and 3 hours:",{"type":23,"tag":214,"props":4373,"children":4374},{},[4375,4380,4385],{"type":23,"tag":218,"props":4376,"children":4377},{},[4378],{"type":33,"value":4379},"Ask for a summary of a topic",{"type":23,"tag":218,"props":4381,"children":4382},{},[4383],{"type":33,"value":4384},"Have it list pros/cons",{"type":23,"tag":218,"props":4386,"children":4387},{},[4388],{"type":33,"value":4389},"Ask for sources to dive deeper",{"type":23,"tag":24,"props":4391,"children":4392},{},[],{"type":23,"tag":28,"props":4394,"children":4396},{"id":4395},"our-tool-recommendations-2025",[4397],{"type":33,"value":4398},"Our Tool Recommendations (2025)",{"type":23,"tag":4400,"props":4401,"children":4402},"table",{},[4403,4427],{"type":23,"tag":4404,"props":4405,"children":4406},"thead",{},[4407],{"type":23,"tag":4408,"props":4409,"children":4410},"tr",{},[4411,4417,4422],{"type":23,"tag":4412,"props":4413,"children":4414},"th",{},[4415],{"type":33,"value":4416},"Use Case",{"type":23,"tag":4412,"props":4418,"children":4419},{},[4420],{"type":33,"value":4421},"Tool",{"type":23,"tag":4412,"props":4423,"children":4424},{},[4425],{"type":33,"value":4426},"Why",{"type":23,"tag":4428,"props":4429,"children":4430},"tbody",{},[4431,4450,4468,4486],{"type":23,"tag":4408,"props":4432,"children":4433},{},[4434,4440,4445],{"type":23,"tag":4435,"props":4436,"children":4437},"td",{},[4438],{"type":33,"value":4439},"Text",{"type":23,"tag":4435,"props":4441,"children":4442},{},[4443],{"type":33,"value":4444},"Claude",{"type":23,"tag":4435,"props":4446,"children":4447},{},[4448],{"type":33,"value":4449},"More nuanced, less \"AI speak\"",{"type":23,"tag":4408,"props":4451,"children":4452},{},[4453,4458,4463],{"type":23,"tag":4435,"props":4454,"children":4455},{},[4456],{"type":33,"value":4457},"Code",{"type":23,"tag":4435,"props":4459,"children":4460},{},[4461],{"type":33,"value":4462},"Cursor/Copilot",{"type":23,"tag":4435,"props":4464,"children":4465},{},[4466],{"type":33,"value":4467},"Context-aware, fewer hallucinations",{"type":23,"tag":4408,"props":4469,"children":4470},{},[4471,4476,4481],{"type":23,"tag":4435,"props":4472,"children":4473},{},[4474],{"type":33,"value":4475},"Research",{"type":23,"tag":4435,"props":4477,"children":4478},{},[4479],{"type":33,"value":4480},"Perplexity",{"type":23,"tag":4435,"props":4482,"children":4483},{},[4484],{"type":33,"value":4485},"Sources included",{"type":23,"tag":4408,"props":4487,"children":4488},{},[4489,4494,4499],{"type":23,"tag":4435,"props":4490,"children":4491},{},[4492],{"type":33,"value":4493},"Images",{"type":23,"tag":4435,"props":4495,"children":4496},{},[4497],{"type":33,"value":4498},"Midjourney",{"type":23,"tag":4435,"props":4500,"children":4501},{},[4502],{"type":33,"value":4503},"Quality still best",{"type":23,"tag":28,"props":4505,"children":4507},{"id":4506},"the-most-important-takeaway",[4508],{"type":33,"value":4509},"The Most Important Takeaway",{"type":23,"tag":36,"props":4511,"children":4512},{},[4513,4515,4520],{"type":33,"value":4514},"AI tools are ",{"type":23,"tag":85,"props":4516,"children":4517},{},[4518],{"type":33,"value":4519},"amplifiers",{"type":33,"value":4521},", not substitutes.",{"type":23,"tag":36,"props":4523,"children":4524},{},[4525],{"type":33,"value":4526},"They make good work faster, but don't make bad work good. If you don't know what you want, AI can't figure it out for you either.",{"type":23,"tag":36,"props":4528,"children":4529},{},[4530,4532,4537],{"type":33,"value":4531},"The biggest skill isn't prompt engineering – it's ",{"type":23,"tag":85,"props":4533,"children":4534},{},[4535],{"type":33,"value":4536},"clarity about your own goal",{"type":33,"value":4538},".",{"type":23,"tag":24,"props":4540,"children":4541},{},[],{"type":23,"tag":36,"props":4543,"children":4544},{},[4545,4550],{"type":23,"tag":203,"props":4546,"children":4547},{},[4548],{"type":33,"value":4549},"Want to integrate AI meaningfully into your processes? We help with that – from strategy to implementation. And yes, we bring good vibes too.",{"type":33,"value":4551}," 🚀",{"title":866,"searchDepth":867,"depth":867,"links":4553},[4554,4557,4562,4563],{"id":4140,"depth":867,"text":4143,"children":4555},[4556],{"id":4161,"depth":876,"text":4164},{"id":4304,"depth":867,"text":4307,"children":4558},[4559,4560,4561],{"id":4310,"depth":876,"text":4313},{"id":4347,"depth":876,"text":4350},{"id":4363,"depth":876,"text":4366},{"id":4395,"depth":867,"text":4398},{"id":4506,"depth":867,"text":4509},"content:en:blog:using-ai-tools-right.md","en/blog/using-ai-tools-right.md","en/blog/using-ai-tools-right",{"_path":4568,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":4569,"description":4570,"author":901,"date":4571,"category":4572,"tags":4573,"readingTime":4577,"featured":6,"slug":4578,"image":4579,"imageAlt":4580,"seoTitle":4581,"seoDescription":4582,"body":4583,"_type":890,"_id":5136,"_source":892,"_file":5137,"_stem":5138,"_extension":895},"/blog/mvp-vs-prototype","MVP vs. Prototype: What Do You Really Need?","Two weeks prototype or eight weeks MVP? The right choice saves time and money.","2025-11-28","Strategy",[4574,4575,4576],"MVP","Product","Startup",5,"mvp-vs-prototype","blog_mvpPrototype.webp","MVP vs Prototype Comparison","MVP vs. Prototype: What Do You Really Need? | BitBitHooray","Prototype or MVP? When each approach pays off and how to make the right decision.",{"type":20,"children":4584,"toc":5123},[4585,4590,4595,4601,4730,4736,4744,4762,4781,4787,4810,4816,4834,4840,4848,4866,4878,4884,4889,4907,4913,4918,4926,4944,4950,5044,5050,5058,5063,5105,5110,5113],{"type":23,"tag":36,"props":4586,"children":4587},{},[4588],{"type":33,"value":4589},"\"We need an MVP\" – we hear this a lot. But usually they actually need a prototype. Or vice versa.",{"type":23,"tag":36,"props":4591,"children":4592},{},[4593],{"type":33,"value":4594},"The difference isn't semantics. It can mean months of work and five-figure amounts. So yeah, this is important. Grab a coffee. ☕",{"type":23,"tag":28,"props":4596,"children":4598},{"id":4597},"the-short-version",[4599],{"type":33,"value":4600},"The Short Version",{"type":23,"tag":4400,"props":4602,"children":4603},{},[4604,4622],{"type":23,"tag":4404,"props":4605,"children":4606},{},[4607],{"type":23,"tag":4408,"props":4608,"children":4609},{},[4610,4613,4618],{"type":23,"tag":4412,"props":4611,"children":4612},{},[],{"type":23,"tag":4412,"props":4614,"children":4615},{},[4616],{"type":33,"value":4617},"Prototype",{"type":23,"tag":4412,"props":4619,"children":4620},{},[4621],{"type":33,"value":4574},{"type":23,"tag":4428,"props":4623,"children":4624},{},[4625,4646,4667,4688,4709],{"type":23,"tag":4408,"props":4626,"children":4627},{},[4628,4636,4641],{"type":23,"tag":4435,"props":4629,"children":4630},{},[4631],{"type":23,"tag":85,"props":4632,"children":4633},{},[4634],{"type":33,"value":4635},"Goal",{"type":23,"tag":4435,"props":4637,"children":4638},{},[4639],{"type":33,"value":4640},"Validate idea",{"type":23,"tag":4435,"props":4642,"children":4643},{},[4644],{"type":33,"value":4645},"Validate market",{"type":23,"tag":4408,"props":4647,"children":4648},{},[4649,4657,4662],{"type":23,"tag":4435,"props":4650,"children":4651},{},[4652],{"type":23,"tag":85,"props":4653,"children":4654},{},[4655],{"type":33,"value":4656},"Users",{"type":23,"tag":4435,"props":4658,"children":4659},{},[4660],{"type":33,"value":4661},"Internal team, selected testers",{"type":23,"tag":4435,"props":4663,"children":4664},{},[4665],{"type":33,"value":4666},"Real customers",{"type":23,"tag":4408,"props":4668,"children":4669},{},[4670,4678,4683],{"type":23,"tag":4435,"props":4671,"children":4672},{},[4673],{"type":23,"tag":85,"props":4674,"children":4675},{},[4676],{"type":33,"value":4677},"Functionality",{"type":23,"tag":4435,"props":4679,"children":4680},{},[4681],{"type":33,"value":4682},"Fake it till you make it",{"type":23,"tag":4435,"props":4684,"children":4685},{},[4686],{"type":33,"value":4687},"Must actually work",{"type":23,"tag":4408,"props":4689,"children":4690},{},[4691,4699,4704],{"type":23,"tag":4435,"props":4692,"children":4693},{},[4694],{"type":23,"tag":85,"props":4695,"children":4696},{},[4697],{"type":33,"value":4698},"Timeline",{"type":23,"tag":4435,"props":4700,"children":4701},{},[4702],{"type":33,"value":4703},"1-3 weeks",{"type":23,"tag":4435,"props":4705,"children":4706},{},[4707],{"type":33,"value":4708},"6-12 weeks",{"type":23,"tag":4408,"props":4710,"children":4711},{},[4712,4720,4725],{"type":23,"tag":4435,"props":4713,"children":4714},{},[4715],{"type":23,"tag":85,"props":4716,"children":4717},{},[4718],{"type":33,"value":4719},"Cost",{"type":23,"tag":4435,"props":4721,"children":4722},{},[4723],{"type":33,"value":4724},"€5-15k",{"type":23,"tag":4435,"props":4726,"children":4727},{},[4728],{"type":33,"value":4729},"€20-80k",{"type":23,"tag":28,"props":4731,"children":4733},{"id":4732},"when-you-need-a-prototype",[4734],{"type":33,"value":4735},"When You Need a Prototype",{"type":23,"tag":36,"props":4737,"children":4738},{},[4739],{"type":23,"tag":85,"props":4740,"children":4741},{},[4742],{"type":33,"value":4743},"When the basic assumption is still unclear:",{"type":23,"tag":214,"props":4745,"children":4746},{},[4747,4752,4757],{"type":23,"tag":218,"props":4748,"children":4749},{},[4750],{"type":33,"value":4751},"\"Would people even use X?\"",{"type":23,"tag":218,"props":4753,"children":4754},{},[4755],{"type":33,"value":4756},"\"Does our target audience understand the concept?\"",{"type":23,"tag":218,"props":4758,"children":4759},{},[4760],{"type":33,"value":4761},"\"What should the main flow look like?\"",{"type":23,"tag":36,"props":4763,"children":4764},{},[4765,4767,4772,4774,4779],{"type":33,"value":4766},"A prototype is a ",{"type":23,"tag":85,"props":4768,"children":4769},{},[4770],{"type":33,"value":4771},"hypothesis machine",{"type":33,"value":4773},". It shows what something ",{"type":23,"tag":203,"props":4775,"children":4776},{},[4777],{"type":33,"value":4778},"could",{"type":33,"value":4780}," be – without the effort of actually building it.",{"type":23,"tag":357,"props":4782,"children":4784},{"id":4783},"what-a-good-prototype-delivers",[4785],{"type":33,"value":4786},"What a Good Prototype Delivers",{"type":23,"tag":214,"props":4788,"children":4789},{},[4790,4795,4800,4805],{"type":23,"tag":218,"props":4791,"children":4792},{},[4793],{"type":33,"value":4794},"Clickable flows that feel real",{"type":23,"tag":218,"props":4796,"children":4797},{},[4798],{"type":33,"value":4799},"Visualization for stakeholders/investors",{"type":23,"tag":218,"props":4801,"children":4802},{},[4803],{"type":33,"value":4804},"Foundation for user tests",{"type":23,"tag":218,"props":4806,"children":4807},{},[4808],{"type":33,"value":4809},"Decision basis: continue or pivot",{"type":23,"tag":357,"props":4811,"children":4813},{"id":4812},"what-it-doesnt-deliver",[4814],{"type":33,"value":4815},"What It DOESN'T Deliver",{"type":23,"tag":214,"props":4817,"children":4818},{},[4819,4824,4829],{"type":23,"tag":218,"props":4820,"children":4821},{},[4822],{"type":33,"value":4823},"Process real data",{"type":23,"tag":218,"props":4825,"children":4826},{},[4827],{"type":33,"value":4828},"Run in production",{"type":23,"tag":218,"props":4830,"children":4831},{},[4832],{"type":33,"value":4833},"Scale",{"type":23,"tag":28,"props":4835,"children":4837},{"id":4836},"when-you-need-an-mvp",[4838],{"type":33,"value":4839},"When You Need an MVP",{"type":23,"tag":36,"props":4841,"children":4842},{},[4843],{"type":23,"tag":85,"props":4844,"children":4845},{},[4846],{"type":33,"value":4847},"When you know WHAT you want to build and want to test IF it works:",{"type":23,"tag":214,"props":4849,"children":4850},{},[4851,4856,4861],{"type":23,"tag":218,"props":4852,"children":4853},{},[4854],{"type":33,"value":4855},"\"Will customers pay for this solution?\"",{"type":23,"tag":218,"props":4857,"children":4858},{},[4859],{"type":33,"value":4860},"\"Will they use it regularly?\"",{"type":23,"tag":218,"props":4862,"children":4863},{},[4864],{"type":33,"value":4865},"\"Which features are really important?\"",{"type":23,"tag":36,"props":4867,"children":4868},{},[4869,4871,4876],{"type":33,"value":4870},"An MVP is the ",{"type":23,"tag":85,"props":4872,"children":4873},{},[4874],{"type":33,"value":4875},"minimum complete product",{"type":33,"value":4877},". Not finished, but functional.",{"type":23,"tag":357,"props":4879,"children":4881},{"id":4880},"the-mvp-misconception",[4882],{"type":33,"value":4883},"The MVP Misconception",{"type":23,"tag":36,"props":4885,"children":4886},{},[4887],{"type":33,"value":4888},"MVP doesn't mean \"quick and dirty\". It means:",{"type":23,"tag":214,"props":4890,"children":4891},{},[4892,4897,4902],{"type":23,"tag":218,"props":4893,"children":4894},{},[4895],{"type":33,"value":4896},"Core feature works reliably",{"type":23,"tag":218,"props":4898,"children":4899},{},[4900],{"type":33,"value":4901},"Usable without instructions",{"type":23,"tag":218,"props":4903,"children":4904},{},[4905],{"type":33,"value":4906},"Good enough that users stay (or leave because they don't need it – also valid info!)",{"type":23,"tag":357,"props":4908,"children":4910},{"id":4909},"the-mvp-trap",[4911],{"type":33,"value":4912},"The MVP Trap",{"type":23,"tag":36,"props":4914,"children":4915},{},[4916],{"type":33,"value":4917},"\"Let's quickly add X\" – this sentence has ruined more MVPs than anything else. It's the dino-killer of product development. 🦕💥",{"type":23,"tag":36,"props":4919,"children":4920},{},[4921],{"type":23,"tag":85,"props":4922,"children":4923},{},[4924],{"type":33,"value":4925},"A real MVP has:",{"type":23,"tag":214,"props":4927,"children":4928},{},[4929,4934,4939],{"type":23,"tag":218,"props":4930,"children":4931},{},[4932],{"type":33,"value":4933},"1-3 core features",{"type":23,"tag":218,"props":4935,"children":4936},{},[4937],{"type":33,"value":4938},"0 nice-to-haves",{"type":23,"tag":218,"props":4940,"children":4941},{},[4942],{"type":33,"value":4943},"One clear success metric",{"type":23,"tag":28,"props":4945,"children":4947},{"id":4946},"the-decision-matrix",[4948],{"type":33,"value":4949},"The Decision Matrix",{"type":23,"tag":4400,"props":4951,"children":4952},{},[4953,4969],{"type":23,"tag":4404,"props":4954,"children":4955},{},[4956],{"type":23,"tag":4408,"props":4957,"children":4958},{},[4959,4964],{"type":23,"tag":4412,"props":4960,"children":4961},{},[4962],{"type":33,"value":4963},"Your Situation",{"type":23,"tag":4412,"props":4965,"children":4966},{},[4967],{"type":33,"value":4968},"Recommendation",{"type":23,"tag":4428,"props":4970,"children":4971},{},[4972,4984,4996,5008,5020,5032],{"type":23,"tag":4408,"props":4973,"children":4974},{},[4975,4980],{"type":23,"tag":4435,"props":4976,"children":4977},{},[4978],{"type":33,"value":4979},"Idea still vague, budget tight",{"type":23,"tag":4435,"props":4981,"children":4982},{},[4983],{"type":33,"value":4617},{"type":23,"tag":4408,"props":4985,"children":4986},{},[4987,4992],{"type":23,"tag":4435,"props":4988,"children":4989},{},[4990],{"type":33,"value":4991},"Pitch to investors",{"type":23,"tag":4435,"props":4993,"children":4994},{},[4995],{"type":33,"value":4617},{"type":23,"tag":4408,"props":4997,"children":4998},{},[4999,5004],{"type":23,"tag":4435,"props":5000,"children":5001},{},[5002],{"type":33,"value":5003},"Internal alignment needed",{"type":23,"tag":4435,"props":5005,"children":5006},{},[5007],{"type":33,"value":4617},{"type":23,"tag":4408,"props":5009,"children":5010},{},[5011,5016],{"type":23,"tag":4435,"props":5012,"children":5013},{},[5014],{"type":33,"value":5015},"Idea validated, ready for market",{"type":23,"tag":4435,"props":5017,"children":5018},{},[5019],{"type":33,"value":4574},{"type":23,"tag":4408,"props":5021,"children":5022},{},[5023,5028],{"type":23,"tag":4435,"props":5024,"children":5025},{},[5026],{"type":33,"value":5027},"Paying beta customers in sight",{"type":23,"tag":4435,"props":5029,"children":5030},{},[5031],{"type":33,"value":4574},{"type":23,"tag":4408,"props":5033,"children":5034},{},[5035,5040],{"type":23,"tag":4435,"props":5036,"children":5037},{},[5038],{"type":33,"value":5039},"Competition pressing, time-to-market important",{"type":23,"tag":4435,"props":5041,"children":5042},{},[5043],{"type":33,"value":4574},{"type":23,"tag":28,"props":5045,"children":5047},{"id":5046},"what-we-often-recommend",[5048],{"type":33,"value":5049},"What We Often Recommend",{"type":23,"tag":36,"props":5051,"children":5052},{},[5053],{"type":23,"tag":85,"props":5054,"children":5055},{},[5056],{"type":33,"value":5057},"Prototype → User Tests → MVP",{"type":23,"tag":36,"props":5059,"children":5060},{},[5061],{"type":33,"value":5062},"Not either/or. The sequence matters:",{"type":23,"tag":1257,"props":5064,"children":5065},{},[5066,5076,5086,5095],{"type":23,"tag":218,"props":5067,"children":5068},{},[5069,5074],{"type":23,"tag":85,"props":5070,"children":5071},{},[5072],{"type":33,"value":5073},"Week 1-2:",{"type":33,"value":5075}," Build prototype",{"type":23,"tag":218,"props":5077,"children":5078},{},[5079,5084],{"type":23,"tag":85,"props":5080,"children":5081},{},[5082],{"type":33,"value":5083},"Week 3:",{"type":33,"value":5085}," Test with 5-10 users",{"type":23,"tag":218,"props":5087,"children":5088},{},[5089,5093],{"type":23,"tag":85,"props":5090,"children":5091},{},[5092],{"type":33,"value":4036},{"type":33,"value":5094}," Incorporate learnings, make decision",{"type":23,"tag":218,"props":5096,"children":5097},{},[5098,5103],{"type":23,"tag":85,"props":5099,"children":5100},{},[5101],{"type":33,"value":5102},"Week 5-12:",{"type":33,"value":5104}," Develop MVP (if validated)",{"type":23,"tag":36,"props":5106,"children":5107},{},[5108],{"type":33,"value":5109},"This sequence costs a bit more than jumping straight into MVP. But it prevents you from building 8 weeks in the wrong direction.",{"type":23,"tag":24,"props":5111,"children":5112},{},[],{"type":23,"tag":36,"props":5114,"children":5115},{},[5116,5121],{"type":23,"tag":203,"props":5117,"children":5118},{},[5119],{"type":33,"value":5120},"Unsure what you need? We'll figure it out in 30 minutes. Free, no sales pitch. Promise – pinky swear.",{"type":33,"value":5122}," 🤞",{"title":866,"searchDepth":867,"depth":867,"links":5124},[5125,5126,5130,5134,5135],{"id":4597,"depth":867,"text":4600},{"id":4732,"depth":867,"text":4735,"children":5127},[5128,5129],{"id":4783,"depth":876,"text":4786},{"id":4812,"depth":876,"text":4815},{"id":4836,"depth":867,"text":4839,"children":5131},[5132,5133],{"id":4880,"depth":876,"text":4883},{"id":4909,"depth":876,"text":4912},{"id":4946,"depth":867,"text":4949},{"id":5046,"depth":867,"text":5049},"content:en:blog:mvp-vs-prototype.md","en/blog/mvp-vs-prototype.md","en/blog/mvp-vs-prototype",{"_path":5140,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":5141,"description":5142,"author":901,"date":5143,"category":4572,"tags":5144,"readingTime":5148,"featured":6,"slug":5149,"image":5150,"imageAlt":5151,"seoTitle":5152,"seoDescription":5153,"body":5154,"_type":890,"_id":5482,"_source":892,"_file":5483,"_stem":5484,"_extension":895},"/blog/clients-dont-know-what-they-want","Clients Don't Know What They Want (And That's Okay)","Why 'What do you need?' is the wrong question. And which one works better.","2025-11-10",[5145,5146,5147],"Discovery","Clients","UX",4,"clients-dont-know-what-they-want","blog_clientDiscovery.webp","Discovery Process Illustration","Clients Don't Know What They Want | BitBitHooray","Why the question 'What do you need?' doesn't work and what real discovery looks like.",{"type":20,"children":5155,"toc":5471},[5156,5161,5166,5171,5176,5181,5186,5192,5197,5202,5212,5218,5224,5229,5234,5239,5245,5250,5268,5273,5279,5284,5289,5295,5307,5312,5355,5360,5366,5371,5376,5384,5389,5397,5402,5410,5415,5421,5426,5454,5459,5462],{"type":23,"tag":36,"props":5157,"children":5158},{},[5159],{"type":33,"value":5160},"\"We need an app.\"",{"type":23,"tag":36,"props":5162,"children":5163},{},[5164],{"type":33,"value":5165},"Okay. For what?",{"type":23,"tag":36,"props":5167,"children":5168},{},[5169],{"type":33,"value":5170},"\"Well, for our customers.\"",{"type":23,"tag":36,"props":5172,"children":5173},{},[5174],{"type":33,"value":5175},"What should they do with it?",{"type":23,"tag":36,"props":5177,"children":5178},{},[5179],{"type":33,"value":5180},"\"Uh... various things, I guess.\"",{"type":23,"tag":36,"props":5182,"children":5183},{},[5184],{"type":33,"value":5185},"We have this conversation at least once a week. And every time we smile – because we know that's where the real work begins. 🐱‍💻",{"type":23,"tag":28,"props":5187,"children":5189},{"id":5188},"the-problem-with-what-do-you-need",[5190],{"type":33,"value":5191},"The Problem with \"What Do You Need?\"",{"type":23,"tag":36,"props":5193,"children":5194},{},[5195],{"type":33,"value":5196},"It's the most natural question in the world. And the most useless.",{"type":23,"tag":36,"props":5198,"children":5199},{},[5200],{"type":33,"value":5201},"Why? Because people are bad at articulating what they need. That's not criticism – it's human nature.",{"type":23,"tag":36,"props":5203,"children":5204},{},[5205,5210],{"type":23,"tag":85,"props":5206,"children":5207},{},[5208],{"type":33,"value":5209},"Henry Ford (allegedly):",{"type":33,"value":5211}," \"If I had asked people what they wanted, they would have said: faster horses.\"",{"type":23,"tag":28,"props":5213,"children":5215},{"id":5214},"the-better-questions",[5216],{"type":33,"value":5217},"The Better Questions",{"type":23,"tag":357,"props":5219,"children":5221},{"id":5220},"_1-what-annoys-you-the-most-right-now",[5222],{"type":33,"value":5223},"1. \"What annoys you the most right now?\"",{"type":23,"tag":36,"props":5225,"children":5226},{},[5227],{"type":33,"value":5228},"Problems are concrete. Solution wishes are abstract.",{"type":23,"tag":36,"props":5230,"children":5231},{},[5232],{"type":33,"value":5233},"When someone says \"I need a CRM\", ask: \"What's the concrete problem you're trying to solve?\"",{"type":23,"tag":36,"props":5235,"children":5236},{},[5237],{"type":33,"value":5238},"Often you'll hear: \"I'm losing track of my leads\" – and suddenly we're dealing with a real problem.",{"type":23,"tag":357,"props":5240,"children":5242},{"id":5241},"_2-how-do-you-do-this-today",[5243],{"type":33,"value":5244},"2. \"How do you do this today?\"",{"type":23,"tag":36,"props":5246,"children":5247},{},[5248],{"type":33,"value":5249},"Workarounds are gold. They show:",{"type":23,"tag":214,"props":5251,"children":5252},{},[5253,5258,5263],{"type":23,"tag":218,"props":5254,"children":5255},{},[5256],{"type":33,"value":5257},"What actually matters",{"type":23,"tag":218,"props":5259,"children":5260},{},[5261],{"type":33,"value":5262},"Where the pain is greatest",{"type":23,"tag":218,"props":5264,"children":5265},{},[5266],{"type":33,"value":5267},"What any solution must do at minimum",{"type":23,"tag":36,"props":5269,"children":5270},{},[5271],{"type":33,"value":5272},"If someone maintains a 47-tab Excel sheet, that's the feature list and priority in one. And yes, we've seen 100+ tabs. Respect for that. 🦕",{"type":23,"tag":357,"props":5274,"children":5276},{"id":5275},"_3-what-happens-if-nothing-changes",[5277],{"type":33,"value":5278},"3. \"What happens if nothing changes?\"",{"type":23,"tag":36,"props":5280,"children":5281},{},[5282],{"type":33,"value":5283},"This question filters nice-to-haves from must-haves.",{"type":23,"tag":36,"props":5285,"children":5286},{},[5287],{"type":33,"value":5288},"\"Would be nice if...\" vs. \"Then we lose money/customers/our minds.\"",{"type":23,"tag":28,"props":5290,"children":5292},{"id":5291},"what-real-discovery-means",[5293],{"type":33,"value":5294},"What Real Discovery Means",{"type":23,"tag":36,"props":5296,"children":5297},{},[5298,5300,5305],{"type":33,"value":5299},"Good agencies don't just take orders. They ",{"type":23,"tag":85,"props":5301,"children":5302},{},[5303],{"type":33,"value":5304},"understand",{"type":33,"value":5306}," first, then build.",{"type":23,"tag":36,"props":5308,"children":5309},{},[5310],{"type":33,"value":5311},"Our discovery process (first week of every project):",{"type":23,"tag":1257,"props":5313,"children":5314},{},[5315,5325,5335,5345],{"type":23,"tag":218,"props":5316,"children":5317},{},[5318,5323],{"type":23,"tag":85,"props":5319,"children":5320},{},[5321],{"type":33,"value":5322},"Stakeholder Interviews",{"type":33,"value":5324}," – Who has which perspective?",{"type":23,"tag":218,"props":5326,"children":5327},{},[5328,5333],{"type":23,"tag":85,"props":5329,"children":5330},{},[5331],{"type":33,"value":5332},"Problem Mapping",{"type":33,"value":5334}," – What's the actual problem behind the desired feature?",{"type":23,"tag":218,"props":5336,"children":5337},{},[5338,5343],{"type":23,"tag":85,"props":5339,"children":5340},{},[5341],{"type":33,"value":5342},"User Context",{"type":33,"value":5344}," – Who uses this thing, when, where, why?",{"type":23,"tag":218,"props":5346,"children":5347},{},[5348,5353],{"type":23,"tag":85,"props":5349,"children":5350},{},[5351],{"type":33,"value":5352},"Success Definition",{"type":33,"value":5354}," – How do we measure if it works?",{"type":23,"tag":36,"props":5356,"children":5357},{},[5358],{"type":33,"value":5359},"This takes time. But it saves weeks of wrong development.",{"type":23,"tag":28,"props":5361,"children":5363},{"id":5362},"when-clients-do-know-what-they-want",[5364],{"type":33,"value":5365},"When Clients Do Know What They Want",{"type":23,"tag":36,"props":5367,"children":5368},{},[5369],{"type":33,"value":5370},"Sometimes clients have very concrete ideas. That's not bad – but it needs testing.",{"type":23,"tag":36,"props":5372,"children":5373},{},[5374],{"type":33,"value":5375},"Our approach:",{"type":23,"tag":36,"props":5377,"children":5378},{},[5379],{"type":23,"tag":85,"props":5380,"children":5381},{},[5382],{"type":33,"value":5383},"\"Why exactly this feature?\"",{"type":23,"tag":36,"props":5385,"children":5386},{},[5387],{"type":33,"value":5388},"Usually there's a problem behind it that can be solved differently (sometimes better).",{"type":23,"tag":36,"props":5390,"children":5391},{},[5392],{"type":23,"tag":85,"props":5393,"children":5394},{},[5395],{"type":33,"value":5396},"\"What if we DON'T build this?\"",{"type":23,"tag":36,"props":5398,"children":5399},{},[5400],{"type":33,"value":5401},"Sorts wishes from necessities.",{"type":23,"tag":36,"props":5403,"children":5404},{},[5405],{"type":23,"tag":85,"props":5406,"children":5407},{},[5408],{"type":33,"value":5409},"\"Who asked for this?\"",{"type":23,"tag":36,"props":5411,"children":5412},{},[5413],{"type":33,"value":5414},"A feature one customer mentioned once ≠ validated need.",{"type":23,"tag":28,"props":5416,"children":5418},{"id":5417},"the-result-of-good-discovery",[5419],{"type":33,"value":5420},"The Result of Good Discovery",{"type":23,"tag":36,"props":5422,"children":5423},{},[5424],{"type":33,"value":5425},"After one week of discovery, we have:",{"type":23,"tag":214,"props":5427,"children":5428},{},[5429,5434,5439,5444,5449],{"type":23,"tag":218,"props":5430,"children":5431},{},[5432],{"type":33,"value":5433},"✅ Clear problem statement",{"type":23,"tag":218,"props":5435,"children":5436},{},[5437],{"type":33,"value":5438},"✅ Defined target audience",{"type":23,"tag":218,"props":5440,"children":5441},{},[5442],{"type":33,"value":5443},"✅ Prioritized feature list (not wish list)",{"type":23,"tag":218,"props":5445,"children":5446},{},[5447],{"type":33,"value":5448},"✅ Success criteria",{"type":23,"tag":218,"props":5450,"children":5451},{},[5452],{"type":33,"value":5453},"✅ Shared understanding",{"type":23,"tag":36,"props":5455,"children":5456},{},[5457],{"type":33,"value":5458},"That's something you can build on. Without discovery, you're building in fog.",{"type":23,"tag":24,"props":5460,"children":5461},{},[],{"type":23,"tag":36,"props":5463,"children":5464},{},[5465,5470],{"type":23,"tag":203,"props":5466,"children":5467},{},[5468],{"type":33,"value":5469},"Got a project coming up? Start with discovery, not a wish list. We bring the right questions – and good vibes.",{"type":33,"value":4551},{"title":866,"searchDepth":867,"depth":867,"links":5472},[5473,5474,5479,5480,5481],{"id":5188,"depth":867,"text":5191},{"id":5214,"depth":867,"text":5217,"children":5475},[5476,5477,5478],{"id":5220,"depth":876,"text":5223},{"id":5241,"depth":876,"text":5244},{"id":5275,"depth":876,"text":5278},{"id":5291,"depth":867,"text":5294},{"id":5362,"depth":867,"text":5365},{"id":5417,"depth":867,"text":5420},"content:en:blog:clients-dont-know-what-they-want.md","en/blog/clients-dont-know-what-they-want.md","en/blog/clients-dont-know-what-they-want",{"_path":5486,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":5487,"description":5488,"author":901,"date":5489,"category":3249,"tags":5490,"readingTime":4577,"featured":6,"slug":5493,"image":5494,"imageAlt":5495,"seoTitle":5496,"seoDescription":5497,"body":5498,"_type":890,"_id":5959,"_source":892,"_file":5960,"_stem":5961,"_extension":895},"/blog/no-code-is-not-code","No-Code Is Not Code","Why Webflow, Bubble & Co. aren't the solution for everything – and when they actually are.","2025-10-22",[5491,5492,3249],"No-Code","Webflow","no-code-is-not-code","blog_noCode.webp","No-Code vs Code Illustration","No-Code Is Not Code | BitBitHooray","When No-Code tools make sense and when you actually need developers.",{"type":20,"children":5499,"toc":5933},[5500,5505,5517,5523,5546,5552,5575,5581,5587,5592,5610,5620,5624,5629,5647,5656,5662,5667,5685,5694,5700,5706,5711,5716,5722,5727,5733,5738,5743,5749,5754,5760,5766,5771,5777,5782,5788,5793,5806,5810,5816,5839,5845,5868,5874,5892,5898,5910,5915,5920,5923],{"type":23,"tag":36,"props":5501,"children":5502},{},[5503],{"type":33,"value":5504},"\"We'll build this in Webflow, it's faster.\"",{"type":23,"tag":36,"props":5506,"children":5507},{},[5508,5510,5515],{"type":33,"value":5509},"Sometimes that's true. Often not. And then it gets expensive. Very expensive. ",{"type":23,"tag":203,"props":5511,"children":5512},{},[5513],{"type":33,"value":5514},"sigh",{"type":33,"value":5516}," 🐱",{"type":23,"tag":28,"props":5518,"children":5520},{"id":5519},"the-no-code-promises",[5521],{"type":33,"value":5522},"The No-Code Promises",{"type":23,"tag":1257,"props":5524,"children":5525},{},[5526,5531,5536,5541],{"type":23,"tag":218,"props":5527,"children":5528},{},[5529],{"type":33,"value":5530},"✅ Faster",{"type":23,"tag":218,"props":5532,"children":5533},{},[5534],{"type":33,"value":5535},"✅ Cheaper",{"type":23,"tag":218,"props":5537,"children":5538},{},[5539],{"type":33,"value":5540},"✅ No developers needed",{"type":23,"tag":218,"props":5542,"children":5543},{},[5544],{"type":33,"value":5545},"✅ Self-maintainable",{"type":23,"tag":28,"props":5547,"children":5549},{"id":5548},"the-no-code-reality",[5550],{"type":33,"value":5551},"The No-Code Reality",{"type":23,"tag":1257,"props":5553,"children":5554},{},[5555,5560,5565,5570],{"type":23,"tag":218,"props":5556,"children":5557},{},[5558],{"type":33,"value":5559},"⚠️ Faster – for simple things",{"type":23,"tag":218,"props":5561,"children":5562},{},[5563],{"type":33,"value":5564},"⚠️ Cheaper – at the start",{"type":23,"tag":218,"props":5566,"children":5567},{},[5568],{"type":33,"value":5569},"❌ No developers – until you hit limits",{"type":23,"tag":218,"props":5571,"children":5572},{},[5573],{"type":33,"value":5574},"⚠️ Self-maintainable – until it gets complex",{"type":23,"tag":28,"props":5576,"children":5578},{"id":5577},"when-no-code-absolutely-makes-sense",[5579],{"type":33,"value":5580},"When No-Code Absolutely Makes Sense",{"type":23,"tag":357,"props":5582,"children":5584},{"id":5583},"landing-pages",[5585],{"type":33,"value":5586},"Landing Pages",{"type":23,"tag":36,"props":5588,"children":5589},{},[5590],{"type":33,"value":5591},"Webflow, Framer, Carrd – perfect for:",{"type":23,"tag":214,"props":5593,"children":5594},{},[5595,5600,5605],{"type":23,"tag":218,"props":5596,"children":5597},{},[5598],{"type":33,"value":5599},"Marketing sites",{"type":23,"tag":218,"props":5601,"children":5602},{},[5603],{"type":33,"value":5604},"Event pages",{"type":23,"tag":218,"props":5606,"children":5607},{},[5608],{"type":33,"value":5609},"Product launch pages",{"type":23,"tag":36,"props":5611,"children":5612},{},[5613,5618],{"type":23,"tag":85,"props":5614,"children":5615},{},[5616],{"type":33,"value":5617},"Why:",{"type":33,"value":5619}," Quickly changeable, no overkill, marketing can edit themselves.",{"type":23,"tag":357,"props":5621,"children":5622},{"id":447},[5623],{"type":33,"value":450},{"type":23,"tag":36,"props":5625,"children":5626},{},[5627],{"type":33,"value":5628},"Notion, Airtable, Retool – perfect for:",{"type":23,"tag":214,"props":5630,"children":5631},{},[5632,5637,5642],{"type":23,"tag":218,"props":5633,"children":5634},{},[5635],{"type":33,"value":5636},"Process documentation",{"type":23,"tag":218,"props":5638,"children":5639},{},[5640],{"type":33,"value":5641},"Simple CRMs",{"type":23,"tag":218,"props":5643,"children":5644},{},[5645],{"type":33,"value":5646},"Dashboards",{"type":23,"tag":36,"props":5648,"children":5649},{},[5650,5654],{"type":23,"tag":85,"props":5651,"children":5652},{},[5653],{"type":33,"value":5617},{"type":33,"value":5655}," Nobody outside your team sees the limitations.",{"type":23,"tag":357,"props":5657,"children":5659},{"id":5658},"prototypes",[5660],{"type":33,"value":5661},"Prototypes",{"type":23,"tag":36,"props":5663,"children":5664},{},[5665],{"type":33,"value":5666},"Figma, Framer – perfect for:",{"type":23,"tag":214,"props":5668,"children":5669},{},[5670,5675,5680],{"type":23,"tag":218,"props":5671,"children":5672},{},[5673],{"type":33,"value":5674},"Concept validation",{"type":23,"tag":218,"props":5676,"children":5677},{},[5678],{"type":33,"value":5679},"User tests",{"type":23,"tag":218,"props":5681,"children":5682},{},[5683],{"type":33,"value":5684},"Stakeholder presentations",{"type":23,"tag":36,"props":5686,"children":5687},{},[5688,5692],{"type":23,"tag":85,"props":5689,"children":5690},{},[5691],{"type":33,"value":5617},{"type":33,"value":5693}," It doesn't need to scale, just convince.",{"type":23,"tag":28,"props":5695,"children":5697},{"id":5696},"when-no-code-becomes-problematic",[5698],{"type":33,"value":5699},"When No-Code Becomes Problematic",{"type":23,"tag":357,"props":5701,"children":5703},{"id":5702},"complex-logic",[5704],{"type":33,"value":5705},"Complex Logic",{"type":23,"tag":36,"props":5707,"children":5708},{},[5709],{"type":33,"value":5710},"\"When user has done X and Y days have passed and Z...\"",{"type":23,"tag":36,"props":5712,"children":5713},{},[5714],{"type":33,"value":5715},"No-code tools become a nightmare with complex business logic. Workarounds pile up, nobody understands what's happening anymore. It's like playing Jenga blindfolded. 🧱😵",{"type":23,"tag":357,"props":5717,"children":5719},{"id":5718},"performance-critical-applications",[5720],{"type":33,"value":5721},"Performance-Critical Applications",{"type":23,"tag":36,"props":5723,"children":5724},{},[5725],{"type":33,"value":5726},"No-code doesn't generate the cleanest code. Doesn't matter for marketing sites, problematic for apps with thousands of users.",{"type":23,"tag":357,"props":5728,"children":5730},{"id":5729},"custom-features",[5731],{"type":33,"value":5732},"Custom Features",{"type":23,"tag":36,"props":5734,"children":5735},{},[5736],{"type":33,"value":5737},"\"Can we quickly...\" – this sentence kills no-code projects.",{"type":23,"tag":36,"props":5739,"children":5740},{},[5741],{"type":33,"value":5742},"Every feature outside the standard toolbox becomes a battle.",{"type":23,"tag":357,"props":5744,"children":5746},{"id":5745},"long-term-scaling",[5747],{"type":33,"value":5748},"Long-Term Scaling",{"type":23,"tag":36,"props":5750,"children":5751},{},[5752],{"type":33,"value":5753},"What works with 100 entries breaks at 10,000. What runs for 3 users dies at 300.",{"type":23,"tag":28,"props":5755,"children":5757},{"id":5756},"the-hidden-costs",[5758],{"type":33,"value":5759},"The Hidden Costs",{"type":23,"tag":357,"props":5761,"children":5763},{"id":5762},"lock-in",[5764],{"type":33,"value":5765},"Lock-in",{"type":23,"tag":36,"props":5767,"children":5768},{},[5769],{"type":33,"value":5770},"Your entire product depends on one provider. If Bubble doubles their prices (has happened), you have no option except pay or completely rebuild.",{"type":23,"tag":357,"props":5772,"children":5774},{"id":5773},"performance",[5775],{"type":33,"value":5776},"Performance",{"type":23,"tag":36,"props":5778,"children":5779},{},[5780],{"type":33,"value":5781},"Auto-generated code is rarely optimal. Doesn't matter for small sites, a problem for larger projects.",{"type":23,"tag":357,"props":5783,"children":5785},{"id":5784},"limits",[5786],{"type":33,"value":5787},"Limits",{"type":23,"tag":36,"props":5789,"children":5790},{},[5791],{"type":33,"value":5792},"Eventually you'll hit a limit. Then you have two options:",{"type":23,"tag":1257,"props":5794,"children":5795},{},[5796,5801],{"type":23,"tag":218,"props":5797,"children":5798},{},[5799],{"type":33,"value":5800},"Dirty workaround (makes everything worse)",{"type":23,"tag":218,"props":5802,"children":5803},{},[5804],{"type":33,"value":5805},"Real development (could have done that from the start)",{"type":23,"tag":28,"props":5807,"children":5808},{"id":3943},[5809],{"type":33,"value":3946},{"type":23,"tag":357,"props":5811,"children":5813},{"id":5812},"no-code-when",[5814],{"type":33,"value":5815},"No-Code when:",{"type":23,"tag":214,"props":5817,"children":5818},{},[5819,5824,5829,5834],{"type":23,"tag":218,"props":5820,"children":5821},{},[5822],{"type":33,"value":5823},"Marketing site / landing page",{"type":23,"tag":218,"props":5825,"children":5826},{},[5827],{"type":33,"value":5828},"MVP for validation (not for scaling)",{"type":23,"tag":218,"props":5830,"children":5831},{},[5832],{"type":33,"value":5833},"Internal tool",{"type":23,"tag":218,"props":5835,"children":5836},{},[5837],{"type":33,"value":5838},"Budget \u003C €10k",{"type":23,"tag":357,"props":5840,"children":5842},{"id":5841},"custom-code-when",[5843],{"type":33,"value":5844},"Custom Code when:",{"type":23,"tag":214,"props":5846,"children":5847},{},[5848,5853,5858,5863],{"type":23,"tag":218,"props":5849,"children":5850},{},[5851],{"type":33,"value":5852},"Product is the business",{"type":23,"tag":218,"props":5854,"children":5855},{},[5856],{"type":33,"value":5857},"Performance matters",{"type":23,"tag":218,"props":5859,"children":5860},{},[5861],{"type":33,"value":5862},"Complex features foreseeable",{"type":23,"tag":218,"props":5864,"children":5865},{},[5866],{"type":33,"value":5867},"Long-term development planned",{"type":23,"tag":357,"props":5869,"children":5871},{"id":5870},"hybrid-when",[5872],{"type":33,"value":5873},"Hybrid when:",{"type":23,"tag":214,"props":5875,"children":5876},{},[5877,5882,5887],{"type":23,"tag":218,"props":5878,"children":5879},{},[5880],{"type":33,"value":5881},"CMS for content (Sanity, Strapi)",{"type":23,"tag":218,"props":5883,"children":5884},{},[5885],{"type":33,"value":5886},"Custom frontend",{"type":23,"tag":218,"props":5888,"children":5889},{},[5890],{"type":33,"value":5891},"Best of both worlds",{"type":23,"tag":28,"props":5893,"children":5895},{"id":5894},"the-honest-truth",[5896],{"type":33,"value":5897},"The Honest Truth",{"type":23,"tag":36,"props":5899,"children":5900},{},[5901,5903,5908],{"type":33,"value":5902},"No-code tools are fantastic for ",{"type":23,"tag":85,"props":5904,"children":5905},{},[5906],{"type":33,"value":5907},"what they're made for",{"type":33,"value":5909},". The problem: They're often used for something else.",{"type":23,"tag":36,"props":5911,"children":5912},{},[5913],{"type":33,"value":5914},"We regularly recommend Webflow – for marketing sites. For products, we never do.",{"type":23,"tag":36,"props":5916,"children":5917},{},[5918],{"type":33,"value":5919},"The most expensive code is code you have to write twice. Whether no-code or custom.",{"type":23,"tag":24,"props":5921,"children":5922},{},[],{"type":23,"tag":36,"props":5924,"children":5925},{},[5926,5931],{"type":23,"tag":203,"props":5927,"children":5928},{},[5929],{"type":33,"value":5930},"Unsure which path is right? A 30-minute conversation clears that up. We don't bite – even though we have dinos on the team.",{"type":33,"value":5932}," 🦕",{"title":866,"searchDepth":867,"depth":867,"links":5934},[5935,5936,5937,5942,5948,5953,5958],{"id":5519,"depth":867,"text":5522},{"id":5548,"depth":867,"text":5551},{"id":5577,"depth":867,"text":5580,"children":5938},[5939,5940,5941],{"id":5583,"depth":876,"text":5586},{"id":447,"depth":876,"text":450},{"id":5658,"depth":876,"text":5661},{"id":5696,"depth":867,"text":5699,"children":5943},[5944,5945,5946,5947],{"id":5702,"depth":876,"text":5705},{"id":5718,"depth":876,"text":5721},{"id":5729,"depth":876,"text":5732},{"id":5745,"depth":876,"text":5748},{"id":5756,"depth":867,"text":5759,"children":5949},[5950,5951,5952],{"id":5762,"depth":876,"text":5765},{"id":5773,"depth":876,"text":5776},{"id":5784,"depth":876,"text":5787},{"id":3943,"depth":867,"text":3946,"children":5954},[5955,5956,5957],{"id":5812,"depth":876,"text":5815},{"id":5841,"depth":876,"text":5844},{"id":5870,"depth":876,"text":5873},{"id":5894,"depth":867,"text":5897},"content:en:blog:no-code-is-not-code.md","en/blog/no-code-is-not-code.md","en/blog/no-code-is-not-code",{"_path":5963,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":5964,"description":5965,"slug":5966,"author":11,"authorImage":12,"role":2784,"date":5967,"category":903,"image":5968,"seoTitle":5969,"seoDescription":5970,"body":5971,"_type":890,"_id":6405,"_source":892,"_file":6406,"_stem":6407,"_extension":895},"/blog/quantum-noise-based-api-response-individualization","Quantum Noise: The Gamechanger Against Billion-Dollar API Hacks","A paradigm shift for the security of open API key models using quantum noise-based response individualization.","quantum-noise-based-api-response-individualization","2025-08-27","openapi.webp","Quantum Noise API Security: Revolutionary Protection Against API Hacks","Revolutionary quantum noise-based API response individualization (Q-API-RI) - the paradigm shift to protect against billion-dollar API security breaches.",{"type":20,"children":5972,"toc":6382},[5973,5979,5985,5990,5999,6004,6010,6015,6021,6039,6044,6050,6093,6099,6104,6127,6133,6138,6144,6162,6168,6186,6192,6215,6221,6233,6239,6282,6288,6293,6299,6352,6358,6367,6372],{"type":23,"tag":28,"props":5974,"children":5976},{"id":5975},"a-paradigm-shift-for-the-security-of-open-api-key-models",[5977],{"type":33,"value":5978},"A Paradigm Shift for the Security of Open API Key Models",{"type":23,"tag":28,"props":5980,"children":5982},{"id":5981},"_1-introduction-the-underestimated-achilles-heel-of-digitalization",[5983],{"type":33,"value":5984},"1. Introduction: The Underestimated Achilles Heel of Digitalization",{"type":23,"tag":36,"props":5986,"children":5987},{},[5988],{"type":33,"value":5989},"APIs are the nervous system of our digital world. They connect cloud services, control IoT devices, enable fintech innovations, orchestrate supply chains, and make modern software development possible in the first place. Yet it is precisely in this backbone that a dangerous vulnerability lurks: open API keys. And no, this isn't a small kitten problem – it's a full-grown T-Rex. 🦖",{"type":23,"tag":2807,"props":5991,"children":5993},{"id":5992},"anyone-who-knows-the-key-can-use-the-api-and-that-is-exactly-what-makes-our-digital-foundation-vulnerable",[5994],{"type":23,"tag":85,"props":5995,"children":5996},{},[5997],{"type":33,"value":5998},"\"Anyone who knows the key can use the API – and that is exactly what makes our digital foundation vulnerable.\"",{"type":23,"tag":36,"props":6000,"children":6001},{},[6002],{"type":33,"value":6003},"What long seemed like a practical solution for developers has become a global risk today. In times of artificial intelligence and automated attacks, a single exposed key is enough to destabilize entire systems.",{"type":23,"tag":28,"props":6005,"children":6007},{"id":6006},"_2-open-api-keys-the-invisible-gateway",[6008],{"type":33,"value":6009},"2. Open API Keys: The Invisible Gateway",{"type":23,"tag":36,"props":6011,"children":6012},{},[6013],{"type":33,"value":6014},"Open API keys are no secret – they are deliberately placed in client code to make integration as simple as possible. But this convenience turns into a nightmare as soon as attackers come into play.",{"type":23,"tag":357,"props":6016,"children":6018},{"id":6017},"technical-background",[6019],{"type":33,"value":6020},"Technical Background",{"type":23,"tag":214,"props":6022,"children":6023},{},[6024,6029,6034],{"type":23,"tag":218,"props":6025,"children":6026},{},[6027],{"type":33,"value":6028},"API keys are deliberately visible in the client.",{"type":23,"tag":218,"props":6030,"children":6031},{},[6032],{"type":33,"value":6033},"They usually serve only for identification, not for strong authentication.",{"type":23,"tag":218,"props":6035,"children":6036},{},[6037],{"type":33,"value":6038},"Protective mechanisms such as rate limiting, IP blocking, and monitoring are standard, but easy to bypass.",{"type":23,"tag":36,"props":6040,"children":6041},{},[6042],{"type":33,"value":6043},"AI systems are now systematically scanning repositories, apps, and websites. Automated platforms can send millions of requests within minutes, exhaust quotas, and cripple entire services.",{"type":23,"tag":357,"props":6045,"children":6047},{"id":6046},"why-traditional-protection-measures-fail",[6048],{"type":33,"value":6049},"Why Traditional Protection Measures Fail",{"type":23,"tag":214,"props":6051,"children":6052},{},[6053,6063,6073,6083],{"type":23,"tag":218,"props":6054,"children":6055},{},[6056,6061],{"type":23,"tag":85,"props":6057,"children":6058},{},[6059],{"type":33,"value":6060},"Rate limiting:",{"type":33,"value":6062}," easily bypassed by botnets.",{"type":23,"tag":218,"props":6064,"children":6065},{},[6066,6071],{"type":23,"tag":85,"props":6067,"children":6068},{},[6069],{"type":33,"value":6070},"IP blocking:",{"type":33,"value":6072}," fails against distributed cloud-based attacks.",{"type":23,"tag":218,"props":6074,"children":6075},{},[6076,6081],{"type":23,"tag":85,"props":6077,"children":6078},{},[6079],{"type":33,"value":6080},"Monitoring:",{"type":33,"value":6082}," often detects attacks only after damage has already occurred.",{"type":23,"tag":218,"props":6084,"children":6085},{},[6086,6091],{"type":23,"tag":85,"props":6087,"children":6088},{},[6089],{"type":33,"value":6090},"CAPTCHAs:",{"type":33,"value":6092}," useless for APIs and disruptive to user experience.",{"type":23,"tag":28,"props":6094,"children":6096},{"id":6095},"_3-the-ai-driven-api-crisis",[6097],{"type":33,"value":6098},"3. The AI-Driven API Crisis",{"type":23,"tag":36,"props":6100,"children":6101},{},[6102],{"type":33,"value":6103},"Imagine the following scenario: A hacker group develops an AI-powered system that automatically searches for open API keys. Within a few days, thousands of valid keys from major platforms such as payment services, cloud providers, or logistics systems are compromised. Then the actual attack begins: millions of requests per second cause quotas to explode, costs to skyrocket, and critical services to collapse. Supply chains grind to a halt, financial transactions fail, communication networks break down. The damage: billions in losses – and a global breakdown of trust in digital systems.",{"type":23,"tag":214,"props":6105,"children":6106},{},[6107,6112,6117,6122],{"type":23,"tag":218,"props":6108,"children":6109},{},[6110],{"type":33,"value":6111},"Millions of requests per second",{"type":23,"tag":218,"props":6113,"children":6114},{},[6115],{"type":33,"value":6116},"Quota explosions, cost avalanches, legitimate users locked out",{"type":23,"tag":218,"props":6118,"children":6119},{},[6120],{"type":33,"value":6121},"Outages in logistics, payment services, and critical infrastructure",{"type":23,"tag":218,"props":6123,"children":6124},{},[6125],{"type":33,"value":6126},"Billions in damages, loss of trust, geopolitical tensions",{"type":23,"tag":28,"props":6128,"children":6130},{"id":6129},"_4-a-global-risk-for-economy-politics-and-society",[6131],{"type":33,"value":6132},"4. A Global Risk for Economy, Politics, and Society",{"type":23,"tag":36,"props":6134,"children":6135},{},[6136],{"type":33,"value":6137},"The consequences would be dramatic: companies would lose not only money but also customer trust. Governments would be under pressure to immediately introduce stricter regulations. And we as a society would feel the effects directly.",{"type":23,"tag":357,"props":6139,"children":6141},{"id":6140},"economic-consequences",[6142],{"type":33,"value":6143},"Economic Consequences",{"type":23,"tag":214,"props":6145,"children":6146},{},[6147,6152,6157],{"type":23,"tag":218,"props":6148,"children":6149},{},[6150],{"type":33,"value":6151},"Billions in damages due to outages and misuse",{"type":23,"tag":218,"props":6153,"children":6154},{},[6155],{"type":33,"value":6156},"Disruption of global supply chains and business processes",{"type":23,"tag":218,"props":6158,"children":6159},{},[6160],{"type":33,"value":6161},"Lasting loss of trust in digital services",{"type":23,"tag":357,"props":6163,"children":6165},{"id":6164},"political-consequences",[6166],{"type":33,"value":6167},"Political Consequences",{"type":23,"tag":214,"props":6169,"children":6170},{},[6171,6176,6181],{"type":23,"tag":218,"props":6172,"children":6173},{},[6174],{"type":33,"value":6175},"Governments pressured to introduce stricter regulations",{"type":23,"tag":218,"props":6177,"children":6178},{},[6179],{"type":33,"value":6180},"International tensions through blame-shifting",{"type":23,"tag":218,"props":6182,"children":6183},{},[6184],{"type":33,"value":6185},"Massive investments in cybersecurity",{"type":23,"tag":357,"props":6187,"children":6189},{"id":6188},"societal-consequences",[6190],{"type":33,"value":6191},"Societal Consequences",{"type":23,"tag":214,"props":6193,"children":6194},{},[6195,6200,6205,6210],{"type":23,"tag":218,"props":6196,"children":6197},{},[6198],{"type":33,"value":6199},"Restriction of essential services such as banking or healthcare",{"type":23,"tag":218,"props":6201,"children":6202},{},[6203],{"type":33,"value":6204},"Loss of sensitive data → identity theft, fraud",{"type":23,"tag":218,"props":6206,"children":6207},{},[6208],{"type":33,"value":6209},"Increase in cybercrime",{"type":23,"tag":218,"props":6211,"children":6212},{},[6213],{"type":33,"value":6214},"Uncertainty and altered user behavior",{"type":23,"tag":28,"props":6216,"children":6218},{"id":6217},"_5-the-way-out-quantum-noise-as-the-key",[6219],{"type":33,"value":6220},"5. The Way Out: Quantum Noise as the Key",{"type":23,"tag":36,"props":6222,"children":6223},{},[6224,6226,6231],{"type":33,"value":6225},"The innovative approach of ",{"type":23,"tag":85,"props":6227,"children":6228},{},[6229],{"type":33,"value":6230},"Quantum Noise-Supported API Response Individualization (Q-API-RI)",{"type":33,"value":6232}," could change the game. Instead of relying on static keys, each client generates a unique, hardware-based signal from quantum noise for every request. This signal cannot be copied, predicted, or reused. The server verifies its authenticity in real time – and only then provides a valid, individually encrypted response.",{"type":23,"tag":357,"props":6234,"children":6236},{"id":6235},"the-benefits-at-a-glance",[6237],{"type":33,"value":6238},"The Benefits at a Glance",{"type":23,"tag":214,"props":6240,"children":6241},{},[6242,6252,6262,6272],{"type":23,"tag":218,"props":6243,"children":6244},{},[6245,6250],{"type":23,"tag":85,"props":6246,"children":6247},{},[6248],{"type":33,"value":6249},"Not copyable:",{"type":33,"value":6251}," hardware-bound, unpredictable signal",{"type":23,"tag":218,"props":6253,"children":6254},{},[6255,6260],{"type":23,"tag":85,"props":6256,"children":6257},{},[6258],{"type":33,"value":6259},"Not automatable:",{"type":33,"value":6261}," mass attacks impossible without hardware",{"type":23,"tag":218,"props":6263,"children":6264},{},[6265,6270],{"type":23,"tag":85,"props":6266,"children":6267},{},[6268],{"type":33,"value":6269},"No static secret:",{"type":33,"value":6271}," no captured key can be reused",{"type":23,"tag":218,"props":6273,"children":6274},{},[6275,6280],{"type":23,"tag":85,"props":6276,"children":6277},{},[6278],{"type":33,"value":6279},"Real-time protection:",{"type":33,"value":6281}," prevents replay attacks and interception of usable data",{"type":23,"tag":28,"props":6283,"children":6285},{"id":6284},"_6-challenges-and-opportunities",[6286],{"type":33,"value":6287},"6. Challenges – and Opportunities",{"type":23,"tag":36,"props":6289,"children":6290},{},[6291],{"type":33,"value":6292},"Of course, the path forward is not an easy one. Not every device today has the necessary hardware. Standards are missing, and integration into existing systems is complex. Yet this is precisely where the opportunity lies: those who act now, start pilot projects, and set standards can help shape the future of API security.",{"type":23,"tag":357,"props":6294,"children":6296},{"id":6295},"the-biggest-hurdles",[6297],{"type":33,"value":6298},"The Biggest Hurdles",{"type":23,"tag":214,"props":6300,"children":6301},{},[6302,6312,6322,6332,6342],{"type":23,"tag":218,"props":6303,"children":6304},{},[6305,6310],{"type":23,"tag":85,"props":6306,"children":6307},{},[6308],{"type":33,"value":6309},"Hardware availability:",{"type":33,"value":6311}," not all devices have random generators",{"type":23,"tag":218,"props":6313,"children":6314},{},[6315,6320],{"type":23,"tag":85,"props":6316,"children":6317},{},[6318],{"type":33,"value":6319},"Standardization:",{"type":33,"value":6321}," lack of norms for generation and verification",{"type":23,"tag":218,"props":6323,"children":6324},{},[6325,6330],{"type":23,"tag":85,"props":6326,"children":6327},{},[6328],{"type":33,"value":6329},"Onboarding & usability:",{"type":33,"value":6331}," developers need SDKs and toolkits",{"type":23,"tag":218,"props":6333,"children":6334},{},[6335,6340],{"type":23,"tag":85,"props":6336,"children":6337},{},[6338],{"type":33,"value":6339},"Compatibility:",{"type":33,"value":6341}," APIs must maintain backward compatibility",{"type":23,"tag":218,"props":6343,"children":6344},{},[6345,6350],{"type":23,"tag":85,"props":6346,"children":6347},{},[6348],{"type":33,"value":6349},"Costs:",{"type":33,"value":6351}," infrastructure, hardware, and training are expensive",{"type":23,"tag":28,"props":6353,"children":6355},{"id":6354},"_7-conclusion-act-before-its-too-late",[6356],{"type":33,"value":6357},"7. Conclusion: Act Before It's Too Late",{"type":23,"tag":357,"props":6359,"children":6361},{"id":6360},"open-api-keys-are-relics-of-the-past-the-future-belongs-to-hardware-based-individualized-protection-mechanisms-otherwise-we-risk-the-collapse-of-our-digital-infrastructure",[6362],{"type":23,"tag":85,"props":6363,"children":6364},{},[6365],{"type":33,"value":6366},"\"Open API keys are relics of the past. The future belongs to hardware-based, individualized protection mechanisms – otherwise, we risk the collapse of our digital infrastructure.\"",{"type":23,"tag":36,"props":6368,"children":6369},{},[6370],{"type":33,"value":6371},"The threat is real, the attacks are already here. Open API keys can no longer protect us. With quantum noise-supported API response individualization, a radically new approach is available that fundamentally complicates mass attacks. The question is not whether we must act – but how fast. Now is the time to invest, standardize, and pilot. Before the next wave of attacks comes.",{"type":23,"tag":36,"props":6373,"children":6374},{},[6375,6380],{"type":23,"tag":203,"props":6376,"children":6377},{},[6378],{"type":33,"value":6379},"Stay safe out there, folks.",{"type":33,"value":6381}," 🔐🚀",{"title":866,"searchDepth":867,"depth":867,"links":6383},[6384,6385,6386,6390,6391,6396,6399,6402],{"id":5975,"depth":867,"text":5978},{"id":5981,"depth":867,"text":5984},{"id":6006,"depth":867,"text":6009,"children":6387},[6388,6389],{"id":6017,"depth":876,"text":6020},{"id":6046,"depth":876,"text":6049},{"id":6095,"depth":867,"text":6098},{"id":6129,"depth":867,"text":6132,"children":6392},[6393,6394,6395],{"id":6140,"depth":876,"text":6143},{"id":6164,"depth":876,"text":6167},{"id":6188,"depth":876,"text":6191},{"id":6217,"depth":867,"text":6220,"children":6397},[6398],{"id":6235,"depth":876,"text":6238},{"id":6284,"depth":867,"text":6287,"children":6400},[6401],{"id":6295,"depth":876,"text":6298},{"id":6354,"depth":867,"text":6357,"children":6403},[6404],{"id":6360,"depth":876,"text":6366},"content:en:blog:quantum-noise-based-api-response-individualization.md","en/blog/quantum-noise-based-api-response-individualization.md","en/blog/quantum-noise-based-api-response-individualization",{"_path":6409,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":6410,"description":6411,"slug":6412,"author":11,"authorImage":12,"role":2784,"date":6413,"category":6414,"image":6415,"seoTitle":6416,"seoDescription":6417,"body":6418,"_type":890,"_id":6687,"_source":892,"_file":6688,"_stem":6689,"_extension":895},"/blog/why-do-agile-teams-need-design","Why do agile teams need design?","Understanding why customer-focused design experts are essential for truly agile teams.","why-do-agile-teams-need-design","2025-03-30","Agile","blog_agileTeamsDesign.webp","Why Agile Teams Need Design: Customer-Centric Development","Discover why customer-focused design experts are essential for truly agile teams. Learn how design prevents feature factories and drives value.",{"type":20,"children":6419,"toc":6671},[6420,6426,6431,6436,6449,6454,6464,6470,6475,6498,6503,6513,6518,6524,6530,6535,6540,6545,6551,6574,6580,6598,6604,6622,6628,6634,6639,6645,6650,6656,6661,6666],{"type":23,"tag":28,"props":6421,"children":6423},{"id":6422},"what-is-the-point-of-agile",[6424],{"type":33,"value":6425},"What is the point of agile?",{"type":23,"tag":36,"props":6427,"children":6428},{},[6429],{"type":33,"value":6430},"The concept of agile software development was invented by a group of people who hoped for better projects. In practice, it caught on around the world as an antidote to traditional linear development projects that took forever, ate up a lot of money and ultimately burnt out teams, but still failed to add value for customers.",{"type":23,"tag":36,"props":6432,"children":6433},{},[6434],{"type":33,"value":6435},"Agile teams recognise their work so that they:",{"type":23,"tag":1257,"props":6437,"children":6438},{},[6439,6444],{"type":23,"tag":218,"props":6440,"children":6441},{},[6442],{"type":33,"value":6443},"create value for customers early and continuously by focusing on the goals that create the most value with the least effort",{"type":23,"tag":218,"props":6445,"children":6446},{},[6447],{"type":33,"value":6448},"constantly improve the way they work",{"type":23,"tag":36,"props":6450,"children":6451},{},[6452],{"type":33,"value":6453},"This is done by building a work culture based on independence, trust and psychological safety that allows the team to reflect on their results and change their goals when necessary.",{"type":23,"tag":36,"props":6455,"children":6456},{},[6457,6459],{"type":33,"value":6458},"In Conclusion: ",{"type":23,"tag":85,"props":6460,"children":6461},{},[6462],{"type":33,"value":6463},"A collaborative team focused on value.",{"type":23,"tag":28,"props":6465,"children":6467},{"id":6466},"how-can-it-go-wrong-welcome-to-the-feature-factory",[6468],{"type":33,"value":6469},"How can it go wrong? Welcome to the feature factory!",{"type":23,"tag":36,"props":6471,"children":6472},{},[6473],{"type":33,"value":6474},"In practice, the main reasons for an agile way of working are easily forgotten. Teams focus too much on the typical agile rituals and structures like sprints, scrum masters, product owners, kanban tickets and so on. While all these things can support effective teamwork, they do not make a team agile by themselves. If these structures and rituals overuse the meaning of agile, the team can turn into a feature factory. And that's about as fun as it sounds – not at all. 🏭🙅 The following are the main points by which we can quickly recognise a feature factory.",{"type":23,"tag":214,"props":6476,"children":6477},{},[6478,6483,6488,6493],{"type":23,"tag":218,"props":6479,"children":6480},{},[6481],{"type":33,"value":6482},"New features are constantly being released.",{"type":23,"tag":218,"props":6484,"children":6485},{},[6486],{"type":33,"value":6487},"No time to gather customer feedback or improve existing features.",{"type":23,"tag":218,"props":6489,"children":6490},{},[6491],{"type":33,"value":6492},"Goals are based on assumptions. No idea of what will bring the most benefit to customers.",{"type":23,"tag":218,"props":6494,"children":6495},{},[6496],{"type":33,"value":6497},"Goals are not aligned with customer needs.",{"type":23,"tag":36,"props":6499,"children":6500},{},[6501],{"type":33,"value":6502},"Feature factory teams focus too much on developing products and not early enough on learning from feedback. In feature factory teams, the designer easily fights deadlines as a bottleneck before development work, with no time to learn or iterate from feedback.",{"type":23,"tag":36,"props":6504,"children":6505},{},[6506,6508],{"type":33,"value":6507},"Excellent agile teams may seem slower if measured only by output. But they are slowed down precisely by their strengths: ",{"type":23,"tag":85,"props":6509,"children":6510},{},[6511],{"type":33,"value":6512},"cross-functional collaboration, learning from feedback and iteration.",{"type":23,"tag":36,"props":6514,"children":6515},{},[6516],{"type":33,"value":6517},"They adapt to achieve the right goals and find the right ways to work together. In the end, they will create more value and bring out very good features that create a higher impact.",{"type":23,"tag":28,"props":6519,"children":6521},{"id":6520},"design-puts-the-focus-back-on-customer-benefits",[6522],{"type":33,"value":6523},"Design puts the focus back on customer benefits",{"type":23,"tag":357,"props":6525,"children":6527},{"id":6526},"customer-centricity-makes-a-team-more-agile",[6528],{"type":33,"value":6529},"Customer centricity makes a team more agile?!",{"type":23,"tag":36,"props":6531,"children":6532},{},[6533],{"type":33,"value":6534},"When we know better what customers and end users need, it is easier to focus on the work that is valuable. But how does that work when developing complex and scalable products?",{"type":23,"tag":36,"props":6536,"children":6537},{},[6538],{"type":33,"value":6539},"The long-term solution is to use customer-focused design experts as an integral part of the team. They make the team more agile and customer-focused by sharing responsibility for customer value with the product manager, spreading a customer-centric mindset throughout the organisation and championing inclusive and sustainable solutions that have a positive impact on the entire company.",{"type":23,"tag":36,"props":6541,"children":6542},{},[6543],{"type":33,"value":6544},"Bringing together the individual strengths of design and agile enables the common strengths.",{"type":23,"tag":357,"props":6546,"children":6548},{"id":6547},"the-strengths-of-design",[6549],{"type":33,"value":6550},"The strengths of design",{"type":23,"tag":1257,"props":6552,"children":6553},{},[6554,6559,6564,6569],{"type":23,"tag":218,"props":6555,"children":6556},{},[6557],{"type":33,"value":6558},"Taking a step back to see the big picture: Do we have the right goals? Are we solving the right problems? What cause-effect relationships in the system do we want to change?",{"type":23,"tag":218,"props":6560,"children":6561},{},[6562],{"type":33,"value":6563},"Understanding the needs of customers and end-users and the value that could be created. Sharing knowledge within the team.",{"type":23,"tag":218,"props":6565,"children":6566},{},[6567],{"type":33,"value":6568},"Creating completely new concepts to achieve the goals.",{"type":23,"tag":218,"props":6570,"children":6571},{},[6572],{"type":33,"value":6573},"Bringing ideas to life through visualisations and mock-ups",{"type":23,"tag":357,"props":6575,"children":6577},{"id":6576},"strengths-of-agile-teams",[6578],{"type":33,"value":6579},"Strengths of agile teams",{"type":23,"tag":1257,"props":6581,"children":6582},{},[6583,6588,6593],{"type":23,"tag":218,"props":6584,"children":6585},{},[6586],{"type":33,"value":6587},"Early and continuous value creation, starting from the things that create the most value with the least effort.",{"type":23,"tag":218,"props":6589,"children":6590},{},[6591],{"type":33,"value":6592},"Short learning cycles through continuous experimentation and feedback.",{"type":23,"tag":218,"props":6594,"children":6595},{},[6596],{"type":33,"value":6597},"Independent, diverse and self-organising teams whose culture is based on trust and psychological safety",{"type":23,"tag":357,"props":6599,"children":6601},{"id":6600},"sharing-strengths",[6602],{"type":33,"value":6603},"Sharing strengths",{"type":23,"tag":1257,"props":6605,"children":6606},{},[6607,6612,6617],{"type":23,"tag":218,"props":6608,"children":6609},{},[6610],{"type":33,"value":6611},"Focusing on customer value",{"type":23,"tag":218,"props":6613,"children":6614},{},[6615],{"type":33,"value":6616},"Cross-functional collaboration: working with team members and stakeholders from different backgrounds",{"type":23,"tag":218,"props":6618,"children":6619},{},[6620],{"type":33,"value":6621},"Rapid trial and error, learning from feedback and moving forward",{"type":23,"tag":28,"props":6623,"children":6625},{"id":6624},"clarification-of-terms",[6626],{"type":33,"value":6627},"Clarification of Terms",{"type":23,"tag":357,"props":6629,"children":6631},{"id":6630},"customer",[6632],{"type":33,"value":6633},"Customer",{"type":23,"tag":36,"props":6635,"children":6636},{},[6637],{"type":33,"value":6638},"In this article we mainly talk about customer orientation and customer value. These terms refer not only to customers, but also to potential end users and other stakeholders.",{"type":23,"tag":357,"props":6640,"children":6642},{"id":6641},"team",[6643],{"type":33,"value":6644},"Team",{"type":23,"tag":36,"props":6646,"children":6647},{},[6648],{"type":33,"value":6649},"Team refers to all the people involved in creating a product for the customers and end users. Whether they are developers, designers, product owners, managers or other specialists, everyone is seen as part of the team.",{"type":23,"tag":357,"props":6651,"children":6653},{"id":6652},"design",[6654],{"type":33,"value":6655},"Design",{"type":23,"tag":36,"props":6657,"children":6658},{},[6659],{"type":33,"value":6660},"We do not draw boundaries between different design roles and designations (UI designer, UX designer, product designer, service designer, ...), as many types of designers are valuable members of a cross-functional agile team. However, we strongly define design by a customer-centric mindset and put it in the context of teams developing software as part of the service.",{"type":23,"tag":357,"props":6662,"children":6664},{"id":6663},"agile",[6665],{"type":33,"value":6414},{"type":23,"tag":36,"props":6667,"children":6668},{},[6669],{"type":33,"value":6670},"The word agile is a characteristic that describes certain software development teams. Agile teams have the autonomy to organise their work in short feedback loops that allow them to constantly evolve the way they work, learn from customer feedback and adjust their goals to maximise customer value.",{"title":866,"searchDepth":867,"depth":867,"links":6672},[6673,6674,6675,6681],{"id":6422,"depth":867,"text":6425},{"id":6466,"depth":867,"text":6469},{"id":6520,"depth":867,"text":6523,"children":6676},[6677,6678,6679,6680],{"id":6526,"depth":876,"text":6529},{"id":6547,"depth":876,"text":6550},{"id":6576,"depth":876,"text":6579},{"id":6600,"depth":876,"text":6603},{"id":6624,"depth":867,"text":6627,"children":6682},[6683,6684,6685,6686],{"id":6630,"depth":876,"text":6633},{"id":6641,"depth":876,"text":6644},{"id":6652,"depth":876,"text":6655},{"id":6663,"depth":876,"text":6414},"content:en:blog:why-do-agile-teams-need-design.md","en/blog/why-do-agile-teams-need-design.md","en/blog/why-do-agile-teams-need-design",{"_path":6691,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":6692,"description":6693,"slug":6694,"author":11,"authorImage":12,"role":2784,"date":6695,"category":6696,"image":6697,"seoTitle":6698,"seoDescription":6699,"body":6700,"_type":890,"_id":6897,"_source":892,"_file":6898,"_stem":6899,"_extension":895},"/blog/how-to-improve-customer-centricity-from-the-start-at-agile-projects","How to improve customer-centricity from the start at agile projects","Practical tips for bringing customer-centric mindset to agile development teams.","how-to-improve-customer-centricity-from-the-start-at-agile-projects","2025-03-29","Leadership","blog_kundenOrientiert.webp","Customer-Centricity in Agile: Practical Implementation Guide","Learn how to improve customer-centricity in agile projects from the start. Practical tips for embedding customer insights in team workflows.",{"type":20,"children":6701,"toc":6883},[6702,6708,6714,6719,6725,6730,6735,6741,6746,6752,6757,6763,6768,6773,6778,6784,6847,6851,6855,6859,6863,6867,6871,6875,6879],{"type":23,"tag":2807,"props":6703,"children":6705},{"id":6704},"customer-oriented-product-development-can-be-the-key-to-success-for-a-product-therefore-spreading-a-customer-centric-mindset-is-essential",[6706],{"type":33,"value":6707},"\"Customer-oriented product development can be the key to success for a product. Therefore, spreading a customer-centric mindset is essential.\"",{"type":23,"tag":28,"props":6709,"children":6711},{"id":6710},"responsibility-for-customer-centric-design-activities",[6712],{"type":33,"value":6713},"Responsibility for customer-centric design activities",{"type":23,"tag":36,"props":6715,"children":6716},{},[6717],{"type":33,"value":6718},"Although customer value should be the focus for all members of its agile team, clear responsibilities for customer-centric design activities are required. Those responsible should be experienced in both research and design methods, have the ability to cooperate with other departments and stakeholders, always apply a birds eye view, be prone to self-reflection and be able to apply these skills creatively in the agile context. Like all agile team members, they should be independent in the way they achieve their goals and have sufficient resources to devote to the goals without distractions.",{"type":23,"tag":28,"props":6720,"children":6722},{"id":6721},"backlog-for-research-or-research-for-backlog",[6723],{"type":33,"value":6724},"Backlog for research or research for backlog?",{"type":23,"tag":36,"props":6726,"children":6727},{},[6728],{"type":33,"value":6729},"Designers do not necessarily always have a say in deciding the next topics for research, design or development. This can lead to design becoming a rubber stamp in the middle of a process rather than an activity that impacts how the team produces value. If product managers dictate what topics are selected for upfront research and development, design cannot influence how the team creates customer value.",{"type":23,"tag":36,"props":6731,"children":6732},{},[6733],{"type":33,"value":6734},"Customer insights should be at the heart of decision-making when the team plans what to work on next. The team should be careful that its goals do not conflict with the goals of the customers and end users to avoid doing work without value. The customer experience should not be neglected just because the team is short on time or another solution is easier to implement.",{"type":23,"tag":28,"props":6736,"children":6738},{"id":6737},"find-agile-ways-to-gather-customer-insights-and-create-a-community",[6739],{"type":33,"value":6740},"Find agile ways to gather customer insights and create a community.",{"type":23,"tag":36,"props":6742,"children":6743},{},[6744],{"type":33,"value":6745},"Trying to do research for every goal and every development topic will most likely lead to bottlenecks and overworked designers. Choose the most important research topics based on what you doubt the most, and validate the safer topics after development. Building a pool of enthusiastic customers and end-users can make collecting feedback faster and more relaxed at the same time. Kind of like a cat community – loyal, honest, and always ready for feedback. 🐱💬 Being able to join such a community can also improve the customer experience.",{"type":23,"tag":28,"props":6747,"children":6749},{"id":6748},"focus-on-learning-after-development",[6750],{"type":33,"value":6751},"Focus on learning after development",{"type":23,"tag":36,"props":6753,"children":6754},{},[6755],{"type":33,"value":6756},"If a team is able to release frequently, it is important to spend time after development learning from customer and end-user feedback, rather than just working towards the next features. It should be in the interest of the whole team and organisation to learn whether the solutions are creating the intended value. What should be improved and what should be focused on next. Reserve time and create rituals to make this happen.",{"type":23,"tag":28,"props":6758,"children":6760},{"id":6759},"bring-customer-insights-into-the-teams-daily-work",[6761],{"type":33,"value":6762},"Bring customer insights into the teams daily work.",{"type":23,"tag":36,"props":6764,"children":6765},{},[6766],{"type":33,"value":6767},"If your team is not articulating their goals in a way that describes outcomes for the customer or end user, its time to challenge this. Job stories are an example of an effective and simple format for describing goals in agile teams. The best place to document customer insights is directly in the tickets the team uses to manage their work. By populating the tickets with user data, comments and attachments, you ensure that customer insights find their way to the developers.",{"type":23,"tag":36,"props":6769,"children":6770},{},[6771],{"type":33,"value":6772},"Often an agile team has no documentation of the customer experience other than the service itself. If the team lacks a shared understanding of the experience they are creating, a classic customer journey map can be helpful. However, a more concrete and practical choice for agile teams is story mapping, where the team creates the customer journey using their own story tickets as building blocks. In all meetings and points of collaboration, designers should act as the voice of the customer and use the opportunities to stimulate and inspire all team members to think about the customer value.",{"type":23,"tag":36,"props":6774,"children":6775},{},[6776],{"type":33,"value":6777},"Reviews, reflections and dailies are great for this, but you can also introduce your own informal coffee breaks or something more relaxed. We swear by team lunch – nothing bonds like shared food. 🍕",{"type":23,"tag":28,"props":6779,"children":6781},{"id":6780},"tips-for-putting-the-customer-at-the-centre-from-the-start-and-bringing-customer-centricity-to-teams",[6782],{"type":33,"value":6783},"Tips for putting the customer at the centre from the start and bringing customer-centricity to teams:",{"type":23,"tag":214,"props":6785,"children":6786},{},[6787,6792,6797,6802,6807,6812,6817,6822,6827,6832,6837,6842],{"type":23,"tag":218,"props":6788,"children":6789},{},[6790],{"type":33,"value":6791},"Creating the foundational architecture of the experience helps us scale later as new features are introduced. We need to start with the up-front research and design phase before sprint-based development.",{"type":23,"tag":218,"props":6793,"children":6794},{},[6795],{"type":33,"value":6796},"We share customer research insights as high up in the organisation as possible for impact.",{"type":23,"tag":218,"props":6798,"children":6799},{},[6800],{"type":33,"value":6801},"We create a strategy for sharing customer insights.",{"type":23,"tag":218,"props":6803,"children":6804},{},[6805],{"type":33,"value":6806},"We always make sure that all key stakeholders have been captured.",{"type":23,"tag":218,"props":6808,"children":6809},{},[6810],{"type":33,"value":6811},"in conflict situations, we use the organisations written strategic goals and objectives to justify customer-centric activities.",{"type":23,"tag":218,"props":6813,"children":6814},{},[6815],{"type":33,"value":6816},"We visualise the roadmap together to see if there is a lack of customer understanding somewhere. For example, use story mapping.",{"type":23,"tag":218,"props":6818,"children":6819},{},[6820],{"type":33,"value":6821},"We keep the focus on the current goals of the team.",{"type":23,"tag":218,"props":6823,"children":6824},{},[6825],{"type":33,"value":6826},"We always bring the entire customer journey into the discussion, even when developing smaller features.",{"type":23,"tag":218,"props":6828,"children":6829},{},[6830],{"type":33,"value":6831},"We avoid quick hotfix solutions that dont support the big picture when it is still possible.",{"type":23,"tag":218,"props":6833,"children":6834},{},[6835],{"type":33,"value":6836},"We look for opportunities to share customer understanding.",{"type":23,"tag":218,"props":6838,"children":6839},{},[6840],{"type":33,"value":6841},"We incorporate our thoughts and customer insights directly into tasks and tickets.",{"type":23,"tag":218,"props":6843,"children":6844},{},[6845],{"type":33,"value":6846},"We keep reminding the team that we are supposed to deliver value, not features.",{"type":23,"tag":28,"props":6848,"children":6849},{"id":6624},[6850],{"type":33,"value":6627},{"type":23,"tag":357,"props":6852,"children":6853},{"id":6630},[6854],{"type":33,"value":6633},{"type":23,"tag":36,"props":6856,"children":6857},{},[6858],{"type":33,"value":6638},{"type":23,"tag":357,"props":6860,"children":6861},{"id":6641},[6862],{"type":33,"value":6644},{"type":23,"tag":36,"props":6864,"children":6865},{},[6866],{"type":33,"value":6649},{"type":23,"tag":357,"props":6868,"children":6869},{"id":6652},[6870],{"type":33,"value":6655},{"type":23,"tag":36,"props":6872,"children":6873},{},[6874],{"type":33,"value":6660},{"type":23,"tag":357,"props":6876,"children":6877},{"id":6663},[6878],{"type":33,"value":6414},{"type":23,"tag":36,"props":6880,"children":6881},{},[6882],{"type":33,"value":6670},{"title":866,"searchDepth":867,"depth":867,"links":6884},[6885,6886,6887,6888,6889,6890,6891],{"id":6710,"depth":867,"text":6713},{"id":6721,"depth":867,"text":6724},{"id":6737,"depth":867,"text":6740},{"id":6748,"depth":867,"text":6751},{"id":6759,"depth":867,"text":6762},{"id":6780,"depth":867,"text":6783},{"id":6624,"depth":867,"text":6627,"children":6892},[6893,6894,6895,6896],{"id":6630,"depth":876,"text":6633},{"id":6641,"depth":876,"text":6644},{"id":6652,"depth":876,"text":6655},{"id":6663,"depth":876,"text":6414},"content:en:blog:how-to-improve-customer-centricity-from-the-start-at-agile-projects.md","en/blog/how-to-improve-customer-centricity-from-the-start-at-agile-projects.md","en/blog/how-to-improve-customer-centricity-from-the-start-at-agile-projects",{"_path":6901,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":6902,"description":6903,"slug":6904,"author":11,"authorImage":12,"role":2784,"date":6695,"category":6414,"image":6905,"seoTitle":6906,"seoDescription":6907,"body":6908,"_type":890,"_id":7061,"_source":892,"_file":7062,"_stem":7063,"_extension":895},"/blog/how-to-setup-design-collaboration-in-agile-teams","How to setup Design collaboration in agile teams","Breaking silos and improving cross-functional collaboration in agile teams.","how-to-setup-design-collaboration-in-agile-teams","blog_designKollaboration.webp","Design Collaboration in Agile Teams: Breaking Silos","Learn how to setup effective design collaboration in agile teams. Practical tips for breaking silos and improving cross-functional workflows.",{"type":20,"children":6909,"toc":7049},[6910,6921,6927,6932,6938,6943,6948,6953,6959,6964,6969,6974,6980,7013,7017,7021,7025,7029,7033,7037,7041,7045],{"type":23,"tag":2807,"props":6911,"children":6913},{"id":6912},"this-common-challenge-is-quite-ironic-a-team-splits-itself-into-silos-the-designers-have-their-own-role-specific-tools-processes-and-meetings-the-developers-stick-to-theirs",[6914,6919],{"type":23,"tag":85,"props":6915,"children":6916},{},[6917],{"type":33,"value":6918},"\"This common challenge is quite ironic:",{"type":33,"value":6920}," a team splits itself into silos. The designers have their own role-specific tools, processes and meetings. The developers stick to theirs.\"",{"type":23,"tag":28,"props":6922,"children":6924},{"id":6923},"collaboration-is-like-an-exercise",[6925],{"type":33,"value":6926},"Collaboration is like an exercise.",{"type":23,"tag":36,"props":6928,"children":6929},{},[6930],{"type":33,"value":6931},"It doesnt happen by itself, and making it a routine takes work. Poor communication is often more or less the norm in teams. If the teams tools and rituals do not actively work towards close collaboration and feedback, the team creates mini-waterfalls where everyone works in their own pseudo-agile lanes without really interacting with each other. Like cats living in the same house but ignoring each other. 🐱🐱",{"type":23,"tag":28,"props":6933,"children":6935},{"id":6934},"cross-functional-meetings-and-rituals",[6936],{"type":33,"value":6937},"Cross-functional meetings and rituals",{"type":23,"tag":36,"props":6939,"children":6940},{},[6941],{"type":33,"value":6942},"Good reflection meetings where the whole team feels safe to share their thoughts are the most effective tool for improvement.",{"type":23,"tag":36,"props":6944,"children":6945},{},[6946],{"type":33,"value":6947},"It is best to plan work together and share responsibility for team goals. Ideally, developers should feel responsible for the designers work and vice versa. Planning design activities separately can make this more difficult and in turn lead to the creation of silos within the supposedly agile team.",{"type":23,"tag":36,"props":6949,"children":6950},{},[6951],{"type":33,"value":6952},"Collaborative meetings such as dailies should increase transparency about what others are working on and plan further points of collaboration as needed. Solving the actual problems should be done outside of the joint meetings.",{"type":23,"tag":28,"props":6954,"children":6956},{"id":6955},"minimise-the-number-of-role-specific-tools",[6957],{"type":33,"value":6958},"Minimise the number of role-specific tools",{"type":23,"tag":36,"props":6960,"children":6961},{},[6962],{"type":33,"value":6963},"As with planning meetings, using the same applications to manage the work of designers and other team members can greatly help the team understand each others work and share responsibility for goals.",{"type":23,"tag":36,"props":6965,"children":6966},{},[6967],{"type":33,"value":6968},"Using specific tools to create non-editable documents at handover will make collaboration more difficult. Prefer tools that allow all team members to create, edit and comment on documents. The best collaboration tools are updated live and are easy to use.",{"type":23,"tag":36,"props":6970,"children":6971},{},[6972],{"type":33,"value":6973},"Keep digital representations of the same goal or task to a minimum so all team members know where to find the latest comments and ideas.",{"type":23,"tag":28,"props":6975,"children":6977},{"id":6976},"tips-to-improve-cross-functional-collaboration",[6978],{"type":33,"value":6979},"Tips to improve cross-functional collaboration:",{"type":23,"tag":214,"props":6981,"children":6982},{},[6983,6988,6993,6998,7003,7008],{"type":23,"tag":218,"props":6984,"children":6985},{},[6986],{"type":33,"value":6987},"Dont have separate design or development goals. Take joint responsibility for team goals. We're all in the same boat – or spaceship. 🚀",{"type":23,"tag":218,"props":6989,"children":6990},{},[6991],{"type":33,"value":6992},"Make the goals for each team members work transparent. Not only the \"how\" and \"when\", but also the \"why\". This will drastically reduce misunderstandings.",{"type":23,"tag":218,"props":6994,"children":6995},{},[6996],{"type":33,"value":6997},"Aim for constant verbal communication. Documents and tickets are helpful, but they should never be the only channel of communication.",{"type":23,"tag":218,"props":6999,"children":7000},{},[7001],{"type":33,"value":7002},"Take time to find rituals, tools and working models that make it easier for the team to work together. Focus on constant evolution rather than dramatic reform.",{"type":23,"tag":218,"props":7004,"children":7005},{},[7006],{"type":33,"value":7007},"Involve team members and leaders in the design work. Let them participate in both the research and the analysis of the results.",{"type":23,"tag":218,"props":7009,"children":7010},{},[7011],{"type":33,"value":7012},"Be curious and empathetic about the work of other team members and their problems. Seek a two-way exchange of knowledge rather than just imposing your own ideology on the team.",{"type":23,"tag":28,"props":7014,"children":7015},{"id":6624},[7016],{"type":33,"value":6627},{"type":23,"tag":357,"props":7018,"children":7019},{"id":6630},[7020],{"type":33,"value":6633},{"type":23,"tag":36,"props":7022,"children":7023},{},[7024],{"type":33,"value":6638},{"type":23,"tag":357,"props":7026,"children":7027},{"id":6641},[7028],{"type":33,"value":6644},{"type":23,"tag":36,"props":7030,"children":7031},{},[7032],{"type":33,"value":6649},{"type":23,"tag":357,"props":7034,"children":7035},{"id":6652},[7036],{"type":33,"value":6655},{"type":23,"tag":36,"props":7038,"children":7039},{},[7040],{"type":33,"value":6660},{"type":23,"tag":357,"props":7042,"children":7043},{"id":6663},[7044],{"type":33,"value":6414},{"type":23,"tag":36,"props":7046,"children":7047},{},[7048],{"type":33,"value":6670},{"title":866,"searchDepth":867,"depth":867,"links":7050},[7051,7052,7053,7054,7055],{"id":6923,"depth":867,"text":6926},{"id":6934,"depth":867,"text":6937},{"id":6955,"depth":867,"text":6958},{"id":6976,"depth":867,"text":6979},{"id":6624,"depth":867,"text":6627,"children":7056},[7057,7058,7059,7060],{"id":6630,"depth":876,"text":6633},{"id":6641,"depth":876,"text":6644},{"id":6652,"depth":876,"text":6655},{"id":6663,"depth":876,"text":6414},"content:en:blog:how-to-setup-design-collaboration-in-agile-teams.md","en/blog/how-to-setup-design-collaboration-in-agile-teams.md","en/blog/how-to-setup-design-collaboration-in-agile-teams",{"_path":7065,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":7066,"description":7067,"slug":7068,"author":11,"authorImage":12,"role":2784,"date":6695,"category":6655,"image":7069,"seoTitle":7070,"seoDescription":7071,"body":7072,"_type":890,"_id":7250,"_source":892,"_file":7251,"_stem":7252,"_extension":895},"/blog/the-four-main-roles-of-a-designer","The four main roles of a designer","Understanding the four essential roles designers play in agile development teams.","the-four-main-roles-of-a-designer","blog_designRessourcen.webp","The Four Main Designer Roles in Agile Teams","Learn the four essential roles designers play in agile teams: concept design, product design, design support, and validation.",{"type":20,"children":7073,"toc":7243},[7074,7085,7090,7095,7101,7106,7111,7116,7122,7127,7132,7137,7170,7175,7181,7186,7191,7196,7202,7207,7212,7217,7223,7228,7233,7238],{"type":23,"tag":2807,"props":7075,"children":7077},{"id":7076},"the-traditional-human-centred-design-process-is-not-really-compatible-with-the-agile-process-spoiler-thats-okay-we-have-solutions",[7078,7083],{"type":23,"tag":85,"props":7079,"children":7080},{},[7081],{"type":33,"value":7082},"\"The traditional human-centred design process is not really compatible with the agile process.\"",{"type":33,"value":7084}," Spoiler: That's okay – we have solutions. 💡",{"type":23,"tag":36,"props":7086,"children":7087},{},[7088],{"type":33,"value":7089},"Therefore, design activities have been retroactively integrated into the agile development process, resulting in a process that is not optimal for design.",{"type":23,"tag":36,"props":7091,"children":7092},{},[7093],{"type":33,"value":7094},"As current software development practices are widely used, the role of design is unlikely to change in the near future. Therefore, designers need to make the most of the current process and find the best ways to contribute and play their part in agile development teams.",{"type":23,"tag":28,"props":7096,"children":7098},{"id":7097},"the-four-roles-of-a-designer",[7099],{"type":33,"value":7100},"The four roles of a designer",{"type":23,"tag":36,"props":7102,"children":7103},{},[7104],{"type":33,"value":7105},"Design has four roles in the agile development team: concept design, product design, design support and design validation. It is important to know these roles as they all directly contribute to the designers workload. Understanding the diversity of design activities helps in prioritizing and allocating time between the different roles. This is a prerequisite for the quality and efficiency of the design and the whole development team.",{"type":23,"tag":36,"props":7107,"children":7108},{},[7109],{"type":33,"value":7110},"It is very difficult for a single designer to master and perform all four roles simultaneously. There must be enough designers so that they have the time and resources to do a good job and divide it among themselves based on their strengths. Design has a direct impact on the efficiency of the whole team, not just on design quality. Under-resourced design means more development tickets are put on hold, feature development is slower, and more rework and refactoring is required between releases.",{"type":23,"tag":36,"props":7112,"children":7113},{},[7114],{"type":33,"value":7115},"(Note: In this post I refer to development sprints. Even if you dont use sprints, the same principles apply).",{"type":23,"tag":28,"props":7117,"children":7119},{"id":7118},"role-1-conceptual-designer",[7120],{"type":33,"value":7121},"Role 1: Conceptual designer",{"type":23,"tag":36,"props":7123,"children":7124},{},[7125],{"type":33,"value":7126},"The first conceptual designs are usually designed outside the rapid sprint cycles of development. This does not mean that the designs are pixel perfect and ready when development starts - that would be the hated BDUF - Big Design Upfront. However, without a rough concept or user interface framework, it will be difficult to start development work or detailed design.",{"type":23,"tag":36,"props":7128,"children":7129},{},[7130],{"type":33,"value":7131},"Often this concept design phase runs in parallel with development, but outside the development team. There are always new major releases or new services that require a proper concept design phase before they are ready for development.",{"type":23,"tag":36,"props":7133,"children":7134},{},[7135],{"type":33,"value":7136},"This role covers a wide range of design activities, such as",{"type":23,"tag":214,"props":7138,"children":7139},{},[7140,7145,7150,7155,7160,7165],{"type":23,"tag":218,"props":7141,"children":7142},{},[7143],{"type":33,"value":7144},"Defining the UX vision for the product",{"type":23,"tag":218,"props":7146,"children":7147},{},[7148],{"type":33,"value":7149},"Overall concept design: research, design, prototyping, validation.",{"type":23,"tag":218,"props":7151,"children":7152},{},[7153],{"type":33,"value":7154},"Working closely with product management (PO) on product definition.",{"type":23,"tag":218,"props":7156,"children":7157},{},[7158],{"type":33,"value":7159},"Support in breaking down the designs into manageable parts and roadmaps for the product backlog",{"type":23,"tag":218,"props":7161,"children":7162},{},[7163],{"type":33,"value":7164},"Identity design and branding",{"type":23,"tag":218,"props":7166,"children":7167},{},[7168],{"type":33,"value":7169},"Development of design systems",{"type":23,"tag":36,"props":7171,"children":7172},{},[7173],{"type":33,"value":7174},"In this role, the designer aims to define the concept so that it meets the three lenses of innovation: it is desirable, it is implementable and it provides a solid business.",{"type":23,"tag":28,"props":7176,"children":7178},{"id":7177},"role-2-visual-design",[7179],{"type":33,"value":7180},"Role 2: Visual design",{"type":23,"tag":36,"props":7182,"children":7183},{},[7184],{"type":33,"value":7185},"The detailed designs should be largely ready before implementation begins. Developers can get to work immediately without having to wait for the designs to be finalised. Any significant design change during implementation means unnecessary rework for the developers. This does not mean that designs have to be pixel-perfect and specified down to the smallest detail. It is much more efficient to correct small details during implementation. Especially if the team has a good design system, it is sufficient if the drafts only hint at the exact appearance or positioning of the UI components.",{"type":23,"tag":36,"props":7187,"children":7188},{},[7189],{"type":33,"value":7190},"Often the teams agree to work in such a way that the designs are already completed in the previous sprint, before the implementation starts. Therefore, in each sprint, the designers work on the designs for the next sprint or the sprint after that. It is not a good idea to design too much before development. If the requirements change in the meantime, those designs have to be redesigned, wasting design time and resources.",{"type":23,"tag":36,"props":7192,"children":7193},{},[7194],{"type":33,"value":7195},"If the collaboration with the developers runs smoothly, time can be used more efficiently and hopefully some prototyping and user research can be added to the toolbox. Unfortunately, there is usually too little time for this in hectic development projects. This is one of the symptoms of the partial incompatibility between the design process and agile development.",{"type":23,"tag":28,"props":7197,"children":7199},{"id":7198},"role-3-design-support",[7200],{"type":33,"value":7201},"Role 3: Design support",{"type":23,"tag":36,"props":7203,"children":7204},{},[7205],{"type":33,"value":7206},"Designs should be ready when development starts, but as mentioned earlier, it is not necessary to specify every pixel. Therefore, the designer needs to work closely with implementation during each sprint to iteratively improve the designs, fill gaps and answer any questions the developers may have.",{"type":23,"tag":36,"props":7208,"children":7209},{},[7210],{"type":33,"value":7211},"This is often the most fruitful and enjoyable part of design: working symbiotically with the developers to find even better solutions, iron out the wrinkles and put the finishing touches on the design. Like a well-oiled duo – designer and developer, the dream team. 🤝 The final touch to the user experience is created in this phase by getting the details right.",{"type":23,"tag":36,"props":7213,"children":7214},{},[7215],{"type":33,"value":7216},"This, of course, takes a lot of the designers time. It is also time-critical: they need to be available exactly when questions, new ideas and possibilities arise. This means that all other work is frequently interrupted.",{"type":23,"tag":28,"props":7218,"children":7220},{"id":7219},"role-4-validating-the-designs",[7221],{"type":33,"value":7222},"Role 4: Validating the designs",{"type":23,"tag":36,"props":7224,"children":7225},{},[7226],{"type":33,"value":7227},"At the latest when the designs are implemented, it is good practice to validate them. Ideally, a first or more round of validation takes place before implementation. Validation can take different forms.",{"type":23,"tag":36,"props":7229,"children":7230},{},[7231],{"type":33,"value":7232},"Implementation can be validated in the development or test environment. It is a good idea to include this in the \"definition of completion\" - the implementation is not complete until it has been reviewed and approved by the designer.",{"type":23,"tag":36,"props":7234,"children":7235},{},[7236],{"type":33,"value":7237},"It is even better if it is possible to do user testing with the implementation still running in a test (or staging) environment. This can give the product team and product and business owners a good understanding of whether the implementation is ready for release, among other insights into user needs and wants.",{"type":23,"tag":36,"props":7239,"children":7240},{},[7241],{"type":33,"value":7242},"The most reliable way to evaluate designs is to test them in the wild: just release them. After that, you have several options for collecting feedback: formal assessments (f2f or remote usability testing), surveys, analysis, and optimising features with A/B testing. All of this requires the involvement of the designer responsible for the features, because he or she is the expert on the hypotheses, the success criteria, the possible alternative solutions, etc.",{"title":866,"searchDepth":867,"depth":867,"links":7244},[7245,7246,7247,7248,7249],{"id":7097,"depth":867,"text":7100},{"id":7118,"depth":867,"text":7121},{"id":7177,"depth":867,"text":7180},{"id":7198,"depth":867,"text":7201},{"id":7219,"depth":867,"text":7222},"content:en:blog:the-four-main-roles-of-a-designer.md","en/blog/the-four-main-roles-of-a-designer.md","en/blog/the-four-main-roles-of-a-designer",{"_path":7254,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":7255,"description":7256,"slug":7257,"author":11,"authorImage":12,"role":2784,"date":6695,"category":6655,"image":7258,"seoTitle":7259,"seoDescription":7260,"body":7261,"_type":890,"_id":7565,"_source":892,"_file":7566,"_stem":7567,"_extension":895},"/blog/the-usability-principles","The Usability Principles","A comprehensive guide to the fundamental usability principles for better user experience.","the-usability-principles","blog_usabilityPrinciples.webp","The 10 Usability Principles: Complete UX Design Guide","Master the 10 fundamental usability principles for better user experience design. From system visibility to help documentation - complete guide.",{"type":20,"children":7262,"toc":7551},[7263,7269,7275,7280,7285,7290,7296,7302,7307,7312,7318,7324,7329,7334,7340,7346,7351,7356,7362,7368,7373,7378,7383,7389,7395,7400,7405,7411,7416,7421,7427,7433,7438,7447,7452,7458,7464,7469,7474,7480,7486,7491,7501,7506,7512],{"type":23,"tag":28,"props":7264,"children":7266},{"id":7265},"visibility-of-system-status",[7267],{"type":33,"value":7268},"Visibility of System Status",{"type":23,"tag":2807,"props":7270,"children":7272},{"id":7271},"our-designs-should-keep-users-informed-about-what-is-going-on-through-appropriate-timely-feedback",[7273],{"type":33,"value":7274},"\"Our Designs should keep users informed about what is going on, through appropriate, timely feedback.\"",{"type":23,"tag":36,"props":7276,"children":7277},{},[7278],{"type":33,"value":7279},"Humans love to be in control of things because it is the only way to feel safe. The feeling of control can be evoked by providing information about the system status and feedback after each interaction. Nobody likes being left in the dark – not even cats. 🐱",{"type":23,"tag":36,"props":7281,"children":7282},{},[7283],{"type":33,"value":7284},"When users interact with our apps, there should always be immediate feedback about the interaction.",{"type":23,"tag":36,"props":7286,"children":7287},{},[7288],{"type":33,"value":7289},"Through the use of signs, icons and indicators, the application communicates its status and helps the user make better and more informed decisions. This helps the user to understand what is going on and thus save them from further unnecessary interactions.",{"type":23,"tag":28,"props":7291,"children":7293},{"id":7292},"the-match-between-the-system-and-the-real-world",[7294],{"type":33,"value":7295},"The Match between The System and the Real World",{"type":23,"tag":2807,"props":7297,"children":7299},{"id":7298},"the-design-should-speak-the-users-language-use-words-phrases-and-concepts-familiar-to-the-user-rather-than-internal-jargon",[7300],{"type":33,"value":7301},"\"The design should speak the users language. Use words, phrases, and concepts familiar to the user, rather than internal jargon.\"",{"type":23,"tag":36,"props":7303,"children":7304},{},[7305],{"type":33,"value":7306},"People approach any new application with a mental model in mind. In other words, people assume how the application might work based on their experience with other similar applications. By using a language they are familiar with, we can help users overcome the initial awkwardness.",{"type":23,"tag":36,"props":7308,"children":7309},{},[7310],{"type":33,"value":7311},"In addition, language and real-world concepts help users easily understand our applications. A few examples, we use \"bookmarks\" to save our favorite websites, we use the \"recycle bin\" to delete old files, or the \"shopping cart\" when shopping online.",{"type":23,"tag":28,"props":7313,"children":7315},{"id":7314},"user-control-and-freedom",[7316],{"type":33,"value":7317},"User Control and Freedom",{"type":23,"tag":2807,"props":7319,"children":7321},{"id":7320},"users-often-perform-actions-by-mistake-they-need-a-clearly-marked-emergency-exit-to-leave-the-unwanted-action",[7322],{"type":33,"value":7323},"\"Users often perform actions by mistake. They need a clearly marked \"emergency exit\" to leave the unwanted action.\"",{"type":23,"tag":36,"props":7325,"children":7326},{},[7327],{"type":33,"value":7328},"People are often in a hurry to deal with when using an application, and often they are not even fully concentrated. This leads to misclicks or other accidents that can be very frustrating. Our applications need to have a clearly marked \"emergency exit\" that gives users an easy way back if they find themselves in an undesirable state.",{"type":23,"tag":36,"props":7330,"children":7331},{},[7332],{"type":33,"value":7333},"The goals is to design applications that do not abandon the user when they make a mistake, but give them the opportunity to fix it.",{"type":23,"tag":28,"props":7335,"children":7337},{"id":7336},"consistency-and-standards",[7338],{"type":33,"value":7339},"Consistency and Standards",{"type":23,"tag":2807,"props":7341,"children":7343},{"id":7342},"users-should-not-have-to-wonder-whether-different-words-situations-or-actions-mean-the-same-thing",[7344],{"type":33,"value":7345},"\"Users should not have to wonder whether different words, situations, or actions mean the same thing.\"",{"type":23,"tag":36,"props":7347,"children":7348},{},[7349],{"type":33,"value":7350},"Using self-defined standards, best practices and common patterns, we ensure that our applications are consistent and predictable for users to use. An understandable app should not confuse users by using different words, images or actions for the same concepts.",{"type":23,"tag":36,"props":7352,"children":7353},{},[7354],{"type":33,"value":7355},"Consistency is one of the most important factors for usability. Therefore, we develop and use a consistent design system that is used in all our applications and concepts.",{"type":23,"tag":28,"props":7357,"children":7359},{"id":7358},"error-prevention",[7360],{"type":33,"value":7361},"Error Prevention",{"type":23,"tag":2807,"props":7363,"children":7365},{"id":7364},"good-error-messages-are-important-but-the-best-designs-carefully-prevent-problems-from-occurring-in-the-first-place",[7366],{"type":33,"value":7367},"\"Good error messages are important, but the best designs carefully prevent problems from occurring in the first place.\"",{"type":23,"tag":36,"props":7369,"children":7370},{},[7371],{"type":33,"value":7372},"Based on Don Norman's book The Design of Everyday Things, there are two kinds of errors created by interaction with a user interface: slips and mistakes.",{"type":23,"tag":36,"props":7374,"children":7375},{},[7376],{"type":33,"value":7377},"Slips happen when the user is inclined to perform one action but performs another due to lack of attention. The strategy to avoid slips is to minimize the likelihood of a slip by guiding the user only through safe areas.",{"type":23,"tag":36,"props":7379,"children":7380},{},[7381],{"type":33,"value":7382},"Errors are often caused by an incorrect mental model of the user about how the application works. In this case, the user misunderstands the communication and deliberately performs an action that leads to a different result than intended. This type of error is often not easy to fix and should be uncovered during the testing phase at the latest. We therefore use clear communication and a consistent design system to avoid errors.",{"type":23,"tag":28,"props":7384,"children":7386},{"id":7385},"recognition-rather-than-recall",[7387],{"type":33,"value":7388},"Recognition Rather Than Recall",{"type":23,"tag":2807,"props":7390,"children":7392},{"id":7391},"minimize-the-users-memory-load-by-making-elements-actions-and-options-visible-avoid-making-users-remember-information",[7393],{"type":33,"value":7394},"\"Minimize the users memory load by making elements, actions, and options visible. Avoid making users remember information.\"",{"type":23,"tag":36,"props":7396,"children":7397},{},[7398],{"type":33,"value":7399},"A good user interface does not require the user to recall frequently. Instead, it provides all the options and information needed to make a decision. We always give users clues so they can remember the information. On the other hand, a well-designed information architecture also helps in the search for information.",{"type":23,"tag":36,"props":7401,"children":7402},{},[7403],{"type":33,"value":7404},"There are two types of memory recall: recognition and recall. Recognition happens when We easily recognize a person or object that is familiar to Us. This is a very superficial form of retrieval from memory and requires no work. Recall occurs when We need to retrieve infrequently used information in our memory. To retrieve information, we need to activate more memory units. Therefore, the retrieval process is a deeper retrieval and requires more work. (This is why, for example, multiple-choice questions in tests are much easier to answer than questions with open answers).",{"type":23,"tag":28,"props":7406,"children":7408},{"id":7407},"flexibility-and-efficiency-of-use",[7409],{"type":33,"value":7410},"Flexibility and Efficiency of Use",{"type":23,"tag":36,"props":7412,"children":7413},{},[7414],{"type":33,"value":7415},"Every user is unique: each has their own needs and abilities. Likewise, each task is unique and requires different controls.",{"type":23,"tag":36,"props":7417,"children":7418},{},[7419],{"type":33,"value":7420},"A new user going through a learning curve will always have different needs than a professional who uses our app for a few hours every day. Power users may appreciate advanced options, keyboard shortcuts or even the extensibility and customization of our apps user interface. Our users need to save their time and complete tasks quickly, but also accurately and reliably. A good user interface should offer features suitable for both novice and experienced users. Therefore, on the one hand, our apps should always display only relevant UI elements and commands. And on the other hand, offer advanced functionalities for experienced users.",{"type":23,"tag":28,"props":7422,"children":7424},{"id":7423},"aesthetic-and-minimalist-design",[7425],{"type":33,"value":7426},"Aesthetic and Minimalist Design",{"type":23,"tag":2807,"props":7428,"children":7430},{"id":7429},"interfaces-should-not-contain-information-which-is-irrelevant-every-extra-unit-of-information-in-an-interface-competes-with-the-relevant-units-of-information",[7431],{"type":33,"value":7432},"\"Interfaces should not contain information which is irrelevant. Every extra unit of information in an interface competes with the relevant units of information.\"",{"type":23,"tag":36,"props":7434,"children":7435},{},[7436],{"type":33,"value":7437},"Minimalism aims to reduce the description of a subject to its necessary elements. This helps our users to access important information quickly and reach a conclusion quickly. Less is more – our dinos know that too. 🦕✨",{"type":23,"tag":2807,"props":7439,"children":7441},{"id":7440},"perfection-is-achieved-not-when-there-is-nothing-more-to-add-but-when-there-is-nothing-left-to-take-away-antoine-de-saint-exupery",[7442],{"type":23,"tag":85,"props":7443,"children":7444},{},[7445],{"type":33,"value":7446},"\"Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.\" – Antoine de Saint-Exupery",{"type":23,"tag":36,"props":7448,"children":7449},{},[7450],{"type":33,"value":7451},"To highlight the remaining content, we use nothing but white space. This increases the readability of the content, highlights the calls to action and creates a balanced and pleasant look. A minimal design uses only the necessary colors to support the visual hierarchy. We think about the purpose and meaning of each color and use them consistently.",{"type":23,"tag":28,"props":7453,"children":7455},{"id":7454},"recognize-diagnose-and-recover-from-errors",[7456],{"type":33,"value":7457},"Recognize, Diagnose, and Recover from Errors",{"type":23,"tag":2807,"props":7459,"children":7461},{"id":7460},"error-messages-should-be-expressed-in-plain-language-no-error-codes-precisely-indicate-the-problem-and-constructively-suggest-a-solution",[7462],{"type":33,"value":7463},"\"Error messages should be expressed in plain language (no error codes), precisely indicate the problem, and constructively suggest a solution.\"",{"type":23,"tag":36,"props":7465,"children":7466},{},[7467],{"type":33,"value":7468},"Errors and problems of any kind can be frustrating for our users. To minimize frustration, we should put as much effort into designing error messages as we do the rest of the applications.",{"type":23,"tag":36,"props":7470,"children":7471},{},[7472],{"type":33,"value":7473},"Every error message should be as clear and precise as possible. We give the user constructive advice on what to do next, suggest a solution or refer the user to a support staff member. And never forget, good error messages are characterised by politeness. We never blame the user and never imply that the user is stupid.",{"type":23,"tag":28,"props":7475,"children":7477},{"id":7476},"help-and-documentation",[7478],{"type":33,"value":7479},"Help and Documentation",{"type":23,"tag":2807,"props":7481,"children":7483},{"id":7482},"its-best-if-the-design-doesnt-need-any-additional-explanation",[7484],{"type":33,"value":7485},"\"It's best if the design doesn't need any additional explanation.\"",{"type":23,"tag":36,"props":7487,"children":7488},{},[7489],{"type":33,"value":7490},"We strive to make our applications perfectly usable even without documentation.",{"type":23,"tag":36,"props":7492,"children":7493},{},[7494,7499],{"type":23,"tag":85,"props":7495,"children":7496},{},[7497],{"type":33,"value":7498},"However",{"type":33,"value":7500},", it may be necessary to provide documentation to help users complete their tasks. What is easy for 90% of our users may be difficult for the remaining 10%.",{"type":23,"tag":36,"props":7502,"children":7503},{},[7504],{"type":33,"value":7505},"Documentation should be well structured, written in a human language, and minimalist. Sometimes, users don't need a whole lot of documentation; a simple coachmark showing how the new feature works or a brief onboarding guide that explains the basics is enough.",{"type":23,"tag":357,"props":7507,"children":7509},{"id":7508},"references",[7510],{"type":33,"value":7511},"References:",{"type":23,"tag":214,"props":7513,"children":7514},{},[7515,7524,7533,7542],{"type":23,"tag":218,"props":7516,"children":7517},{},[7518],{"type":23,"tag":940,"props":7519,"children":7522},{"href":7520,"rel":7521},"https://www.nngroup.com/articles/ten-usability-heuristics/",[944],[7523],{"type":33,"value":7520},{"type":23,"tag":218,"props":7525,"children":7526},{},[7527],{"type":23,"tag":940,"props":7528,"children":7531},{"href":7529,"rel":7530},"https://www.interaction-design.org/literature/article/heuristic-evaluation-how-to-conduct-a-heuristic-evaluation",[944],[7532],{"type":33,"value":7529},{"type":23,"tag":218,"props":7534,"children":7535},{},[7536],{"type":23,"tag":940,"props":7537,"children":7540},{"href":7538,"rel":7539},"https://www.gdrc.org/decision/info-decision.html",[944],[7541],{"type":33,"value":7538},{"type":23,"tag":218,"props":7543,"children":7544},{},[7545],{"type":23,"tag":940,"props":7546,"children":7549},{"href":7547,"rel":7548},"https://homepages.cwi.nl/~steven/sigchi/bulletin/1997.4/karn.html",[944],[7550],{"type":33,"value":7547},{"title":866,"searchDepth":867,"depth":867,"links":7552},[7553,7554,7555,7556,7557,7558,7559,7560,7561,7562],{"id":7265,"depth":867,"text":7268},{"id":7292,"depth":867,"text":7295},{"id":7314,"depth":867,"text":7317},{"id":7336,"depth":867,"text":7339},{"id":7358,"depth":867,"text":7361},{"id":7385,"depth":867,"text":7388},{"id":7407,"depth":867,"text":7410},{"id":7423,"depth":867,"text":7426},{"id":7454,"depth":867,"text":7457},{"id":7476,"depth":867,"text":7479,"children":7563},[7564],{"id":7508,"depth":876,"text":7511},"content:en:blog:the-usability-principles.md","en/blog/the-usability-principles.md","en/blog/the-usability-principles",{"_path":7569,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":7570,"description":7571,"slug":7572,"author":11,"authorImage":12,"role":2784,"date":6695,"category":6696,"image":7573,"seoTitle":7574,"seoDescription":7575,"body":7576,"_type":890,"_id":7788,"_source":892,"_file":7789,"_stem":7790,"_extension":895},"/blog/why-team-maturity-for-design-is-essential","Why team maturity for design is essential?","Understanding how team maturity impacts design effectiveness in agile environments.","why-team-maturity-for-design-is-essential","blog_teamReife.webp","Team Maturity for Design: Essential for Agile Success","Learn why team maturity is essential for design effectiveness. Discover how to assess and improve team maturity for better design collaboration.",{"type":20,"children":7577,"toc":7776},[7578,7589,7594,7599,7604,7609,7615,7638,7644,7672,7678,7696,7702,7740,7744,7748,7752,7756,7760,7764,7768,7772],{"type":23,"tag":2807,"props":7579,"children":7581},{"id":7580},"insufficient-maturity-of-a-team-can-block-the-impact-of-the-design-but-dont-worry-maturity-can-be-learned-like-a-dino-learning-to-walk-first",[7582,7587],{"type":23,"tag":85,"props":7583,"children":7584},{},[7585],{"type":33,"value":7586},"\"Insufficient maturity of a team can block the impact of the design\"",{"type":33,"value":7588}," But don't worry – maturity can be learned. Like a dino learning to walk first. 🦕**",{"type":23,"tag":36,"props":7590,"children":7591},{},[7592],{"type":33,"value":7593},"If the design feels alien to the rest of the team, it easily breaks down into sub-processes that bottleneck development. Similarly, understanding customer value should be at the heart of every team members daily work. In reality, however, it is easily only perceived - if not forgotten altogether - by team leaders or designers.",{"type":23,"tag":36,"props":7595,"children":7596},{},[7597],{"type":33,"value":7598},"To be successful as a customer-centric agile team, we need to agree on what this even means. Customer-centred design needs a team that understands and appreciates it. Sharing knowledge about the roles and daily work of designers is important to break silos, create a common mindset and improve collaboration.",{"type":23,"tag":36,"props":7600,"children":7601},{},[7602],{"type":33,"value":7603},"The whole team, including designers, should understand the full potential of design. Listening to the goals of the team and the IU can help us see how client-centric we really are. Are the goals aligned with the clients goals and do the clients and end users participate in the discussions?",{"type":23,"tag":36,"props":7605,"children":7606},{},[7607],{"type":33,"value":7608},"To determine what the current maturity level of the teams is, we need to ask ourselves the right questions in the most important areas:",{"type":23,"tag":357,"props":7610,"children":7612},{"id":7611},"agile-team-culture",[7613],{"type":33,"value":7614},"Agile team culture:",{"type":23,"tag":214,"props":7616,"children":7617},{},[7618,7623,7628,7633],{"type":23,"tag":218,"props":7619,"children":7620},{},[7621],{"type":33,"value":7622},"Do our teams have effective reflection meetings where everyone is listened to and can have their say?",{"type":23,"tag":218,"props":7624,"children":7625},{},[7626],{"type":33,"value":7627},"Do our teams have enough autonomy to make decisions about the product: Are you achieving results rather than just delivering features?",{"type":23,"tag":218,"props":7629,"children":7630},{},[7631],{"type":33,"value":7632},"Can our teams improve the way they work independently?",{"type":23,"tag":218,"props":7634,"children":7635},{},[7636],{"type":33,"value":7637},"Is everyone aware of their power as a member of an agile team?",{"type":23,"tag":357,"props":7639,"children":7641},{"id":7640},"customer-centricity",[7642],{"type":33,"value":7643},"Customer-centricity:",{"type":23,"tag":214,"props":7645,"children":7646},{},[7647,7652,7657,7662,7667],{"type":23,"tag":218,"props":7648,"children":7649},{},[7650],{"type":33,"value":7651},"Is your company willing to focus on customer value rather than resources?",{"type":23,"tag":218,"props":7653,"children":7654},{},[7655],{"type":33,"value":7656},"Do our teams measure success by customer outcomes?",{"type":23,"tag":218,"props":7658,"children":7659},{},[7660],{"type":33,"value":7661},"Is there continuous collaboration between our teams, customers and other stakeholders? Who feels accountable for this?",{"type":23,"tag":218,"props":7663,"children":7664},{},[7665],{"type":33,"value":7666},"Do we meet with end users and prototype regularly?",{"type":23,"tag":218,"props":7668,"children":7669},{},[7670],{"type":33,"value":7671},"Are customer and end-user insights shared within teams?",{"type":23,"tag":357,"props":7673,"children":7675},{"id":7674},"design-collaboration",[7676],{"type":33,"value":7677},"Design collaboration:",{"type":23,"tag":214,"props":7679,"children":7680},{},[7681,7686,7691],{"type":23,"tag":218,"props":7682,"children":7683},{},[7684],{"type":33,"value":7685},"Does the whole team take responsibility for improving design collaboration?",{"type":23,"tag":218,"props":7687,"children":7688},{},[7689],{"type":33,"value":7690},"Do designers participate in joint meetings and rituals?",{"type":23,"tag":218,"props":7692,"children":7693},{},[7694],{"type":33,"value":7695},"Do the tools used by the team enable cross-functional collaboration?",{"type":23,"tag":28,"props":7697,"children":7699},{"id":7698},"tips-for-improving-maturity",[7700],{"type":33,"value":7701},"Tips for improving maturity",{"type":23,"tag":1257,"props":7703,"children":7704},{},[7705,7710,7715,7720,7725,7730,7735],{"type":23,"tag":218,"props":7706,"children":7707},{},[7708],{"type":33,"value":7709},"Go ahead and ask - there are no stupid questions! But it will be easier to suggest changes and improvements if trust has already been built with the team. Trust is the foundation for everything. 🤝",{"type":23,"tag":218,"props":7711,"children":7712},{},[7713],{"type":33,"value":7714},"Together with the team, draw a map of the team and its stakeholders. Make sure everyone understands the roles in the team from the beginning.",{"type":23,"tag":218,"props":7716,"children":7717},{},[7718],{"type":33,"value":7719},"Improve the opportunity and nature of reflections to create a space for discussion. A frequent, honest and safe culture of reflection is key to growth and the first point for improvement.",{"type":23,"tag":218,"props":7721,"children":7722},{},[7723],{"type":33,"value":7724},"Offer courses and coaching for yourself and the team. Never assume that everyone understands design or the agile way of working.",{"type":23,"tag":218,"props":7726,"children":7727},{},[7728],{"type":33,"value":7729},"As a team, set small, shared goals for improvement. Change will happen more easily if these goals come from team members and align with their individual development goals.",{"type":23,"tag":218,"props":7731,"children":7732},{},[7733],{"type":33,"value":7734},"Always be patient, change takes time.",{"type":23,"tag":218,"props":7736,"children":7737},{},[7738],{"type":33,"value":7739},"Visualise the journey of change as a team: create a document together where all members can track the improvements made by the team. This shows how far we have come.",{"type":23,"tag":28,"props":7741,"children":7742},{"id":6624},[7743],{"type":33,"value":6627},{"type":23,"tag":357,"props":7745,"children":7746},{"id":6630},[7747],{"type":33,"value":6633},{"type":23,"tag":36,"props":7749,"children":7750},{},[7751],{"type":33,"value":6638},{"type":23,"tag":357,"props":7753,"children":7754},{"id":6641},[7755],{"type":33,"value":6644},{"type":23,"tag":36,"props":7757,"children":7758},{},[7759],{"type":33,"value":6649},{"type":23,"tag":357,"props":7761,"children":7762},{"id":6652},[7763],{"type":33,"value":6655},{"type":23,"tag":36,"props":7765,"children":7766},{},[7767],{"type":33,"value":6660},{"type":23,"tag":357,"props":7769,"children":7770},{"id":6663},[7771],{"type":33,"value":6414},{"type":23,"tag":36,"props":7773,"children":7774},{},[7775],{"type":33,"value":6670},{"title":866,"searchDepth":867,"depth":867,"links":7777},[7778,7779,7780,7781,7782],{"id":7611,"depth":876,"text":7614},{"id":7640,"depth":876,"text":7643},{"id":7674,"depth":876,"text":7677},{"id":7698,"depth":867,"text":7701},{"id":6624,"depth":867,"text":6627,"children":7783},[7784,7785,7786,7787],{"id":6630,"depth":876,"text":6633},{"id":6641,"depth":876,"text":6644},{"id":6652,"depth":876,"text":6655},{"id":6663,"depth":876,"text":6414},"content:en:blog:why-team-maturity-for-design-is-essential.md","en/blog/why-team-maturity-for-design-is-essential.md","en/blog/why-team-maturity-for-design-is-essential",1782424350353]