ไหนๆได้บ่นแล้วก็ขอแชร์ไอเดียสักหน่อยในประเด็นเรื่องของ "การพัฒนา" นะครับ
ที่ผมพูดค้างไว้ในเรื่องของ "การพัฒนา" ถามว่าการพัฒนานั้นดีไหม? ก็ต้องตอบว่าดี แต่บางครั้งในการพัฒนาอะไรบางอย่างเราต้องวิเคราะห์ก่อนว่ามันคุ้มทุนที่จะต้องลงไปหรือไม่? ผมเองก็ใช่ว่าจะมีความรู้ระดับสูงส่ง ผมก็แค่คิดตามเหตุตามผล ในเรื่องของ IT ผมเป็นคนที่ทำงานด้านนี้มาหลายปี ในการเขียนโปรแกรมแต่ละชิ้นต้องวิเคราะห์ระบบงาน อ่านงานให้ขาดก่อนที่จะทำระบบ ผมไม่ได้บอกว่าตัวเองเก่งนะครับ แต่สิ่งที่จะเล่าต่อไปนี้ เป็นการแชร์ไอเดียของตัวเองเท่านั้น
ก่อนที่ผมจะตัดสินใจลาไปเรียนต่อด้านนี้ ผมเคยคิดว่าคอมพิวเตอร์มันจะมีอะไรมากมาย สิ่งที่อยากรู้อยากเป็นก็ทำได้หมด ไม่ว่าจะเขียนโปรแกรม ทำเวป Network Server นั่นอาจจะเป็นเพราะเราเป็นคนรู้ในเรื่องนี้มากที่สุดในองค์กรมันเลยทำให้เรารู้สึกว่าเรารู้หมดในเรื่อง IT ซึ่งความคิดแบบนี้เป็นอันตรายมากในการรับรู้ ในตอนนั้นผมเหมือนกบในกะลา จนพอได้ไปเรียนกะลาก็ถูกทุบแตก จากที่เคยบอกว่า I Love Computer กลายเป็น I Hate Computer "อะไรกันหนักหนาไม่รู้อะไรซักเรื่อง เพราะ สิ่งที่เรารู้มามันเหมือนงูๆปลาๆ สิ่งที่สั่งสมมาใช้อะไรไม่ได้เลย" แต่ผมก็ต้องขอบคุณ "ธรรมศาสตร์" ที่ทำให้ผมรู้จักตัวเองว่าโง่ปานใด ผมถูกฝึกให้มองและวิเคราะห์แบบเป็นระบบมากขึ้นมา เหมือนจะได้ความรู้เพิ่มมาอีกนิดหน่อย...แต่ที่แน่ๆกะลาของผมแตกไปแล้ว จากที่อะไรๆก็ต้องคอมพิวเตอร์ มาวันนี้เมื่อผมไม่ได้รักมันเหมือนก่อนจึงทำให้ Bias กับมันลดลงไปมากโขอยู่ที่เดียว
มาเข้าประเด็นดีกว่า...มีเรื่องอยู่เรื่องนึงที่อาจารย์เล่าให้ฟังใน Class ก็เป็นประเด็นเกี่ยวกับ "การลงทุน" เพื่อพัฒนาระบบในบางครั้ง Goal(จุดหมาย) เดียวกันแต่การไปสู่จุดหมายนั้นอาจแตกต่างกัน เรื่องมีอยู่ว่า อเมริกา กับ รัสเซีย 2 ประเทศมหาอำนาจสมัยนึงพยายามแข่งขันกันสร้างจรวดเพื่อไปสำรวจอวกาศ แต่ปัญหาที่พบ คือ ปากกาที่นำขึ้นไปด้วยไม่สามารถใช้ในสภาวะที่เป็นศูนยากาศได้ ทางฝั่งอเมริกาก็"ลงทุน"ทำการวิจัยพัฒนา"ปากกาชนิดพิเศษ"ที่สามารถใช้เขียนในสภาวะศูนยากาศได้ ส่วนทางฝั่งรัสเซียใช้ "ดินสอ"
จากเรื่องที่เล่ามามันก็คงคล้ายๆกับการทำงานของเรา ในบางครั้งเรามองว่า IT มันจะแก้ปัญหาให้เราทุกอย่างได้ เพื่อไม่ให้กระทู้ยาวไปผมขอยกตัวอย่าง "การพัฒนาระบบ Refer" ดีกว่า
มีหลายคนบอกว่าตอนนี้ รพ.ทุกแห่งมีการนำโปรแกรมมาใช้ในการให้บริการแล้วน่าจะเป็นการดีถ้าเราใช้โปรแกรมเดียวกันทั้งจังหวัด(ผมขอต่อเรื่องที่ผมพูดไว้จากกระทู้ก่อนนะครับ) โดยหวังจะนำข้อมูลมาใช้ประโยชน์ร่วมกัน อ่านตรงนี้ให้ดีๆนะครับ ใช้ประโยชน์ร่วมกัน ไม่ใช่เก็บมากองไว้รวมกัน มี ร.พ.หลายแห่ง(ต่างจังหวัด) เคยมาคุยแชร์ไอเดียกับผมในเรื่องพวกนี้ แต่ขนาดแพทย์เองก็เหมือนยังมองระบบไม่ออก หลายคนคิดว่าการเอาข้อมูลมากองรวมกันเวลาจะหยิบใช้มันง่าย แต่เขาลืมไปว่าการเอาข้อมูลมากองรวมกันต้องใช้ทรัพยากรอะไรบ้าง ผมยกตัวอย่างระบบ Refer นี่ล่ะ เพราะ มีหลายคนพยายามจะผลักดันให้ทำ Data Center เพื่อจะได้ดูประวัติคนไข้ แต่สิ่งที่ผมพยายามเน้นย้ำ คือ การทำแบบนั้นมันเสี่ยง เพราะ ข้อมูลผู้ป่วยตามกฏหมายถือว่าเป็นข้อมูลที่เป็นความลับคนที่ดูได้ต้องได้รับอนุญาติจากตัวผู้ป่วย แล้วการที่นำข้อมูลมากองรวมกันให้ลองนึกเล่นๆว่า รพ.แห่งนึงข้อมูลบริการวันละกี่คน ผมประมาณๆ ทั้งจังหวัดใน 1 วันน่าจะหลักหมื่น เดือนนึงก็เป็นแสนแล้วครับ ในการเก็บไม่ได้เก็บตารางเดียวด้วย เพราะ คนไข้ 1 คน Diag รับยา มากกว่า 1 รายการอยู่แล้ว HDD ระดับ TB จะเก็บข้อมูลได้สักกี่ปี? แล้วข้อมูลขนาดนี้การค้นหาจะช้าขนาดไหน นี่ยังไม่นับเรื่องงบประมาณที่ต้องมาลงทุนสร้างระบบจะต้องใช้เท่าไหร่? สุดท้ายผมถามว่าระบบนี้คุณดูข้อมูลคนไข้วันละกี่คน/กี่รายการ/รพ.? คุ้มหรือไม่?
มาถึงระบบ Refer ก็เคยเห็นหลายแห่งพยายามลงทุนทำระบบ Refer แล้วบอกว่ามันดี 1 2 3 4 ... ที่ผมได้ฟังมาจากหลายๆที่เขาพูดแต่ข้อดี เพราะ เขายังไม่ได้เจอข้อเสีย หรือ ไม่ก็บุคลากรในองค์กรไม่มีความรู้ด้าน IT เลยหวังให้บริษัทเป็นที่พึ่ง โดยลืมคิดไปว่าบริษัทเองก็ต้องการขายสินค้าและบริการ เมื่อทั้ง 2 คุยกันมันก็เลยมีแต่ดีๆๆๆๆ จนวันนึงมีเพื่อนมาคุยกับผมเรื่องระบบ Refer ว่าลงทุนไปเป็นแสนแต่เป็นของบริษัทที่เขียนโปรแกรม รพ.ด้วย เขาสามารถดึงข้อมูลผู้ป่วยจากฐานข้อมูลของ รพ.เราส่งไปได้เลยนะแต่ต้องใช้โปรแกรม รพ.ของเขาจึงจะทำได้ ผมนั่งฟังก็อืม...นึกในใจ เพื่อแค่จะให้ดึงข้อมูลผู้ป่วยในระบบ Refer ได้ต้องลงทุนเปลี่ยนโปรแกรมเลยหรือไงเนี่ย นี่เหรอการใช้ประโยชน์ข้อมูลร่วมกัน ไหนก็จ้างบริษัทเขียนแล้วทำไมไม่คิดให้มันสามารถดึงไฟล์เข้ามาได้เลย โดยทำข้อตกลงร่วมกันว่าถ้าไม่ได้ใช้โปรแกรมของบริษัทก็ให้ส่งออกข้อมูลผู้ป่วยมาในรูปแบบ A B C แล้วเก็บเข้าระบบไป ต่างประเทศเขาใช้มาตรฐานการส่งต่อรูปแบบเดียวกันหมดไม่ว่าใครจะเขียนโปรแกรม HIS อะไรขึ้นมาต้องสามารถ ส่งออก และรับไฟล์รูปแบบมาตรฐานนี้ได้ แล้วเมืองไทยล่ะ เหอะๆ แล้วย้อนกลับมาดูบ้านเราล่ะ ผมก็เหอะๆ เพราะ เรามองกันแต่องค์กรของตัวเอง ไม่มองระบบในภาพรวม การบริหารจัดการที่ง่ายที่สุดคือใช้โปรแกรมเดียวกัน แต่ดันลืมคิดไปว่าเออไหนๆก็จ้างแล้ว ก็ทำให้มันครอบคลุมชาวบ้านด้วยดีกว่า ไม่มี... ไม่มีใครที่คิดแบบนี้ครับ ดังนั้นสิ่งที่ผมพูดไปก็ได้แต่บ่น แล้วก็ย้อนไปถามอีกว่ายังงี้เราจะพัฒนาอะไร? ในเมื่อเรายังมองแต่ตัวของเรา ไม่ได้มองถึงภาพรวม ไม่ได้มองถึงความยั่งยืนในอนาคต
สุดท้ายของกระทู้นี้...ลองดูนะครับว่า ระบบ Refer ของหน่วยงานคุณปลอดภัยหรือยังนี่คือประเด็นแรกๆ เลยที่ต้องมาคุยกันก่อนสร้างระบบ เพราะ Hacker สามารถจะดึงข้อมูลระหว่างทางได้ การดึงข้อมูลระหว่างทาง คืออะไร? สมมติว่าคุณจะส่งข้อมูลจากเครื่อง A-->B เมื่อข้อมูลวิ่งออกจากสาย LAN มันไม่ได้ไป B เลยนะสิ ยิ่งถ้าบน Internet มันต้องผ่าน Router อีกมากมายหลายตัวเลยนะสิ ทีนี้คุณบอกว่าระบคุณเป็น WebApp มีระบบ Login ผมอยากจะบอกว่าผมเคยลอง Hack User Password ของระบบมาแล้วมันทำง่ายมากเลย เพราะ เวลาที่คุณเิปิดเวปไซด์อะไรสักเวปมันจะมีข้อมูลที่ส่งไป-มา แล้วข้อมูลไม่ถูกเข้ารหัส เวลาที่เครื่องลูกระบุ User+Password แล้ว Login ข้อมูลจะถูกส่งไปทั้งยังงั้นจะเกิดอะไรขึ้นถ้าผมดักเอา User+Password นั้นมาได้
ดูรูป ผมจะบอกว่านั่นหมายถึงข้อมูลทุกอย่างที่ส่งผ่านระบบมันจะถูกมองเห็นได้ทั้งหมดถ้ามีคน Hack ข้อมูลระหว่างทางครับ ซึ่งมันมีวิธีการป้องกันอยู่ครับ คุณลองดูเวปของคุณแล้วไปเทียบกับของ hotmail สิ คุณจะพบว่าเวปคุณอาจอยู่ในรูปแบบ http:// แต่ของ hotmail จะเป็น https:// การเป็น https หมายถึง ข้อมูลทุกอย่างจะถูกเข้ารหัสที่ชั้น Transport Layer (ไม่ข้ออธิบายนะครับยาว ISO Model ของระบบเครือข่ายเดี๋ยวยาวแท้ หาจาก google มีครับ) ไม่สามารถ Hack ดูกลางทางได้
ดูรูป การจะแกะดูต้องรู้ Key ซึ่ง Algorithm ที่ใช้นี่ตามทฤษฎีเขาว่าใช้เวลาแกะ 10 ปีถึงจะเจอ Key ที่ใช้เข้ารหัส นี่แค่เริ่มต้นของการวางระบบเท่านั้นนะครับ ยังมีรายละเอียดอื่นๆอีกที่ควรจะคำนึง แต่ผมขอจบการบ่นในกระทู้นี้ไว้เท่านี้ก็แล้วกัน โดยสรุปคือถ้าอยากจะพัฒนาระบบที่เสี่ยง คนในองค์กรต้องศึกษาปัจจัยต่างๆก่อนให้ดีไม่ใช่เชื่อบริษัทไปหมด เพราะ บางทีสิ่งที่คุณได้มาอาจไม่คุ้มเลยกับสิ่งที่เสียไปครับ