ปัจจุบันยังไม่มีนิยามสำหรับ ‘Software Architecture’ ที่ชัดเจนดีพอ และคำจำกัดความหรือความหมายที่มีอยู่ตามเว็บไซต์และตำรา ต่างสร้างความสับสนกำกวมให้แก่ผู้สนใจไม่น้อย มีผู้สนใจและผู้ที่ต้องการศึกษา software architecture มากมายที่แสวงหานิยามอมตะซึ่งใช้เพียงไม่กี่ประโยคเพื่อแทนความหมายของ software architecture ได้ชัดเจนที่สุด
แต่จะแสวงหานิยามไปเพื่ออะไรกัน? นิยามที่อยู่ในรูปประโยคเพียงไม่กี่ประโยค จะหวังให้สื่อถึงแก่นสาระทั้งมวลอาจไม่ได้เสมอไป โดยเฉพาะกับศาสตร์ที่ยังมีขวบวัยเพียงในระดับหนึ่งเท่านั้น ดังจะเห็นได้ว่ามีการตีความกันไปต่าง ๆ นานา ดังนั้นจงใช้หลัก ‘กาลามสูตร’ ของพระพุทธเจ้าเพื่อเป็นเกณฑ์ในการเลือกที่จะเชื่อในเนื้อความที่ได้อ่านหรือสดับมา
ผมจะขออธิบายความหมายของ ‘สถาปัตยกรรมซอฟต์แวร์ (software architecture)’ ในเชิงเปรียบเทียบกับร่างกายของมนุษย์ คำตอบแห่งหลายสิ่งในจักรวาลล้วนสามารถเริ่มต้นได้จากการเพ่งศึกษาในตัวตนก่อน ตามหลักแห่งพุทธแล้ว คำถามที่ยากจะแสวงหาคำตอบ ดิ้นรนฝ่าฟันทุกทิศก็ใช่จะหาความหมายที่ชัดเจนถูกใจได้ยาก แต่หากตั้งสติให้นิ่งแทนที่จะคอยแต่มองออกไปภายนอก บางครั้งคำตอบที่เราต้องการอาจอยู่ภายในตัวเรานี่เอง
มนุษย์เรามีความสามารถหลากหลาย สามารถทำอะไรได้หลายอย่าง เช่น กิน นอน เดิน วิ่ง ขับรถ ฯลฯ หลายอย่างที่บางคนอาจไม่เคยทำมาก่อน แต่เมื่ออยู่ในสถานการณ์จำเป็นที่มีปัจจัยบางอย่างตีกรอบ ก็สามารถทำในสิ่งที่ไม่เคยทำมาก่อนได้ เช่น
- เกิดมาอ่านหนังสือไม่ได้ แต่เมื่อถูกส่งเข้าโรงเรียนก็ได้เรียนรู้จนอ่านเขียนได้
- บางคนเพิ่งลาออกจากงานขายของหน้าร้าน เปลี่ยนมาทำงานใหม่ที่ไม่เคยทำมาก่อนคือเป็นบุรุษไปรษณีย์ ก็สามารถทำได้เมื่อได้รับการฝึกฝน
เป็นต้น
เราอาจเคยได้ยินประโยคที่ว่า “มนุษย์เป็นสัตว์สังคม” เมื่อคนเรามารวมกลุ่มกันก็ต้องมีกฏเกณฑ์มีสังคม ในปัจจุบันเรามีสังคมที่หลากหลาย และมีธุรกิจอุตสาหกรรมที่หลากหลาย เช่น ธุรกิจสิ่งทอ เกษตรกรรม เทคโนโลยี ประกอบรถยนต์ โรงพยาบาล เป็นต้น โดยในแต่ละสังคมธุรกิจล้วนต้องมีคนเข้าไปมีส่วนร่วม มีการใช้คนที่หลากหลายซึ่งสอดคล้องกับเกณฑ์ที่หลากหลาย เช่น อายุ การศึกษา ประสบการณ์ เป็นต้น
ในแต่ละสังคมคือโดเมน (domain) หนึ่งนั่นเอง ในโดเมนจึงสามารถมีโดเมนย่อยต่อไปได้อีก โดเมนหนึ่งก็อาจอยู่ภายในโดเมนหนึ่งที่ใหญ่กว่าได้ แล้วเกณฑ์ที่ใช้ในการจำแนกขนาดและประเภทโดเมนคืออะไร? นี่คือกฏเกณฑ์ของสังคมนั้น ๆ เป็นผู้กำหนด แต่สิ่งสำคัญอยู่ที่มุมมอง (perspective) ของผู้มองเองด้วย เพราะในสังคมที่มีลักษณะคล้ายคลึงกันราวกับฝาแฝด แต่อาจมีกฏเกณฑ์ที่แตกต่างกันอย่างสิ้นเชิงก็เป็นได้