20 pontos por xguru 2023-10-05 | 1 comentários | Compartilhar no WhatsApp

Visualiza e explica as tendências mais recentes nas áreas de técnicas/ferramentas/plataformas/linguagens e frameworks de desenvolvimento em quatro estágios: Hold/Assess/Trial/Adopt

Desenvolvimento de software com suporte de IA

  • LLMs open source para programação devem chacoalhar o ecossistema de ferramentas de desenvolvimento
  • Além de programar, também há grande potencial para apoiar a escrita de user stories, pesquisa com usuários, elevator pitch e outras tarefas relacionadas a linguagem
  • Ao mesmo tempo, os desenvolvedores precisam usar todas essas ferramentas com responsabilidade e tomar cuidado com questões como dependências alucinatórias

Quão produtiva é a medição de produtividade?

  • O desenvolvimento de software às vezes pode parecer magia para quem não é especialista técnico, o que leva gestores a tentar medir o quão produtivos os desenvolvedores estão sendo
  • Martin Fowler escreveu em 2003 o texto "produtividade não pode ser medida"
  • Ainda assim, entre os frameworks SPACE (Satisfaction and well-being, Performance, Activity, Communication and collaboration, Efficiency and flow), indicadores substitutos ligados a Activity, como número de pull requests ou de issues resolvidas, não são lá muito bons
  • Em vez disso, o setor começou a focar em "eficiência de engenharia", defendendo que, em vez de medir produtividade, deve-se "medir os fatores que contribuem ou atrapalham o fluxo"
  • Em vez de focar na atividade individual, é preciso focar nas causas de desperdício no sistema e nas condições que podem ser demonstradas empiricamente como influenciando a percepção de "produtividade" dos desenvolvedores
  • Novas ferramentas como DX DevEx 360 abordam esse problema ao focar na experiência do desenvolvedor, e não na medição de entregáveis específicos
  • No entanto, muitos líderes ainda falam da 'produtividade' dos desenvolvedores de forma vaga e qualitativa
  • Pelo menos parte desse interesse renovado parece estar ligada ao impacto do desenvolvimento de software com suporte de IA, levantando a pergunta: "está tendo um impacto positivo?"
  • A medição real de produtividade continua sendo difícil

Muitos LLMs

  • LLMs (grandes modelos de linguagem) formam a base de muitas inovações modernas em IA
  • Atualmente, muitos experimentos incluem apresentar interfaces de usuário no estilo chat, como ChatGPT ou Bard
  • Em termos amplos, LLMs são ferramentas capazes de resolver uma variedade de problemas, desde geração de conteúdo (texto, imagem e vídeo) até geração de código, resumo e tradução
  • Esses modelos, que usam "linguagem natural" como uma poderosa camada de abstração, oferecem um conjunto de ferramentas universalmente atraente e por isso vêm sendo usados por muitos trabalhadores do conhecimento
  • Há discussões sobre vários aspectos dos LLMs, incluindo self-hosting, que permite mais customização e controle mais forte do que LLMs hospedados na nuvem
  • À medida que a complexidade dos LLMs aumenta, consideramos especialmente a capacidade de quantizar e executar LLMs em formatos menores, sobretudo em dispositivos de borda e ambientes restritos
  • Também analisamos "ReAct Prompting", que promete ganhos de desempenho, junto com agentes autônomos baseados em LLM que podem ser usados para criar aplicações dinâmicas que vão além de interações de pergunta e resposta
  • Também menciona vários bancos de dados vetoriais, incluindo Pinecone, que estão voltando a ganhar destaque graças aos LLMs
  • As capacidades básicas dos LLMs, incluindo especialização e self-hosting, continuam em crescimento explosivo

As soluções paliativas do delivery remoto amadurecem

  • Equipes remotas de desenvolvimento de software usam tecnologia há anos para superar restrições geográficas, mas o impacto da pandemia acelerou a inovação nessa área e consolidou o trabalho totalmente remoto ou híbrido como uma tendência duradoura
  • Nesta edição do Radar, discutimos como os métodos e ferramentas de desenvolvimento remoto de software amadureceram e como as equipes continuam ampliando os limites com foco em colaboração eficaz em ambientes mais distribuídos e dinâmicos do que nunca
  • Algumas equipes continuam apresentando soluções inovadoras com novas ferramentas de colaboração
  • Outras seguem adaptando e refinando práticas presenciais já existentes para atividades como pair programming em tempo real, Mob programming e workshops distribuídos (por exemplo, remote event storming). Tanto formas assíncronas quanto síncronas são possíveis
  • O trabalho remoto oferece diversos benefícios (incluindo um pool de talentos mais diverso), mas o valor da interação presencial é evidente
  • As equipes não devem permitir que loops de feedback importantes desapareçam e precisam reconhecer os prós e contras que surgem ao migrar para uma configuração remota

[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