20 puntos por xguru 2023-10-05 | 1 comentarios | Compartir por WhatsApp

Visualiza y explica las últimas tendencias en técnicas/herramientas/plataformas/lenguajes y frameworks de desarrollo en cuatro etapas: Hold/Assess/Trial/Adopt

Desarrollo de software asistido por IA

  • Los LLM open source para programación sacudirán el entorno de herramientas de desarrollo
  • También tienen un gran potencial más allá de programar, como apoyo para redactar historias de usuario, investigación de usuarios, elevator pitch y otras tareas relacionadas con el lenguaje
  • Al mismo tiempo, los desarrolladores deben usar todas estas herramientas de forma responsable y tener cuidado con cosas como las dependencias alucinadas

¿Qué tan productiva es la medición de productividad?

  • El desarrollo de software a veces puede parecer magia para quienes no son especialistas técnicos, y eso lleva a los gerentes a intentar medir qué tan productivos son los desarrolladores
  • Martin Fowler escribió en 2003 un texto titulado "La productividad no se puede medir"
  • Incluso hoy, los indicadores alternativos del componente Activity del framework SPACE (Satisfaction and well-being, Performance, Activity, Communication and collaboration, Efficiency and flow), como la cantidad de pull requests o de issues resueltos, no son particularmente buenos
  • En cambio, la industria ha empezado a enfocarse en la "eficiencia de ingeniería": en vez de medir la productividad, medir "los factores que contribuyen o interfieren con el flujo"
  • En lugar de centrarse en la actividad individual, debería enfocarse en las fuentes de desperdicio del sistema y en cómo condiciones demostrables empíricamente influyen en la percepción de "productividad" de los desarrolladores
  • Herramientas nuevas como DX DevEx 360 abordan este problema al centrarse en la experiencia del desarrollador y no en medir entregables específicos
  • Sin embargo, muchos líderes todavía hablan de la "productividad" de los desarrolladores de forma ambigua y cualitativa
  • Se cree que al menos parte del resurgimiento de este interés tiene que ver con el impacto del desarrollo de software asistido por IA, lo que plantea la pregunta: "¿Está teniendo un impacto positivo?"
  • La medición real de la productividad sigue siendo difícil

Muchísimos LLM

  • Los LLM (modelos de lenguaje grandes) forman la base de muchas innovaciones modernas en IA
  • Actualmente, muchos experimentos incluyen presentar interfaces de usuario similares a un chat, como ChatGPT o Bard
  • En términos amplios, los LLM son herramientas capaces de resolver una variedad de problemas, desde generación de contenido (texto, imágenes y video) hasta generación de código, resumen y traducción
  • Al usar el "lenguaje natural" como una poderosa capa de abstracción, estos modelos ofrecen un conjunto de herramientas universalmente atractivo, por lo que muchos trabajadores del conocimiento los están usando
  • Se está discutiendo sobre LLM desde varios ángulos, incluyendo el self-hosting, que permite más personalización y control más fuerte que los LLM alojados en la nube
  • A medida que aumenta la complejidad de los LLM, también se considera la capacidad de cuantizarlos y ejecutarlos en formatos pequeños, especialmente en dispositivos edge y entornos restringidos
  • También revisan "ReAct Prompting", que promete mejoras de rendimiento, junto con agentes autónomos basados en LLM que pueden usarse para construir aplicaciones dinámicas que van más allá de la interacción de preguntas y respuestas
  • También mencionan varias bases de datos vectoriales que están resurgiendo gracias a los LLM, incluyendo Pinecone
  • Las capacidades base de los LLM, incluidas la especialización y el self-hosting, siguen creciendo de manera explosiva

Maduran los workaround para la entrega remota

  • Los equipos remotos de desarrollo de software han usado tecnología durante años para superar restricciones geográficas, pero el impacto de la pandemia aceleró la innovación en esta área y consolidó el trabajo totalmente remoto o híbrido como una tendencia sostenida
  • En este Radar se analiza cómo han madurado las prácticas y herramientas del desarrollo remoto de software, y cómo los equipos siguen ampliando los límites con enfoque en la colaboración efectiva en entornos más distribuidos y dinámicos que nunca
  • Algunos equipos siguen presentando soluciones innovadoras usando nuevas herramientas de colaboración
  • Otros continúan adaptando y refinando prácticas presenciales existentes para actividades como pair programming en tiempo real o mob programming, y talleres distribuidos (por ejemplo, remote event storming). Pueden hacerse tanto de forma asíncrona como síncrona
  • Aunque el trabajo remoto ofrece diversas ventajas (incluyendo un pool de talento más diverso), el valor de la interacción presencial es claro
  • Los equipos no deben permitir que se pierdan ciclos de retroalimentación importantes y deben reconocer las ventajas y desventajas que surgen al pasar a un entorno remoto

[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