Concept-centric software development

✒ Enzo SandrĂ© · 📆 22/06/2023 · 🧠 Psychologie · đŸ—Łïž Nommage

💭 Quand un programme mue en vĂ©ritable systĂšme, la cohĂ©rence des concepts devient un vĂ©ritable tour de force. Les meilleurs n’échappent pas Ă  ce problĂšme et le journaliste tech Casey Newton se moquait de Google en tweetant : “Google Reminders est maintenant Google Tasks. Pour crĂ©er un Reminder, utilisez Calendar. Pour crĂ©er une Task, utilisez GMail. N’utiliser PAS Keep”. Ce phĂ©nomĂšne est appelĂ© par les auteurs “Entropie conceptuelle”.

🔼 Palantir a attĂ©nuĂ© ce problĂšme en crĂ©ant un dĂ©pĂŽt centralisĂ© de concepts, utilisĂ© par les parties prenantes de ses diffĂ©rents logiciels. Ce projet rĂ©pondait Ă  la complexification croissante de l’ontologie interne, nĂ©cessitant un format commun pour standardiser des quantitĂ©s invraisemblables de notes, mĂ©mos et autres documents de nature conceptuelle.

📚 Au sein de la complexitĂ© des logiciels, peu considĂšrent la complexitĂ© conceptuelle : quand des fonctionnalitĂ©s sont crĂ©Ă©es, changĂ©es, remplacĂ©es, les concepts qui les accompagnent se dĂ©calent progressivement de leur dĂ©finition d’origine. La solution est la mĂȘme que pour le code : un refactoring rĂ©gulier afin de rĂ©aligner les concepts avec leur dĂ©finition. Seuls les outils varient : ils empruntent plus au knowledge management qu’au dĂ©veloppement

SOURCE

Wilczynski, Peter A., Taylor Gregoire‐Wright and Daniel Jackson. “Concept-centric Software Development.” ArXiv abs/2304.14975 (2023) DOI:10.48550/arXiv.2304.14975

Enzo Sandré


📄 Lien public DOIs: 10.48550/arXiv.2304.14975