เพิ่งไปเรียน course Domain-Driven Design (DDD) มา
มีเรื่องหนึ่งที่น่าสนใจจาก course คือ 
Architecture and Design InfoQ Trends Report ประจำเดือนมากราคม 2019
ซึ่งแบ่งกลุ่มตาม Diffusion of innovations แสดงดังรูป

แบ่งออกเป็น 4 กลุ่มคือ

  1. Innovators คือกลุ่มชอบลองของใหม่ ๆ ที่ยังไม่มีใครใช้ จะไม่กลัวกับปัญหาที่จะต้องเจอ
  2. Early Adopters คือกลุ่มที่เปิดรับสิ่งใหม่ ๆ ได้เร็ว มองเห็นประโยชน์จากเทคโนโลยีต่าง ๆ
  3. Early Majority คือกลุ่มที่เข้ามายังกระแสหลักกลุ่มแรก มีตัวอย่างที่ประสบความสำเร็จให้เห็นแล้ว 
  4. Late Majority คือกลุ่มที่เข้ามายังกระแสหลักทีหลังเพื่อไม่ให้ตกยุค

มาดูกันว่าแต่ละกลุ่มมีอะไรบ้าง

เริ่มจากกลุ่มที่ 4 Late Majority

ประกอบไปด้วย

  • Microservices
  • Domain-Driven Design (DDD)
  • Behaviour-Driven Design (BDD)
  • Test-Driven Design (TDD)
  • REST

หมายความว่าในกลุ่มนี้เป็นกระแสหลักไปแล้ว
ใครไม่รู้จักน่าจะเริ่มมีปัญหา หรือ คุยกับคนอื่น ๆ ไม่รู้เรื่อง

ปล. มี TDD และ BDD ด้วย หมายความว่าต้องเริ่มจากการคิดว่าจะทำอะไร
ทดสอบหรือใช้งานกันอย่างไร
ดังนั้นวันนี้เราเริ่มทำกันหรือยังนะ
หรือยังพยายามทำให้มันเสร็จ ๆ ให้เยอะที่สุดเป็นพอ

กลุ่มที่ 3 Early Majority

ในกลุ่มนี้ประกอบไปด้วย

  • Event-Driven Architecture และ Event Sourcing
  • Eventual Consistency

ซึ่งไม่น่าแปลกใจมากนัก
เพราะว่ามีความเกี่ยวข้องกับกลุ่มที่ 4 อย่างมาก
จะเน้นไปที่โลกของ distributed มากขึ้น

กลุ่มที่ 2 Early Adopters

เป็นส่วนที่น่าสนใจ เพราะว่ามีหลาย ๆ เรื่องที่มักจะได้ยินกันบ่อยมากขึ้น
แต่อาจจะยังไม่ได้รับความนิยมมากนัก

  • GraphQL
  • Reactive Programming
  • Functional Programming
  • CQRS
  • Serverless
  • Evolutionary Architecture
  • Architect as Technical Leader
  • Correctly designing distributed system

กลุ่มที่ 1 Innovators

เป็นกลุ่มที่ลองของใหม่ ๆ เช่น

  • Blockchain
  • Service Mesh
  • HTTP 3

ซึ่งแตกต่างจากแนวโน้มในปี 2018 ดังรูป

สิ่งที่เราต้องคิดคือ
จากแนวโน้มเหล่านี้ เราได้เรียนรู้อะไรบ้าง ?