ฮาร์ดแวร์และซอฟต์แวร์
ฮาร์ดแวร์ (hardware) หมายถึง อุปกรณ์ต่างๆ ที่ประกอบขึ้นเป็นเครื่องคอมพิวเตอร์ มีลักษณะเป็นโครงร่างสามารถมองเห็นด้วยตาและสัมผัสได้ (รูปธรรม) เช่น จอภาพ คีย์บอร์ด เครื่องพิมพ์ เมาส์ เป็นต้น ซึ่งสามารถแบ่งออกเป็นส่วนต่างๆ ตามลักษณะการทำงาน ได้ 4 หน่วย คือ หน่วยประมวลผลกลาง (Central Processing Unit : CPU) หน่วยรับข้อมูล (Input Unit) หน่วยแสดงผล (Output Unit) หน่วยเก็บข้อมูลสำรอง (Secondary Storage) โดยอุปกรณ์แต่ละหน่วยมีหน้าที่การทำงานแตกต่างกัน ดังนี้1. หน่วยประมวลผลกลาง (CPU)
หน่วยประมวลผลกลาง ( CPU : Central Processing Unit ) หรือมักจะเรียกอีกอย่างหนึ่งว่าไมโครโปรเซสเซอร์ มีหน้าที่ในการประมวลผลข้อมูล ในลักษณะของการคำนวณและเปรียบเทียบ โดยจะทำงานตามจังหวะเวลาที่แน่นอน เรียกว่าสัญญาณ Clock เมื่อมีการเคาะจังหวะหนึ่งครั้ง ก็จะเกิดกิจกรรม 1 ครั้ง เราเรียกหน่วย ที่ใช้ในการวัดความเร็วของซีพียูว่า “เฮิร์ท”(Herzt) หมายถึงการทำงานได้กี่ครั้งในจำนวน 1 วินาที เช่น ซีพียู Pentium4 มีความเร็ว 2.5 GHz หมายถึงทำงานเร็ว 2,500 ล้านครั้ง ในหนึ่งวินาที กรณีที่สัญญาณ Clock เร็วก็จะทำให้คอมพิวเตอร์เครื่องนั้น มีความเร็วสูงตามไปด้วย ซีพียูที่ทำงานเร็วมาก ราคาก็จะแพงขึ้นมากตามไปด้วย การเลือกซื้อจะต้องเลือกซื้อให้เหมาะสมกับงานที่ต้องการนำไปใช้ เช่นต้องการนำไปใช้งานกราฟฟิกส์ ที่มีการประมวลผลมาก จำเป็นที่จะต้องใช้เครื่องที่มีการประมวลผลได้เร็ว ส่วนการพิมพ์รายงานทั่วไปใช้เครื่องที่ความเร็ว 100 MHz ก็เพียงพอแล้ว
2. หน่วยรับข้อมูล (Input Unit)
หน่วยป้อนข้อมูล (Input Unit) ทำหน้าที่ในการป้อนข้อมูลเข้าสู่เครื่องคอมพิวเตอร์ อุปกรณ์ที่ทำหน้าที่ในการป้อนข้อมูล เข้าสู่เครื่องคอมพิวเตอร์ได้แก่ แป้นพิมพ์ สำหรับพิมพ์ตัวอักษรและอักขระต่าง ๆ เมาส์สำหรับคลิกสั่งงานโปรแกรม สแกนเนอร์สำหรับสแกนรูปภาพ จอยสติ๊ก สำหรับเล่นเกมส์ ไมโครโฟนสำหรับพูดอัดเสียง และกล้องดิจิตอลสำหรับถ่ายภาพ และนำเข้าไปเก็บไว้ ในดิสก์ของเครื่องคอมพิวเตอร์ เพื่อนำไปใช้งานต่อไป
3. หน่วยแสดงผล (Output Unit)
หน่วยแสดงผล (Output Unit) มีหน้าที่ในการแสดงผลข้อมูล ที่ผ่านการประมวลผลในรูปของ ข้อความ ภาพนิ่ง ภาพเคลื่อนไหวหรือ เสียง เป็นต้น อุปกรณ์ที่ทำหน้าที่ในการแสดงผลได้แก่ จอภาพ (Monitor) สำหรับแสดงตัวอักษรและรูปภาพ เครื่องพิมพ์ (Printer) สำหรับพิมพ์ข้อมูลที่อยู่ในเครื่อง ออกทางกระดาษพิมพ์ ลำโพง (Speaker) แสดงเสียงเพลงและคำพูด เป็นต้น
4. หน่วยความจำ (Memory Unit)
หน่วยความจำ (Memory Unit) มีหน้าที่ในการจำข้อมูล ให้กับเครื่องคอมพิวเตอร์ มีอยู่ 2 ชนิดคือ หน่วยความถาวร (ROM : Read Only Memory) เป็นหน่วยความจำที่สามารถจำข้อมูลได้ตลอดเวลา ส่วนหน่วยความจำอีกประเภทหนึ่งคือ หน่วยความจำชั่วคราว (RAM : Random Access Memory) หน่วยความจำประเภทนี้ จะจำข้อมูลได้เฉพาะช่วงที่มี การเปิดไฟเข้าเครื่องคอมพิวเตอร์เท่านั้น หน่วยความจำชั่วคราว ถือว่าเป็นหน่วยความจำหลักภายในเครื่อง สามารถซื้อมาติดตั้งเพิ่มเติมได้ เรียกกันทั่วไปคือหน่วยความจำแรม ที่ใช้ในปัจจุบันคือ แรมแบบ SDRAM , RDRAM เป็นต้น
5. หน่วยเก็บข้อมูลสำรอง (Secondary Storage)
หน่วยความจำสำรองคืออุปกรณ์ที่ทำหน้าที่เก็บข้อมูลไว้ใช้ในโอกาสต่อไป เนื่องจากหน่วยความจำแรม จำข้อมูลได้เฉพาะช่วงที่มีการเปิดไฟ เข้าเครื่องคอมพิวเตอร์เท่านั้น ถ้าต้องการเก็บข้อมูลไว้ใช้ในโอกาสต่อไป จะต้องบันทึกข้อมูลลงในหน่วยความจำสำรอง ซึ่งหน่วยความจำสำรองมีอยู่หลายชนิดด้วยกัน แต่มีนิยมใช้กันทั่วไปคือ ฮาร์ดดิสก์ ดิสก์ไดร์ฟ ซีดีรอม ดีวีดีรอม ทัมท์ไดร์ฟ เป็นต้น
โปรแกรมคอมพิวเตอร์ที่ใช้สั่งงานคอมพิวเตอร์จึงเป็นซอฟต์แวร์ เพราะเป็นลำดับขั้นตอนการทำงานของคอมพิวเตอร์ คอมพิวเตอร์เครื่องหนึ่งทำงานแตกต่างกันได้มากมายด้วยซอฟต์แวร์ที่แตกต่างกัน ซอฟต์แวร์จึงหมายรวมถึงโปรแกรมคอมพิวเตอร์ทุกประเภทที่ทำให้คอมพิวเตอร์ทำงานได้
ซอฟต์แวร์ (software)
หมายถึงชุดคำสั่งหรือโปรแกรมที่ใช้สั่งงานให้คอมพิวเตอร์ทำงาน ซอฟต์แวร์จึงหมายถึงลำดับขั้นตอนการทำงานที่เขียนขึ้นด้วยคำสั่งของคอมพิวเตอร์ คำสั่งเหล่านี้เรียงกันเป็นโปรแกรมคอมพิวเตอร์ จากที่ทราบมาแล้วว่าคอมพิวเตอร์ทำงานตามคำสั่ง การทำงานพื้นฐานเป็นเพียงการกระทำกับข้อมูลที่เป็นตัวเลขฐานสอง ซึ่งใช้แทนข้อมูลที่เป็นตัวเลข ตัวอักษร รูปภาพ หรือแม้แต่เป็นเสียงพูดก็ได้การที่เราเห็นคอมพิวเตอร์ทำงานให้กับเราได้มากมาย เพราะว่ามีผู้พัฒนาโปรแกรมคอมพิวเตอร์มาให้เราสั่งงานคอมพิวเตอร์ ร้านค้าอาจใช้คอมพิวเตอร์ทำบัญชีที่ยุ่งยากซับซ้อนบริษัทขายตั๋วใช้คอมพิวเตอร์ช่วยในระบบการจองตั๋ว คอมพิวเตอร์ช่วยในเรื่องกิจการงานธนาคารที่มีข้อมูลต่าง ๆ มากมาย คอมพิวเตอร์ช่วยงานพิมพ์เอกสารให้สวยงาม เป็นต้น การที่คอมพิวเตอร์ดำเนินการให้ประโยชน์ได้มากมายมหาศาลจะอยู่ที่ซอฟต์แวร์ ซอฟต์แวร์จึงเป็นส่วนสำคัญของระบบคอมพิวเตอร์ หากขาดซอฟต์แวร์คอมพิวเตอร์ก็ไม่สามารถทำงานได้ ซอฟต์แวร์จึงเป็นสิ่งที่จำเป็น และมีความสำคัญมาก และเป็นส่วนประกอบหนึ่งที่ทำให้ระบบสารสนเทศเป็นไปได้ตามที่ต้องการ
ซอฟท์แวร์และภาษาคอมพิวเตอร์
เมื่อมนุษย์ต้องการใช้คอมพิวเตอร์ช่วยในการทำงาน มนุษย์จะต้องบอกขั้นตอนวิธีการให้คอมพิวเตอร์ทราบ การที่บอกสิ่งที่มนุษย์เข้าใจให้คอมพิวเตอร์รับรู้ และทำงานได้อย่างถูกต้อง จำเป็นต้องมีสื่อกลาง ถ้าเปรียบเทียบกับชีวิตประจำวันแล้ว เรามีภาษาที่ใช้ในการติดต่อซึ่งกันและกัน เช่นเดียวกันถ้ามนุษย์ต้องการจะถ่ายทอดความต้องการให้คอมพิวเตอร์รับรู้และปฏิบัติตาม จะต้องมีสื่อกลางสำหรับการติดต่อเพื่อให้คอมพิวเตอร์รับรู้ เราเรียกสื่อกลางนี้ว่าภาษาคอมพิวเตอร์
เนื่องจากคอมพิวเตอร์ทำงานด้วยสัญญาณทางไฟฟ้า ใช้แทนด้วยตัวเลข 0 และ 1 ได้ ผู้ออกแบบคอมพิวเตอร์ใช้ตัวเลข 0 และ 1 นี้เป็นรหัสแทนคำสั่งในการสั่งงานคอมพิวเตอร์ รหัสแทนข้อมูลและคำสั่งโดยใช้ระบบเลขฐานสองนี้ คอมพิวเตอร์สามารถเข้าใจได้ เราเรียกเลขฐานสองที่ประกอบกันเป็นชุดคำสั่งและใช้สั่งงานคอมพิวเตอร์ว่าภาษาเครื่อง
การใช้ภาษาเครื่องนี้ถึงแม้คอมพิวเตอร์จะเข้าใจได้ทันที แต่มนุษย์ผู้ใช้จะมีข้อยุ่งยากมาก เพราะเข้าใจและจดจำได้ยาก จึงมีผู้สร้างภาษาคอมพิวเตอร์ในรูปแบบที่เป็นตัวอักษร เป็นประโยคข้อความ ภาษาในลักษณะดังกล่าวนี้เรียกว่า ภาษาคอมพิวเตอร์ระดับสูง ภาษาระดับสูงมีอยู่มากมาย บางภาษามีความเหมาะสมกับการใช้สั่งงานการคำนวณทางคณิตศาสตร์และวิทยาศาสตร์ บางภาษามีความเหมาะสมไว้ใช้สั่งงานทางด้านการจัดการข้อมูล
ในการทำงานของคอมพิวเตอร์ คอมพิวเตอร์จะแปลภาษาระดับสูงให้เป็นภาษาเครื่อง ดังนั้นจึงมีผู้พัฒนาโปรแกรมคอมพิวเตอร์สำหรับแปลภาษาคอมพิวเตอร์ระดับสูงให้เป็นภาษาเครื่อง โปรแกรมที่ใช้แปลภาษาคอมพิวเตอร์ระดับสูงให้เป็นภาษาเครื่องเรียกว่า คอมไพเลอร์ (compiler) หรืออินเทอร์พรีเตอร์ (interpreter)
คอมไพเลอร์จะทำการแปลโปรแกรมที่เขียนเป็นภาษาระดับสูงทั้งโปรแกรมให้เป็นภาษาเครื่องก่อน แล้วจึงให้คอมพิวเตอร์ทำงานตามภาษาเครื่องนั้น
ส่วนอินเทอร์พรีเตอร์จะทำการแปลทีละคำสั่ง แล้วให้คอมพิวเตอร์ทำตามคำสั่งนั้น เมื่อทำเสร็จแล้วจึงมาทำการแปลคำสั่งลำดับต่อไป ข้อแตกต่างระหว่างคอมไพเลอร์กับอินเทอร์พรีเตอร์จึงอยู่ที่การแปลทั้งโปรแกรมหรือแปลทีละคำสั่ง ตัวแปลภาษาที่รู้จักกันดี เช่น ตัวแปลภาษาเบสิก ตัวแปลภาษาโคบอล
ซอฟต์แวร์หรือโปรแกรมคอมพิวเตอร์จึงเป็นส่วนสำคัญที่ควบคุมการทำงานของคอมพิวเตอร์ให้ดำเนินการตามแนวความคิดที่ได้กำหนดไว้ล่วงหน้าแล้ว คอมพิวเตอร์ต้องทำงานตามโปรแกรมเท่านั้น ไม่สามารถทำงานที่นอกเหนือจากที่กำหนดไว้ในโปรแกรม
ชนิดของซอฟต์แวร์
ซอฟต์แวร์ระบบ
คือซอฟต์แวร์ที่บริษัทผู้ผลิตสร้างขึ้นมาเพื่อใช้จัดการกับระบบ หน้าที่การทำงานของซอฟต์แวร์ระบบคือดำเนินงานพื้นฐานต่าง ๆ ของระบบคอมพิวเตอร์ เช่น รับข้อมูลจากแผงแป้นอักขระแล้วแปลความหมายให้คอมพิวเตอร์เข้าใจ นำข้อมูลไปแสดงผลบนจอภาพหรือนำออกไปยังเครื่องพิมพ์ จัดการข้อมูลในระบบแฟ้มข้อมูลบนหน่วยความจำรอง
เมื่อเราเปิดเครื่องคอมพิวเตอร์ ทันทีที่มีการจ่ายกระแสไฟฟ้าให้กับคอมพิวเตอร์ คอมพิวเตอร์จะทำงานตามโปรแกรมทันที โปรแกรมแรกที่สั่งคอมพิวเตอร์ทำงานนี้เป็นซอฟต์แวร์ระบบ ซอฟต์แวร์ระบบอาจเก็บไว้ในรอม หรือในแผ่นจานแม่เหล็ก หากไม่มีซอฟต์แวร์ระบบ คอมพิวเตอร์จะทำงานไม่ได้
ซอฟต์แวร์ระบบยังใช้เป็นเครื่องมือในการพัฒนาซอฟต์แวร์อื่น ๆ และยังรวมไปถึงซอฟต์แวร์ที่ใช้ในการแปลภาษาต่าง ๆ
ซอฟต์แวร์ประยุกต์
เป็นซอฟต์แวร์ที่ใช้กับงานด้านต่าง ๆ ตามความต้องการของผู้ใช้ ที่สามารถนำมาใช้ประโยชน์ได้โดยตรง ปัจจุบันมีผู้พัฒนาซอฟต์แวร์ใช้งานทางด้านต่าง ๆ ออกจำหน่ายมาก การประยุกต์งานคอมพิวเตอร์จึงกว้างขวางและแพร่หลาย เราอาจแบ่งซอฟต์แวร์ประยุกต์ออกเป็นสองกลุ่มคือ ซอฟต์แวร์สำเร็จ และซอฟต์แวร์ที่พัฒนาขึ้นใช้งานเฉพาะ ซอฟต์แวร์สำเร็จในปัจจุบันมีมากมาย เช่น ซอฟต์แวร์ประมวลคำ ซอฟต์แวร์ตารางทำงาน ฯลฯ
ซอฟท์แวร์ระบบ
คอมพิวเตอร์ประกอบด้วย หน่วยรับเข้า หน่วยส่งออก หน่วยความจำ และหน่วยประมวลผล ในการทำงานของคอมพิวเตอร์จำเป็นต้องมีการดำเนินงานกับอุปกรณ์พื้นฐานที่จำเป็น ดังนั้นจึงต้องมีซอฟต์แวร์ระบบเพื่อใช้ในการจัดการระบบ หน้าที่หลักของซอฟต์แวร์ระบบประกอบด้วย
1. ใช้ในการจัดการหน่วยรับเข้าและหน่วยส่งออก เช่น รับการกดแป้นต่าง ๆ บนแผงแป้นอักขระ ส่งรหัสตัวอักษรออกทางจอภาพหรือเครื่องพิมพ์ ติดต่อกับอุปกรณ์รับเข้า และส่งออกอื่น ๆ เช่น เมาส์ อุปกรณ์สังเคราะห์เสียง
2. ใช้ในการจัดการหน่วยความจำ เพื่อนำข้อมูลจากแผ่นบันทึกมาบรรจุยังหน่วยความจำหลัก หรือในทำนองกลับกัน คือนำข้อมูลจากหน่วยความจำหลักมาเก็บไว้ในแผ่นบันทึก
3. ใช้เป็นตัวเชื่อมต่อระหว่างผู้ใช้งานกับคอมพิวเตอร์ สามารถใช้งานได้ง่ายขึ้น เช่น การขอดูรายการสาระบบในแผ่นบันทึก การทำสำเนาแฟ้มข้อมูล
ซอฟต์แวร์ระบบพื้นฐานที่เห็นกันทั่วไป แบ่งออกเป็นระบบปฏิบัติการ และตัวแปลภาษา ซอฟต์แวร์ทั่งสองประเภทนี้ทำให้เกิดพัฒนาการประยุกต์ใช้งานได้ง่ายขึ้น
ระบบปฏิบัติการ
ระบบปฏิบัติการ หรือที่เรียกย่อ ๆ ว่า โอเอส (Operating System : OS) เป็นซอฟต์แวร์ใช้ในการดูแลระบบคอมพิวเตอร์ เครื่องคอมพิวเตอร์ทุกเครื่องจะต้องมีซอฟต์แวร์ระบบปฏิบัติการนี้ ระบบปฏิบัติการที่นิยมใช้กันมากและเป็นที่รู้จักกันดีเช่นดอส (Disk Operating System : DOS) วินโดวส์ (Windows) โอเอสทู (OS/2) ยูนิกซ์ (UNIX)
1) ดอส เป็นซอฟต์แวร์จัดระบบงานที่พัฒนามานานแล้ว การใช้งานจึงใช้คำสั่งเป็นตัวอักษร ดอสเป็นซอฟต์แวร์ที่รู้จักกันดีในหมู่ผู้ใช้ไมโครคอมพิวเตอร์
2) วินโดวส์ เป็นระบบปฏิบัติการที่พัฒนาต่อจากดอส เพื่อเน้นการใช้งานที่ง่ายขึ้น สามารถทำงานหลายงานพร้อมกันได้ โดยงานแต่ละงานจะอยู่ในกรอบช่องหน้าต่างที่แสดงผลบนจอภาพ การใช้งานเน้นรูปแบบกราฟิก ผู้ใช้งานสามารถใช้เมาส์เลื่อนตัวชี้ตำแหน่งเพื่อเลือกตำแหน่งที่ปรากฏบนจอภาพ ทำให้ใช้งานคอมพิวเตอร์ได้ง่าย วินโดวส์จึงได้รับความนิยมในปัจจุบัน
3) โอเอสทู เป็นระบบปฏิบัติการแบบเดียวกับวินโดว์ส แต่บริษัทผู้พัฒนาคือ บริษัทไอบีเอ็ม เป็นระบบปฏิบัติการที่ให้ผู้ใช้สามารถใช้ทำงานได้หลายงานพร้อมกัน และการใช้งานก็เป็นแบบกราฟิกเช่นเดียวกับวินโดวส์
4) ยูนิกซ์ เป็นระบบปฏิบัติการที่พัฒนามาตั้งแต่ครั้งใช้กับเครื่องมินิคอมพิวเตอร์ ระบบปฏิบัติการยูนิกซ์เป็นระบบปฏิบัติการที่สามารถใช้งานได้หลายงานพร้อมกัน และทำงานได้หลาย ๆ งานในเวลาเดียวกัน ยูนิกซ์จึงใช้ได้กับเครื่องที่เชื่อมโยงและต่อกับเครื่องปลายทางได้หลายเครื่องพร้อมกัน
ระบบปฏิบัติการยังมีอีกมาก โดยเฉพาะระบบปฏิบัติการที่ใช้ในเครือข่ายคอมพิวเตอร์ เพื่อให้คอมพิวเตอร์ทำงานร่วมกันเป็นระบบ เช่น ระบบปฏิบัติการเน็ตแวร์ วินโดว์สเอ็นที
ตัวแปลภาษา
ในการพัฒนาซอฟต์แวร์จำเป็นต้องมีซอฟต์แวร์ที่ใช้ในการแปลภาษาระดับสูง เพื่อแปลภาษาระดับสูงให้เป็นภาษาเครื่อง ภาษาระดับสูงมีหลายภาษา ภาษาระดับสูงเหล่านี้สร้างขึ้นเพื่อให้ผู้เขียนโปรแกรมเขียนชุดคำสั่งได้ง่าย เข้าใจได้ ตลอดจนถึงสามารถปรับปรุงแก้ไขซอฟต์แวร์ในภายหลังได้
ภาษาระดับสูงที่พัฒนาขึ้นมาทุกภาษาจะต้องมีตัวแปลภาษาสำหรับแปลภาษา ภาษาระดับสูงซึ่งเป็นที่รู้จักและนิยมกันมากในปัจจุบัน เช่น ภาษาปาสคาล ภาษาเบสิก ภาษาซี และภาษาโลโก
1) ภาษาปาสคาล เป็นภาษาสั่งงานคอมพิวเตอร์ที่มีรูปแบบเป็นโครงสร้าง เขียนสั่งงานคอมพิวเตอร์เป็นกระบวนความ ผู้เขียนสามารถแบ่งแยกงานออกเป็นชิ้นเล็ก ๆ แล้วมารวมกันเป็นโปรแกรมขนาดใหญ่ได้
2) ภาษาเบสิก เป็นภาษาที่มีรูปแบบคำสั่งไม่ยุ่งยาก สามารถเรียนรู้และเข้าใจได้ง่าย มีรูปแบบคำสั่งพื้นฐานที่สามารถนำมาเขียนเรียงต่อกันเป็นโปรแกรมได้
3) ภาษาซี เป็นภาษาที่เหมาะสำหรับใช้ในการพัฒนาซอฟต์แวร์อื่น ๆ ภาษาซีเป็นภาษาที่มีโครงสร้างคล่องตัวสำหรับการเขียนโปรแกรมหรือให้คอมพิวเตอร์ติดต่อกับอุปกรณ์ต่าง ๆ
4) ภาษาโลโก เป็นภาษาที่เหมาะสำหรับการเรียนรู้และเข้าใจหลักการโปรแกรมภาษาโลโกได้รับการพัฒนาสำหรับเด็ก
นอกจากภาษาที่กล่าวถึงแล้ว ยังมีภาษาคอมพิวเตอร์ที่ใช้กันอยู่ในปัจจุบันอีกมากมายหลายภาษา เช่น ภาษาฟอร์แทรน ภาษาโคบอล ภาษาอาร์พีจี
ซอฟท์แวร์ประยุกต์
การที่เทคโนโลยีคอมพิวเตอร์ได้พัฒนาก้าวหน้าอย่างรวดเร็ว โดยเฉพาะการที่มีคอมพิวเตอร์ขนาดเล็ก ทำให้มีการใช้งานคล่องตัวขึ้น จนในปัจจุบันสามารถนำคอมพิวเตอร์ขนาดเล็ก ติดตัวไปใช้งานในที่ต่าง ๆ ได้สะดวก
การใช้งานคอมพิวเตอร์ต้องมีซอฟต์แวร์ประยุกต์ ซึ่งอาจเป็นซอฟต์แวร์สำเร็จที่มีผู้พัฒนาเพื่อใช้งานทั่วไปทำให้ทำงานได้สะดวกขึ้น หรืออาจเป็นซอฟต์แวร์ใช้งานเฉพาะ ซึ่งผู้ใช้เป็นผู้พัฒนาขึ้นเองเพื่อให้เหมาะสมกับสภาพการทำงานของตน
ซอฟต์แวร์สำเร็จ
ในบรรดาซอฟต์แวร์ประยุกต์ที่มีใช้กันทั่วไป ซอฟต์แวร์สำเร็จ (package) เป็นซอฟต์แวร์ที่มีความนิยมใช้กันสูงมาก ซอฟต์แวร์สำเร็จเป็นซอฟต์แวร์ที่บริษัทพัฒนาขึ้น แล้วนำออกมาจำหน่าย เพื่อให้ผู้ใช้งานซื้อไปใช้ได้โดยตรง ไม่ต้องเสียเวลาในการพัฒนาซอฟต์แวร์อีก ซอฟต์แวร์สำเร็จที่มีจำหน่ายในท้องตลาดทั่วไป และเป็นที่นิยมของผู้ใช้มี 5 กลุ่มใหญ่ ได้แก่ ซอฟต์แวร์ประมวลคำ (word processing software) ซอฟต์แวร์ตารางทำงาน (spread sheet software) ซอฟต์แวร์จัดการฐานข้อมูล (data base management software) ซอฟต์แวร์นำเสนอ (presentation software) และซอฟต์แวร์สื่อสารข้อมูล (data communication software)
1) ซอฟต์แวร์ประมวลคำ เป็นซอฟต์แวร์ประยุกต์ใช้สำหรับการพิมพ์เอกสาร สามารถแก้ไข เพิ่ม แทรก ลบ และจัดรูปแบบเอกสารได้อย่างดี เอกสารที่พิมพ์ไว้จัดเป็นแฟ้มข้อมูล เรียกมาพิมพ์หรือแก้ไขใหม่ได้ การพิมพ์ออกทางเครื่องพิมพ์ก็มีรูปแบบตัวอักษรให้เลือกหลายรูปแบบ เอกสารจึงดูเรียบร้อยสวยงาม ปัจจุบันมีการเพิ่มขีดความสามารถของซอฟต์แวร์ประมวลคำอีกมากมาย ซอฟต์แวร์ประมวลคำที่นิยมอยู่ในปัจจุบัน เช่น วินส์เวิร์ด จุฬาจารึก โลตัสเอมิโปร
2) ซอฟต์แวร์ตารางทำงาน เป็นซอฟต์แวร์ที่ช่วยในการคิดคำนวณ การทำงานของซอฟต์แวร์ตารางทำงาน ใช้หลักการเสมือนมีโต๊ะทำงานที่มีกระดาษขนาดใหญ่วางไว้ มีเครื่องมือคล้ายปากกา ยางลบ และเครื่องคำนวณเตรียมไว้ให้เสร็จ บนกระดาษมีช่องให้ใส่ตัวเลข ข้อความหรือสูตร สามารถสั่งให้คำนวณตามสูตรหรือเงื่อนไขที่กำหนด ผู้ใช้ซอฟต์แวร์ตารางทำงานสามารถประยุกต์ใช้งานประมวลผลตัวเลขอื่น ๆ ได้กว้างขวาง ซอฟต์แวร์ตารางทำงานที่นิยมใช้ เช่น เอกเซล โลตัส
3) ซอฟต์แวร์จัดการฐานข้อมูล การใช้คอมพิวเตอร์อย่างหนึ่งคือการใช้เก็บข้อมูล และจัดการกับข้อมูลที่จัดเก็บในคอมพิวเตอร์ จึงจำเป็นต้องมีซอฟต์แวร์จัดการข้อมูล การรวบรวมข้อมูลหลาย ๆ เรื่องที่เกี่ยวข้องกันไว้ในคอมพิวเตอร์ เราก็เรียกว่าฐานข้อมูล ซอฟต์แวร์จัดการฐานข้อมูลจึงหมายถึงซอฟต์แวร์ที่ช่วยในการเก็บ การเรียกค้นมาใช้งาน การทำรายงาน การสรุปผลจากข้อมูล ซอฟต์แวร์จัดการฐานข้อมูลที่นิยมใช้ เช่น เอกเซส ดีเบส พาราด็อก ฟ๊อกเบส
4) ซอฟต์แวร์นำเสนอ เป็นซอฟต์แวร์ที่ใช้สำหรับนำเสนอข้อมูล การแสดงผลต้องสามารถดึงดูดความสนใจ ซอฟต์แวร์เหล่านี้จึงเป็นซอฟต์แวร์ที่นอกจากสามารถแสดงข้อความในลักษณะที่จะสื่อความหมายได้ง่ายแล้วจะต้องสร้างแผนภูมิ กราฟ และรูปภาพได้ ตัวอย่างของซอฟต์แวร์นำเสนอ เช่น เพาเวอร์พอยต์ โลตัสฟรีแลนซ์ ฮาร์วาร์ดกราฟิก
5) ซอฟต์แวร์สื่อสารข้อมูล ซอฟต์แวร์สื่อสารข้อมูลนี้หมายถึงซอฟต์แวร์ที่จะช่วยให้ไมโครคอมพิวเตอร์ติดต่อสื่อสารกับเครื่องคอมพิวเตอร์อื่นในที่ห่างไกล โดยผ่านทางสายโทรศัพท์ ซอฟต์แวร์สื่อสารใช้เชื่อมโยงต่อเข้ากับระบบเครือข่ายคอมพิวเตอร์ เช่น อินเทอร์เน็ต ทำให้สามารถใช้บริการอื่น ๆ เพิ่มเติมได้ สามารถใช้รับส่งไปรษณีย์อิเล็กทรอนิกส์ ใช้โอนย้ายแฟ้มข้อมูล ใช้แลกเปลี่ยนข้อมูล อ่านข่าวสาร นอกจากนี้ยังใช้ในการเชื่อมเข้าหามินิคอมพิวเตอร์หรือเมนเฟรม เพื่อเรียกใช้งานจากเครื่องเหล่านั้นได้ ซอฟต์แวร์สื่อสารข้อมูลที่นิยมมีมากมายหลายซอฟต์แวร์ เช่น โปรคอม ครอสทอล์ค เทลิก
ซอฟต์แวร์ใช้งานเฉพาะ
การประยุกต์ใช้งานด้วยซอฟต์แวร์สำเร็จมักจะเน้นการใช้งานทั่วไป แต่อาจจะนำมาประยุกต์โดยตรงกับงานทางธุรกิจบางอย่างไม่ได้ เช่นในกิจการธนาคาร มีการฝากถอนเงิน งานทางด้านบัญชี หรือในห้างสรรพสินค้าก็มีงานการขายสินค้า การออกใบเสร็จรับเงิน การควบคุมสินค้าคงคลัง ดังนั้นจึงต้องมีการพัฒนาซอฟต์แวร์ใช้งานเฉพาะสำหรับงานแต่ละประเภทให้ตรงกับความต้องการของผู้ใช้แต่ละราย
ซอฟต์แวร์ใช้งานเฉพาะมักเป็นซอฟต์แวร์ที่ผู้พัฒนาต้องเข้าไปศึกษารูปแบบการทำงานหรือความต้องการของธุรกิจนั้น ๆ แล้วจัดทำขึ้น โดยทั่วไปจะเป็นซอฟต์แวร์ที่มีหลายส่วนรวมกันเพื่อร่วมกันทำงาน ซอฟต์แวร์ใช้งานเฉพาะที่ใช้กันในทางธุรกิจ เช่น ระบบงานทางด้านบัญชี ระบบงานจัดจำหน่าย ระบบงานในโรงงานอุตสาหกรรม บริหารการเงิน และการเช่าซื้อ
ความต้องการของการใช้คอมพิวเตอร์ในงานทางธุรกิจยังมีอีกมาก ดังนั้นจึงต้องมีความต้องการผู้พัฒนาซอฟต์แวร์เพื่อพัฒนาซอฟต์แวร์ใช้งานเฉพาะต่าง ๆ อีกมากมาย
ซอฟต์แวร์ตารางวิเคราะห์แบบอิเล็กทรอนิกส์ (Electronic Spreadsheet)
ซอฟต์แวร์ช่วยในการบริหารจัดการทั่วไป (Enterprise software) เป็นซอฟต์แวร์ที่ใช้กับการทำงานเพื่อแก้ปัญหา/จัดการทรัพยากรของ บุคคล/องค์กร เช่น ซอฟต์แวร์บัญชี ซอฟต์แวร์จัดทำเอกสาร เป็นต้น
ธุรกิจในสมัยก่อนนั้นการทำงบประมาณ หรือการวางแผนต่าง ๆ ต้องใช้กระดาษบัญชีและเครื่องคิดเลขเท่านั้น สำหรับสมัยนี้ด้วยซอฟต์แวร์ตารางวิเคราะห์แบบอิเล็กทรอนิกส์ ผู้ใช้สามารถพิมพ์หัวข้อหรือชื่อของข้อมูล และตัวเลขข้อมูลต่าง ๆ เข้าในคอมพิวเตอร์ โดยที่ในคอมพิวเตอร์จะมีตารางที่เปรียบเสมือนกระดาษบัญชีขนาดใหญ่ ซึ่งสามารถคำนวณได้ตามสูตรที่ผู้ใช้ทำการกำหนด โดยที่สูตรเหล่านั้นจะไม่ปรากฏในช่องของข้อมูลเลย ยิ่งไปกว่านั้นหากผู้ใช้เปลี่ยนตัวเลขหรือข้อมูลใด ๆ ก็ตาม จะเห็นการเปลี่ยนแปลงข้อมูลอื่นที่เกี่ยวข้องกันในทันที ปัจจุบันมีผู้ใช้ประโยชน์ของตารางวิเคราะห์แบบอิเล็กทรอนิกส์มากมาย ไม่เฉพาะแต่ในทางบัญชีเท่านั้น แต่ยังนิยมใช้ในการวิเคราะห์ข้อมูลทางสถิติ บริหารการเงิน และอื่น ๆ อีกมาก
commercial software
ซอฟต์แวร์เชิงพาณิชย์ คือซอฟต์แวร์คอมพิวเตอร์ที่ผลิตขึ้นเพื่อจำหน่าย หรือสงวนไว้เพื่อจุดประสงค์เชิงพาณิชย์ ซอฟต์แวร์เชิงพาณิชย์ส่วนใหญ่มักจะเป็นซอฟต์แวร์กรรมสิทธิ์ แต่ซอฟต์แวร์เสรีที่เป็นที่รู้จักทุกตัวก็เป็นซอฟต์แวร์ชนิดนี้เช่นกัน ส่วนหนึ่งหรือทั้งหมดของแพกเกจซอฟต์แวร์และบริการที่รองรับการพาณิชย์ ถูกสร้างเป็นซอฟต์แวร์เสรีมากขึ้น รวมไปถึงผลิตภัณฑ์จากเรดแฮต แอปเปิล ซันไมโครซิสเต็มส์ กูเกิล และไมโครซอฟท์ นอกจากนั้นไมโครซอฟท์ใช้คำว่า ซอฟต์แวร์เชิงพาณิชย์ เป็นตัวแทนของ ซอฟต์แวร์กรรมสิทธิ์ เพื่ออธิบายแบบจำลองทางธุรกิจของไมโครซอฟท์เอง
SOAP
SOAP ย่อมาจาก Simple Object Access
Protocol คือโปรโตคอลมาตรฐานที่ใช้ใน Web Services เป็นโพรโทคอล ( Protocol )ในการติดต่อแลกเปลี่ยนข้อมูลระหว่างกันของ
web services เป็นโพรโทคอลการสื่อสาร ในระดับ Application Layer หรือในระดับ แอปพลิเคชัน
โดยอาศัยผ่านอินเทอร์เน็ตโพรโทคอล ซึ่งอาศัยรูปแบบของภาษา XML ทำให้ Web services สามารถสื่อสารกันได้แม้ว่า
จะอยู่บนเครื่องคอมพิวเตอร์คนละเพลตฟอร์ม หรือพัฒนาด้วยภาษาโปรแกรมที่ต่างกันก็ตาม
และนิยมใช้ HTTP เป็นโปรโตคอลร่วมสำหรับส่งผ่านข้อมูลบนระบบอินเตอร์เน็ต SOAP ทำงานร่วมกับโพรโตคอลได้หลายชนิด เช่น HTTP, SMTP, FTP, IIOP เป็นต้น
SOAP คืออะไร โซฟ คือ
โปรโตคอลที่ใช้ในการเเลกเปลี่ยนข้อมูลระหว่าง Web services
ลักษณะข้อความที่รับ
- ส่ง ผ่านโพรโตคอล SOAP ซึ่งเป็นไปตามรูปแบบของ XML
จากภาพ อธิบายได้ดังนี้
1.ผู้ขอใช้บริการ (Service Requester ) สร้าง SOAP Message เพื่อเรียกใช้บริการของ เว็บเซอร์วิส
แล้วส่งผ่านโพรโตคอลเครือข่ายไปยังผู้ให้บริการ ในที่นี้ SOAP message ที่รับ-ส่งไปมานั้น อยู่ในรูปแบบ XML และต้องมีการแปลกลับมาอยู่ในรูปแบบที่โปรแกรมหรือเว็บเซิร์ฟเวอร์เข้าใจ
โดยมีโปรแกรมที่ทำหน้าที่แปลความหมายของเอกสาร XML คือ XML Parser
2.ผู้ให้บริการ ( Service Provider ) ได้รับ SOAP Message จากผู้ขอใช้บริการ จากนั้น
จึงแปลข้อความนั้นกลับมาอยู่ในรูปแบบที่เว็บเซิร์ฟเวอร์เข้าใจ แล้วตรวจสอบว่า
ผู้ใช้บริการต้องการเรียกใช้ เว็บเซอร์วิส ชื่ออะไร เมธอดอะไร
และส่งพารามิเตอร์อะไร มาด้วย จากนั้นจึงส่งไปให้แก่คอมโพเนนต์ที่ให้บริการ
เว็บเซอร์วิส นั้นๆดำเนินการประมวลผล
3.หลังจากคอมโพเนนต์ที่ให้บริการ เว็บเซอร์วิส
ส่งผลลัพธ์กลับมาแล้วผู้ให้บริการก็จะสร้าง SOAP Message ที่มีผลลัพธ์นั้นออกมาด้วย แล้วจึงส่งผ่านทางโพรโตคอลเครือข่ายกลับคืนไปยังผู้ขอใช้บริการ
4.ผู้ขอใช้บริการได้รับ SOAP Message ที่อยู่ในรูปแบบ XML จึงแปลข้อความนั้นกลับมาในรูปแบบที่โปรแกรมของผู้ขอใช้บริการเข้าใจแล้วนำผลลัพธ์ไปใช้งาน
เช่น แสดงผล หรือไปทำอย่างอื่น แล้วแต่ว่ามีการเขียนโปรแกรมรองรับไว้ให้ทำอย่างไร
และจะมี SOAP Listener ทำหน้าที่คอยรับฟังว่ามีการเรียกใช้ เว็บเซอร์วิส จากผู้ใช้ การบริการของ
เว็บเซอร์วิส แต่ละบริการจะมีไฟล์ SOAP Listener จำนวน 1 ไฟล์
เมื่อใดที่มีการเรียกใช้ เว็บเซอร์วิส ไฟล์โปรแกรมที่เป็น SOAP Listener ก็จะไปปลุกให้ เว็บเซอร์วิสทำงาน
ข้อดีของการใช้โพรโตคอล SOAP
1.โพรโตคอล SOAP สามารถให้เราเรียกใช้คอมโพเนนต์
หรือ เว็บเซอร์วิส ข้ามเครื่อง ข้าม แพลตฟอร์มหรือข้ามภาษา ได้
โดยอาศัยโพรโตคอลที่มีอยู่เดิมในอินเทอร์เน็ต อย่าง HTTP
2.โครงสร้างข้อมูลของ SOAP เป็นรูปแบบข้อความที่สื่อสารกันด้วยภาษา
XML ซึ่งมีลักษณะเป็นข้อความธรรมดาๆปิดล้อมด้วยแท็ค
ทำให้เข้าใจได้ในทุกแพลตฟอร์ม
3.โพรโตคอล SOAP สามารถทำงานผ่านระบบไฟล์วอลล์
ได้ง่ายเนื่องจาก SOAP ทำงานอยู่กับ โพรโตคอล HTTP ซึ่งโดยธรรมชาติของไฟล์วอลล์
จะเปิดให้การสื่อสารด้วย HTTP ผ่านได้อย่างสะดวก
4.SOAP สนับสนุนจากหลายค่าย เช่น IBM, MS , SUN
ข้อเสียของการใช้โพรโตคอล SOAP
1.เนื่องจากลักษณะของ SOAP message เป็นเอกสาร XML ทำให้เสียเวลาในการแปลกลับมาเป็นรูปแบบที่โปรแกรมเข้าใจ
2.ในกรณีที่ SOAP ทำงานอยู่กับโพรโตคอล HTTP ซึ่งมีสมรรถนะในการรับ-ส่งข้อมูลต่ำกว่าโพรโตคอล
DCOM, RMI, หรือ IIOP จึงทำให้โพรโตคอล SOAP มีอัตราการรับ-ส่งข้อมูลต่ำ
Solution
Solution ในภาษาคอมพิวเตอร์ แปลว่า
"ระบบที่รวมทั้งฮาร์ดแวร์และซอร์ฟแวร์ประยุกต์เฉพาะ
ซึ่งเอาไปใช้งานได้ตามที่ลูกค้าต้องการ"
อาจมาในหลายรูปแบบ
เป็นโปรแกรมก็ได้ หรือเป็นระบบหนึ่งๆ ก็ได้ นำมาจัด "รวมกัน"
เพื่อตอบสนองการใช้งานอย่างใดอย่างหนึ่ง
เช่น
"คอมพิวเตอร์ชุดนี้ ( Solution นี้ ) จัดไว้สำหรับผู้สร้างผลงานกราฟิกโดยตรง
ส่วนชุดนี้จัดหนักสำหรับการเอนเตอร์เทนในบ้าน"
หรือแปลว่า
"การประยุกต์ใช้เทคโนโลยีคอมพิวเตอร์เพื่อแก้ปัญหาพัฒนาระบบงาน
ตามสภาพแวดล้อมของหน่วยงานองค์กรต่างๆ หรือภาระกิจนั้นๆ ให้สำเร็จลุล่วง"
ซอฟต์แวร์สำเร็จรูป
(Package software) ซอฟต์แวร์ที่มีการขาย
ให้เช่า หรือให้บริการ โดยคิดค่าบริการเป็น transaction หรือ license
ระบบปฏิบัติการแบบเดี่ยว
(Stand-alone Software) ที่ใช้กับเครื่องคอมพิวเตอร์ ที่ให้บริการแก่ผู้ใช้เพียงคนเดียว
ระบบปฏิบัติการที่นิยมใช้ได้แก่ DOS (Disk
Operating System) และ Windows Mac OS Linux เป็นต้น
‘Agile’ ไม่ใช่รูปแบบการทำงานแต่เป็นแนวคิดในการทำงานที่เป็นทางเลือกอีกทางหนึ่ง
เพราะก่อนหน้านี้องค์กรส่วนใหญ่จะทำงานด้วยระบบ Project Management คือมี Project
Manager และทีมมานั่งวางแผนกันก่อนเริ่มโปรเจ็คต์ ทั้งเรื่องเงิน
เวลา คน และอื่นๆ ตั้งแต่เริ่มต้นจนจบโปรเจ็คต์ ซึ่งเป็นงานทำงานแบบ ‘Waterfall
Process’ แต่แนวคิด Agile จะส่งผลให้มีรูปแบบการทำงานที่ต่างออกไป
ซึ่งแท้จริงแล้ว Agile นั้นเกิดขึ้นมาจากบริษัทที่ทำในเชิง Software
Development เป็นหลัก เพราะปัญหาของระบบเดิมที่บรรดาบริษัท Software
เจอก็คือ
- ความยากในการวางแผน การนั่งคิดทุกอย่างตั้งแต่เริ่มจนถึงจบโปรเจ็คต์นั้น
เป็นเรื่องยากที่จะวางแผนทุกอย่างได้ลงตัวและแม่นยำ
ทั้งในเรื่องของงบประมาณที่อาจจะบานปลายหรือเวลาที่ไม่ลงตัว
- กว่าจะรู้ว่าผิดพลาดก็อาจจะสายไปเสียแล้ว ในระบบแบบ Waterfall กว่าที่จะมีการทดสอบโปรดักส์หรือ Software นั้นก็ต้องเป็นในขั้น
Test ซึ่งการ Design + Develop นั้นแทบจะเสร็จอยู่แล้ว
ถ้าไปเจอความผิดพลาดตอนนี้ไม่ว่าจะด้วยเข้าใจ Requiement ผิดพลาดหรือมีการเปลี่ยนแปลงก็ตามแต่ การแก้ไขก็จะทำได้ยาก
(บางครั้งอาจถึงขั้นต้องรื้อทำใหม่)
เพื่อจัดการกับปัญหาเหล่านี้ แนวคิด Agile ก็เลยถูกนำมาประยุกต์ใช้คือแทนที่จะวางแผน
กำหนดเป้าหมายและมุ่งไปในครั้งเดียว ก็เปลี่ยนเป็นวางแผนและทำงานไปทีละนิดๆ
และคอยประเมินว่าไปต่อได้ดีไหม ไปถูกทางไหม แล้วจึงไปต่อ
กำหนดเป้าระยะสั้นและค่อยๆ ไป เพื่อที่เมื่อเจอปัญหาจะได้แก้ไขง่ายขึ้น หรือเมื่อ Requirment
เกิดการเปลี่ยนแปลงก็สามารถรับมือได้ดีขึ้น
แนวคิดสำคัญของ Agile
จริงๆ Agile นั้นไม่ได้มีการระบุเป็นกฎไว้อย่างชัดเจน
ผมขอสรุปจากการประสบด้วยตัวเองและอ่านจากหลายๆ ที่ไว้ให้แล้วกันครับ
โดยหลักการสำคัญของ Agile ที่เห็นได้ชัดๆ นั้นจะประกอบไปด้วย
- ไม่เน้นกระบวนการและเอกสาร ให้เน้นไปที่การพัฒนาโปรดักส์ให้ดีที่สุดมากกว่าจะยึดติดกับเอกสารต่างๆ
(ไม่ใช่ว่าไม่จำเป็นแต่ให้ความสำคัญน้อยกว่า)
คือต่อให้มีเอกสารยืนยันแล้วว่าจะทำอะไร แต่มีอีกทางที่ส่งมอบ Value ให้กับลุกค้าได้ดีกว่า
Agile จะเลือกทางนั้น ไม่ใช่ทางเอกสาร
- ยอมรับความเปลี่ยนแปลง เพราะ requirement อาจเปลี่ยนแปลงได้ตลอด แนวคิดแบบ Agile จะไม่ฟูมฟายกับการเปลี่ยนแปลง
ไม่มีการทำงานหรือยึดติดกับ Gantt Chart แต่จะทำงานแบบ
ค่อนข้าง Flexible ตามสิ่งที่เกิดขึ้นจริงเป็นหลัก
สามารถเปลี่ยนแปลงได้ตลอดเวลา
- ทำทีละนิดแต่ทำบ่อยๆ คือมีการส่งมอบงานอะไรบางอย่างให้ทีมหรือลูกค้าอย่าต่อเนื่องทีละเล็กทีละน้อย
เช่นส่งมอบอะไรใหม่ทุกๆ 2 อาทิตย์หรือทุกๆ เดือน
จะไม่ให้ลูกค้ามีการรอ 3-6 เดือนเพื่อรอโปรเจ็คต์ใหญ่เสร็จแล้วค่อยส่งมอบทีเดียว
- ผิดพลาดให้เร็ว คือไม่กลัวที่จะลงมือทำเพื่อที่จะเจอกับความผิดพลาดและแก้ไขไปทีละนิด
จะไม่ใช่การวางแผนโดยละเอียดเพื่อป้องกันความผิดพลาด
แต่พอเจอสิ่งที่ผิดไปจากแผนจริงๆ
(เพราะอย่างที่รู้ว่าน้อยครั้งนักที่เราจะทำตามแผนได้ทั้งหมด)
ก็อยู่ในภาวะที่เป็น Point of No Return ไปแล้ว
- ทำงานเป็นทีมมากกว่าที่จะสนใจกระบวนการ คือเน้นที่การมีปฏิสัมพันธ์ระหว่างบุคคลมากกว่าที่บอกว่าต้องเป็นไปตามกระบวนการ
มีปัญหาอะไรให้พูดคุยกับทีมเลยทันที บางครั้งอาจถึงขั้นเอา Programmer ไปเจอลูกค้าเพื่อให้เข้าใจ requirement ที่แท้จริงด้วย
ให้ลูกค้าเข้ามามีส่วนร่วมตั้งแต่เริ่มกระบวนการ ซึ่งทีมมักจะประกอบด้วยหลายๆ
ตำแหน่ง และมีอำนาจมากพอที่จะตัดสินใจทำหรือไม่ทำอะไรเพื่อ Drive ให้งานที่ทีมรับผิดชอบสำเร็จตามเป้าหมาย
ข้อดีของการทำงานในแนวคิด Agile หลักๆ คือการไม่มีกำแพงระหว่างฝ่าย
เพราะเอาทุกฝ่ายมาอยู่ในทีมเดียวกัน เน้นที่การสื่อสารระหว่างบุคคล
ทำให้ลดความไม่เข้าใจลงไป และสามารถแก้ปัญหาได้รวดเร็วๆ (สมมติว่า Test แล้วมีปัญหา ก็สามารถบอกกับ Designer หรือ Programmer
ให้แก้ไขได้ทันที โดยไม่ต้องส่งเรื่องข้ามฝ่าย) รวมถึงการที่ค่อยๆ ส่งมอบงานทีละนิดทำให้มีความยืดหยุ่นในการทำงานสูง
ซึ่งแนวคิดแบบ ‘Agile’ มักจะมาคู่กับกรอบการทำงาน (Framework) แบบ ‘Scrum’
จริงๆ ต้องบอกว่า Framework ภายใต้แนวคิด Agile นั้นมีหลากหลายวิธี
แต่ ‘Scrum’ เป็นวิธีการทำงานที่ได้รับความนิยมมากที่สุดสำหรับการทำงานภายใต้แนวคิดนี้
มันคือวิธีการทำงานที่ให้ ‘ทีมช่วยกันรุมงาน’ (ถึงได้เรียกว่า Scrum ไงหละ!) ซึ่งในวิธีการทำงานแบบ Scrum จะไม่มี Project
Manager, Design, Analyst, Tester (และอื่นๆ) แต่จะมีเพียงแค่ 3
ตำแหน่งสำคัญคือ
1.
Product Owner : มีหน้าที่ประเมิน Values และจัด Priorities
ของ Tasks ต่างๆ ให้กับทีม
2.
Scrum Master : เป็นผู้ทำให้การทำงานเป็นไปอย่างลื่นไหล ซึ่งไม่ได้หมายถึงการเป็นผู้นำทีม
แต่จะคอยกำจัดอุปสรรคที่ขัดขวางไม่ให้ทีมบรรลุเป้าหมาย
3.
Team : จะทำงานแบบ Self-Management
ซึ่งในหนึ่งทีมจะประกอบด้วยคนประมาณ 3-9 คน
และรวมทุกตำแหน่งทั้ง Designer, Programmer, UI/UX, Testing เข้าด้วยกัน
เพื่อให้ทีมหนึ่งทีมสามารถทำงานตั้งแต่ต้นจนจบได้ด้วยตัวเอง โดยไม่ต้องข้ามแผนก
วิธีการทำงานของ Scrum ก็จะประกอบไปด้วยสิ่งที่น่าสนใจดังนี้
- Backlog : เป็น Task งานที่ต้องทำ
ทั้ง requirement ของลูกค้าและทีม ซึ่ง Product
Owner จะเป็นคนตัดสินใจนำ Task ต่างๆ
เหล่านี้เข้าไปใน Sprint ตามลำดับความสำคัญ
(ส่วนใหญ่แล้วก็จะพิจารณาด้วย Value ของ Task นั้นๆ เมื่อแลกกับ effort ที่ต้องใช้)
- Sprint Phase : อย่างที่บอกว่า
Agile นั้น เน้นการส่งงานให้เร็วและบ่อย ซึ่ง Period
นั้นจะเรียกว่า Sprint โดยมีกำหนดประมาณ 2-4
สัปดาห์ โดยเป้าหมายของ Sprint คือการ Deliver
บางสิ่งบางอย่างให้สำเร็จ (Task ที่ Product
Owner ได้ประเมินว่าควรทำตั้งแต่ก่อนเริ่ม Sprint) ซึ่งเมื่อจบ Sprint ก็จะมีการ Review ผลงาน (Sprint Review) ให้กับคนอื่นๆ
ที่เกี่ยวข้องอาจจะเป็นทีมเซลล์ Users หรือลูกค้า
เพื่อให้รับทราบถึงความคืบหน้าของโปรเจ็คต์อยู่เรื่อยๆ
- Daily Scrum Meeting : ในทุกๆ เช้าทีมจะมีการประชุมสั้นๆ 10-15 นาที เพื่อบอกว่าเมื่อวานทำอะไร วันนี้จะทำอะไร และมีปัญหาอะไรบ้าง เพื่อให้การทำงานในทุกๆ วันเป็นไปอย่างราบรื่น ,รู้ว่ากำลังเดินเข้าสู่เป้าหมายหรือยัง และมีการแก้ไขปัญหาอย่างต่อเนื่อง
ข้อจำกัดของการประยุกต์ใช้ Agile
- การประยุกต์ใช้ในองค์กรใหญ่ค่อนข้างทำได้ยาก
เพราะมีทีมและแผนกที่ค่อนข้างใหญ่
การให้ทุกคนยอมรับวัฒนธรรมนี้ค่อนข้างเป็นไปได้ยาก รวมถึงการแตกฝ่ายต่างๆ
เพื่อมารวมเป็นทีมย่อยขนาดเล็กก็ทำได้ยาก
- Agile เป็นแนวคิดที่ค่อนข้างซัพพอร์ตกับระบบแบบ
Flat Organization เพราะฉะนั้นสำหรับบางบริษัทหรือบริษัทที่ผู้บริหารมีแนวคิดแบบ
Pyramid Structure ก็จะประยุกต์ใช้ Agile ได้ยาก
- Agile เป็นแนวคิดที่พัฒนามาจากบริษัท
Software Development เลยเหมาะในการใช้พัฒนา Tech
Product มากกว่า
แต่ไม่ได้หมายความว่าจะประยุกต์ใช้กับงานแบบอื่นไม่ได้
(ที่บริษัทก็มีการประยุกต์ใช้กับทีมที่ทำงานด้าน Marketing เหมือนกัน)
เพียงแต่ต้องใช้เวลาและต้องประยุกต์จากหลักการเดิมไปค่อนข้างเยอะ
หวังว่าจะได้รับประโยชน์ไปกันบ้างครับ อย่าลืมนะครับว่า Agile ไม่ใช่รูปแบบหรือวิธี
แต่เป็นแนวคิดหรือหลักปรัชญา ขึ้นอยู่กับว่าแต่ละคน
แต่ละองค์กรจะเอาไปประยุกต์ใช้อย่างไร ใครทำงานในบริษัททีใช้ Agile มาแชร์กันได้นะครับ ว่ามีการประยุกต์ยังไง และมีข้อดี ข้อเสีย อะไรบ้าง
เพื่อที่จะได้เป็นประโยชน์กับผมและผู้อ่านท่านอื่นๆ ต่อไปครับ
web เว็บไซต์
เว็บไซต์ (อังกฤษ: website, web site หรือ site) หมายถึง หน้าเว็บเพจหลายหน้า ซึ่งเชื่อมโยงกันผ่านทางไฮเปอร์ลิงก์ ส่วนใหญ่จัดทำขึ้นเพื่อนำเสนอข้อมูลผ่านคอมพิวเตอร์ โดยถูกจัดเก็บไว้ในเวิลด์ไวด์เว็บ หน้าแรกของเว็บไซต์ที่เก็บไว้ที่ชื่อหลักจะเรียกว่า โฮมเพจเว็บไซต์โดยทั่วไปจะให้บริการต่อผู้ใช้ฟรี แต่ในขณะเดียวกันบางเว็บไซต์จำเป็นต้องมีการสมัครสมาชิกและเสียค่าบริการเพื่อที่จะดูข้อมูล ในเว็บไซต์นั้น ซึ่งได้แก่ข้อมูลทางวิชาการ ข้อมูลตลาดหลักทรัพย์ หรือข้อมูลสื่อต่างๆ ผู้ทำเว็บไซต์มีหลากหลายระดับ ตั้งแต่สร้างเว็บไซต์ส่วนตัว จนถึงระดับเว็บไซต์สำหรับธุรกิจหรือองค์กรต่างๆ การเรียกดูเว็บไซต์โดยทั่วไปนิยมเรียกดูผ่านซอฟต์แวร์ในลักษณะของ เว็บเบราว์เซอร์HTML คือ ภาษาหลักที่ใช้ในการเขียนเว็บเพจ โดยใช้ Tag ในการกำหนดการแสดงผล HTML ย่อมาจากคำว่า Hypertext Markup Language โดย Hypertext หมายถึง ข้อความที่เชื่อมต่อกันผ่านลิ้ง (Hyperlink) Markup language หมายถึงภาษาที่ใช้ Tag ในการกำหนดการแสดงผลสิ่งต่างๆที่แสดงอยู่บนเว็บเพจ ดังนั้น HTML จึงหมายถึง ภาษาที่ใช้ Tag ในการกำหนดการแสดงผลเว็บเพจที่ต่างก็เชื่อมถึงกันใน Hyperspace ผ่าน Hyperlink นั่นเอง
* XML ถูกออกแบบมาเพื่อใช้ อธิบายข้อมูล และสนใจแต่เพียงว่า ข้อมูลคืออะไร
* HTML ถูกออกแบบมาเพื่อใช้ แสดงผลข้อมูล และสนใจแต่เพียงว่า ข้อมูลจะแสดงอย่างไร
XML ย่อมาจาก eXtensible Markup Language เป็นภาษาที่ใช้สำหรับการเขียนเอกสาร markup (markup document) โดยที่เอกสาร markup นั้นมีการใช้ metadata (หรือ tags) เพื่อบอกหน้าที่และประเภทของข้อมูลของส่วนต่างๆ ของเอกสารนั้นได้โดยชัดเจน การเพิ่ม metadata (หรือ tags) เข้าไปในเอกสารสามารถทำให้โครงสร้างของเอกสารชัดเจนขึ้น และทำให้การประมวลผลเอกสารเป็นไปโดยง่ายและไม่จำเป็นที่จะต้องอาศัยมนุษย์เพื่อตีความเอกสาร
XHTML คืออะไร
XHTML ย่อมาจาก eXtensible Hyper Text Markup Language คือภาษาคอมพิวเตอร์ประเภท Markup Language ที่รวมเอาทั้ง ภาษา HTML และ XML ไว้ด้วยกัน กลายเป็นมาตรฐานใหม่ของ HTML ประโยชน์ของมันคือการสร้างเว็บเพื่อการส่งข้อมูลทั่ว ๆ ไป และเพิ่มขีดความสามารถในการสร้างแท็กใหม่ ๆ ได้อีกด้วย (โดยที่เรากำหนดได้ด้วยว่าจะให้แท็กเหล่านั้นแสดงผลอย่างไร) ทั้งยังรองรับภาษาอื่น ๆ ที่ใช้ XML เป็นฐาน เช่น (SVG, MathML, chemML, SMIL) ในภาษา XHTML คำสั่งต่างๆนั้นก็ยังเหมือนกับ HTML แต่จะมีความเข้มงวดในเรื่องโครงสร้างภาษามากกว่า และมีการตัด tag และ attribute ที่ล้าสมัยออกไป
ความคิดเห็น
แสดงความคิดเห็น