<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Dino Esposito on Medium]]></title>
        <description><![CDATA[Stories by Dino Esposito on Medium]]></description>
        <link>https://medium.com/@despos?source=rss-2472efe3d9a8------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*Nqk-6lVxL-O2QT3BUHn7GA.png</url>
            <title>Stories by Dino Esposito on Medium</title>
            <link>https://medium.com/@despos?source=rss-2472efe3d9a8------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 06:29:07 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@despos/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[L’or]]></title>
            <link>https://medium.com/@despos/lor-a650858aaaf5?source=rss-2472efe3d9a8------2</link>
            <guid isPermaLink="false">https://medium.com/p/a650858aaaf5</guid>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[data-strategy]]></category>
            <category><![CDATA[covid19]]></category>
            <dc:creator><![CDATA[Dino Esposito]]></dc:creator>
            <pubDate>Fri, 27 Mar 2020 10:49:11 GMT</pubDate>
            <atom:updated>2020-03-27T10:49:11.063Z</atom:updated>
            <content:encoded><![CDATA[<h3>L’oro dei dati</h3><p>Ieri 26 marzo i dati CoVid-19 relativi ai contagi son tornati a salire ma in conferenza stampa si sono udite parole come <em>si potrebbe essere trattato di un accumularsi di tamponi</em> e <em>comunque la curva resta discendente</em>. Chi lo dice, lo dice sulla base di cosa?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/640/1*4XHAx2U_BeVdAxXliXqqaA.jpeg" /></figure><p>La <strong>mia</strong> sensazione è che i dati che la Protezione Civile fornisce ogni pomeriggio siano pensati ad uso e consumo della stampa, soprattutto la pseudo-stampa televisiva, che in nome della par condicio ha abolito da anni qualsiasi forma di pensiero critico e azzerato ogni capacità di analisi. Sono un po’ come le pecore di Orwell: ricevono un messaggio e lo amplificano.</p><p>Poi si parla di intelligenza artificiale come della bacchetta magica. Anzi si parla <em>delle intelligenze artificiali che fanno cose che voi umani</em>…</p><p>La legge fondamentale dell’<strong>apprendimento via software</strong> (ovvero il <em>machine learning</em>, ovvero lo strumento principale delle cosiddette intelligenze artificiali) è che se nella macchina entra spazzatura non può che uscirne spazzatura. Come direbbero i francesi, <strong>shit-in-shit-out</strong>.</p><p>Il valore del dato digitale si misura secondo due parametri chiave: <strong>qualità</strong> e <strong>integrità.</strong></p><p>La <strong>qualità del dato</strong> indica la rilevanza e il significato che esso ha nel contesto di un problema. In altre parole, il dato mi è utile e sufficiente per capire il problema e analizzarne a fondo la dinamica?</p><p>La <strong>integrità</strong>, invece, fa riferimento alle caratteristiche fisiche del dato raccolto e indica l’affidabilità delle informazioni che da esso vengono estratte. L’integrità si misura attraverso parametri come la completezza, l’unicità, la densità temporale, l’accuratezza e la consistenza.</p><p>Perché i dati della Protezione Civile sono spazzatura? Perché i dati forniti, e parlo dei CSV e dei JSON rilasciati ogni pomeriggio, sono spesso:</p><ul><li>Incompleti</li><li>Distribuiti malamente nel tempo</li><li>Non sufficientemente accurati</li><li>Inconsistenti</li></ul><p>Il punto più doloroso è la <strong>completezza dei dati</strong>.</p><h3>Completezza</h3><p>Un dato è completo se la sua rappresentazione digitale contiene tutti gli attributi strettamente necessari alla comprensione di un problema da parte dell’uomo e della macchina. Il dato <em>100 email ricevute</em> è scarno ma sufficiente se è il problema è raccontare una storia alla stampa. Al tempo stesso, però, una <strong>strategia di raccolta dati</strong> è seria se consente di raccogliere dati minuziosamente e poi aggregarli per scenari. Tornando alle email, raccogliere il totale è insufficiente e per nulla lungimirante. Peggio, non ha nulla a che vedere con paroloni come <strong>Open Data</strong> con cui le amministrazioni riempiono la bocca e i siti ufficiali. Ben diverso è fornire una tabella di email con colonne per orario, mittente, destinatari in copia, soggetto, testo. Da essa, se necessario, si potrà poi estrarre il semplice totale di quelle ricevute. Chi volesse, però, potrebbe fare ogni sorta di analisi.</p><p>I dati della protezione civile non comprendono:</p><ul><li>Il <strong>dettaglio dei ricoverati per provincia</strong> e per comune e/o per ASL. È auspicabile che questi dati esistano e che vengano utilizzati in qualche modo efficace da qualcuno che sappia cosa fare. Ma perché non renderli pubblici in modo capillare?</li><li>Non si conosce il numero di <strong>coloro che escono dalla terapia intensiva</strong> e la ragione (miglioramento delle condizioni, peggioramento delle condizioni di altri, selezione naturale, sopraggiunta morte)</li><li>Non si conosce la <strong>media dei giorni di terapia intensiva e di ricovero</strong>. Questo dato poi dovrebbe essere a livello di struttura ma anche aggregato a livello di provincia sarebbe utile per analisi</li><li>L’entità <strong>tampone</strong> non è ben descritta. Bisognerebbe sapere che tipo di tampone è stato fatto (kit rapido, tampone molecolare, luminescenza) e se è stato ripetuto sullo stesso soggetto per controprova, in quale data e in quale struttura</li></ul><p>In questa situazione è oggettivamente <strong>difficile pensare</strong> di fare machine learning e costruire modelli previsionali che specializzino con parametri specifici i modelli epidemiologici noti. Ma più modestamente è anche difficile comprendere cosa stia succedendo e se una scelta operativa dia risultati buoni o meno.</p><h3>Densità temporale</h3><p>La densità temporale fa riferimento alla <strong>distribuzione dei dati nel tempo</strong>. La frequenza del campionamento, ovvero ogni quanto ha senso raccogliere un dato, dipende dal problema in esame e dagli obiettivi che ci si pone. Buchi nella raccolta e successivi accumuli in avanti rovinano l’integrità del dato.</p><p>I ritardi nei risultati dei tamponi, per esempio, han fatto sì che i dati del 26 marzo abbiano segnato un picco inatteso ma in realtà se potessimo riportare i dati ai giorni effettivi vedremmo probabilmente <strong>una curva uniformemente discendente</strong>, magari meno inclinata ma senza picchi.</p><p>Ciò è solo quanto suggerisce l’esperienza ma non esiste (e non esisterà in mancanza di dati sufficientemente densi) la prova oggettiva.</p><h3>Accuratezza</h3><p>Un dato è accurato se descrive in <strong>modo meticoloso un’entità reale</strong>. Ciò significa che ogni attributo ritenuto necessario deve essere fornito. Ad esempio, se parliamo di email allora tutti i campi (Soggetto, CC, Mittente) devono essere compilati. Non vi devono essere buchi nella riga della tabella che rappresenta la descrizione di un’entità.</p><p>I dati resi noti dalla Protezione Civile non presentano buchi orizzontali importanti ma al tempo stesso il dato riportato non è necessariamente accurato perché risente di <strong>accumuli di informazioni su più giorni</strong> (densità temporale) e <strong>superficiale descrizione</strong> della struttura (completezza).</p><h3>Inconsistenza</h3><p>Un dato è consistente se i suoi valori sono coerenti con quelli di altri dati e non in palese contraddizione. Un classico esempio di inconsistenza è trovare un valore negativo laddove ci si aspetta, ad esempio, un totale.</p><p>Nel caso del CoVid-19 il report della Protezione Civile contiene solo a livello regionale una colonna che indica <strong>il totale dei nuovi casi positivi</strong> riscontrati ogni giorno. Tuttavia il 25 marzo tale colonna riportava <strong>un -2 sulla riga del Molise</strong>.</p><p>Il punto è: che significa esattamente il nome <strong><em>nuovi_attualmente_positivi</em></strong>? Significa che la colonna è semplicemente una colonna calcolata riportando la differenza tra il valore corrente della colonna <strong><em>totale_attualmente_positivi</em></strong> e quello del giorno prima. Sarà pure solo un problema di definizione, ma il dato di <strong>quanta gente in più</strong> è stata scoperta positiva nel giorno non esiste visto che il totale degli attualmente positivi sottrae guariti e deceduti dal totale dei casi.</p><h3>Dunque?</h3><p>La cosa peggiore è che questi dati esistono ma molto spesso sono confinati al reparto della struttura ospedaliera e da lì non fuoriescono. Dovrebbero, invece, finire in automatico in un archivio nazionale a cui la Protezione Civile attingerebbe per i suoi report. Non sto parlando di rendere pubblici i dati personali, ma semplicemente di avere <strong>dati anonimi molto più precisi e minuziosi</strong>.</p><p>Poi la politica.</p><p>Ieri, 26 marzo, Fontana spara un <em>In Lombardia 2500 nuovi casi</em>. Cos’è quel 2500? In realtà è l’incremento sul giorno prima del totale dei casi CoVid-19, che comprende la storia di tutti coloro che nel tempo sono stati censiti, inclusi guariti e deceduti. In realtà ieri in Lombardia il <strong>carico per gli ospedali</strong> — che è dato operativo essenziale da monitorare — è aumentato di <em>sole</em> (si fa per dire) 1598 unità, escludendo quindi guariti e deceduti.</p><p>Il dato è neutro, non ha interpretazione ed è fatto di <strong>freddi atomi numerici</strong>. L’informazione fornita, invece, è <strong>pre-lavorata</strong> e costituita di molecole emozionali di dubbia origine.</p><p>Perché non esiste una strategia del dato efficace?</p><p>Perché anche la Protezione Civile fatica ad accedere ai dati e lo stesso ISS fatica ad accedere alle cartelle cliniche? Perché la sanità è regionale e ogni regione ha il suo sistema e protegge i suoi dati. Peggio ancora, spesso nelle strutture anche i singoli reparti proteggono i propri dati. Manca completamente il <strong>senso ultimo</strong> della <strong>digital transformation</strong>.</p><p>Che non è avere<strong> file PDF</strong> al posto di moduli cartacei.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a650858aaaf5" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Carrots, Sticks and (AI) Learning]]></title>
            <link>https://becominghuman.ai/carrots-sticks-and-ai-learning-89e0b19db3a?source=rss-2472efe3d9a8------2</link>
            <guid isPermaLink="false">https://medium.com/p/89e0b19db3a</guid>
            <category><![CDATA[algorithms]]></category>
            <category><![CDATA[software]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[machine-learning]]></category>
            <dc:creator><![CDATA[Dino Esposito]]></dc:creator>
            <pubDate>Mon, 25 Feb 2019 09:37:58 GMT</pubDate>
            <atom:updated>2019-03-21T13:28:16.660Z</atom:updated>
            <content:encoded><![CDATA[<p>Except for the genetic heritage, any newborn is a <strong>clean slate </strong>and needs guidance to learn the things of the world she needs to know. <strong>Guidance </strong>is ultimately a well-known learning algorithm that any adult human being builds in years and then, often unconsciously, transmits to children. The algorithm builds on the core findings that humans <strong>started learning in the Neolithic age</strong> with the initial development of agriculture and especially farming.</p><p>It’s informally called the method of the <strong>carrot and the stick</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/1*aiB6LO2ezcxGnn8gsz14Ug.jpeg" /></figure><h3>Building a Behavior</h3><p>As humans, we learn through the input we receive from <strong>senses </strong>and senses give us instinctively the feeling that something is good or bad. Sensory inputs are then <strong>logged into the brain </strong>and further elaborated into a number of information (e.g., we like it, we don’t like it) that, once stored, altogether contribute to the <strong>brain database of memories</strong>. The content of this database of memories will then be used further on to elaborate the next sensory input in a less instinctive, more thoughtful way.</p><h3>Trending AI Articles:</h3><blockquote><a href="https://becominghuman.ai/10-trends-of-artificial-intelligence-ai-in-2019-65d8a373b6e6">1. Ten trends of Artificial Intelligence (AI) in 2019</a></blockquote><blockquote><a href="https://becominghuman.ai/bursting-the-jargon-bubble-deep-learning-22da43caa525">2. Bursting the Jargon bubbles — Deep Learning</a></blockquote><blockquote><a href="https://becominghuman.ai/how-can-we-improve-the-quality-of-our-data-61b55c9063d1">3. How Can We Improve the Quality of Our Data?</a></blockquote><blockquote><a href="https://becominghuman.ai/machine-learning-using-logistic-regression-in-python-with-code-ab3c7f5f3bed">4. Machine Learning using Logistic Regression in Python with Code</a></blockquote><p>Now imagine doing this over and over and again, synapses after synapses, second after second. <strong>A humongous archive of information builds up</strong>. The brain, in a way, indexes the database so that it can quickly find the set of neural commands to forward to neurons and muscles to react. Any sign of life of ours is a matter of <strong>reacting </strong>to some stimulus.</p><p>Hence, the more you receive a given input, the more you know about the behavior you consciously want to have about it. The more you receive the same given input, the more often you react in the same given way. Therefore, the more you morph an instinctive behavior<strong> into some more thoughtful behavior</strong>.</p><p>Changing the instinctive behavior to something smarter in terms of final results is the <strong>ultimate purpose of training</strong>. For animals, humans as well as for <strong>algorithms</strong>.</p><h3>Reward and Punishment</h3><p>The <strong>purpose of training</strong> is changing the frequency of certain behaviors so that an undesirable behavior is observed less often and a desirable behavior, instead, is observed more frequently. To build any form of training, you must use consequences and fine-tune your actions to trigger just the expected reactions as often as possible.</p><p>One of the core principles of training is offering the trainee a positive experience–a reward–in response to a desirable action. Another core principle of training is specular to this and consists in offering the trainee an <strong>aversive </strong>experience–a punishment–in return of an unwanted action. All trainers, therefore, <strong>use consequences</strong> as all trainees instinctively tend to orientate their behavior towards rewards (the carrot) and to avoid punishment (the stick). The <strong>carrot-and-stick approach</strong> is the pattern that animals and humans use to learn.</p><p>What about algorithms?</p><p>If the carrot exists to please the trainee and the stick serves to punish the trainee, how do you please, or punish, an algorithm? Of course, you don’t. Or, at least, <strong>you don’t do it in the common sense</strong>.</p><p>For a trained algorithm, the reward or the punishment results from the position of the computed result, over or under an <strong>acceptable threshold</strong>.</p><h3>And Once the Behavior is Learned?</h3><p>Once a behavior is learned should you remove any rewards from the equation and expect that the human, the animal <strong>or the algorithm</strong> behaves the desirable way only for the joy of performing?</p><p>Professional dog trainers, for example, agree that you can reduce the food reward but <strong>never phase it out </strong>entirely. The reason is that dogs (but the same holds true for other animals and, even more, humans) are living beings and use their behavior as a tool to trigger events and produce consequences.</p><p>The carrot (or stick) stimulus should remain even when the behavior is learned, but the <strong>strength of the stimulus</strong> should be modulated over time to maintain the likelihood of desirable behavior high enough.</p><p>What about algorithms? <strong>It’s just the same.</strong></p><p>A trained algorithm, more than animals and humans, can effectively be thought as a fountain from which a desirable behavior flows. The issue is that the landscape and the context around the fountain may continuously change. Hence the algorithm, like animals and humans do, <strong>must adapt</strong>. Adapting the algorithm to a changed context required a new session training and probably also <strong>fine-tuning the threshold</strong> that sets what’s good and what’s bad.</p><p><strong>PS:</strong> <em>Training an algorithm is hard.</em></p><p><strong>NOTE:</strong> <em>Overall, the carrot-and-stick approach is a technique aimed first at teaching how to perform a desired behavior and then at internalizing it so that it becomes natural regardless of the actual conditions it was initially taught in. Thinking of carrots and sticks with an eye on machine learning, the words pronounced by Sir Winston Churchill right before the beginning of the second world war resound evocatively: Thus, by every device from the stick to the carrot, the emaciated Austrian donkey is made to pull the Nazi barrow up an ever-steepening hill.</em></p><blockquote>“Introducing Machine Learning in .NET”, Microsoft Press, 2019</blockquote><blockquote><a href="http://www.youbiquitous.net/">Youbiquitous</a></blockquote><h3>Don’t forget to give us your 👏 !</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/780/0*4PVI_Ws7pTdyFs1r" /></figure><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fupscri.be%2F8f5f8b%3Fas_embed%3Dtrue&amp;dntp=1&amp;url=https%3A%2F%2Fupscri.be%2F8f5f8b&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=upscri" width="800" height="400" frameborder="0" scrolling="no"><a href="https://medium.com/media/c43026df6fee7cdb1aab8aaf916125ea/href">https://medium.com/media/c43026df6fee7cdb1aab8aaf916125ea/href</a></iframe><figure><a href="https://becominghuman.ai/artificial-intelligence-communities-c305f28e674c"><img alt="" src="https://cdn-images-1.medium.com/max/255/1*2f7OqE2AJK1KSrhkmD9ZMw.png" /></a></figure><figure><a href="https://upscri.be/8f5f8b"><img alt="" src="https://cdn-images-1.medium.com/max/255/1*v-PpfkSWHbvlWWamSVHHWg.png" /></a></figure><figure><a href="https://becominghuman.ai/write-for-us-48270209de63"><img alt="" src="https://cdn-images-1.medium.com/max/255/1*Wt2auqISiEAOZxJ-I7brDQ.png" /></a></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=89e0b19db3a" width="1" height="1" alt=""><hr><p><a href="https://becominghuman.ai/carrots-sticks-and-ai-learning-89e0b19db3a">Carrots, Sticks and (AI) Learning</a> was originally published in <a href="https://becominghuman.ai/">Becoming Human: Artificial Intelligence Magazine</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[React, Storytelling and Speaking Tips]]></title>
            <link>https://medium.com/@despos/react-storytelling-and-speaking-tips-1103efbaf018?source=rss-2472efe3d9a8------2</link>
            <guid isPermaLink="false">https://medium.com/p/1103efbaf018</guid>
            <category><![CDATA[soft-skills]]></category>
            <category><![CDATA[conference]]></category>
            <category><![CDATA[react]]></category>
            <category><![CDATA[public-speaking]]></category>
            <category><![CDATA[storytelling]]></category>
            <dc:creator><![CDATA[Dino Esposito]]></dc:creator>
            <pubDate>Thu, 17 May 2018 07:05:11 GMT</pubDate>
            <atom:updated>2018-05-17T07:05:11.845Z</atom:updated>
            <content:encoded><![CDATA[<p>I’ve been speaking at software conferences <strong>since 1996</strong> and I’ve been attending other speakers’ talks for even longer. I’m not inventing <strong>sliced bread</strong> by saying that one thing is being a great developer and quite another it is being a great presenter. It’s two distinct forms of talent and the latter is <strong>more genetic</strong> than the former.</p><p>So at <a href="http://sddconf.com/"><strong>SDD</strong></a> 2018 I decided to attend a talk on <a href="http://reactjs.org/"><strong>React</strong></a>. We all know that titles and abstracts only rarely match the actual content being delivered as titles tend to be catchy and abstracts are written either six months before when you are far away from putting together slides and demos. Yet, the promise was enticing and I am quite curious about React. I got lost <strong>after 25 minutes</strong> but not because React was overly complex or me overly dumb.</p><p>At some point after 25 minutes my brains got locked in a loop.</p><p>Right after the <strong>render </strong>method of an <strong>App </strong>component, the speaker demoed routes and my brains threw an exception “OK, I can get the same with stupidly simpler hyperlinks. What’s wrong? Me? The demo? The order of topics? The entire React thing?” I could have raised hand and ask a question — sure — but that beyond that I feel it was the structure of the story told to be problematic. In first place I was expecting a clear statement about the issues that React is trying to solve and why would it be preferable over plain HTML+JS.</p><p>“<em>We used it to replace another older SPA app and it worked well</em>”. No doubt it really went like this but it’s kind of<strong> Me-vs-You</strong> statement. No arguments. Speaking and coding are different jobs. Speaking is about storytelling; coding is about problem solving and many other things.</p><p>In another talk I attended I had a similar lock-down experience with my brains but in a radically different context. The speaker was amazing — <strong>too amazing</strong> — and well prepared. The story was <strong>scripted </strong>in every single particular, including exceptions and many of the possible reactions from the audience. Too perfect. It was also technically relevant and engaging so my brains got caught and it was working on its own as the speaker was talking.</p><p>The talk followed a clear pattern: show the issue, indicate a poor solution, then a slightly better one, then the ideal one. My brains got the pattern and after the first round switched to other gigs <strong>waiting for the stage</strong> at which the <strong>real applicable solution</strong> would have been presented.</p><p>Talks about code can’t be perfect and can’t be poor. Stories must be about life of coders and we all know coding is fun but not exactly a well paved road.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1103efbaf018" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Remove That Feature]]></title>
            <link>https://medium.com/@despos/remove-that-feature-6443bb01cdbc?source=rss-2472efe3d9a8------2</link>
            <guid isPermaLink="false">https://medium.com/p/6443bb01cdbc</guid>
            <category><![CDATA[resharper]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[software-craftsmanship]]></category>
            <category><![CDATA[product-management]]></category>
            <category><![CDATA[visual-studio]]></category>
            <dc:creator><![CDATA[Dino Esposito]]></dc:creator>
            <pubDate>Tue, 24 Apr 2018 12:46:42 GMT</pubDate>
            <atom:updated>2018-04-24T12:46:42.429Z</atom:updated>
            <content:encoded><![CDATA[<blockquote>Have you ever considered removing some features from your products?</blockquote><p>Who said that? It was a software architect working for one of the major software companies in the world. He said that when he came to meet me at the <a href="http://www.jetbrains.com/"><strong>JetBrains</strong></a> booth at the <a href="http://www.developermarch.com/developersummit/"><strong>Great Indian Developers Summit</strong></a> conference in Bangalore.</p><p>As a software professional, I’m sure you pretty much know the story. Loading <strong>Visual Studio 2017</strong> takes ages or, anyway, tons of another unit of time that claws through the skin as it ticks away. If you also have <strong>ReSharper</strong> installed then the whole thing takes well two ages to be up and running. And, nicely enough, when under memory pressure Visual Studio 2017 also kindly suggests to shut down ReSharper to let it run less slowly.</p><p>So we’re back to the question the anonymous software architect working for a software giant asked this morning. Have you ever considered removing some features from your products? Regardless of what <strong>ReSharper</strong> and <strong>Visual Studio</strong> have specifically done over the years, I think that we all consider software applications as append-only containers in the sacred name of backward compatibility and customer care. <strong>Except that</strong>, in the end, by doing so we just kill our customer care ourselves.</p><p>A company I worked for grew quickly in only a few years because of a good idea they have been able to implement under a quite rare and favorable astral conjunction. Customers were coming like rain just willing to pay for services and begging for some customization. Customization was done for every customer in the sacred name of customer care. <strong>Except that</strong>, in the end, by doing so customers now call the product outdated because heavy and cumbersome and providing (and charging for) way too many features they actually don’t need anymore.</p><blockquote>Have you ever considered removing some features from your products?</blockquote><p>I’m tempted to say that the few who did it, if any, concluded that it was OK to keep everything on board. “<em>It works and it would cost more to remove it”</em> I can hear a swarm of project managers say. <strong>Except that</strong>, in the end, by doing so we make the same product expensive, gigantic and accompany customers towards leaner and meaner competitors.</p><p>Just the kind of company that happen to have a good idea and can implement it under a rare, but recurring, favorable <strong>astral conjunction</strong>.</p><p>Remove that feature. Oh great, but how?</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6443bb01cdbc" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>