คุณสนใจใน software architecture งั้นหรือ บางทีคุณอาจเป็นนักพัฒนาที่อยากก้าวไปสู่ขั้นถัดไปในสายอาชีพ หรือบางทีคุณอาจเป็นผู้จัดการโปรเจกต์ที่อยากเข้าใจว่าเกิดอะไรขึ้นเมื่อ software architecture ทำงานได้ผล คุณอาจเป็น “accidental architect” ก็ได้ นั่นคือคนที่ทำการตัดสินใจด้าน architecture (ตามคำนิยามด้านล่าง) แต่ยังไม่มีตำแหน่ง “software architect”…ในตอนนี้

ทำไมถึงต้องลงลึกในแวดวง software architecture บางทีคุณอาจมีประสบการณ์กับโปรเจกต์มากมายแล้ว และอยากเข้าใจให้ลึกซึ้งขึ้นว่าส่วนใหญ่ๆ ของระบบประกอบกันอย่างไร รวมถึง trade-off จำนวนมากที่เกี่ยวข้อง ถ้าเป็นแบบนั้น software architecture ก็เป็นก้าวถัดไปในสายอาชีพที่ชัดเจน

หนังสือเล่มนี้ออกแบบมาสำหรับพวกคุณทุกคน มันให้ภาพรวมของงาน “software architect” ที่มีหลายแง่มุมอย่างยิ่ง

Software architect ต้องเข้าใจและวิเคราะห์ระบบซอฟต์แวร์อย่างลึกซึ้ง ในทุกความซับซ้อนของมัน และต้องทำการตัดสินใจเรื่อง trade-off ที่สำคัญ บางครั้งก็ด้วยข้อมูลที่ไม่ครบถ้วน นักพัฒนาซอฟต์แวร์หลายคนที่กังวลว่า generative AI อาจค่อยๆ เข้ามาแทนที่พวกเขา กำลังพิจารณาย้ายไปสาย software architecture ซึ่งเป็นบทบาทที่แทนที่ได้ยากกว่ามาก software architect ทำการตัดสินใจในแบบที่ AI ทำไม่ได้พอดี นั่นคือการประเมิน trade-off ภายในบริบทที่ซับซ้อนและเปลี่ยนแปลงตลอดเวลา

Architecture เหมือนกับงานศิลปะหลายอย่าง ที่จะเข้าใจได้ก็ต้องดูในบริบทเท่านั้น สถาปนิกตั้งการตัดสินใจของตน บนความเป็นจริงของสภาพแวดล้อมที่ตัวเองอยู่ ตัวอย่างเช่น หนึ่งในเป้าหมายหลักของ software architecture ในช่วงปลายศตวรรษที่ 20 คือการใช้ shared infrastructure และทรัพยากรอย่างมีประสิทธิภาพที่สุดเท่าที่จะทำได้ เพราะระบบปฏิบัติการ application server, database server และอื่นๆ ล้วนเป็นของเชิงพาณิชย์และมีราคาแพงมาก

ในปี 2002 การพยายามสร้าง architecture แบบ microservices คงมีราคาแพงจนคิดไม่ถึง ลองจินตนาการว่าคุณเดินเข้าไปใน data center ปี 2002 แล้วบอกหัวหน้าฝ่ายปฏิบัติการว่า “นี่ ผมมีไอเดียเจ๋งๆ สำหรับ architecture style ปฏิวัติวงการ ที่แต่ละ service รันบนเครื่องแยกกันเป็นเอกเทศ พร้อม database เป็นของตัวเอง ผมต้องการ Windows license 50 ชุด application-server license อีก 30 ชุด และ database server license อย่างน้อย 50 ชุด” เราสร้าง architecture แบบนี้ได้ในทุกวันนี้ก็เพราะการมาถึงของ open source และ engineering practice ที่ปรับปรุงใหม่ จากการปฏิวัติ DevOps เท่านั้น ทุก architecture เป็นผลผลิตของบริบทของมัน จำเรื่องนี้ไว้ในใจขณะที่คุณอ่านหนังสือเล่มนี้