20 points par xguru 2023-10-05 | 1 commentaires | Partager sur WhatsApp

Visualisation et explication des dernières tendances dans les domaines des techniques/outils/plateformes/langages et frameworks de développement selon 4 niveaux : Hold/Assess/Trial/Adopt

Développement logiciel assisté par l’IA

  • Les LLM open source pour le code vont bouleverser l’environnement des outils de développement
  • Ils ont aussi un fort potentiel au-delà du code, pour aider à rédiger des user stories, mener de la recherche utilisateur, préparer un elevator pitch et d’autres tâches liées au langage
  • En parallèle, les développeurs doivent utiliser tous ces outils de manière responsable et rester vigilants face, entre autres, aux dépendances hallucinées

À quel point la mesure de la productivité est-elle productive ?

  • Le développement logiciel peut parfois sembler magique aux personnes qui ne sont pas des spécialistes techniques, ce qui pousse les managers à chercher à mesurer à quel point les développeurs sont productifs
  • Martin Fowler a écrit en 2003 un texte intitulé « la productivité ne peut pas être mesurée »
  • Les indicateurs de substitution de la dimension Activity du framework SPACE (Satisfaction and well-being, Performance, Activity, Communication and collaboration, Efficiency and flow), comme le nombre de pull requests ou d’issues résolues, restent peu convaincants
  • À la place, le secteur a commencé à se concentrer sur « l’efficacité de l’ingénierie », selon l’idée qu’au lieu de mesurer la productivité, il faut « mesurer les facteurs qui contribuent au flow ou l’entravent »
  • Plutôt que de se focaliser sur l’activité individuelle, il faut se concentrer sur les causes de gaspillage du système et sur les conditions que l’on peut démontrer empiriquement comme influençant la perception de la « productivité » chez les développeurs
  • De nouveaux outils comme DX DevEx 360 abordent ce problème en se concentrant sur l’expérience développeur plutôt que sur la mesure d’un livrable précis
  • Cependant, de nombreux dirigeants continuent encore à parler de la « productivité » des développeurs de façon vague et qualitative
  • Une partie au moins de ce regain d’intérêt semble liée à l’impact du développement logiciel assisté par l’IA, qui soulève la question : « a-t-il un impact positif ? »
  • Une véritable mesure de la productivité reste difficile

Une multitude de LLM

  • Les LLM (grands modèles de langage) constituent la base de nombreuses innovations modernes en IA
  • Aujourd’hui, beaucoup d’expérimentations consistent à proposer une interface utilisateur de type chat, comme ChatGPT ou Bard
  • De manière générale, les LLM sont des outils capables de résoudre divers problèmes, de la génération de contenu (texte, image et vidéo) à la génération de code, au résumé et à la traduction
  • En utilisant le « langage naturel » comme puissante couche d’abstraction, ces modèles offrent un ensemble d’outils universellement attractif, largement adopté par de nombreux travailleurs du savoir
  • Les discussions portent sur de nombreux aspects des LLM, y compris l’auto-hébergement, qui permet davantage de personnalisation et un contrôle plus fort que les LLM hébergés dans le cloud
  • À mesure que la complexité des LLM augmente, nous examinons aussi la possibilité de les quantifier et de les exécuter dans de petits formats, notamment sur des appareils edge et dans des environnements contraints
  • Nous nous intéressons à « ReAct Prompting », qui promet des gains de performance, ainsi qu’aux agents autonomes basés sur les LLM, utilisables pour créer des applications dynamiques allant au-delà des interactions question-réponse
  • Sont également mentionnées plusieurs bases de données vectorielles qui connaissent un regain d’intérêt grâce aux LLM, dont Pinecone
  • Les capacités fondamentales des LLM, notamment la spécialisation et l’auto-hébergement, continuent leur croissance explosive

Les solutions de contournement de la livraison à distance arrivent à maturité

  • Les équipes de développement logiciel à distance utilisent depuis des années la technologie pour dépasser les contraintes géographiques, mais l’impact de la pandémie a accéléré l’innovation dans ce domaine et a installé durablement le travail entièrement à distance ou hybride comme tendance de fond
  • Dans ce Radar, il est question de la façon dont les méthodes et outils du développement logiciel à distance ont mûri, et de la manière dont les équipes continuent de repousser les limites en mettant l’accent sur une collaboration efficace dans des environnements plus distribués et dynamiques que jamais
  • Certaines équipes continuent à proposer des solutions innovantes en utilisant de nouveaux outils de collaboration
  • D’autres continuent d’adapter et d’améliorer les pratiques historiquement en présentiel pour des activités comme le pair programming en temps réel ou le mob programming, ainsi que des ateliers distribués (par exemple le remote event storming). Des modes asynchrones comme synchrones sont possibles
  • Le travail à distance offre de nombreux avantages, notamment un vivier de talents plus diversifié, mais la valeur des interactions en face à face reste évidente
  • Les équipes ne doivent pas laisser disparaître des boucles de feedback essentielles et doivent reconnaître les compromis induits par le passage à une organisation à distance

[Techiniques]

Adopt

  1. Design systems
  2. Lightweight approach to RFCs

Trial

  1. Accessibility-aware component test design
  2. Attack path analysis
  3. Automatic merging of dependency update PRs
  4. Data product thinking for FAIR data
  5. OIDC for GitHub Actions
  6. Provision monitors and alerts with Terraform
  7. ReAct prompting
  8. Retrieval-Augmented Generation (RAG)
  9. Risk-based failure modeling
  10. Semi-structured natural language for LLMs
  11. Tracking health over debt
  12. Unit testing for alerting rules
  13. Zero trust security for CI/CD Assess
  14. Dependency health checks to counter package hallucinations
  15. Design system decision records
  16. GitOps
  17. LLM-powered autonomous agents
  18. Platform orchestration
  19. Self-hosted LLMs

Hold

  1. Ignoring OWASP Top 10 lists
  2. Web components for server-siderendered (SSR) web apps

[Platforms]

Adopt

  1. Colima

Trial

  1. CloudEvents
  2. DataOps.live
  3. Google Cloud Vertex AI
  4. Immuta
  5. Lokalise
  6. Orca
  7. Trino
  8. Wiz

Assess

  1. ActivityPub
  2. Azure Container Apps
  3. Azure OpenAI Service
  4. ChatGLM
  5. Chroma
  6. Kraftful
  7. pgvector
  8. Pinecone
  9. wazero

[Tools]

Adopt

  1. dbt
  2. Mermaid
  3. Ruff
  4. Snyk

Trial

  1. AWS Control Tower
  2. Bloc
  3. cdk-nag
  4. Checkov
  5. Chromatic
  6. Cilium
  7. Cloud Carbon Footprint
  8. Container Structure Tests
  9. Devbox
  10. DX DevEx 360
  11. GitHub Copilot
  12. Insomnia
  13. IntelliJ HTTP Client plugin
  14. KEDA
  15. Kubeconform
  16. mob
  17. MobSF
  18. Mocks Server
  19. Prisma runtime defense
  20. Terratest
  21. Thanos
  22. Yalc

Assess

  1. ChatGPT
  2. Codeium
  3. GitHub merge queue
  4. Google Bard
  5. Google Cloud Workstations
  6. Gradio
  7. KWOK
  8. Llama 2
  9. Maestro
  10. Open-source LLMs for coding
  11. OpenCost
  12. OpenRewrite
  13. OrbStack
  14. Pixie
  15. Tabnine

[Languages and Frameworks]

Adopt

  1. Playwright

Trial

  1. .NET Minimal API
  2. Ajv
  3. Armeria
  4. AWS SAM
  5. Dart
  6. fast-check
  7. Kotlin with Spring
  8. Mockery
  9. Netflix DGS
  10. OpenTelemetry
  11. Polars
  12. Pushpin
  13. Snowpark

Assess

  1. Baseline Profiles
  2. GGML
  3. GPTCache
  4. Grammatical Inflection API
  5. htmx
  6. Kotlin Kover
  7. LangChain
  8. LlamaIndex
  9. promptfoo
  10. Semantic Kernel
  11. Spring Modulith