20 ポイント 投稿者 xguru 2023-10-05 | 1件のコメント | WhatsAppで共有

テクニック/ツール/プラットフォーム/開発言語およびフレームワーク分野の最新トレンドを、Hold/Assess/Trial/Adoptの4段階で可視化し、解説。

AI支援ソフトウェア開発

  • コーディング向けのオープンソースLLMが、開発ツール環境を揺るがすだろう
  • また、コーディングを超えて、ユーザーストーリー作成支援、ユーザーリサーチ、エレベーターピッチ、他言語関連の作業などでも大きな可能性がある
  • 同時に、開発者はこれらすべてのツールを責任を持って使用する必要があり、パッケージの幻覚的依存関係のような問題にも注意しなければならない

生産性の測定はどれほど生産的なのか?

  • ソフトウェア開発は、技術の専門家ではない人々には時に魔法のように見えることがあり、そのため管理者は開発者がどれほど生産的に働いているかを測ろうとしがちである
  • マーティン・ファウラーは2003年に「生産性は測定できない」という文章を書いた
  • 依然として、SPACEフレームワーク(Satisfaction and well-being, Performance, Activity, Communication and collaboration, Efficiency and flow)のうち、Activityに対する代替指標であるプルリクエスト数や解決したイシュー件数などはあまり良くない
  • その代わりに業界では、生産性そのものを測るよりも「フローに寄与または阻害する要素を測る」べきだという「エンジニアリング効率性」に焦点を当て始めている
  • 個人の活動に焦点を当てるのではなく、システムにおけるムダの原因や、経験的に示せる条件が開発者の「生産性」認識に影響する点に焦点を当てるべきである
  • DX DevEx 360のような新しいツールは、特定の成果物の測定ではなく開発者体験に集中することで、この問題に対処している
  • しかし、多くのリーダーはいまだに曖昧で定性的な形で開発者の「生産性」に言及している
  • こうした関心の復活の少なくとも一部は、AI支援ソフトウェア開発の影響に関するものと考えられ、「本当に良い影響を与えているのか?」という疑問を提起している
  • 生産性の実際の測定は、依然として難しい

数多くのLLM

  • LLM(大規模言語モデル)は、AIにおける多くの現代的な革新の基盤を成している
  • 現在、多くの実験ではChatGPTやBardのようなチャット型ユーザーインターフェースを提示している
  • 広く見れば、LLMはコンテンツ生成(テキスト、画像、動画)からコード生成、要約、翻訳に至るまで、多様な問題を解決できるツールである
  • 強力な抽象化レイヤーとして機能する「自然言語」を使うこれらのモデルは、普遍的に魅力的なツールセットを提供するため、多くの情報労働者が利用している
  • クラウドホスティングされたLLMよりも、カスタマイズや強力な制御が可能なセルフホスティングを含め、LLMのさまざまな側面について議論が行われている
  • LLMの複雑さが増すにつれ、特にエッジデバイスや制約の大きい環境において、小さなフォームファクタでLLMを量子化して実行する機能が考慮されている
  • 質問応答のやり取りを超える動的アプリケーションの構築に使えるLLMベースの自律エージェントとともに、性能向上を約束する「ReAct Prompting」についても取り上げている
  • また、LLMのおかげで再び注目を集めている複数のベクターデータベース(Pineconeを含む)にも言及している
  • 特化機能やセルフホスティング機能を含むLLMの基本機能は、爆発的な成長を続けている

リモートデリバリーの回避策(Workaround)が成熟

  • リモートソフトウェア開発チームは、長年にわたり地理的制約を乗り越えるために技術を活用してきたが、パンデミックの影響でこの分野の革新が促進され、完全リモートまたはハイブリッド勤務が継続的なトレンドとして定着した
  • 今回のRadarでは、リモートソフトウェア開発の手法とツールがどのように成熟したのか、そしてチームがこれまで以上に分散し動的な環境で効果的な協業を重視しながら、どのように限界を押し広げ続けているのかを議論している
  • 一部のチームは、新しいコラボレーションツールを使って引き続き革新的なソリューションを提示している
  • 一部では、リアルタイムのペアプログラミングやMobプログラミング、分散ワークショップ(例: リモートイベントストーミング)といった従来の対面プラクティスを継続的に適応・改善している。非同期・同期の両方が可能である
  • リモートワークには、より多様な人材プールを含むさまざまな利点がある一方で、対面での相互作用の価値も明らかである
  • チームは重要なフィードバックループが失われることを許してはならず、リモート環境への移行時に生じる長所と短所を認識する必要がある

[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