หลักการในการพัฒนา modern app นั้นมีค่อนข้างหลากหลาย และถูกใช้ในแบบที่แตกต่างกันในแต่ละที่ แต่ละสภาพแวดล้อมของ App และทีม Development ส่วนตัวชอบ process การออกแบบโดยใช้ Swift เพราะเป็นวิธีการที่ prove แล้วว่าใช้ได้จริงในองค์กรใหญ่ๆ โดยใช้ concept DDD และมีขั้นตอนคร่าวๆ ดังนี้

- กำหนด OKR เพื่อให้ทีมเข้าใจในทิศทางเดียวกันว่ากำลังจะทำอะไร เพื่ออะไร แล้วจะวัดผลด้วยอะไร
- ทำ session Event Storming เป็นการร่วมกัน explore ว่าในเรื่องที่ทำนั้น (context) มีเหตุการณ์ (event) อะไรบ้างเรียงตามเวลาที่เกิดขึ้น session นี้จะทำให้ทั้งทีมเข้าใจในสิ่งที่จะ build ขึ้นมาว่ามีกระบวนการทำงานยังไง
- เลือกตัดส่วนที่เข้าใจชัดเจนที่สุด หรือมี impact มากสุดมาทำก่อน
- สร้าง diagram เพื่ออธิบาย architect ของแต่ละ module ที่อยู่ใน system (BORIS) ว่ามีความสัมพันธ์กันยังไง มีการแลกเปลี่ยนข้อมูล หรือให้บริการอะไรบ้าง รวมทั้งระบบภายนอกที่เกี่ยวข้อง (external system)
- ลงรายละเอียดเบื้องต้นของแต่ละ service (SNAP) เช่น APIs, Data, PUB/SUB, External System, User stories, UI และ Risk แล้วใช้ Project Management tools (Jira) เพื่อขยายรายละเอียดพร้อมสำหรับการนำไป Implement และเข้าสู่กระบวนการ agile
- พัฒนา Code
- Document กระบวนการ วิธีการพัฒนา ปัญหา วิธีการแก้ไข เพื่อให้ครั้งแต่ไปสามารถนำไปใช้ได้และ ไม่ต้อง research อีกครั้ง อีกทั้งช่วยทำให้คนใหม่ที่เข้ามาในทีมสามารถเรียนรู้ และ follow สิ่งที่ทำผ่านมาแล้วได้
สรุปรูปแบบข้างต้นจากบนลงล่าง

