ทำความเข้าใจกับ ‘Software Architecture’ เชิงเปรียบเทียบกัน

ปัจจุบันยังไม่มีนิยามสำหรับ ‘Software Architecture’ ที่ชัดเจนดีพอ และคำจำกัดความหรือความหมายที่มีอยู่ตามเว็บไซต์และตำรา ต่างสร้างความสับสนกำกวมให้แก่ผู้สนใจไม่น้อย มีผู้สนใจและผู้ที่ต้องการศึกษา software architecture มากมายที่แสวงหานิยามอมตะซึ่งใช้เพียงไม่กี่ประโยคเพื่อแทนความหมายของ software architecture ได้ชัดเจนที่สุด

แต่จะแสวงหานิยามไปเพื่ออะไรกัน? นิยามที่อยู่ในรูปประโยคเพียงไม่กี่ประโยค จะหวังให้สื่อถึงแก่นสาระทั้งมวลอาจไม่ได้เสมอไป โดยเฉพาะกับศาสตร์ที่ยังมีขวบวัยเพียงในระดับหนึ่งเท่านั้น ดังจะเห็นได้ว่ามีการตีความกันไปต่าง ๆ นานา ดังนั้นจงใช้หลัก ‘กาลามสูตร’ ของพระพุทธเจ้าเพื่อเป็นเกณฑ์ในการเลือกที่จะเชื่อในเนื้อความที่ได้อ่านหรือสดับมา

ผมจะขออธิบายความหมายของ ‘สถาปัตยกรรมซอฟต์แวร์ (software architecture)’ ในเชิงเปรียบเทียบกับร่างกายของมนุษย์ คำตอบแห่งหลายสิ่งในจักรวาลล้วนสามารถเริ่มต้นได้จากการเพ่งศึกษาในตัวตนก่อน ตามหลักแห่งพุทธแล้ว คำถามที่ยากจะแสวงหาคำตอบ ดิ้นรนฝ่าฟันทุกทิศก็ใช่จะหาความหมายที่ชัดเจนถูกใจได้ยาก แต่หากตั้งสติให้นิ่งแทนที่จะคอยแต่มองออกไปภายนอก บางครั้งคำตอบที่เราต้องการอาจอยู่ภายในตัวเรานี่เอง

มนุษย์เรามีความสามารถหลากหลาย สามารถทำอะไรได้หลายอย่าง เช่น กิน นอน เดิน วิ่ง ขับรถ ฯลฯ หลายอย่างที่บางคนอาจไม่เคยทำมาก่อน แต่เมื่ออยู่ในสถานการณ์จำเป็นที่มีปัจจัยบางอย่างตีกรอบ ก็สามารถทำในสิ่งที่ไม่เคยทำมาก่อนได้ เช่น
– เกิดมาอ่านหนังสือไม่ได้ แต่เมื่อถูกส่งเข้าโรงเรียนก็ได้เรียนรู้จนอ่านเขียนได้
– บางคนเพิ่งลาออกจากงานขายของหน้าร้าน เปลี่ยนมาทำงานใหม่ที่ไม่เคยทำมาก่อนคือเป็นบุรุษไปรษณีย์ ก็สามารถทำได้เมื่อได้รับการฝึกฝน
เป็นต้น

เราอาจเคยได้ยินประโยคที่ว่า “มนุษย์เป็นสัตว์สังคม” เมื่อคนเรามารวมกลุ่มกันก็ต้องมีกฏเกณฑ์มีสังคม ในปัจจุบันเรามีสังคมที่หลากหลาย และมีธุรกิจอุตสาหกรรมที่หลากหลาย เช่น ธุรกิจสิ่งทอ เกษตรกรรม เทคโนโลยี ประกอบรถยนต์ โรงพยาบาล เป็นต้น โดยในแต่ละสังคมธุรกิจล้วนต้องมีคนเข้าไปมีส่วนร่วม มีการใช้คนที่หลากหลายซึ่งสอดคล้องกับเกณฑ์ที่หลากหลาย เช่น อายุ การศึกษา ประสบการณ์ เป็นต้น

ในแต่ละสังคมคือโดเมน (domain) หนึ่งนั่นเอง ในโดเมนจึงสามารถมีโดเมนย่อยต่อไปได้อีก โดเมนหนึ่งก็อาจอยู่ภายในโดเมนหนึ่งที่ใหญ่กว่าได้ แล้วเกณฑ์ที่ใช้ในการจำแนกขนาดและประเภทโดเมนคืออะไร? นี่คือกฏเกณฑ์ของสังคมนั้น ๆ เป็นผู้กำหนด แต่สิ่งสำคัญอยู่ที่มุมมอง (perspective) ของผู้มองเองด้วย เพราะในสังคมที่มีลักษณะคล้ายคลึงกันราวกับฝาแฝด แต่อาจมีกฏเกณฑ์ที่แตกต่างกันอย่างสิ้นเชิงก็เป็นได้

ใครสักคนหนึ่งเมื่อต้องเข้าไปอยู่ในสังคมหนึ่ง เช่น นาย ก ได้สมัครเข้าทำงานเป็นพนักงานขายอุปกรณ์เลี้ยงปลา สิ่งที่ทางร้านต้องการจากนาย ก คือความสามารถ (feature) ในการขาย และความรู้การเลี้ยงปลาและอุปกรณ์เบื้องต้น โดยทางร้านได้ระบุความสามารถของนาย ก ว่าต้องมีอะไรบ้างในการทำงาน เพื่อให้สอดคล้องกับโมเดลธุรกิจ (business model) ของทางร้าน ทางร้านจึงจำเป็นต้องมีการฝึกอบรมเบื้องต้นให้แก่นาย ก เพื่อให้เข้าใจเป้าหมายธุรกิจ (business goals) ที่สัมพันธ์กับโมเดลธุรกิจของทางร้าน

แม้ว่านาย ก สามารถทำอะไรอย่างอื่นได้อีกมากมาย เช่น ขับรถ ว่ายน้ำ เล่นฟุตบอล ตีกลอง ฯลฯ ก็ไม่มีความจำเป็นต่องานเท่าใดนัก ดังนั้นนาย ก จึงต้องทำความเข้าใจกับโมเดลธุรกิจ เป้าหมายธุรกิจ และความสามารถหรือหน้าที่ที่ตนเองต้องทำ เพราะเหล่านี้คือความต้องการ (requirements) ที่ทางร้านคาดหวังในตัวเขา

จากการฝึกอบรม นาย ก พบว่างานขายอุปกรณ์เลี้ยงปลานั้นตนเองต้องสามารถอธิบายข้อมูลให้แก่ลูกค้าได้ ใช้อุปกรณ์ในร้านทุกชนิดเป็น ซ่อมอุปกรณ์ชิ้นง่าย ๆ ได้ ให้อาหารปลาในตู้ปลาที่โชว์ ทำความสะอาดตู้ปลา บรรจุหีบห่อ นำรถเข็นมายกอุปกรณ์ชิ้นใหญ่ไปส่งที่รถลูกค้า และรับเงินและคืนเงินทอน เหล่านี้คือความต้องการ (functional requirements) ของทางร้านที่ต้องการให้เขาทำ

ร่างกายของมนุษย์มีระบบการทำงานหลายประเภท แต่ละประเภทประกอบด้วยอวัยวะที่ซับซ้อน อวัยวะหลายส่วนมักทำงานร่วมกันและตอบสนองซึ่งกันและกัน เช่น ระบบหายใจประกอบด้วย จมูกที่หายใจนำอากาศผ่านลำคอเข้าสู่ปอดและหัวใจ ปากที่นำอาหารที่ทานผ่านลำคอ (ใช้ร่วมกันกับระบบหายใจ) สู่กระเพาะและสู่ลำไส้ เป็นต้น

ดังนั้นหากวาดเป็นรูปออกมาแล้วจะเห็นได้ว่าร่างกายมนุษย์เรามีระบบการทำงานมากมายและ
ซับซ้อนอย่างยิ่ง หากอวัยวะใดหรือระบบใดทำงานผิดเพี้ยนไปอาจส่งผลต่ออวัยวะหรือระบบการทำงานอื่นได้ เช่น หากสูบบุหรี่มากจะเป็นการสร้างความเสียหายให้กับปอด เมื่อปอดมีปัญหาก็จะฟอกอากาศได้แย่ลง ส่งผลต่อหัวใจและระบบหายใจ หากไตมีปัญหาก็อาจทำให้เป็นนิ่วได้ หากกระเพาะมีปัญหาก็อาจส่งผลต่อระบบย่อยอาหารได้ หากระบบประสาทบริเวณไขกระดูกสันหลังมีปัญหาอาจเป็นอัมพาตได้ หากระดับน้ำในหูมีปัญหาอาจส่งผลต่อการทรงตัวได้ เป็นต้น

ระบบการทำงาน หรือ กลไก (architectural mechanism) ภายในร่างกายส่วนใดส่วนหนึ่งประสบปัญหาจึงมักส่งผลข้างเคียง (side effect) ต่อระบบการทำงานและอวัยวะอื่นด้วยเสมอ และเมื่อระบบการทำงานใดทำงานผิดปกติไปก็จะส่งผลต่อความสามารถของคนนั้น หรือสิ่งที่คนนั้นจำเป็นต้องทำ (functional requirements) ไปด้วย เช่น วันหนึ่งนาย ก ไปตรวจสุขภาพ ผลการตรวจพบว่าเป็นโรคผิวหนัง เนื่องจากภูมิแพ้จากการทำความสะอาดตู้ปลาบ่อย ๆ แต่ล้างมือไม่สะอาด นาย ก จึงนำผลการตรวจไปแจ้งเจ้าของร้าน เจ้าของร้านจึงสั่งไม่ให้นาย ก ล้างตู้ปลา 1 สัปดาห์แล้วหักเงินค่าจ้างเพื่อทำโทษที่ไม่ยอมดูแลรักษาสุขภาพให้ดี

นอกจากนี้นาย ก ต้องเริ่มทำงานแต่เช้า ต้องเข้างานตรงเวลา (ความน่าเชื่อถือ – reliability) ในการอธิบายสินค้าแก่ลูกค้าต้องใช้เวลาที่สั้น กระชับ และทำให้ลูกค้าตัดสินใจซื้อได้เร็ว (ประสิทธิภาพ – performance) เพราะหากเป็นช่วงเวลาที่มีลูกค้าที่ร้านมาก นาย ก ยิ่งต้องอธิบายได้รวดเร็ว ชัดเจนมากยิ่งขึ้น และยังต้องรักษาสุขภาพ ไม่เจ็บไข้ได้ป่วยจนทำให้ต้องขาดงานบ่อย (ความพร้อม – availability) ต้องคอยศึกษาอุปกรณ์รุ่นใหม่ ๆ ที่มาแทนรุ่นเก่า (ปรับปรุง – modifiability) และทางร้านต้องสามารถตรวจสอบประเมินผลการทำงานได้ (ทดสอบ – testability) นี่คือความต้องการที่ทางร้านกำหนด และนาย ก ได้คิดเพิ่มเติมอีกว่าตนเองจะต้องพัฒนาทักษะความรู้อย่างต่อเนื่อง เพื่อจะได้ก้าวหน้าและเติบโตในหน้าที่ที่สูงขึ้นที่มีความรับผิดชอบที่มากขึ้นต่อไปไ
ด้ (ขยาย – scalability) ความต้องการเหล่านี้คือ สิ่งที่ใช้ชี้วัดคุณภาพการทำงานของนาย ก เป็นความต้องการที่ไม่ใช่หน้าที่โดยตรง (non-functional requirements) แต่มีความผลต่อหน้าที่รับผิดชอบ

ระบบการทำงานของร่างกาย (กลไก) ที่สำคัญที่ส่งผล (support) ต่อการทำงาน (functional requirements) ของนาย ก เช่น ระบบหายใจ (ต้องดมกลิ่นปลา กลิ่นตอนล้างตู้ปลาบ่อย ๆ) ระบบผิวหนัง (ต้องสัมผัสปลา อาหารปลา และตอนล้างตู้ปลา) ระบบสมอง (เรียนรู้ ท่องจำ คิด ฯลฯ) เป็นต้น หากระบบเหล่านี้ทำงานผิดพลาดจะส่งผลต่องานของนาย ก เมื่อนาย ก ทำงานผิดพลาดหรือมีประสิทธิภาพแย่ลง ก็จะส่งผลต่อหน้าที่การงานของนาย ก เอง และต่อธุรกิจของทางร้าน ดังนั้น non-functional requirements จึงมีผลต่อการทำงานของกลไกและการกำหนดระดับความสำคัญ (prioritize) ของกลไกต่าง ๆ หรือกล่าวได้ว่า non-functional requirements นำไปสู่การกำหนดกลไกที่จะมีในระบบฯ และเป็นตัวชี้วัดคุณภาพการทำงานของกลไก ซึ่งแน่นอนเมื่อกลไกทำงานได้ดี ย่อมส่งผลต่อการทำงาน (functional requirements) ได้ดีตามไปด้วย

จากการอธิบายในเชิงเปรียบเทียบนี้ เห็นได้ว่าสิ่งที่อยู่ใน ‘software architecture’ คือ กลไกสำคัญที่มีผลต่อระบบฯ จากตัวอย่างข้างต้นระบบฯ ก็คือตัวนาย ก นั่นเอง

ประเด็นสำคัญคือการสร้างระบบฯ ต้องถูกตีกรอบด้วยโดเมน หรือเกณฑ์การจำแนกของสังคมนั้น ๆ เพราะบางกลไกที่มีความสำคัญต่อโดเมนหนึ่งแต่อาจไม่มีความสำคัญต่ออีกโดเมนก็ได้ เมื่อทราบแล้วว่าระบบฯ นั้นถูกจัดกลุ่มอยู่ในโดเมนใด จึงต้องกำหนดความต้องการของโดเมนหรือเป้าหมายทางธุรกิจ (business goals) นั้น กำหนดโดยผู้ที่มีผลต่อความสำเร็จหรือล้มเหลว (ผู้มีส่วนได้เสีย) (stakeholders) ภายในโดเมนนั้นเอง ไม่ใช่กำหนดโดยผู้ที่เข้าไปทำระบบฯ ให้ เมื่อโดเมนนั้นทราบแล้วว่าโมเดลธุรกิจและเป้าหมายทางธุรกิจของตนคืออะไร จึงจะกำหนดความสามารถ (feature) ของระบบฯ โดยจะกำหนดเอง หรือให้คนที่จะทำระบบฯ ให้กำหนด หรือจะกำหนดร่วมกันก็ได้ จากนั้นจึงกำหนดความต้องการ (functional requirements) ที่คาดหวังจากการทำงานของระบบฯ แต่ระบบฯ จะมีคุณภาพหรือไม่? แค่เพียงระบบฯ ทำงานได้นั้นไม่เพียงพอจะกล่าวได้ว่าระบบฯ มีคุณภาพ

จากตัวอย่างเปรียบเทียบ หากระบบการทำงานบางอย่างผิดปกติไปอาจส่งผลต่อความสามารถบางอย่างของมนุษย์ได้ นั่นคือ กลไกมีผลต่อความสามารถ (functional requirements) และหากนาย ก ยังไม่ยอมล้างมือให้สะอาดหลังจากล้างตู้ปลา อาจทำให้เป็นโรคผิวหนังเรื้อรัง และส่งผลต่อการทำงาน ซึ่งอาจทำให้นาย ก ถูกพักงานหรือต้องลางานไปรักษาตัวบ่อยขึ้น ฉะนั้นอาจทำให้คุณภาพการทำงานของนาย ก ตกลง และหากนาย ก ไม่ฝึกฝนการอธิบายรายละเอียดสินค้าแก่ลูกค้าให้ดี ก็อาจส่งผลต่อประสิทธิภาพและความน่าเชื่อถือไป นั่นคือ functional requirements และ non-functional requirements มักตอบสนองซึ่งกันและกันเสมอ

คุณภาพของระบบฯ ขึ้นอยู่กับประสิทธิภาพของการทำงานของกลไกในสถาปัตยกรรมฯ หรือกล่าวได้ว่าขึ้นกับสถาปัตยกรรมฯ ของระบบฯ นั่นเอง สถาปัตยกรรมฯ ที่ดีต้องทำให้ระบบฯ ทำงานได้ตาม functional requirements และ non-functional requirements ความต้องการทั้งสองประเภทนี้ต้องสอดคล้องกับความสามารถ (feature) ที่ผู้ทำระบบฯ ได้รับปาก (commit) กับเจ้าของระบบฯ (หรือโดเมนนั้น หรือลูกค้า) ไว้ และเมื่อระบบฯ ทำงานได้ตาม feature ที่ได้รับปาก ก็จะส่งผลได้ตรงตามเป้าหมายทางธุรกิจที่กำหนดไว้แต่แรก

ความสัมพันธ์จากเป้าหมายทางธุรกิจจนถึงสถาปัตยกรรมฯ และท้ายที่สุดจนถึงระบบฯ ที่สร้างเสร็จแล้ว เรียกว่า ‘Architecture Business Cycle’ (ABC) ซึ่งในทางกลับกันระบบฯ ที่สร้างเสร็จแล้วต้องตอบสนองได้ตรงตามเป้าหมายทางธุรกิจด้วยเช่นกัน

ดังนั้นจะเห็นได้ว่าหากสถาปัตยกรรมฯ มีคุณภาพ ระบบฯ ก็จะมีคุณภาพ โดยปัจจัยสำคัญต่อคุณภาพของสถาปัตยกรรมฯ คือ เป้าหมายทางธุรกิจ เพราะเป็นความต้องการที่สำคัญที่สุดและเป็นเสมือนกรอบการทำงานทั้งหมด และ non-functional requirements เพราะเป็นปัจจัยหลักนำไปสู่การกำหนดและสร้างกลไก

สถาปัตยกรรมซอฟต์แวร์ จึงเน้นที่การทำงานร่วมกันของกลไกสำคัญต่าง ๆ ภายในระบบฯ ที่มีผลต่อการทำงานและเป้าหมายทางธุรกิจ

เฉกเช่นร่างกายมนุษย์ หากระบบประสาทเสียหาย โดยที่อวัยวะอื่นยังทำงานปกติ แต่ถ้าเป็นอัมพาต แม้กำลังนอนอยู่ก็ไม่อาจกล่าวได้ว่าเป็นการนอนโดยแท้จริง….

สุดท้ายลองถามตัวเล่น ๆ กับตัวคุณเองดู… ว่าทำงานด้านใดอยู่ องค์กรที่คุณทำงานอยู่ในโดเมนใด ระบบการทำงานและอวัยวะใดของร่างกายที่สำคัญต่อหน้าที่รับผิดชอบ และทำงานร่วมกันและตอบสนองซึ่งกันอย่างไร หน้าที่รับผิดชอบของคุณคืออะไร การทำงานของคุณมีความสำคัญอย่างไรต่อธุรกิจหรือความสำเร็จขององค์กร….

เรามีสถาปัตยกรรมที่วิเศษที่สุดในจักรวาลอยู่ในตัวเรานี่เอง….

=======================================================================

ยาวเหยียด เฮ้อ…. smile.gif
เป็นส่วนหนึ่งของหนังสือที่กำลังเขียนอยู่ครับ พอดีได้ไอเดียจากที่มักใช้มุขอวัยวะในร่างกายคนเราอธิบายเชิงเปรียบเทียบกับ software architecture อยู่่บ่อย ๆ ในงานบรรยาย เลยเอามาเขียนลงรายละเอียดหน่อยดีกว่า
แต่ยังไม่ค่อยกระชับเท่าไรนะครับ เอาไว้ถึงช่วงเรียบเรียงเรียบร้อยแล้วจะมาอัพเดตอีกทีพร้อมรูปประกอบ

อ้อ… ช่วย comment หน่อยนะครับ smile.gif

minimalist (ณรงค์ จันทร์สร้อย ๒๐ เมษายน พ.ศ. ๒๕๕๑)

12 thoughts on “ทำความเข้าใจกับ ‘Software Architecture’ เชิงเปรียบเทียบกัน

  1. แวะเข้ามาอ่านค่ะ อ่านเรื่อง SW Architecture ยังงงๆ อยู่ที่เปรียบเทียบกับร่างกายมนุษย์ เดี๋ยวต้องลองอ่านอีกรอบนึงค่ะ

  2. ผมก็ชอบเขียนแนวนี้นะครับ แนวเขียนด้านหนึ่งแต่ยกตัวอย่างอีกด้านหนึ่ง

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

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

    แต่โดยสรุป คน(บางกลุ่ม)ที่อ่านเข้าใจได้ ก็จะสนุกกับเรื่องนั้นๆ และเอา abstraction ที่ได้ไปใช้กับเรื่องอื่นต่อ (ซึ่งน่าจะตรงจุดประสงค์ของการสอนคนแบบต้องการให้เข้าใจถ่องแท้ ไม่ต้องการให้ท่องจำ)

    แหะๆ comment ย้าวยาว ขอบคุณที่เขียนเรื่องให้อ่านครับ หนังสือวางแผงบอกด้วยนะครับ จะรอซื้อ🙂

  3. เห็นด้วยกับที่บอกว่า “แต่จะแสวงหานิยามไปเพื่ออะไรกัน?” เพราะการนิยามอาจทำให้ขอบเขตความหมายของมันแคบลงไป เมื่อมันเปลี่ยนก็ต้องหานิยามกันใหม่อยู่ดี

    เปรียบเทียบร่ายกายเรากับ Software Architecture ได้อย่างดีครับ แต่สงสัยอยู่อย่าง ถ้าหมอเชี่ยวชาญ Software Engineering ขึ้นมา แล้วจับมนุษย์อย่างเรา ๆ มา Implement Interface IFlying แล้ว จะทำให้เราบินได้จริง ๆ หรือเปล่านะ

  4. Software architecture เป็นงานอีกประเภทที่น่าสนใจมาก ปกติที่บริษัทจะเน้นทำ functional testing งานที่เป็น nonfunction testing ไม่ค่อยได้ทำ คงต้องหาเวลาศึกษาแล้วละค่ะ ขอบคุณสำหรับบทความดี ๆ ค๊า

  5. สวัสดีครับ
    ผม อยาก ขอ ความเห็น ครับว่า ถ้าจะทำงานด้าน software architect ควรจะเริ่มศึกษาจากเรื่องใด ก่อนดีครับ หรือ อาจจะมี หัวข้อไหนที่น่าสนใจจะมาแนะนำได้บ้าง ที่จะนำไปพัฒนา คุณภาพให้กับ องค์กรได้ ครับ
    ตอนนี้ ผมยังสับสนอยู่ ครับว่า จะเริ่มที่
    technology framwork ใหม่ๆ ดี หรือ จะศึกษาเกี่ยวกับเรื่อง พวก สถาปัตยกรรมแบบ distributed หรือ non distribute หรือ อาจจะเป็นพวก performance tunning

    ไม่ทราบว่าเรื่อง เหล่านี้ มันควรจะเป็นเรื่อง ของ software architect หรือ ไม่ครับ
    ขอบคุณครับ

    • ลองศึกษาสิ่งเหล่านี้ดูครับ
      – Object-Orientation
      – Requirements Management
      – Object-Oriented Analysis and Design
      – UML
      – Software Architecture
      ลองหาหนังสือเหล่านี้อ่านดูครับ
      1. Software Architecture in Practice Second Edition by Len Bass….
      2. Software System Architecture by Nick Rozanski and Eoin Woods
      3. Design & Use of Software Architecture by Jan Bosch

      – Design Patterns
      ลองหาหนังสืออ่านดูครับมีให้เลือกเยอะแยะ

      – Architectural Patterns
      ลองหาหนังสือเหล่านี้อ่านดูครับ
      1. Patterns of Enterprise Application Architecture by Martin Fowler
      2. Pattern-Oriented Software Architecture Volume 1-5 (มี 5 เล่ม)

      – ศึกษาเฟรมเวิร์กต่าง ๆ เลือกตัวที่ชอบและที่ใกล้กับงานที่ทำ

      เข้าไปศึกษา อ่าน เรียนรู้ เพิ่มเติมได้ที่เว็บ http://www.sei.cmu.edu/architecture

      นอกจากนี้ฝึก soft skill เยอะๆ ครับ เช่น ทัศนคติ วิสัยทัศน์ บุคลิกภาพ ภาษา การให้คำปรึกษา การบรรยาย การทำเอกสาร การตัดสินใจ เป็นต้น และศึกษาพวกนี้เพิ่มเติม เช่น ธุรกิจ การเงิน การบัญชี การตลาด เศรษฐศาสตร์ สังคมศาสตร์ จิตวิทยา เป็นต้น คือไม่ต้องศึกษาแบบจะเอาปริญญานะครับ เอาแค่พอรู้ เข้าใจ และสามารถนำไปประยุกต์และปฏิบัติได้พอ

      เป็น architect ตาต้องดี มองอะไรก็ต้องแยกแก่นกับเปลือกได้เก่ง เร็ว และแม่นยำ หูและจมูกก็ต้องดีึ ควรได้ยินหรือได้กลิ่นแห่งความสำเร็จหรือล้มเหลวได้รวดเร็วก่อนที่สถานการณ์จริงจะเกิด ปากก็ต้องดี ต้องคุยกับคนได้ทุกประเภททุกระดับ

      โชคดีครับ🙂

  6. Pingback: 2010 in review « minimallife

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s