<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Davie Kibet</title>
    <description>The latest articles on DEV Community by Davie Kibet (@daviewisdm).</description>
    <link>https://dev.to/daviewisdm</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1201946%2F941d699c-008d-45a1-8659-f58697af6f04.jpeg</url>
      <title>DEV Community: Davie Kibet</title>
      <link>https://dev.to/daviewisdm</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/daviewisdm"/>
    <language>en</language>
    <item>
      <title>The Explanation Gap: Why Explainable AI Still Struggles to Speak Human</title>
      <dc:creator>Davie Kibet</dc:creator>
      <pubDate>Thu, 17 Sep 2026 18:22:59 +0000</pubDate>
      <link>https://dev.to/daviewisdm/the-explanation-gap-why-explainable-ai-still-struggles-to-speak-human-13j6</link>
      <guid>https://dev.to/daviewisdm/the-explanation-gap-why-explainable-ai-still-struggles-to-speak-human-13j6</guid>
      <description>&lt;p&gt;A model predicts a 92% risk of hospital readmission. The SHAP values show age, prior admissions, and medication adherence as the top contributors. But when a nurse asks, "Why &lt;em&gt;this&lt;/em&gt; patient, &lt;em&gt;this&lt;/em&gt; week?" The technical answer: 'coefficients multiplied by feature values, printed to four decimal places'. Well this is correct as it is but almost useless in this conversation.&lt;/p&gt;

&lt;p&gt;This is the unresolved core problem of explainable AI: getting a model to compute an answer was never the hard part in the long run. &lt;strong&gt;Getting it to explain that answer to the person who actually has to act on it, without making the explanation sound more certain than it deserves to be&lt;/strong&gt;, is the part the field is still working through.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Explainability Isn't Optional
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foq7f7qpel1k593xtat7l.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foq7f7qpel1k593xtat7l.jpg" alt="milestones in XAI" width="800" height="437"&gt;&lt;/a&gt;&lt;br&gt;
In 2015, DARPA launched its Explainable Artificial Intelligence (XAI) program with an explicit goal: to enable end users to "understand, appropriately trust, and effectively manage" AI systems. The program's retrospective makes clear that this was not an academic exercise. High-stakes domains (healthcare, criminal justice, credit, hiring) cannot tolerate decisions that are accurate on aggregate but inscrutable in individual cases.&lt;/p&gt;

&lt;p&gt;The field has since developed a rich landscape of explanation methods. LIME (Local Interpretable Model-agnostic Explanations) fits simple surrogate models around individual predictions. &lt;strong&gt;Counterfactual explanations&lt;/strong&gt; answer "what would need to change for the outcome to flip?". &lt;strong&gt;Saliency&lt;/strong&gt; maps highlight influential pixels in images. &lt;strong&gt;Attention-based explanations&lt;/strong&gt; point to tokens a transformer model "attended to." &lt;strong&gt;Rule extraction&lt;/strong&gt; methods distill complex models into human-readable if-then statements.&lt;/p&gt;

&lt;p&gt;None of these methods, on their own, answers the question that matters most in high-stakes decisions: &lt;em&gt;Why should I, as a clinician or regulator or affected individual, believe this explanation?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Raw accuracy metrics "the model is 92% accurate" do not address this. They describe aggregate performance, not individual reasoning. A model can be highly accurate and still rely on spurious correlations, proxy variables for protected attributes, or patterns that will not hold under intervention. In healthcare, where a single false negative can cost a life, the "why" is not optional. It is the entire point.&lt;/p&gt;

&lt;p&gt;The European Data Protection Supervisor's 2023 TechDispatch on XAI puts it plainly: "It is therefore unacceptable to have a 'black box' effect that hides the underlying logic of decisions made by AI". Opacity can hide bias, inaccuracies, and hallucinations. It prevents affected individuals from understanding, challenging, or correcting decisions that shape their lives.&lt;/p&gt;
&lt;h2&gt;
  
  
  What SHAP Actual Is (...and Isn't)
&lt;/h2&gt;

&lt;p&gt;To understand why the communication problem is so hard, you need to understand what SHAP values actually represent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SHAP&lt;/strong&gt;(SHapley Additive exPlanations) is a method for attributing a model's prediction for a single instance to its input features. It is grounded in Shapley values from cooperative game theory, which answer: given a payoff produced by a coalition of players, how much credit does each player deserve?&lt;/p&gt;

&lt;p&gt;In the ML context:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The "players" are input features.&lt;/li&gt;
&lt;li&gt;The "payoff" is the model's prediction for a specific instance.&lt;/li&gt;
&lt;li&gt;The Shapley value for feature i is the average marginal contribution of that feature across all possible coalitions of other features.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Formally, for a feature &lt;em&gt;i&lt;/em&gt; and a set of features &lt;em&gt;F&lt;/em&gt;, the Shapley value is:&lt;/p&gt;

&lt;p&gt;

&lt;/p&gt;
&lt;div class="katex-element"&gt;
  &lt;span class="katex-display"&gt;&lt;span class="katex"&gt;&lt;span class="katex-mathml"&gt;&lt;/span&gt;&lt;span class="katex-html"&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord mathnormal"&gt;ϕ&lt;/span&gt;&lt;span class="msupsub"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="sizing reset-size6 size3 mtight"&gt;&lt;span class="mord mathnormal mtight"&gt;i&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mrel"&gt;=&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mop op-limits"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="sizing reset-size6 size3 mtight"&gt;&lt;span class="mord mtight"&gt;&lt;span class="mord mathnormal mtight"&gt;S&lt;/span&gt;&lt;span class="mrel mtight"&gt;⊆&lt;/span&gt;&lt;span class="mord mathnormal mtight"&gt;F&lt;/span&gt;&lt;span class="mbin mtight"&gt;∖&lt;/span&gt;&lt;span class="mord mtight"&gt;&lt;span class="mord mathnormal mtight"&gt;i&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="mop op-symbol large-op"&gt;∑&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mopen nulldelimiter"&gt;&lt;/span&gt;&lt;span class="mfrac"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;∣&lt;/span&gt;&lt;span class="mord mathnormal"&gt;F&lt;/span&gt;&lt;span class="mord"&gt;∣&lt;/span&gt;&lt;span class="mclose"&gt;!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="frac-line"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;∣&lt;/span&gt;&lt;span class="mord mathnormal"&gt;S&lt;/span&gt;&lt;span class="mord"&gt;∣&lt;/span&gt;&lt;span class="mclose"&gt;!&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mopen"&gt;(&lt;/span&gt;&lt;span class="mord"&gt;∣&lt;/span&gt;&lt;span class="mord mathnormal"&gt;F&lt;/span&gt;&lt;span class="mord"&gt;∣&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;−&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mord"&gt;∣&lt;/span&gt;&lt;span class="mord mathnormal"&gt;S&lt;/span&gt;&lt;span class="mord"&gt;∣&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;−&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mord"&gt;1&lt;/span&gt;&lt;span class="mclose"&gt;)!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mclose nulldelimiter"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="minner"&gt;&lt;span class="mopen delimcenter"&gt;[&lt;/span&gt;&lt;span class="mord mathnormal"&gt;f&lt;/span&gt;&lt;span class="mopen"&gt;(&lt;/span&gt;&lt;span class="mord mathnormal"&gt;S&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;∪&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord mathnormal"&gt;i&lt;/span&gt;&lt;/span&gt;&lt;span class="mclose"&gt;)&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;−&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;f&lt;/span&gt;&lt;span class="mopen"&gt;(&lt;/span&gt;&lt;span class="mord mathnormal"&gt;S&lt;/span&gt;&lt;span class="mclose"&gt;)&lt;/span&gt;&lt;span class="mclose delimcenter"&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/div&gt;


&lt;p&gt;where &lt;em&gt;f(S)&lt;/em&gt; is the model's prediction when only features in &lt;em&gt;S&lt;/em&gt; are known.&lt;br&gt;
I know, I know. The formula looks intimidating right? My bad. Lemme explain:&lt;br&gt;
Imagine you're trying to figure out why your friend got 10/10 on a test.&lt;br&gt;
You know they studied three things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Studying&lt;/li&gt;
&lt;li&gt;Getting enough sleep&lt;/li&gt;
&lt;li&gt;Practising questions
SHAP is like asking:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;"How much did each of these things help my friend get that 10/10?"&lt;/p&gt;

&lt;p&gt;But there's a catch: studying might help a lot when combined with practice, but not as much without it.&lt;/p&gt;

&lt;p&gt;So SHAP tries different combinations:&lt;br&gt;
Studying alone → score goes up a little&lt;br&gt;
Studying + practice → score goes up a lot&lt;br&gt;
Studying + sleep + practice → score goes up even more&lt;/p&gt;

&lt;p&gt;It looks at all these different combinations and works out the average contribution of studying.&lt;/p&gt;

&lt;p&gt;That's what a &lt;strong&gt;Shapley value&lt;/strong&gt; is:&lt;br&gt;
&lt;strong&gt;a way of fairly figuring out how much each feature helped produce the final prediction&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;SHAP satisfies three desirable properties: &lt;strong&gt;local accuracy&lt;/strong&gt; (the attributions sum to the prediction), &lt;strong&gt;missingness&lt;/strong&gt; (features not present get zero attribution), and &lt;strong&gt;consistency&lt;/strong&gt; (if a feature's contribution increases, its attribution does not decrease).&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3expz5wq4hm4a40lnd2d.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3expz5wq4hm4a40lnd2d.jpg" alt="SHapley 3-feature computation" width="800" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What SHAP is not&lt;/strong&gt;: a causal explanation.&lt;/p&gt;

&lt;p&gt;This distinction is easy to lose the moment attributions get turned into sentences. A SHAP value of +0.18 for "prior admissions" means: &lt;em&gt;knowing&lt;/em&gt; this patient's prior admissions pushes the model's prediction 18 percentage points above the baseline. It does not mean that &lt;em&gt;reducing&lt;/em&gt; prior admissions would lower risk by 18 points in the real world.&lt;/p&gt;

&lt;p&gt;As the SHAP documentation warns: "SHAP makes transparent the correlations picked up by predictive ML models. But making correlations transparent does not make them causal!". If the model has learned that zip code is a proxy for race in a biased dataset, SHAP will dutifully explain that spurious association.&lt;/p&gt;

&lt;p&gt;This is not a bug in SHAP. It is a feature of any method that explains &lt;em&gt;model behavior&lt;/em&gt; rather than &lt;em&gt;data-generating processes&lt;/em&gt;. The moment you translate SHAP values into prose; "this factor drove the prediction," "this variable caused the risk"; you risk smuggling in causal claims the method does not support.&lt;/p&gt;
&lt;h3&gt;
  
  
  The Communication Gap
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffw1jv4sbbjv7jrs37fu9.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffw1jv4sbbjv7jrs37fu9.jpg" alt="A side-by-side visual contrasting raw SHAP output" width="800" height="437"&gt;&lt;/a&gt;&lt;br&gt;
Here is the crux of the problem.&lt;br&gt;
A typical SHAP output for a single prediction looks like this (simplified):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Base value: 0.12
shap_values: [0.08, -0.03, 0.15, 0.02, -0.01]
feature_names: ['age', 'income', 'prior_admissions', 'medication_adherence', 'distance_to_clinic']
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or, in a more structured form:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nc"&gt;Explanation&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;base_values&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.12&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;values&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;0.08&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;0.03&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.02&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;0.01&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;feature_names&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;age&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;income&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;prior_admissions&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;medication_adherence&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;distance_to_clinic&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For an ML engineer, this is informative as he/she reads Age: +0.08, Income: -0.03 fluently. For a nurse, a patient, a regulator, or a loan officer, it is nearly useless. The numbers live on a transformed scale (often log-odds). The feature names are internal identifiers, not clinical or business terms. A patient, a case worker, or a manager generally cannot, and wouldn't know how much weight to give it even if they could parse the syntax. There is no context: is 0.15 "large" for prior admissions, or typical?&lt;/p&gt;

&lt;p&gt;Christoph Molnar's &lt;em&gt;Interpretable Machine Learning&lt;/em&gt; emphasizes this repeatedly: interpretability is not just about producing an explanation, but producing one that the &lt;em&gt;intended audience&lt;/em&gt; can comprehend and use. A data scientist needs different information than a patient. A regulator needs different information than a clinician.&lt;/p&gt;

&lt;p&gt;The EDPS TechDispatch puts it sharply: explanations should be "presented in an understandable way, avoiding jargon and technical complexity". Yet most XAI tools stop at the attribution layer. &lt;/p&gt;

&lt;p&gt;There's a second, more consequential gap hiding underneath the first one: &lt;strong&gt;an attribution describes how a model behaves, not how the world works&lt;/strong&gt;. A feature with a large positive SHAP value pushed this model's prediction upward; it did not "cause" the outcome in any scientific sense. A model can pick up a spurious correlation or a genuine but non-causal association, and the attribution method has no way to distinguish these, because it's a property of the model, not of reality. &lt;/p&gt;

&lt;p&gt;This is the trap waiting for any tool that tries to translate attributions into plain sentences: it's easy, almost automatic, for "this feature moved the prediction" to slide into "this feature causes the outcome" once it's phrased as an English sentence rather than a number.&lt;/p&gt;

&lt;p&gt;So the real bottleneck in xAI right now isn't producing more attributions, rather, building a responsible bridge from attribution to language: one that makes the numbers &lt;strong&gt;legible&lt;/strong&gt; without making them &lt;strong&gt;sound more certain&lt;/strong&gt;, or &lt;strong&gt;more casual&lt;/strong&gt;, than they are. This is the gap that narrashap attempts to bridge.&lt;/p&gt;

&lt;h3&gt;
  
  
  narrashap: A Case Study in Bridging the Gap
&lt;/h3&gt;

&lt;p&gt;narrashap, a small open-source Python library, is one working example of an attempt at that bridge; not a solved version of the problem, but a useful, inspectable case study in what building toward it actually requires. Its interface is a single function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;narrashap&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;narrate&lt;/span&gt;

&lt;span class="n"&gt;narrated_shap&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;narrate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;shap_values&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;shap_values&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;instance&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;patient_row&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;training_data&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;X_train&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;risk_percentage&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;65.6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;risk_level&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;MODERATE RISK&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;narrated_shap&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It takes SHAP output for one prediction, the specific feature values for that case, and the training data the model learned from, and produces a narrative; either from a fixed set of plain-language sentence templates, or through a language model, depending on configuration. Consider the difference directly:&lt;/p&gt;

&lt;h3&gt;
  
  
  Raw attribution output:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Base value: -0.114 (log-odds)
Predicted value: 0.645 (log-odds)
Race (Black): +1.58
Family history: -0.57
Vitamin D deficiency: -0.30
Hypertension: -0.13
Parity: +0.10
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Generated Narrative Output:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Plain-language narrative (illustrative, not from a real tool):&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This patient's predicted risk of readmission is higher than average for our population. The model's prediction is driven primarily by their history of prior hospital admissions, which is in the 92nd percentile compared to similar patients. Age also contributes positively to the predicted risk. Income and medication adherence have smaller, offsetting effects, with higher income and good adherence slightly reducing the predicted risk. Distance to the clinic has minimal influence on this prediction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; This explanation describes how the model arrived at its prediction. It does not prove that these factors &lt;em&gt;cause&lt;/em&gt; readmission risk, nor should it be used as a diagnosis or treatment recommendation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  Is causal language actively suppressed, or just discouraged in a prompt?
&lt;/h4&gt;

&lt;p&gt;Asking an LLM nicely not to imply causation isn't sufficient on its own — it will occasionally slip. narrashap checks generated text against a list of banned causal phrases after generation, and rewrites if one appears. This has to be more careful than simple keyword matching: "this is not proven to cause the outcome" contains the word "proven" but is making exactly the hedged claim the system wants to allow. Getting the negation handling right took more than one attempt; an early fixed-word-lookback approach produced false positives on precisely the safe disclaimer language it needed to permit. It's a small, unglamorous detail, and exactly the kind that determines whether a safety mechanism works in practice or only in a demo.&lt;/p&gt;

&lt;h4&gt;
  
  
  Is the generated text checked against the numbers it claims to represent?
&lt;/h4&gt;

&lt;p&gt;This is the part of the problem that gets the least attention across the broader explainability field. Most tooling evaluates whether an attribution method is faithful to the model. Very little evaluates whether a narrative built on top of that attribution is faithful to the attribution itself; whether it mentioned the features that actually mattered, got the direction right, or invented a claim the data doesn't support. narrashap's fidelity scorer is a modest, direct attempt at treating that as a measurable property rather than an assumption.&lt;/p&gt;

&lt;h4&gt;
  
  
  Does the explanation adapt to who's reading it?
&lt;/h4&gt;

&lt;p&gt;A patient, a clinician, and a fraud analyst don't need identical phrasing, though they need the same underlying discipline about what can be claimed. Domain-specific configuration; implemented here for healthcare and, more provisionally, fraud; lets terminology and tone shift while keeping the hedging requirements fixed.&lt;/p&gt;

&lt;p&gt;None of these are solved problems, in this project or in the field generally. But they're the right questions, and they generalize well beyond this one library.&lt;/p&gt;

&lt;p&gt;The narrative does several things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It frames feature values relative to the population (percentiles).&lt;/li&gt;
&lt;li&gt;It identifies the top contributors without overstating certainty.&lt;/li&gt;
&lt;li&gt;It explicitly disclaims causal interpretation.&lt;/li&gt;
&lt;li&gt;It avoids medical advice.
This is the kind of explanation a clinician might actually read. It is not perfect. But it is legible.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h4&gt;
  
  
  Honest Limitations
&lt;/h4&gt;

&lt;p&gt;Both the broader project of AI explainability and this particular tool remain unfinished work. narrashap has one meaningfully validated real-world integration — a logistic regression health-risk model — and its design decisions have only actually been tested against that setting. Other model families should work with the underlying extraction logic in principle but haven't been confirmed. It explains individual predictions; it is not a model governance tool, a fairness audit, or a substitute for evaluating a model's behavior across a population, and no explanation-narration layer, however careful, closes that gap on its own.&lt;/p&gt;

&lt;p&gt;Bringing a language model into the loop reintroduces familiar risks that the field as a whole hasn't fully solved: occasional hallucination, a tendency toward misplaced confidence in tone, and provider-side model updates that quietly change behavior. Guardrails like a banned-phrase check make failures more likely to be caught — they don't make an LLM path risk-free. And the negation-aware safety check here has a known edge case: a compound sentence with an unrelated negation earlier in it could, in principle, let an unrelated unsafe claim through uncaught. A narrow, acknowledged gap, not a hidden one.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Field's Unsolved Problems
&lt;/h3&gt;

&lt;p&gt;Beyond narrashap specifically, the field still struggles with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Evaluating the narrative layer: Most XAI evaluation focuses on attribution methods, not the explanations built on top of them.&lt;/li&gt;
&lt;li&gt;Audience-specific explanation: Patient vs. clinician vs. regulator explanations are often an afterthought, not a design norm.&lt;/li&gt;
&lt;li&gt;Explanation drift: We monitor accuracy drift across model retraining. We rarely monitor explanation drift—whether the same input yields meaningfully different narratives over time.&lt;/li&gt;
&lt;li&gt;Fairness at the individual level: Aggregate fairness audits are common. Surfacing fairness signals at the level of individual explanations is rarer.&lt;/li&gt;
&lt;li&gt;Privacy-preserving generation: Local-only, no-API explanation generation is still the exception, not the rule.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where Explainable AI Plausibly Goes Next
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmhdjeuprx1fplvl4g04i.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmhdjeuprx1fplvl4g04i.jpg" alt=" " width="800" height="437"&gt;&lt;/a&gt;&lt;br&gt;
The future of XAI is not "more explanations." It is better explanations: faithful, appropriately uncertain, legible to their actual audience, and honest about what they are not. &lt;/p&gt;

&lt;p&gt;Here are genuine, thoughtful directions—none of which narrashap (or most tools) claim to have solved yet:&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Evaluating the Narrative Layer Itself
&lt;/h4&gt;

&lt;p&gt;The narrative layer should be evaluated as its own research problem, separate from the attribution method. Metrics might include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fidelity to underlying attributions.&lt;/li&gt;
&lt;li&gt;Comprehension by target audiences (patients, clinicians, regulators).&lt;/li&gt;
&lt;li&gt;Resistance to misinterpretation (do users draw causal inferences where none are warranted?).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Recent work on SHAPstories and LLM-based narratives is a start. But standardized benchmarks and evaluation protocols are still emerging.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Audience-Specific Explanation as a Design Norm
&lt;/h4&gt;

&lt;p&gt;The EDPS TechDispatch emphasizes that explanations should be tailored to their audience. A patient needs different information than a regulator. A clinician needs different information than a data scientist.&lt;/p&gt;

&lt;p&gt;Future tools should make audience a first-class parameter, not an afterthought. This means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Different vocabularies (clinical vs. lay terms).&lt;/li&gt;
&lt;li&gt;Different levels of detail.&lt;/li&gt;
&lt;li&gt;Different guardrails (e.g., stronger disclaimers for patient-facing explanations).&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  3. Detecting Explanation Drift
&lt;/h4&gt;

&lt;p&gt;We monitor model accuracy drift. We should also monitor explanation drift: does the same input yield meaningfully different narratives after model retraining or LLM updates?&lt;/p&gt;

&lt;p&gt;This is not just a technical problem. It is a governance problem. If explanations change, affected individuals and auditors need to know.&lt;/p&gt;

&lt;h4&gt;
  
  
  4. Surfacing Fairness Signals at the Individual Level
&lt;/h4&gt;

&lt;p&gt;Aggregate fairness audits are important. But individuals affected by specific decisions need to know: was this decision influenced by a proxy for a protected attribute?&lt;/p&gt;

&lt;p&gt;Future XAI tools should surface fairness-relevant signals at the individual explanation level, not just in aggregate reports.&lt;/p&gt;

&lt;h4&gt;
  
  
  5. Human-in-the-Loop Review as Permanent
&lt;/h4&gt;

&lt;p&gt;Human review is not a transitional phase. It is a permanent design requirement for high-stakes explanations. Tools should make review easy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clear provenance (what model, what version, what data).&lt;/li&gt;
&lt;li&gt;Editable narratives (so humans can correct or contextualize).&lt;/li&gt;
&lt;li&gt;Audit trails (who reviewed, what changed).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Conclusion: One Honest Contribution
&lt;/h3&gt;

&lt;p&gt;Narrashap is not a finished solution to the explanation gap. It is one honest, practical contribution to a much larger, still-unsolved problem.&lt;/p&gt;

&lt;p&gt;It acknowledges that SHAP values alone are not enough. It bakes in guardrails against causal misinterpretation. It offers a zero-dependency fallback for sensitive environments. It treats the narrative layer as something that can (and should) be scored and audited.&lt;/p&gt;

&lt;p&gt;The future of XAI will require many such contributions: tools that are faithful to their underlying attributions, appropriately uncertain, legible to their actual audiences, and honest about what they are not (a diagnosis, a proof, a causal claim).&lt;/p&gt;

&lt;p&gt;The explanation gap will not close overnight. But projects like narrashap show that the field is moving in the right direction: from "we have explanations" to "we have explanations we can trust."&lt;/p&gt;

&lt;p&gt;Below is Narrashap's github &lt;a href="https://github.com/daviewisdm/narrashap" rel="noopener noreferrer"&gt;link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Further reading: Lundberg, S. &amp;amp; Lee, S.-I. (2017), "&lt;a href="https://arxiv.org/abs/1705.07874" rel="noopener noreferrer"&gt;A Unified Approach to Interpreting Model Predictions", NeurIPS. Molnar, C., Interpretable Machine Learning.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>The Stone That the 'Landlord' Rejected: African Governments vs Startups</title>
      <dc:creator>Davie Kibet</dc:creator>
      <pubDate>Tue, 03 Feb 2026 21:42:29 +0000</pubDate>
      <link>https://dev.to/daviewisdm/the-stone-that-the-landlord-rejected-african-governments-vs-startups-4g65</link>
      <guid>https://dev.to/daviewisdm/the-stone-that-the-landlord-rejected-african-governments-vs-startups-4g65</guid>
      <description>&lt;p&gt;Biblically, the stone that the builders rejected eventually becomes the cornerstone. Well, in the African tech space, the landlord would rather grind the cornerstone into asphalt to fill a fiscal pothole today than allow it to support a skyscraper tomorrow. We are witnessing a tragic architectural paradox: the very hands that should be steadying the foundation are the ones swinging the wrecking ball.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;u&gt;The Silence of the Flame&lt;/u&gt;
&lt;/h2&gt;

&lt;p&gt;The &lt;em&gt;wick has gone cold&lt;/em&gt; and &lt;em&gt;the shadows have stepped forward&lt;/em&gt;. The silence left by &lt;strong&gt;KOKO Fuel&lt;/strong&gt;’s collapse is deafening. This wasn't the quiet exit of a company that lost its way or a standard startup "pivoting" into the void; it was the sudden extinguishing of a decade-long flame. &lt;/p&gt;

&lt;p&gt;KOKO was the rare unicorn of utility—based climate-tech that actually worked, serving 1.5 million households. Their business model was a masterclass in UN's SDG 13 (Climate Action) &amp;amp; SDG 7 (Affordable and Clean Energy), turning carbon credits into cheap fuel for the poor. But here is the irony: the same government that spent the last year hosting global climate summits and declaring "climate holidays" to plant trees is the one that effectively cut KOKO's oxygen. By refusing to sign a "Letter of Authorization" for their carbon credits, the state engaged in a staggering display of policy hypocrisy; publicly advocating for a green future while privately sabotaging the very pioneers making it affordable.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9csd3uqp8wxbuxl44phj.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9csd3uqp8wxbuxl44phj.jpeg" alt="Credits: @davidamunga on X" width="592" height="1280"&gt;&lt;/a&gt;&lt;em&gt;Credits: &lt;a class="mentioned-user" href="https://dev.to/davidamunga"&gt;@davidamunga&lt;/a&gt; on X&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;But the Landlord didn't just lock the door; he burned the building down and sued the street for the smoke damage. KOKO wasn't a lightweight experiment. This was a titan of infrastructure that had invested north of $300M in clean cooking technology and logistics. They put their money where their mouth was, spending over &lt;strong&gt;&lt;em&gt;$100M&lt;/em&gt;&lt;/strong&gt; out of pocket to subsidize fuel for &lt;strong&gt;&lt;em&gt;1.5 million households&lt;/em&gt;&lt;/strong&gt; while waiting for the government to simply fulfill its end of the bargain.&lt;/p&gt;

&lt;p&gt;Because they understood the waywardness of the Landlord, KOKO secured a &lt;em&gt;&lt;strong&gt;$179.6M political risk guarantee&lt;/strong&gt;&lt;/em&gt; from the World Bank. This wasn't just paper; it was a shield against the exact breach of contract we are seeing today.&lt;/p&gt;

&lt;h3&gt;
  
  
  ..the Shadows have stepped forward
&lt;/h3&gt;

&lt;p&gt;Now, as the shadows lengthen, the ultimate tragedy emerges: Taxpayers are staring down a potential &lt;strong&gt;&lt;em&gt;Ksh 23Bn bill&lt;/em&gt;&lt;/strong&gt;. If the World Bank pays out that guarantee due to the government’s regulatory obstruction, they will seek to recover every cent from the state. The very people who just lost their clean fuel are now being asked to pay for the ink the government refused to use. It is a masterclass in fiscal self-sabotage.&lt;/p&gt;

&lt;p&gt;The government’s hesitation was reportedly about &lt;strong&gt;"benefit sharing"&lt;/strong&gt; they wanted a larger piece of the carbon credit pie. But by holding out for a few percentage points of revenue, they have invited a Ksh 23 billion liability. Beyond the direct Ksh 23B, there is a &lt;em&gt;"ghost tax"&lt;/em&gt; now applied to every other Kenyan startup. International investors see the KOKO collapse and add a "Policy Risk Premium" to any future deals in Kenya. &lt;/p&gt;

&lt;p&gt;KOKO now takes its place in a crowded graveyard, lying right next to the rusted frame of &lt;strong&gt;Mobius Motors&lt;/strong&gt; (Rest Her Soul). But if you look closely at Mobius’s plot, you’ll see the flowers have long since died. The wreaths of "Buy Kenya, Build Kenya" have withered into gray stalks, and the soil is packed hard by indifference. No one is coming to visit her remains. No government delegation is laying a stone in remembrance of the thirteen years spent trying to build an African car for African roads.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fugtnn8legf689yzl4026.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fugtnn8legf689yzl4026.jpeg" alt="Credits: @alexmwanzo on Twitter" width="800" height="607"&gt;&lt;/a&gt;&lt;em&gt;Credits: @alexmwanzo on Twitter&lt;/em&gt;&lt;br&gt;
Mobius didn't just run out of gas; it was run off the road by a Landlord that preferred the immediate hit of a tax penalty over the long-term wealth of a local automotive industry. It is a lonely corner of the cemetery. The silence there serves as a grim warning to any other builder brave enough to dream in steel: in this jurisdiction, the Landlord doesn't mourn the stones he rejects, he simply waits for the grass to cover the evidence of his own short-sightedness.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Sky is Still Grey
&lt;/h2&gt;

&lt;p&gt;As 1.5 million households reach for charcoal tonight, the "green" smoke from the government’s latest climate summit carries a bitter scent of betrayal. We were promised a transition; we were given a funeral.&lt;/p&gt;

&lt;p&gt;African governments must decide if they want to be &lt;strong&gt;Property Managers&lt;/strong&gt; or &lt;strong&gt;Slumlords&lt;/strong&gt;. A Property Manager invests in the infrastructure so the tenants can thrive and pay rent for decades. A Slumlord squeezes the tenant for every cent until the building is a shell and the tenants have fled.&lt;/p&gt;

&lt;h5&gt;
  
  
  To the Guardians of the Paris Agreement,
&lt;/h5&gt;

&lt;blockquote&gt;
&lt;p&gt;The collapse of KOKO Networks in Kenya is not just a commercial failure; it is a systemic warning shot for the entire Article 6 framework. When a host government uses the Letter of Authorization (LoA) as a tool for extortion rather than an instrument of climate action, the integrity of your carbon markets is compromised. The planet cannot afford to wait for a bureaucrat to find his pen.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Drop a comment. I’m open-source :)&lt;/p&gt;

</description>
      <category>startup</category>
    </item>
    <item>
      <title>Beyond the Algorithm: The Tightrope Walk in Health Data Science</title>
      <dc:creator>Davie Kibet</dc:creator>
      <pubDate>Fri, 25 Apr 2025 13:50:52 +0000</pubDate>
      <link>https://dev.to/daviewisdm/beyond-the-algorithm-the-tightrope-walk-in-health-data-science-1og1</link>
      <guid>https://dev.to/daviewisdm/beyond-the-algorithm-the-tightrope-walk-in-health-data-science-1og1</guid>
      <description>&lt;p&gt;The application of data science methodologies holds immense promise for revolutionizing healthcare. Personalized medicine, more accurate and timely diagnostics, and the potential for vastly improved efficiency within healthcare systems are all within reach, fueled by advanced algorithms like machine learning and artificial intelligence.&lt;/p&gt;

&lt;p&gt;However, a critical challenge lies at the heart of this transformative endeavor: the limitations inherent in the data upon which these powerful algorithms rely. The central question remains: can we truly achieve this transformative vision with the data we currently collect and can readily access?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beyond the Hospital Walls - The Missing Pieces&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frwatdwrytl6di9t4d5nm.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frwatdwrytl6di9t4d5nm.webp" alt=" " width="600" height="400"&gt;&lt;/a&gt;&lt;br&gt;
Hospitals and clinics are often assumed to be data-rich environments. In reality, the datasets collected in these environments are frequently narrow, incomplete, and inconsistent. Vital signs, lab results, diagnosis codes, medications, and procedures are certainly recorded — but these are often siloed across systems, riddled with missing values, or lack the temporal resolution necessary for dynamic modeling. A significant limitation of relying solely on Electronic Health Records (EHR) is the absence of crucial contextual information that profoundly influences models to be built and their outcomes.&lt;/p&gt;

&lt;p&gt;Comprehensive data on lifestyle factors such as diet, exercise habits, smoking and alcohol consumption, and mental well-being are often lacking or inconsistently recorded. Furthermore, EHRs typically do not capture detailed information about environmental exposures, socioeconomic determinants of health (like income, education, and housing), or patient-reported outcomes regarding their quality of life and functional status. Without this broader context, our understanding of why diseases develop and how to prevent them is inherently limited.&lt;/p&gt;

&lt;p&gt;The increasing recognition of the importance of social determinants of health has led to efforts to incorporate this information into EHRs. However, the practicalities of consistently and accurately collecting such data within the already demanding clinical workflow present significant challenges. Clinicians have limited time, and their primary focus naturally remains on immediate patient care needs. Gathering detailed information on social circumstances might be perceived as intrusive or time-consuming, leading to incomplete or inconsistent data capture. &lt;/p&gt;

&lt;p&gt;This lack of a holistic view can introduce biases and lead to incomplete research findings. For instance, research relying solely on hospital data might incorrectly attribute disease causes or fail to identify effective preventative measures rooted in lifestyle modifications or addressing environmental risk factors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Locked Away: The Accessibility Obstacle&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyhthrr33sv4jxcg6edg8.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyhthrr33sv4jxcg6edg8.jpg" alt=" " width="600" height="400"&gt;&lt;/a&gt;&lt;br&gt;
It’s truly unfortunate that valuable health data, data that could significantly improve healthcare outcomes and advance medical knowledge, frequently remains inaccessible. This data often resides outside the secure walls of established hospital systems, scattered across various platforms and databases. Alternatively, it may be present within hospitals but buried deep within lengthy and complicated reports, making it difficult to extract and utilize effectively. The process of attempting to retrieve this essential information for research purposes can often feel like navigating a complex and frustrating obstacle course, filled with numerous hurdles and challenges.&lt;/p&gt;

&lt;p&gt;The existence of privacy laws, such as the Health Insurance Portability and Accountability Act (HIPAA) in the United States and the General Data Protection Regulation (GDPR) in Europe, is undeniably crucial and well-intentioned. These laws serve a vital purpose: to safeguard our sensitive personal health information from unauthorized access and misuse, ensuring the confidentiality and security of individuals' medical records. However, while these regulations are essential for protecting privacy, they also introduce significant complexities into the process of accessing and sharing health data for research and other legitimate purposes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Synthetic Data: A Silver Bullet or a Faustian Bargain?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmmas2y3y1kc19vyv1zt8.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmmas2y3y1kc19vyv1zt8.webp" alt=" " width="600" height="400"&gt;&lt;/a&gt;&lt;br&gt;
In response to the challenges of accessing real-world health data, synthetic health data has emerged as a potential alternative. This artificially generated data is designed to mimic the statistical properties of real data without containing identifiable patient information. The benefits of using synthetic data are numerous. It can overcome privacy concerns, enable broader data sharing among researchers, and facilitate the development and testing of algorithms without the need for complex data access agreements. This can significantly accelerate the pace of research in privacy-sensitive areas.&lt;/p&gt;

&lt;p&gt;However, for all its usefulness, synthetic data is no replacement for reality. It lacks the messiness, the edge cases, the human quirks that make health data uniquely complex. Models that perform well on synthetic data often falter when exposed to real-world clinical environments. &lt;/p&gt;

&lt;h5&gt;
  
  
  But Why?
&lt;/h5&gt;

&lt;h6&gt;
  
  
  Synthetic Data is too 'clean'.
&lt;/h6&gt;

&lt;ul&gt;
&lt;li&gt;Real-world data is messy — full of missing values, inconsistent formats, typos, outliers, and contradictions. Synthetic data, by contrast, is usually generated using rules or models that follow distributions too neatly. So, models trained on it don’t learn how to handle chaos.&lt;/li&gt;
&lt;/ul&gt;

&lt;h6&gt;
  
  
  Lack of Rare Cases (Edge Cases)
&lt;/h6&gt;

&lt;ul&gt;
&lt;li&gt;In healthcare, those 1-in-1000 scenarios really matter — like a rare adverse drug reaction or an unusual combination of symptoms. Synthetic data often fails to include these rare but critical edge cases, making the model blind to them.&lt;/li&gt;
&lt;/ul&gt;

&lt;h6&gt;
  
  
  Missing Human Behavior and Judgment
&lt;/h6&gt;

&lt;ul&gt;
&lt;li&gt;Real medical records reflect human quirks: how doctors phrase things, how patients describe pain, or even how data entry staff input info. Synthetic data can’t replicate those subtle human factors, which actually influence outcomes a lot.&lt;/li&gt;
&lt;/ul&gt;

&lt;h6&gt;
  
  
  Bias in the Synthetic Generator
&lt;/h6&gt;

&lt;ul&gt;
&lt;li&gt;Synthetic data is as good as the model it is created on. Suffice to say, if that model itself was trained on biased or limited real data, the synthetic output will reflect and possibly amplify those same biases.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Real-World Challenges: An Example in Female Sexual Health Research
&lt;/h3&gt;

&lt;p&gt;The challenges faced in this research aren’t just theoretical—they’re real, tangible roadblocks that emerged when I was working on data science models in sensitive areas like female sexual health, particularly uterine fibroids. This field is critical for millions of women, yet the data barriers can feel insurmountable at times.&lt;/p&gt;

&lt;h4&gt;
  
  
  The Struggle to Access Reliable Data
&lt;/h4&gt;

&lt;p&gt;One of my biggest frustrations has been securing comprehensive datasets. When I reached out to organizations like the WHO or healthdata.gov, I often encountered denials or bureaucratic delays. Some data exists—like the Texas Department of State Health Services’ records on fibroid diagnoses or the Global Burden of Disease Study’s prevalence statistics—but it’s scattered across different sources. Each one requires separate permissions, and the process is slow and exhausting. I’ve spent weeks just trying to get access to what should be readily available for research that could improve women’s health outcomes.&lt;/p&gt;

&lt;h4&gt;
  
  
  The Problem of Poorly Curated Variables
&lt;/h4&gt;

&lt;p&gt;Even when I finally get my hands on a dataset, I’ve found that many aren’t well-structured for my research. One time, I opened a dataset supposedly focused on women with fibroids—only to find a redundant "gender" column. If the data is exclusively about women, why include a gender field? It’s a sign that the dataset wasn’t designed with this research in mind. I need variables like age, race, family history, and menarche age—known risk factors—but instead, I waste time cleaning irrelevant data. Furthermore, upon cleaning, I am left with meaningless columns to work with.&lt;/p&gt;

&lt;h4&gt;
  
  
  Fallback or perhaps fall back
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr9ogq728f25ogk0xkuem.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr9ogq728f25ogk0xkuem.jpg" alt=" " width="298" height="169"&gt;&lt;/a&gt;&lt;br&gt;
When real-world data is too hard to obtain, I’ve had to rely on synthetic datasets. But this isn’t a perfect solution. If the synthetic data isn’t carefully constructed—with deep knowledge of fibroid biology and clinical realities—the models I train on it perform well in theory but fail in practice. I’ve seen models that look promising in simulations but collapse when applied to actual patient cases. It’s disheartening, knowing that these limitations could delay meaningful advancements in women’s health.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion: Care before Code&lt;/strong&gt;&lt;br&gt;
Unlocking the full potential of health data science starts with better data — not just more of it, but more meaningful, diverse, and representative variables. To get there, we need open, privacy-conscious data sharing and stronger collaboration between hospitals, researchers, policymakers, and technologists. Only through this collective effort can we move beyond the algorithm and build solutions that truly serve everyone.&lt;/p&gt;

&lt;p&gt;This goes without saying — I was helped a great deal by Elizabeth Waithera, a data scientist, in shaping this thought, especially in highlighting the need for collective responsibility and shared access in the health data ecosystem.&lt;br&gt;
Have questions? Ping me. I don’t bite (unless you're a fraudulent transaction). &lt;/p&gt;

</description>
      <category>healthtech</category>
      <category>datascience</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Deepnote: To Use or Not To Use?</title>
      <dc:creator>Davie Kibet</dc:creator>
      <pubDate>Mon, 10 Mar 2025 22:52:06 +0000</pubDate>
      <link>https://dev.to/daviewisdm/deepnote-to-use-or-not-to-use-1fb0</link>
      <guid>https://dev.to/daviewisdm/deepnote-to-use-or-not-to-use-1fb0</guid>
      <description>&lt;p&gt;In my wandering around the various data science tools and frameworks, I discovered Deepnote, an online framework that allows you to create and run notebooks in Python.&lt;/p&gt;

&lt;p&gt;In the rapidly evolving field of data science, tools that streamline workflows and enhance collaboration are invaluable. Deepnote stands out by combining the strengths of Power BI, Google Colab, and Jupyter Notebooks while integrating powerful AI features that simplify data science operations. This blog explores how Deepnote brings together these functionalities, making it a comprehensive tool for modern data scientists.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Strengths of Power BI, Colab, and Jupyter
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Power BI: Business Intelligence and Visualization
&lt;/h3&gt;

&lt;p&gt;Power BI is renowned for its robust data visualization capabilities and business intelligence tools. It allows users to create interactive reports and dashboards, making it easier to analyze data and share insights with stakeholders.&lt;/p&gt;

&lt;h3&gt;
  
  
  Google Colab: Collaboration and Cloud Computing
&lt;/h3&gt;

&lt;p&gt;Google Colab excels in real-time collaboration and seamless cloud computing. It allows multiple users to work on the same notebook simultaneously and provides access to powerful computing resources, including GPUs and TPUs, which are essential for training machine learning models.&lt;/p&gt;

&lt;h3&gt;
  
  
  Jupyter Notebooks: Flexibility and Interactivity
&lt;/h3&gt;

&lt;p&gt;Jupyter Notebooks offer an interactive computing environment that supports live code, equations, visualizations, and narrative text. It’s highly flexible, supporting numerous programming languages and integrating well with various data science libraries.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Deepnote Combines These Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Real-Time Collaboration
&lt;/h3&gt;

&lt;p&gt;Deepnote takes collaboration to the next level by enabling real-time editing and commenting, similar to Google Colab. Teams can work together seamlessly, making it easier to develop and refine models collectively. This feature enhances productivity and ensures that everyone is on the same page.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmumyxirkp9goluhp3ecz.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmumyxirkp9goluhp3ecz.jpeg" alt="Alt text" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Powerful Data Visualizations
&lt;/h3&gt;

&lt;p&gt;Like Power BI, Deepnote provides robust data visualization capabilities. Users can create interactive charts and graphs using built-in support for libraries like Plotly, Matplotlib, and Seaborn. These visualizations can be embedded directly into reports, making it easy to communicate findings.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo7nr65pqwlk2dk3eir3o.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo7nr65pqwlk2dk3eir3o.jpeg" alt="Alt text" width="600" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Interactive and Flexible Notebooks
&lt;/h3&gt;

&lt;p&gt;Deepnote’s core functionality is built around interactive notebooks, much like Jupyter. These notebooks support live code execution, making it easy to test hypotheses and iterate on models. Deepnote also supports various programming languages, ensuring flexibility in data analysis.&lt;/p&gt;

&lt;h3&gt;
  
  
  Integrated Data Sources and Cloud Storage
&lt;/h3&gt;

&lt;p&gt;Deepnote integrates seamlessly with various data sources, including databases like PostgreSQL, MySQL, and BigQuery. It also supports cloud storage integrations with Google Drive and AWS S3, making it easy to access and store large datasets.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Integration: Simplifying Data Science Operations
&lt;/h3&gt;

&lt;p&gt;Automated Machine Learning (AutoML)&lt;br&gt;
Deepnote’s integration with AI technologies includes automated machine learning (AutoML) features. These tools automate the process of selecting, training, and tuning machine learning models, significantly reducing the time and expertise required to build high-performing models.&lt;/p&gt;

&lt;h3&gt;
  
  
  Natural Language Processing (NLP) Tools
&lt;/h3&gt;

&lt;p&gt;Deepnote includes powerful NLP tools that enable users to analyze and process text data efficiently. These tools are integrated into the notebook environment, allowing for seamless transitions between data cleaning, analysis, and model development.&lt;/p&gt;

&lt;h3&gt;
  
  
  Predictive Analytics
&lt;/h3&gt;

&lt;p&gt;Deepnote leverages AI to provide predictive analytics capabilities. Users can build models that predict future trends and behaviors based on historical data, enabling data-driven decision-making.&lt;/p&gt;

&lt;h3&gt;
  
  
  Smart Suggestions and Code Completion
&lt;/h3&gt;

&lt;p&gt;Deepnote’s AI-driven smart suggestions and code completion features help users write code more efficiently. These tools reduce the learning curve for new users and speed up the development process for experienced data scientists.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practical Use Cases
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Healthcare&lt;/strong&gt;&lt;br&gt;
In healthcare, Deepnote can be used to analyze patient data, predict disease outbreaks, and optimize treatment plans. Its collaborative features enable healthcare professionals to work together, ensuring comprehensive analysis and improved patient outcomes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Finance&lt;/strong&gt;&lt;br&gt;
Financial analysts can use Deepnote to develop predictive models for stock prices, analyze market trends, and optimize investment strategies. The integration with various data sources and powerful visualization tools makes it ideal for financial data analysis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Retail&lt;/strong&gt;&lt;br&gt;
Retailers can leverage Deepnote to analyze customer behavior, optimize supply chains, and enhance marketing strategies. The platform’s AI integration helps in identifying patterns and making data-driven decisions to improve business performance.&lt;/p&gt;

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

&lt;p&gt;Deepnote is a powerful tool that combines the best features of Power BI, Google Colab, and Jupyter Notebooks while integrating advanced AI capabilities. Its collaborative environment, robust visualization tools, and flexible notebook interface make it an ideal choice for data scientists. By simplifying data science operations and enhancing productivity, Deepnote is paving the way for more efficient and effective data analysis.&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>machinelearning</category>
      <category>powerbi</category>
      <category>jupyter</category>
    </item>
    <item>
      <title>Cultivating Excellence: The Defining Habit of Top Data Professionals</title>
      <dc:creator>Davie Kibet</dc:creator>
      <pubDate>Mon, 10 Mar 2025 22:38:52 +0000</pubDate>
      <link>https://dev.to/daviewisdm/cultivating-excellence-the-defining-habit-of-top-data-professionals-475f</link>
      <guid>https://dev.to/daviewisdm/cultivating-excellence-the-defining-habit-of-top-data-professionals-475f</guid>
      <description>&lt;p&gt;Most people think documentation is just an afterthought something you do at the end of a project to keep things tidy. &lt;/p&gt;

&lt;p&gt;But here’s the truth: &lt;strong&gt;Documentation isn’t just about writing things down; it’s a strategic tool that makes you a better data professional.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I don’t just document my work after the fact. I start before I even write a single line of code. Why? Because every decision you make, from choosing a project topic to selecting the right tools, impacts your final outcome.&lt;/p&gt;

&lt;h2&gt;
  
  
  📍 What Should You Be Documenting?
&lt;/h2&gt;

&lt;p&gt;If you’re only documenting code, you’re missing the bigger picture. &lt;br&gt;
Here’s what you need to track in every project:&lt;/p&gt;

&lt;p&gt;✔ Project Title &amp;amp; Overview: &lt;br&gt;
What’s the project about? What’s the goal? A clear overview helps anyone (including future you) quickly understand the project.&lt;/p&gt;

&lt;p&gt;✔ Problem Statement&lt;br&gt;
What challenge are you solving? Why does it matter? This keeps your work focused and meaningful.&lt;/p&gt;

&lt;p&gt;✔ Tool Selection: Which tools will I use and why? Maybe Python is better for automation, but SQL is more efficient for data extraction. Documenting this helps you reflect on your choices later.&lt;/p&gt;

&lt;p&gt;✔ Data Sources and preparation: Where is my data coming from? Is it reliable? Did I preprocess it? If you revisit the project in six months, you’ll want these answers.&lt;/p&gt;

&lt;p&gt;✔ Decisions and Changes: Every major decision—why you used a certain algorithm, why you cleaned data a specific way—should be logged. This prevents “past you” from confusing “future you.”&lt;/p&gt;

&lt;p&gt;✔ Key Insights &amp;amp; Learnings: What worked? What didn’t? What trends did I uncover? This is where the real value of your work shines. What would I do differently next time? These notes become your personal knowledge base. And it turns every project into a learning experience.&lt;/p&gt;

&lt;p&gt;✔ Recommendations &amp;amp; Next Steps&lt;br&gt;
What should be done based on your findings? Are there improvements or further research needed? This makes your work actionable.&lt;/p&gt;

&lt;h2&gt;
  
  
  📍 Where Do I Document?
&lt;/h2&gt;

&lt;p&gt;•➤ For Quick Brainstorming → Paper: Nothing beats handwritten notes for capturing raw ideas and sketching out workflows.&lt;/p&gt;

&lt;p&gt;•➤ For Ongoing Documentation → Digital Tools (GitHub, Notion, Google Docs, Jupyter Notebooks):&lt;br&gt;
• Easily updated and searchable&lt;br&gt;
• Allows me to add screenshots, links, and code snippets&lt;br&gt;
• Keeps my workflow structured and accessible&lt;/p&gt;

&lt;h2&gt;
  
  
  📍 Why This Matters
&lt;/h2&gt;

&lt;p&gt;Great data professionals don’t just analyze data; they think critically, track their thought process, and refine their approach over time.&lt;/p&gt;

&lt;p&gt;If you’re not documenting your work, you’re making your job harder than it needs to be. Start early, be intentional, and turn documentation into a competitive advantage.&lt;/p&gt;

&lt;p&gt;Your future self will thank you.&lt;/p&gt;

</description>
      <category>data</category>
      <category>analyst</category>
      <category>powerbi</category>
      <category>programming</category>
    </item>
    <item>
      <title>Supercharge Your Front-End Workflow in 2024: Must-Have VS Code Extensions</title>
      <dc:creator>Davie Kibet</dc:creator>
      <pubDate>Thu, 08 Feb 2024 17:29:32 +0000</pubDate>
      <link>https://dev.to/daviewisdm/supercharge-your-front-end-workflow-in-2024-must-have-vs-code-extensions-9cj</link>
      <guid>https://dev.to/daviewisdm/supercharge-your-front-end-workflow-in-2024-must-have-vs-code-extensions-9cj</guid>
      <description>&lt;p&gt;Let's face it, VS Code is awesome, but extensions take it to a whole new level. As a frontend dev in 2024, you need tools that boost your efficiency and stay ahead of the curve. So, ditch the vanilla setup and dive into these essential extensions:&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;For Code Quality &amp;amp; Consistency:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ESLint &amp;amp; Prettier: The dream team for code style. ESLint sniffs out errors, Prettier auto-magically formats for consistent beauty.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Stylelint: CSS needs love too! Stylelint enforces consistent style rules for your stylesheets.&lt;br&gt;
&lt;strong&gt;For Productivity &amp;amp; Navigation:&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Live Share: Real-time collaboration just got easier. Share your code editor with teammates for instant pair programming.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Bracket Pair Colorizer &amp;amp; Path Intellisense: Gone are the days of lost brackets and confusing file paths. These extensions add a much-needed splash of color and context.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GitLens: Dive deep into your Git history. Blame annotations, code authorship insights, and visual commit graphs - GitLens supercharges your version control workflow.&lt;br&gt;
&lt;strong&gt;For Specific Frameworks &amp;amp; Languages:&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;React/Angular/Vue.js Snippets: Say goodbye to repetitive boilerplate. These framework-specific snippet extensions speed up development with pre-built components and code structures.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Emmet: Write HTML and CSS faster with shorthand notations that auto-expand into full code. A must-have for rapid prototyping.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Debugger for Chrome/Live Server: Debugging made easy. These extensions let you step through your code and preview changes live, directly in your browser.&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Bonus Round:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Polacode: Create stunning code screenshots for presentations and docs. Share your code with flair!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CodiumAI: Generate tests automatically based on your code. This AI-powered extension helps you write better, more robust code.&lt;br&gt;
&lt;strong&gt;Remember:&lt;/strong&gt; This is just a starting point. Explore, experiment, and find the extensions that fit your specific workflow and preferences. Happy coding!&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;P.S&lt;/strong&gt;. Did we miss your favourite extension? Please share it in the comments below!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>frontend</category>
      <category>vscode</category>
      <category>extensions</category>
    </item>
    <item>
      <title>Embracing the Future: Emerging Trends in Software Engineering</title>
      <dc:creator>Davie Kibet</dc:creator>
      <pubDate>Thu, 08 Feb 2024 12:20:19 +0000</pubDate>
      <link>https://dev.to/daviewisdm/embracing-the-future-emerging-trends-in-software-engineering-2k0e</link>
      <guid>https://dev.to/daviewisdm/embracing-the-future-emerging-trends-in-software-engineering-2k0e</guid>
      <description>&lt;p&gt;&lt;strong&gt;Riding the Wave: DevOps Embraces Emerging Software Engineering Trends&lt;/strong&gt;&lt;br&gt;
DevOps has revolutionized software development by fostering collaboration, automation, and agility. But the landscape is always evolving, and new trends are constantly emerging. To stay ahead of the curve, it's crucial for DevOps practitioners to embrace these innovations and integrate them into their workflows. So, let's dive into some exciting trends shaping the future of DevOps:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1. DevSecOps Takes Center Stage:&lt;/em&gt;&lt;/strong&gt; Security is no longer an afterthought. DevSecOps seamlessly integrates security practices into the entire development lifecycle, from code creation to deployment. This proactive approach minimizes vulnerabilities and ensures applications are built secure from the ground up.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;2. AI &amp;amp; Automation Unleash Efficiency:&lt;/em&gt;&lt;/strong&gt; Imagine AI automating tedious tasks like configuration management, infrastructure provisioning, and performance monitoring. That's the power of AI in DevOps. It frees up valuable human resources for higher-level thinking and innovation, boosting overall team productivity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;3. Cloud-Native Reigns Supreme:&lt;/em&gt;&lt;/strong&gt; Cloud adoption is exploding, and DevOps practices are adapting. We're seeing a shift towards cloud-native architectures, containerization with tools like Kubernetes, and serverless computing for more scalable and agile deployments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;4. Infrastructure as Code (IaC) Becomes Indispensable:&lt;/em&gt;&lt;/strong&gt; Treating infrastructure like code allows for consistent, repeatable deployments and eliminates manual configuration errors. Tools like Terraform and Ansible are empowering DevOps teams to manage infrastructure efficiently and securely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;5. Low-Code/No-Code Democratizes Development:&lt;/em&gt;&lt;/strong&gt; Low-code/no-code platforms are opening the door for non-technical individuals to contribute to the development process. This fosters collaboration and empowers citizen developers to build simple applications and automate workflows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;6. Continuous Learning, Continuous Improvement:&lt;/em&gt;&lt;/strong&gt; In today's dynamic environment, continuous learning is key. DevOps teams need to embrace new technologies, methodologies, and best practices. Platforms like Gitcoin and online communities can facilitate knowledge sharing and upskilling within the DevOps community.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;7. Platform Engineering Empowers Developers:&lt;/em&gt;&lt;/strong&gt; Platform engineers build internal developer platforms (IDPs) that provide essential tools, resources, and services. This self-service environment empowers developers to focus on innovation and accelerate delivery.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;8. Edge Computing Demands DevOps Transformation:&lt;/em&gt;&lt;/strong&gt; As edge computing gains traction, managing distributed applications at the edge requires new DevOps approaches. Edge DevOps emphasizes decentralized deployments, containerization, and automation tailored for low-latency, geographically dispersed environments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;9. Sustainability in Focus:&lt;/em&gt;&lt;/strong&gt; Green DevOps practices promote environmentally conscious software development and operations. This includes optimizing resource usage, reducing energy consumption, and choosing eco-friendly tools and technologies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;10. The Human Touch Remains Vital:&lt;/em&gt;&lt;/strong&gt; While automation is important, it's crucial to remember that DevOps is about people. Effective communication, collaboration, and cross-functional understanding are still essential for success.&lt;/p&gt;

&lt;p&gt;Embracing these emerging trends will position your DevOps team for continued success in the ever-evolving software development landscape. So, stay curious, experiment, and keep riding the wave of innovation!&lt;/p&gt;

&lt;p&gt;What are your thoughts on these trends? Share your experiences and predictions for the future of DevOps in the comments below!&lt;/p&gt;

&lt;p&gt;Let's keep the conversation going!&lt;/p&gt;

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