20 poin oleh xguru 2023-10-05 | 1 komentar | Bagikan ke WhatsApp

Tren terbaru di bidang teknik/alat/platform/bahasa pemrograman dan framework divisualisasikan dan dijelaskan dalam 4 tahap: Hold/Assess/Trial/Adopt

Pengembangan perangkat lunak berbantuan AI

  • LLM open source untuk coding akan mengguncang lingkungan alat pengembangan
  • Selain coding, ada juga potensi besar untuk membantu penulisan user story, riset pengguna, elevator pitch, dan pekerjaan terkait bahasa lainnya
  • Pada saat yang sama, pengembang harus menggunakan semua alat ini secara bertanggung jawab dan mewaspadai hal-hal seperti package hallucination

Seberapa produktifkah pengukuran produktivitas?

  • Pengembangan perangkat lunak kadang tampak seperti sihir bagi orang yang bukan ahli teknis, sehingga manajer berusaha mengukur seberapa produktif kinerja pengembang
  • Martin Fowler menulis artikel berjudul "Productivity can't be measured" pada tahun 2003
  • Hingga kini, metrik pengganti untuk Activity dalam framework SPACE (Satisfaction and well-being, Performance, Activity, Communication and collaboration, Efficiency and flow), seperti jumlah pull request atau jumlah issue yang diselesaikan, juga tidak terlalu baik
  • Sebagai gantinya, industri mulai berfokus pada "engineering efficiency", yaitu gagasan bahwa alih-alih mengukur produktivitas, kita harus "mengukur faktor yang berkontribusi pada flow atau yang menghambatnya"
  • Daripada berfokus pada aktivitas individu, perhatian perlu diarahkan pada sumber pemborosan dalam sistem dan kondisi yang dapat ditunjukkan secara empiris memengaruhi persepsi "produktivitas" pengembang
  • Alat baru seperti DX DevEx 360 mencoba menyelesaikan masalah ini dengan berfokus pada pengalaman pengembang, bukan pengukuran output tertentu
  • Namun, banyak pemimpin masih menyebut 'produktivitas' pengembang dengan cara yang kabur dan kualitatif
  • Setidaknya sebagian dari bangkitnya kembali perhatian ini tampaknya terkait dengan dampak pengembangan perangkat lunak berbantuan AI, yang memunculkan pertanyaan: "Apakah ini benar-benar memberi dampak positif?"
  • Pengukuran produktivitas yang sesungguhnya masih tetap sulit

Banyak sekali LLM

  • LLM (large language model) menjadi fondasi bagi banyak inovasi modern di AI
  • Saat ini banyak eksperimen melibatkan antarmuka pengguna mirip chat seperti ChatGPT atau Bard
  • Secara luas, LLM adalah alat yang dapat menyelesaikan berbagai masalah, mulai dari pembuatan konten (teks, gambar, dan video) hingga pembuatan kode, peringkasan, dan penerjemahan
  • Dengan menggunakan "bahasa alami" sebagai lapisan abstraksi yang kuat, model-model ini menawarkan seperangkat alat yang menarik secara universal sehingga digunakan oleh banyak pekerja informasi
  • Ada berbagai diskusi tentang LLM dari banyak sisi, termasuk self-hosting yang memungkinkan kustomisasi dan kontrol lebih kuat dibanding LLM yang di-host di cloud
  • Seiring meningkatnya kompleksitas LLM, kami juga mempertimbangkan kemampuan untuk melakukan kuantisasi dan menjalankan LLM dalam form factor kecil, terutama di edge device dan lingkungan terbatas
  • Kami juga melihat "ReAct Prompting" yang menjanjikan peningkatan performa, bersama autonomous agent berbasis LLM yang dapat digunakan untuk membangun aplikasi dinamis yang melampaui interaksi tanya-jawab
  • Disebut juga beberapa vector database yang bangkit kembali berkat LLM, termasuk Pinecone
  • Kapabilitas dasar LLM, termasuk fitur spesialisasi dan self-hosting, terus menunjukkan pertumbuhan eksplosif

Solusi workaround untuk delivery jarak jauh makin matang

  • Tim pengembangan perangkat lunak jarak jauh telah lama memanfaatkan teknologi untuk mengatasi batasan geografis, tetapi dampak pandemi mempercepat inovasi di bidang ini sehingga kerja full remote atau hybrid menjadi tren yang menetap
  • Dalam Radar kali ini, dibahas bagaimana cara kerja dan alat pengembangan perangkat lunak jarak jauh telah makin matang, serta bagaimana tim terus mendorong batas untuk kolaborasi efektif dalam lingkungan yang semakin terdistribusi dan dinamis
  • Beberapa tim terus menghadirkan solusi inovatif dengan menggunakan alat kolaborasi baru
  • Sebagian lainnya terus menyesuaikan dan menyempurnakan praktik tatap muka yang sudah ada untuk aktivitas seperti pair programming real-time atau mob programming, serta workshop terdistribusi (misalnya remote event storming). Keduanya, async maupun sync, dimungkinkan
  • Kerja jarak jauh memang menawarkan berbagai manfaat (termasuk kumpulan talenta yang lebih beragam), tetapi nilai interaksi tatap muka tetap jelas
  • Tim tidak boleh membiarkan feedback loop penting hilang, dan perlu menyadari kelebihan serta kekurangan yang muncul saat beralih ke pengaturan kerja jarak jauh

[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