Le mouvement no-estimate prend de plus en plus d'ampleur dans le monde du Produit.
D'un côté les équipes de développements fonctionnement mal avec des estimations:
- imprévisibilité inhérente au développement
- stress de ne pas avoir respecter une estimation
- pas ou peu de temps consacrer aux tâches annexes d'amélioration continue
De l'autre côté, les équipes Sales, Marketing et Customer Success ont besoin de fournir des dates à leurs clients.
L'estimation peut éventuellement se faire mais à un niveau plus haut comme l'Epic si tout le monde accepte que cette estimation pourra quand même changer en cours de route.
Au fur et à mesure du développement, l'estimation devient de plus en plus précise jusqu'à la livraison de la feature.
Je garde ces deux citations:
Les estimations sont le “doudou” des managers avec leur côté rassurant. Elles donnent une sensation de contrôle.
Je ne compte pas le nombre d’heures passées dans ma carrière à discuter d’estimations
Comment mesurer la répartition des connaissances au sein d'une équipe à l'aide de Skills Matrices.
Très utile pour identifier les bus factors sur lesquels une ou très peu de personnes seraient capable d'intervenir.
L'article donne une méthode pour créer cette liste de connaissances.
Retour d'expérience sur l'organisation Data chez Blablacar.
Ils ont créé une équipe Data transverse avec uniquement des Data Enginers.
Quelques take aways:
-
investir dans des solutions génériques et réutilisables paye sur le moyen/long term
-
il y a un intérêt à ce que l'équipe Data devienne le point central entre tous les stackholders
-
rechercher l'adoption plutôt que l'obligation
-
toujours considérer le "build vs buy"
Un article qui remet en cause la pertinence des User Stories dans un process produit.
Les résultats d'un programme de recherche basé sur les DORA métriques pour évaluer les méthodes de travail ayant le plus d'impact.
-
les équipes qui se concentrent sur l'utilisateur ont de meilleures performances organisationnelles
-
une documentation de qualité amplifie l'impact des autres méthodes (~x2 en moyenne!)
Pour les pratique de développement pures:
- intégration continue
- vitesse des revues de code
- architecture découplée
- trunk based development
Okta s'est fait hacker et les données des clients ont été compromises.
Okta fourni des systèmes d'authentification centralisé par exemple.
Des entreprises se sont fait hacker aussi suite au premier hack de Okta: https://krebsonsecurity.com/2023/10/hackers-stole-access-tokens-from-oktas-support-unit/
Un virus dans la nature depuis plus de 5 ans avec un mécanisme d'infection assez perfectionné et à priori un 0-day.
Il y avait un mineur Monero dans le virus, ce qui le classait dans la catégorie cryptominer alors que sa mission principale serait plutôt le vol de credentials
Un proxy HTTP qui se fait passer pour du trafic légitime HTTP/3 et donc résistant à la censure.
Une démo impressionnante avec un dessin à main levé qui se transforme en scène 3D dans le style d'un prompt
La sortie de Next.js 4 c'est surtout l'arrivée des Server Actions.
Ils ont presque terminé leur chantier de support de Turbopack plutôt que Webpack donc on peut s'attendre à une prochaine release avec des performances accrues! (Turbopack est en Rust et beaucoup plus performant que Webpack)
Un article sur l'écriture de tests frontend end to end et notamment le choix des sélecteurs.
Les sélecteurs doivent être le plus proche possible de l'interaction réel de l'utilisateur.
Par exemple, si je veux me connecter alors je clique sur un bouton qui contient le texte "Login" donc le sélecteur doit reproduire ce comportement au lieu d'utiliser des attributes HTML comme les classes ou le fameux data-test-id
.
C'est d'ailleurs la base des sélecteurs que propose Playwright:
await page.getByRole('button', { name: /login/i }).click();
Excellente introduction sur RAG.
Les connaissances des LLMs sont "bloquées" dans le temps alors il est nécessaire des leur fournir des documents en provenance de source externes pour répondre à des questions.
Souvent on va stocker ces documents sous la forme d'embeddings dans des bases de données vectorielles. Cela permet de faire des recherches sémantiques et d'incorporer les documents à propos du sujet de la question posée au LLM.
La fameuse expérience ou des LLMs communiquent entre eux dans un jeux vidéo type animal crossing.
Ils ont poussé le concept de mémoire assez loin ce qui a permis aux Agents d'organiser des évènements entre eux car ils avaient la possibilité de se rappeler et de propager l'information.
Ils introduisent une fonction pour trier les informations en mémoire selon la date de l'évènement, son importance et sa pertinence face à la situation actuelle.
La mémoire est également retravaillé avec le concept de reflection qui synthétise la mémoire en des informations de plus haut niveau.
Un résumé de l'état de l'art sur les application à la génération de code des LLMs.
Sous le coude
Présentation d'un sujet de recherche autour des RAG afin d'améliorer leurs performances dans des cas ou certains documents insérés dans le prompt contiennent des informations sémantiquement proches mais non pertinentes.
Dans le cadre d'un LLM, la reflection consiste à le faire réfléchir sur la pertinence des informations qu'il a extraites.
De belles animations sensées représenter le fonctionnement de modèles d'IA.
C'est beau mais je n'y comprends pas grand chose :-)
Si vous cherchez à installer un package Javascript qui vous avez publié en privé sur Github (Github Package), voila la solution.
Par exemple, si vous souhaitez installer le package @aschen/memorus
, commencez par générer un Personnal Access Token et ajoutez le dans les secrets de votre repo puis utilisez ce job.
jobs:
whooa-awesome-job-mate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 20
registry-url: 'https://npm.pkg.github.com'
scope: '@aschen'
- name: Install dependencies
run: npm install -g @aschen/memorus
env:
NODE_AUTH_TOKEN: ${{ secrets.PAT }}
Une lib Javascript qui propose de multiple actions avec des modèles de GenAI:
- LLM: OpenAI, Anthropic, Cohere, Llama.cpp, Hugging Face
- text to image: OpenAI (Dall·E), Stability AI, Automatic1111
- text to speech: Eleven Labs, LMNT
- speech to text: OpenAI (Whisper)
- embeddings: OpenAI, Cohere, Llama.cpp, Hugging Face
Une lib qui permet de générer une version très dégradée d'une image mais aussi très légère (20 octets!)
ça permet d'afficher un placeholder en attendant que la véritable image charge
Un développeur en a eu marre que son jeu HTML soit inclus sur d'autres sites dans des iframes.
Il a décidé de remplacer le jeu par l'image "Goatse" (ne pas googler!) quand il détecte une inclusion via iframe.
Il est également possible de faire la même chose aux sites qui link directement une image de votre site.
Moralité, héberger votre contenu chez vous et soyez respectueux des auteurs.