|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285 |
- <!doctype html><!-- This is a valid HTML5 document. -->
- <!-- Screen readers, SEO, extensions and so on. -->
- <html lang="fr">
- <!-- Has to be within the first 1024 bytes, hence before the `title` element
- See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
- <meta charset="utf-8">
- <!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
- <!-- The viewport meta is quite crowded and we are responsible for that.
- See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
- <meta name="viewport" content="width=device-width,initial-scale=1">
- <!-- Required to make a valid HTML5 document. -->
- <title>Dette — David Larlet</title>
- <meta name="description" content="La dette c’est un problème de riche. Ça arrive après, quand on a trouvé le bon produit, qu’on a trouvé sa cible, qu’on a prouvé qu’on était capable d’acquérir des clients. Là on aura aussi le financement qui va avec pour embaucher des ingénieurs qui vont refaire ce qui doit l’être, et éliminer une bonne partie des travaux qu’on avait remis à plus tard.">
- <!-- That good ol' feed, subscribe :). -->
- <link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/">
- <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
- <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png">
- <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png">
- <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png">
- <link rel="manifest" href="/static/david/icons2/site.webmanifest">
- <link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c">
- <link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
- <meta name="msapplication-TileColor" content="#f7f7f7">
- <meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
- <meta name="theme-color" content="#f7f7f7" media="(prefers-color-scheme: light)">
- <meta name="theme-color" content="#272727" media="(prefers-color-scheme: dark)">
- <!-- Documented, feel free to shoot an email. -->
- <link rel="stylesheet" href="/static/david/css/style_2021-01-20.css">
- <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
- <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
- <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
- <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
- <link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
- <link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
- <link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
- <script>
- function toggleTheme(themeName) {
- document.documentElement.classList.toggle(
- 'forced-dark',
- themeName === 'dark'
- )
- document.documentElement.classList.toggle(
- 'forced-light',
- themeName === 'light'
- )
- }
- const selectedTheme = localStorage.getItem('theme')
- if (selectedTheme !== 'undefined') {
- toggleTheme(selectedTheme)
- }
- </script>
-
- <body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick" data-instant-intensity="viewport-all">
-
-
- <article>
- <header>
- <h1>Dette</h1>
- </header>
- <nav>
- <p class="center">
- <a rel="prev" href="/david/2023/01/06/" title="Publication précédente : Toile">← Précédent</a> •
- <nobr>
- <a href="/david/" title="Aller à l’accueil" rel="up"
- ><svg class="icon icon-home">
- <use
- xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-home"
- ></use>
- </svg>
- Accueil</a
- >
- </nobr>
- •
- <nobr>
- <a href="/david/recherche/" title="Aller à la page de recherche" rel="search"
- ><svg class="icon icon-search">
- <use
- xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-search"
- ></use>
- </svg>
- Recherche</a
- >
- </nobr>
- • <a rel="next" href="/david/2023/01/08/" title="Publication suivante : Partage">Suivant →</a>
- </p>
- </nav>
- <hr>
-
-
- <blockquote>
- <p>La dette c’est un problème de riche. Ça arrive après, quand on a trouvé le bon produit, qu’on a trouvé sa cible, qu’on a prouvé qu’on était capable d’acquérir des clients. Là on aura aussi le financement qui va avec pour embaucher des ingénieurs qui vont <mark>refaire ce qui doit l’être,</mark> et éliminer une bonne partie des travaux qu’on avait remis à plus tard.</p>
- <p>L’enjeu c’est d’arriver jusque là.</p>
- <p><cite><em><a href="https://n.survol.fr/n/la-dette-technique">La dette technique - Carnet de notes</a></em> (<a href="/david/cache/2023/934ed9f96be582e35b3c8cf8fc0859e5/">cache</a>)</cite></p>
- </blockquote>
- <p>La seule fois dans ma carrière (ouais ça fait tout de suite vieux là…) où on a réussi à éponger une dette technique initiale a été sur <a href="https://mesconseilscovid.sante.gouv.fr">MesConseilsCovid</a> lorsqu’on a dû partir <a href="/david/2020/05/26/">comme des fusées</a> avec <a href="https://ronan.amicel.net/">Ronan</a> parce que le gouvernement français ne pouvait pas se douter qu’on allait déconfiner la population à un moment 🤷.</p>
- <p>Les conditions qui ont rendu possible cela sont multiples :</p>
- <ul>
- <li>développeurs expérimentés qui se connaissent et qui se sont déjà pincé les doigts plusieurs fois sur du code non testé/à l’arrache à moyen terme ;</li>
- <li>équipe compréhensive qui a pris en compte nos retours et notre endettement volontaire des premières semaines, effort de pédagogie de notre côté ;</li>
- <li>outil relativement simple qui a consisté au début à une preuve de concept permettant de mesurer les usages et attentes, on n’était pas dans une course à la fonctionnalité ;</li>
- <li>budget suffisant pour savoir qu’il serait possible de financer cette dette à moyen terme (« Quoi qu’il en coûte », etc #haha).</li>
- </ul>
- <p>Il faut une sacré conjonction pour que toutes ces conditions soient réunies. De plus, ça a demandé pas mal de rigueur alors que la dette n’était finalement que d’un mois, peut-être moins.</p>
- <p>Dans une précédente expérience <em>startup</em>, on avait trop mis l’accent sur la technique/le produit et pas assez sur son adoption/communication, ça peut arriver aussi. J’ai beaucoup appris de cet échec sur l’importance de ce qui est <em>hors</em> du code.</p>
- <hr />
-
- <blockquote lang="en">
- <p>😔 The most obvious way an online community is like a bar is that bars serve alcohol, and alcohol makes people loud and stupid. It actually depresses your hearing, so you can’t hear yourself talk as well, <mark>so you speak louder.</mark> And a room full of people speaking louder means a very boisterous room. And of course, alcohol reduces inhibition, so you say things you might not usually say.</p>
- <p>The parallels to online behavior are easy to see. Online, people are much more willing to type things that they’d never say in person.</p>
- <p><cite><em><a href="https://powazek.com/posts/3571">A community isn’t a garden, it’s a bar.</a></em> (<a href="/david/cache/2023/fb08217a583922fd319fabb55f34a4f3/">cache</a>)</cite></p>
- </blockquote>
-
- <blockquote lang="en">
- <p>🔙 It can be uncomfortable, that clearing away. It can be deeply unpleasant. But it’s also useful. It’s a sign of what you need to change. What I found was that <mark>when I gave myself permission to really feel that unpleasantness,</mark> when I didn’t try to get comfortable with it or avoid it, I opened some space to move: towards a reconfiguration or revision or reimagining of what my work was.</p>
- <p><cite><em><a href="https://aworkinglibrary.com/writing/reentry">Reentry | A Working Library</a></em> (<a href="/david/cache/2023/7258248bb534fddb277bf6148cd3ffbf/">cache</a>)</cite></p>
- </blockquote>
-
-
- <nav>
- <p>
-
- <a href="/david/2023/courage/"
- title="Liste de tous les articles 2023 associés à cette étiquette"
- rel="tag"
- >#courage</a>
-
- <a href="/david/2023/reponse/"
- title="Liste de tous les articles 2023 associés à cette étiquette"
- rel="tag"
- >#réponse</a>
-
- <a href="/david/2023/technique/"
- title="Liste de tous les articles 2023 associés à cette étiquette"
- rel="tag"
- >#technique</a>
-
- <a href="/david/#tags-2023"
- title="Liste de toutes les étiquettes 2023"
- ><svg class="icon icon-tags">
- <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-tags"></use>
- </svg>
- tous ?</a
- >
- </p>
- </nav>
-
- <nav>
- <p class="center">
- <a rel="prev" href="/david/2023/01/06/" title="Publication précédente : Toile">← Précédent</a> •
- <a href="/david/2023/" title="Liste des publications récentes">↑ En 2023</a>
- • <a rel="next" href="/david/2023/01/08/" title="Publication suivante : Partage">Suivant →</a>
- </p>
- </nav>
- </article>
-
-
- <hr>
-
- <footer>
- <p>
- <nobr>
- <a href="/david/" title="Aller à l’accueil"
- ><svg class="icon icon-home">
- <use
- xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-home"
- ></use>
- </svg>
- Accueil</a
- >
- </nobr>
- •
- <nobr>
- <a href="/david/log/" title="Accès au flux RSS"
- ><svg class="icon icon-rss2">
- <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-rss2"></use>
- </svg>
- Suivre</a
- >
- </nobr>
- •
- <nobr>
- <a href="http://larlet.com" title="Go to my English profile" data-instant
- ><svg class="icon icon-user-tie">
- <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-user-tie"></use>
- </svg>
- Pro</a
- >
- </nobr>
- •
- <nobr>
- <a href="mailto:david%40larlet.fr" title="Envoyer un courriel"
- ><svg class="icon icon-mail">
- <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-mail"></use>
- </svg>
- Email</a
- >
- </nobr>
- •
- <nobr>
- <abbr
- class="nowrap"
- title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"
- ><svg class="icon icon-hammer2">
- <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-hammer2"></use>
- </svg>
- Légal</abbr
- >
- </nobr>
- </p>
- <template id="theme-selector">
- <form>
- <fieldset>
- <legend><svg class="icon icon-brightness-contrast">
- <use xlink:href="/static/david/icons2/symbol-defs-2022-03.svg#icon-brightness-contrast"></use>
- </svg> Thème</legend>
- <label>
- <input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
- </label>
- <label>
- <input type="radio" value="dark" name="chosen-color-scheme"> Foncé
- </label>
- <label>
- <input type="radio" value="light" name="chosen-color-scheme"> Clair
- </label>
- </fieldset>
- </form>
- </template>
- </footer>
- <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
- <script>
- function loadThemeForm(templateName) {
- const themeSelectorTemplate = document.querySelector(templateName)
- const form = themeSelectorTemplate.content.firstElementChild
- themeSelectorTemplate.replaceWith(form)
-
- form.addEventListener('change', (e) => {
- const chosenColorScheme = e.target.value
- localStorage.setItem('theme', chosenColorScheme)
- toggleTheme(chosenColorScheme)
- })
-
- const selectedTheme = localStorage.getItem('theme')
- if (selectedTheme && selectedTheme !== 'undefined') {
- form.querySelector(`[value="${selectedTheme}"]`).checked = true
- }
- }
-
- const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
- window.addEventListener('load', () => {
- let hasDarkRules = false
- for (const styleSheet of Array.from(document.styleSheets)) {
- let mediaRules = []
- for (const cssRule of styleSheet.cssRules) {
- if (cssRule.type !== CSSRule.MEDIA_RULE) {
- continue
- }
- // WARNING: Safari does not have/supports `conditionText`.
- if (cssRule.conditionText) {
- if (cssRule.conditionText !== prefersColorSchemeDark) {
- continue
- }
- } else {
- if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
- continue
- }
- }
- mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
- }
-
- // WARNING: do not try to insert a Rule to a styleSheet you are
- // currently iterating on, otherwise the browser will be stuck
- // in a infinite loop…
- for (const mediaRule of mediaRules) {
- styleSheet.insertRule(mediaRule.cssText)
- hasDarkRules = true
- }
- }
- if (hasDarkRules) {
- loadThemeForm('#theme-selector')
- }
- })
- </script>
-
- </body>
- </html>
|