เผยแพร่ Thoughtworks Radar ฉบับที่ 27
(thoughtworks.com)จุดเด่นคือการทำภาพและอธิบายเทรนด์ล่าสุดในด้านเทคนิค/เครื่องมือ/แพลตฟอร์ม/ภาษาและเฟรมเวิร์กสำหรับการพัฒนา ด้วย 4 ระดับ ได้แก่ Hold/Assess/Trial/Adopt
การทำให้แมชชีนเลิร์นนิงกลายเป็นกระแสหลัก
- ML ครั้งหนึ่งเคยเป็นสิ่งที่มีเพียงผู้ที่มีเครื่องมือและทรัพยากรเท่านั้นที่ใช้งานได้ แต่ด้วยความสามารถของอุปกรณ์ที่เพิ่มขึ้นและการเกิดขึ้นของโอเพนซอร์ส ทำให้มันกำลังกลายเป็นกระแสหลัก (mainstreaming)
- เทคโนโลยีอย่าง Federated ML ทำให้สามารถสร้างโมเดล ML ที่มอบความเป็นส่วนตัวให้กับข้อมูลอ่อนไหวได้
- TinyML ทำให้โมเดลสามารถรันบนอุปกรณ์ที่มีทรัพยากรจำกัด และย้ายความสามารถในการอนุมานไปยัง Edge เพื่อปรับปรุงความปลอดภัยของข้อมูลอ่อนไหว
- Feature Store มอบข้อดีคล้ายกับแพตเทิร์นการออกแบบ MVC ในการพัฒนาแอป โดยแยกปัญหาระหว่างการคัดสรรข้อมูล การฝึกโมเดล และการอนุมานออกจากกันอย่างชัดเจน
- โมเดลแบบเปิดอย่าง Stable Diffusion ชี้ให้เห็นทั้งความสามารถอันน่าทึ่งของ ML และข้อกังวลเกี่ยวกับข้อมูลต้นทางและจริยธรรม
- คอมโพเนนต์ ML เชื่อมต่อกันได้ง่ายกว่าที่เคย ทำให้สามารถสร้างประสบการณ์และโซลูชัน ML ที่หลากหลายผ่านโมเดลธุรกิจและโมเดลทั่วไปประสิทธิภาพสูงได้
พลังของ "Platform as a Product"
- คำว่า 'แพลตฟอร์ม' ถูกใช้อย่างแพร่หลายมาก ไม่ว่าจะเป็นแพลตฟอร์มเชิงธุรกิจหรือเชิงโดเมน, โครงสร้างพื้นฐาน, หรือแพลตฟอร์มด้านประสบการณ์นักพัฒนา
- โดยพื้นฐานแล้ว รากของปัญหาและความผิดหวังจำนวนมากที่องค์กรพบกับแพลตฟอร์ม มาจาก "การไม่ปฏิบัติต่อแพลตฟอร์มให้เหมาะสมในฐานะผลิตภัณฑ์"
- ตัวอย่างเช่น แพลตฟอร์มสำหรับนักพัฒนามักขาดการวิจัยผู้ใช้หรือการวิเคราะห์บริบทในระดับที่เราคาดหวังจากผลิตภัณฑ์ประเภทอื่น
- เจ้าของแพลตฟอร์มต้องตรวจสอบสมมติฐานเกี่ยวกับความต้องการของนักพัฒนา และตอบสนองต่อรูปแบบการใช้งานจริง
- เช่นเดียวกับผลิตภัณฑ์ที่ดีอื่น ๆ แพลตฟอร์มก็ต้องการการสนับสนุนอย่างต่อเนื่อง ต้องพัฒนาและปรับตัวตามความต้องการที่เปลี่ยนแปลงของนักพัฒนา
- อุปมา "Platform as a Product" จะมีประสิทธิภาพก็ต่อเมื่อถูกยอมรับอย่างเต็มที่ในฐานะการปฏิบัติ ไม่ใช่แค่ถ้อยคำ
ความเป็นเจ้าของข้อมูลย้ายไปที่ Edge
- การรวมศูนย์ทุกรูปแบบเปิดโอกาสให้เกิดการบีบคั้น (constriction), คอขวด และการเปิดเผยข้อมูลโดยไม่จำเป็น
- เทคโนโลยีซอฟต์แวร์/แอปพลิเคชันแบบ local-first ที่อิงกับ CRDT ซึ่งทำให้เกิดแอปพลิเคชันข้อมูลได้โดยไม่ต้องมีฐานข้อมูลรวมศูนย์ ทำให้เรากลับมาคิดเรื่องการสร้างข้อมูลแบบ P2P
- การย้ายความเป็นเจ้าของข้อมูลไปยังเอดจ์ทำให้นักพัฒนาสามารถใช้ความสามารถที่ดีขึ้นบนอุปกรณ์แต่ละเครื่องได้
- ตัวอย่างเช่น ฟังก์ชันจำนวนมากอย่างการจดจำใบหน้าสามารถประมวลผลบนเอดจ์เท่านั้น ทำให้เก็บข้อมูลไว้บนอุปกรณ์ได้ตลอดไป
มือถือก็ควรเป็นแบบ Modular เช่นกัน
- เมื่อแอปมือถือเติบโตเต็มที่ ขนาดก็ใหญ่ขึ้นและมีบริการมากขึ้น จนเติบโตเป็นสิ่งที่เรียกกันว่า super app ซึ่งสามารถมองได้ว่าเป็นแพลตฟอร์มในตัวเอง
- แม้แอปจะไม่ได้ใหญ่มาก แต่ถ้าเพิ่มฟีเจอร์ตลอดหลายปี ก็สามารถแยกย่อยเป็นโมดูลได้ และบริษัทต่าง ๆ ก็พบว่าแอปมือถือเองก็ได้รับประโยชน์จากการทำโมดูลาร์เช่นกัน
- แอปที่แยกเป็นโมดูลสามารถพัฒนาโดยหลายทีมได้ จึงมีข้อดีมากมาย
- อย่างไรก็ตาม ความซับซ้อนคือมันต้องถูกแจกจ่ายผ่าน app store ต้องรองรับทั้ง native iOS/Android และเวอร์ชันเว็บ และจำเป็นต้องมีการปรับเปลี่ยนรายละเอียดเล็กน้อยเพื่อรองรับแต่ละแบบ
- แม้จะมีข้อดีเหล่านี้ การนำแนวทางแบบโมดูลาร์มาใช้ในการพัฒนามือถือยังคงมีความยากอยู่ แต่เราจะได้เห็นเฟรมเวิร์กที่ดีขึ้นเรื่อย ๆ
[ Techniques ]
Adopt
- Path-to-production mapping
- Team cognitive load
- Threat modeling
Trial
- BERT
- Component visual regression testing
- Design tokens
- Fake SMTP server to test mail-sending
- Federated machine learning
- Incremental developer platform
- Micro frontends for mobile
- Observability for CI/CD pipelines
- SLSA
- Software Bill of Materials
Assess
- Carbon efficiency as an architectural characteristic
- CUPID
- GitHub push protection
- Local-first application
- Metrics store
- Server-driven UI
- SLIs and SLOs as code
- Synthetic data for testing models
- TinyML
- Verifiable credentials
Hold
- Satellite workers without “remote native”
- SPA by default
- Superficial cloud native
[ Platforms ]
Adopt
- Backstage
- Delta Lake
Trial
- AWS Database Migration Service
- Colima
- Databricks Photon
- DataHub
- DataOps.live
- eBPF
- Feast
- Monte Carlo
- Retool
- Seldon Core
- Teleport
- VictoriaMetrics
Assess
- Bun
- Databricks Unity Catalog
- Dragonfly
- Edge Impulse
- GCP Vertex AI
- Gradient
- IAM Roles Anywhere
- Keptn
- OpenMetadata
- OrioleDB
[ Tools ]
Adopt
- Great Expectations
- k6
Trial
- Apache Superset
- AWS Backup Vault Lock
- AWS Control Tower
- Clumio Protect
- Cruft
- Excalidraw
- Hadolint
- Kaniko
- Kusto Query Language
- Spectral
- Styra Declarative Authorization Service
- xbar for build monitoring
Assess
- Clasp
- Databricks Overwatch
- dbtvault
- git-together
- Harness Cloud Cost Management
- Infracost
- Karpenter
- Mizu
- Soda Core
- Teller
- Xcode Cloud
##Hold - Online services for formatting or parsing code
[ Languages and Frameworks ]
Adopt
- io-ts
- Kotest
- NestJS
- React Query
- Swift Package Manager
- Yjs
Trial
- Azure Bicep
- Camunda
- Gradle Kotlin DSL
- Jetpack Media3
- Ladle
- Moshi
- Svelte
Assess
- Aleph.js
- Astro
- BentoML
- Carbon Aware SDK
- Cloudscape
- Connect
- Cross device SDK
- Cypress Component Testing
- JobRunr
- Million
- Soketi
- Stable Diffusion
- Synthetic Data Vault
Hold
- Carbon
1 ความคิดเห็น
Thoughtworks Radar ฉบับ 26
ThoughtWorks Radar ฉบับ 24
ตั้งแต่ฉบับ 24 เป็นต้นมา ตั้งใจว่าจะคัดแปลธีมหลักมาลงด้วย แต่ดันข้ามฉบับ 25 ไปซะแล้ว.. แง