20 điểm bởi xguru 2023-10-05 | 1 bình luận | Chia sẻ qua WhatsApp

Các xu hướng mới nhất trong các lĩnh vực kỹ thuật/công cụ/nền tảng/ngôn ngữ lập trình và framework được trực quan hóa và giải thích theo 4 giai đoạn Hold/Assess/Trial/Adopt

Phát triển phần mềm có hỗ trợ AI

  • Các LLM mã nguồn mở dành cho lập trình sẽ làm rung chuyển môi trường công cụ phát triển
  • Ngoài lập trình, chúng còn có tiềm năng lớn trong việc hỗ trợ viết user story, nghiên cứu người dùng, elevator pitch và các công việc liên quan đến ngôn ngữ khác
  • Đồng thời, nhà phát triển phải sử dụng tất cả các công cụ này một cách có trách nhiệm và cần cảnh giác với những vấn đề như package hallucinations

Đo lường năng suất thực sự năng suất đến mức nào?

  • Phát triển phần mềm đôi khi có thể trông như ma thuật đối với những người không phải chuyên gia kỹ thuật, khiến các nhà quản lý cố gắng đo lường mức độ làm việc hiệu quả của lập trình viên
  • Martin Fowler đã viết bài "Không thể đo lường năng suất" vào năm 2003
  • Cho đến nay, các chỉ số thay thế cho Activity trong framework SPACE (Satisfaction and well-being, Performance, Activity, Communication and collaboration, Efficiency and flow), như số lượng pull request hay số issue đã giải quyết, vẫn không thực sự tốt
  • Thay vào đó, ngành đang bắt đầu tập trung vào "engineering effectiveness" với quan điểm rằng thay vì đo năng suất, cần "đo những yếu tố đóng góp hoặc cản trở dòng chảy"
  • Thay vì tập trung vào hoạt động của từng cá nhân, cần chú ý đến nguyên nhân gây lãng phí trong hệ thống và các điều kiện có thể chứng minh bằng thực nghiệm rằng chúng ảnh hưởng đến nhận thức về "năng suất" của nhà phát triển
  • Các công cụ mới như DX DevEx 360 giải quyết vấn đề này bằng cách tập trung vào trải nghiệm nhà phát triển thay vì đo các đầu ra cụ thể
  • Tuy nhiên, nhiều lãnh đạo vẫn đang nhắc đến "năng suất" của nhà phát triển theo cách mơ hồ và định tính
  • Ít nhất một phần của sự hồi sinh mối quan tâm này được cho là liên quan đến tác động của phát triển phần mềm có hỗ trợ AI, đặt ra câu hỏi: "Nó có đang tạo ra tác động tích cực không?"
  • Việc đo lường năng suất thực tế vẫn còn khó khăn

Rất nhiều LLM

  • LLM (mô hình ngôn ngữ lớn) tạo nền tảng cho nhiều đổi mới hiện đại của AI
  • Hiện nay, nhiều thử nghiệm bao gồm việc cung cấp giao diện người dùng kiểu trò chuyện như ChatGPT hoặc Bard
  • Nói rộng ra, LLM là công cụ có thể giải quyết nhiều vấn đề, từ tạo nội dung (văn bản, hình ảnh và video) đến sinh mã, tóm tắt và dịch thuật
  • Những mô hình này sử dụng "ngôn ngữ tự nhiên" như một lớp trừu tượng cực kỳ mạnh, mang lại bộ công cụ hấp dẫn phổ quát nên đang được nhiều lao động tri thức sử dụng
  • Đang có nhiều thảo luận về các khía cạnh khác nhau của LLM, bao gồm cả self-hosting để có khả năng tùy biến và kiểm soát mạnh hơn so với LLM được lưu trữ trên đám mây
  • Khi độ phức tạp của LLM tăng lên, chúng tôi xem xét khả năng lượng tử hóa và chạy LLM ở dạng kích thước nhỏ hơn, đặc biệt trên thiết bị biên và trong các môi trường hạn chế
  • Chúng tôi cũng xem xét "ReAct Prompting" hứa hẹn cải thiện hiệu năng, cùng với các autonomous agent dựa trên LLM có thể dùng để xây dựng ứng dụng động vượt ra ngoài tương tác hỏi đáp
  • Cũng đề cập đến một số cơ sở dữ liệu vector đang hồi sinh nhờ LLM, bao gồm Pinecone
  • Các chức năng cốt lõi của LLM, bao gồm khả năng chuyên biệt hóa và self-hosting, đang tiếp tục tăng trưởng bùng nổ

Các workaround cho remote delivery đã trưởng thành hơn

  • Các nhóm phát triển phần mềm từ xa đã sử dụng công nghệ trong nhiều năm để vượt qua ràng buộc địa lý, nhưng tác động của đại dịch đã thúc đẩy đổi mới trong lĩnh vực này, khiến làm việc hoàn toàn từ xa hoặc hybrid trở thành xu hướng bền vững
  • Trong Radar lần này, nội dung thảo luận xoay quanh việc các phương thức và công cụ phát triển phần mềm từ xa đã trưởng thành ra sao, cũng như cách các nhóm tiếp tục mở rộng ranh giới với trọng tâm là cộng tác hiệu quả trong môi trường ngày càng phân tán và năng động hơn bao giờ hết
  • Một số nhóm tiếp tục đưa ra các giải pháp sáng tạo bằng cách sử dụng các công cụ cộng tác mới
  • Một số khác tiếp tục điều chỉnh và cải tiến các thực hành gặp mặt trực tiếp hiện có cho những hoạt động như pair programming thời gian thực hoặc mob programming, workshop phân tán (ví dụ: remote event storming). Cả bất đồng bộ và đồng bộ đều khả thi
  • Làm việc từ xa mang lại nhiều lợi ích (bao gồm cả nguồn nhân tài đa dạng hơn), nhưng giá trị của tương tác trực tiếp là rất rõ ràng
  • Các nhóm không được để mất đi những vòng phản hồi quan trọng và cần nhận thức được những đánh đổi phát sinh khi chuyển sang thiết lập làm việc từ xa

[Techiniques]

Adopt

  1. Design systems
  2. Lightweight approach to RFCs
Quảng cáo

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
Quảng cáo

[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