Showing posts with label software. Show all posts
Showing posts with label software. Show all posts

Friday, April 30, 2010

อีกมุมมองหนึ่งของ Software Product Quality

เชื่อหรือไม่ว่าอุตสาหกรรมซอร์ฟแวร์เป็นหนึ่งในอุตสาหกรรมไม่กี่ชนิดที่ผู้ซื้อไม่ค่อยพอใจกับคุณภาพที่ได้เท่าไหร่นัก แต่ก็ต้องยอมควักกระเป๋าจ่ายตังค์ แถมเวลาใช้งานจริงก็ไม่ค่อยได้ตอบโจทย์ของลูกค้าอย่างตรงประเด็น ความจริงอันนี้ได้บ่งชี้ว่าอุตสาหกรรมซอร์ฟแวร์ที่เราทำกันอยู่นั้นยังไม่มีการทำ Improving Software Quality ที่ดีเท่าที่ควร
เป็นเรื่องน่าแปลกที่การผลิตสินค้าหรือผลิตภัณฑ์สักตัว เรื่องของคุณภาพถือเป็นอีกหนึ่งปัจจัยหลักของการขายสินค้าด้วยซ้ำ แต่สำหรับการพัฒนาซอร์ฟแวร์ปัญหาเรื่องคุณภาพเรียกได้ว่าเป็นปัญหา Classic ที่ทุกองค์กรจะต้องเจออยู่ประจำ

งั้นทำไมไม่ทำให้มันดีไปเลยล่ะ


เพราะมันเป็นเรื่องยากครับ น่าแปลกที่อุตสาหกรรมด้านไอทีที่เราทำกันนั้น ดูเหมือนว่าจะเป็นอุตสาหกรรมที่ทันสมัย แต่กลับไม่มีองค์กรไหนเอาหุ่นยนต์มาช่วยเขียนโปรแกรมหรือส่งบอทไป Gathering Requirement แทนเราเลย เพราะอะไรผมคิดว่าทุกท่านก็คงรู้กันดี ดังนั้นเมื่อเป็นเช่นนี้ เราจึงต้องทำงานกันเป็นทีมครับและเมื่อดูจากการทำงานจริงตาม SDLC (Software Development Life Cycle) ที่เราใช้กันอยู่ทุกวันแล้วจะเห็นได้ว่าทุก Phrase สามารถก่อให้เกิดปัญหาด้านคุณภาพได้ทั้งนั้น ตั้งแต่ Gathering Requirement จนถึง Maintainance
ดังนั้นเพื่อเป็นการปรับความเข้าใจถึงจุดยืนของการพัฒนา Application ซักตัวผมอยากจะนำเสนอมุมมองอีกแบบเพื่อที่จะทำให้ทุกท่านเข้าใจ Software Product Quality ได้ดียิ่งขึ้นครับ





ผมมักจะเปรียบเทียบ Software Product Quality เป็นสามเหลี่ยมด้านเท่า โดยตั้งชื่อให้กับมันว่า Software Quality Triangle โดยรูปสามเหลี่ยมนี้จะมีคุณสมบัติว่า
  • เป็นสามเหลี่ยมด้านเท่าที่มีด้านและมุมเท่ากัน
  • มุมที่แรกคือ User Requirement หรือ มุมมองของผู้ใช้ Software
  • มุมที่สองคือ Requirement Specification หรือ มุมมองของ System Analyst / Business Analyst
  • มุมสุดท้ายคือ Software หรือมุมมองของ Software Developer
  • ด้านแต่ละด้านคือเส้นตรงที่เชื่อมระหว่างมุมสองมุมชื่อว่า Gap ซึ่งก็คือปัจจัยที่จะทำให้มุมทั้งสามมุมห่างออกจากกัน

แนวคิดหลักของการใช้ Software Quality Triangle นี้คือ

"ทำอย่างไรที่จะทำให้สามเหลี่ยมด้านเท่านี้มีรูปร่างเล็กที่สุด
ในอัตตราส่วนที่เท่ากัน"

ในทางทฤษฏี นั่นแปลว่าเราจะทำอย่างไรให้ Software ออกมาใกล้เคียงกับทั้ง Requirement Specification และ User Requirement มากที่สุดนั่นเอง ซึ่งในทางปฏิบัติแล้วก็เป็นที่รู้กันอยู่ว่า "ยากมาก" เนื่องจากมีปัจจัยมากมายซึ่งส่งผลต่อการลดขนาด Software Quality Triangle อย่างที่กล่าวไว้ในแนวคิดหลัก ถ้าจะด้านแต่ละด้านมาวิเคราะห์อย่างละเอียด เราจะมองเห็นปัจจัยที่ส่งผลกระทบต่อ Software Product Quality ได้ดียิ่งขึ้นครับ


User Requirements vs Requirements Specification Gap

เป็นปัจจัยพื้นฐานแต่สำคัญที่สุดในสามเส้นเกิดขึ้นจากเหตุผลที่สุด Classic ที่เราเจอกันอยู่ทุกวันนั่นก็คือ

"System Analyst / Business Analyst ไม่เข้าใจ Requirement อย่างลึกซึ้งเพียงพอ"

เช่น

  • System Analyst / Business Analyst เข้าใจ Requirement ไปคนละอย่างกับ Users
  • Requirement ไม่ชัดเจนเพียงพอที่จะพัฒนา Application
  • ปัญหาด้านการสื่อสาร เช่น เมื่อ System Analyst เข้าไปเก็บ Requirement จาก Users ดันไปใช้ภาษาเชิง Technical มากเกินไป ทำให้สื่อสารกันไม่ค่อยจะรู้เรื่อง ตีความโจทย์ไม่ออก

ดังนั้นวิธีที่จะลด User Requirements vs Requirements Specification Gap นั้นควรจะเลือกใช้วิธีสื่อสารที่เหมาะสมและชัดเจนเพื่อความเข้าใจที่ตรงกันของทั้งสองฝ่าย รวมไปถึงจากหมั่น Update Requirements Specification ให้เป็น Version ใหม่อยู่เสมอเพื่อป้องกันการเข้าใจผิด

Requirements Specification vs Software Gap

เกิดจากเหตุผลเดียวคือ

"Software Developer ไม่ Coding ตาม Requirement Specification
หรือ Technical Specification ที่ System Analyst ออกแบบมา"

ซึ่งเกิดจากหลายปัจจัย (ถ้าไม่รวม Bugs หรือ Defects) ดังนี้

  • Technical Specification ไม่ชัดเจน
  • มีการ Change Request หรือ เปลี่ยนแปลง Requirement แต่ไม่ได้แก้ไข Technical Specification ตาม ทำให้เอกสารไม่ใช่ตัวที่ใหม่ล่าสุด
  • Software Developer เพิ่มหรือแก้ไข Feature ส่วนตัวเข้าไปเอง
  • Software Developer ละเลย Requirement บางข้อไป เนื่องจาก หา Solution ไม่ได้

ดังนั้นการควบคุมและตรวจสอบทีมอย่างเข้มงวดถือเป็นอีกหนึ่งวิธีแก้ปัญหาที่จะสามารถลด Requirements Specification vs Software Gap ได้อย่างมีประสิทธิภาพ

Software vs User Requirements Gap

เส้นนี้ถ้าให้อธิบายแล้ว Software vs User Requirements Gap คือเส้นที่แปรผันตามสองเส้นแรก

  • ยิ่ง User Requirements vs Requirements Specification Gap และ Requirements Specification vs Software Gap สั้นเท่าไหร่ Software ที่ถูกพัฒนาออกมาก็จะใกล้เคียงกับความต้องการและความคาดหวังของ Users มากเท่านั้น
  • ยิ่ง User Requirements vs Requirements Specification Gap และ Requirements Specification vs Software Gap ยาวเท่าไหร่ ทีม Development งานเข้าอย่างแน่นอนเนื่องจากจะต้องทำการแก้ไข Software นั้นจนกว่า Users จะพอใจและยอมรับ ซึ่งจะก่อให้เกิดผลเสียต่อองค์กรในอีกหลายด้าน

Software Quality Triangle ในความเป็นจริง

แต่ในความเป็นจริงแล้ว Software Quality Triangle ที่เราทำกันอยู่ปัจจุบันไม่ได้เป็นรูปสามเหลี่ยมด้านเท่าอย่างที่วาดฝันไว้ หลายองค์กรไม่ได้ใส่ใจกับ Software Product Quality เท่าที่ควร ซึ่งนั่นส่งผลให้ Software Quality Triangle เปลี่ยนแปลงรูปร่างไปเป็น 4 รูปแบบหลักดังนี้

รูปแบบที่ 1


  • System Analyst เก็บ Requirement ไม่ดีพอ
  • Software Developer พัฒนาซอร์ฟแวร์ตาม Requirements Specification

รูปแบบที่ 2


  • System Analyst เก็บ Requirement ไม่ดีพอ
  • Software Developer พัฒนาซอร์ฟแวร์ไม่ตรงตาม Requirements Specification แต่ดันไปถูกใจ User Requirement

รูปแบบที่ 3

  • System Analyst มีความเข้าใจ User Requirement อย่างลึกซึ้ง
  • Software Developer โดนสลายการชุมนุมแน่นอน


รูปแบบที่ 4


  • มั่วทุกอย่าง

Tuesday, April 20, 2010

มหากาพย์แห่ง Business Intelligent และ Pentaho ภาคอวสาน

ต่อเนื่องจากมหากาพย์ภาคแรก ภาคนี้จะมาบอกถึง Feature ตัวที่เหลือที่น่าสนใจของ Pentaho ให้ได้รู้กัน

Reporting

Pentaho Reporting ช่วยให้ผู้ใช้งานสามารถเข้าถึงข้อมูลในรายงานตาม Layout ที่กำหนด (Static Report) ได้หลายรูปแบบทั้งในรูปแบบของ PDF, Excel, RTF, Text File ซึ่งรายงานดังกล่าวสามารถจัดส่งถึงผู้ใช้งานผ่านทาง Web Portal, E-Mail หรือแม้แต่ใน Application


ความสามารถของ Reporting ประกอบด้วย

  • รองรับมาตรฐาน Java 100% (อีกแล้ว)
  • มีความยืดหยุ่นในการ Deployment รายงานที่ออกแบบในเครื่อง Desktop ไปเป็นรายงานที่อยู่บนเว็บซึ่งสามารถตอบโต้กับผู้ใช้งานได้
  • รองรับการเชื่อมต่อกับข้อมูลได้ทั้งแบบที่เป็น Relational Database, OLAP หรือแม้แต่ XML
  • กำหนดรูปแบบของรายงานได้หลายรูปแบบ เช่น PDF, Excel, RTF, Text File
  • มีเครื่องมือช่วยในการสร้างรายงาน ช่วยให้สร้างรายงานได้สะดวกและรวดเร็วมากขึ้น (ใครเคยเล่น iReport หรือ Crystal Report จะเห็นภาพ)
  • เชื่อมต่อกับ Data Source ได้โดยตรงหรือจะผ่าน META-DATA ก็ได้
  • ตั้งเวลาในการสร้างรายงานหรือจะสร้างรายงานทันทีที่ต้องการใช้งาน
  • ส่งรายงานได้หลายช่องทาง เช่น E-Mail, Printer, File Server, Web Portal, Application หรือแม้แต่ Web Service
  • แสดงข้อมูลในรายงานได้หลายหลายรูปแบบ เช่น Table, Chart, Template, Sub Report, Drill Link, Header, Footer เป็นต้น
  • รองรับ JDBC 2.0 เป็นต้นไป
  • รองรับหลากหลายฐานข้อมูล เช่น Oracle, DB2, Microsoft SQL, MySQL, PostgreSQL และอีกมากมาย
  • รองรับหลายการใช้หลาย Data Source ในหนึ่งรายงาน
  • สามารถแยกรายงานหนึ่งตัวออกเป็นหลายไฟล์ตามเงื่อนไขที่ระบุ เช่นแยกตามกลุ่มผู้ใช้งาน โดยในแต่ละไฟล์ สามารถระบุได้ว่าจะจัดส่งรายงานด้วยวิธีใด เช่น ส่ง E-Mail, พิมพ์ออกเครื่องพิมพ์ ความสามารถทั้งหมดที่กล่าวมาเรียกว่า Report Bursting
  • ระบุเงื่อนไขในการสร้างรายงาน ผู้ใช้งานสามารถระบุ Parameter ได้ตามต้องการ


Ad-hoc Query


Pentaho Ad-hoc Query เป็นส่วนที่ต่อขยายจาก Pentaho Reporting ซึ่งจะช่วยให้ผู้ใช้งานสามารถสร้างรายงานอย่างง่าย ได้ด้วยตัวเอง โดยมีเครื่องมือลักษณะเป็น Wizard อ่านข้อมูลจาก META-DATA ร้างไว้ก่อนหน้านี้ซึ่งจะใช้ข้อความหรือคำศัพท์ที่ผู้ใช้งานคุ้นเคย ทำให้ผู้ใช้งานเข้าใจในข้อมูลที่จะเลือกมาสร้างรายงาน

ความสามารถของ Reporting ประกอบด้วย -

  • รองรับมาตรฐาน Java 100%
  • สร้างรายงานอย่างง่ายได้ด้วยตัวเอง เพียงลากวาง (Drag and Drop) ข้อมูลที่ต้องการ จาก META-DATA
  • จัดเรียงข้อมูล (Sorting) และกรองข้อมูล (Filter) ได้ตามต้องการ
  • ระบุขนาดกระดาษ, ชื่อรายงาน, ข้อความที่จะพิมพ์บน Header และ Footer ได้ตามต้องการ
  • มี Template ของรายงานให้เลือกใช้
  • Ad-hoc Query ที่สร้างขึ้นสามารถปรับปรุงรูปแบบให้ดีขึ้นได้ด้วย Report Designer


Analysis


ช่วยให้ผู้ใช้งานสามารถวิเคราะห์ข้อมูลเชิงโต้ตอบ (Interactive) กับข้อมูลที่เก็บอยู่ในฐานข้อมูลโดยไม่จำเป็นต้องมีความรู้ด้าน Programming ผู้ใช้งานสามารถหาคำตอบจากคำถามทางธุรกิจที่ตนเองสงสัยได้ด้วยตนเอง

ความสามารถของ Analysis ประกอบด้วย

  • รองรับมาตรฐาน Java 100%
  • ผู้ใช้งานสามารถวิเคราะห์ข้อมูลได้ด้วยตนเองอย่างรวดเร็ว เพียงลากวางข้อมูลที่ต้องการ อีกทั้งยังสามารถ Drill Down ลงไปดูรายละเอียดข้อมูลที่ต้องการได้อีกด้วย
  • แสดงข้อมูลในลักษณะ Cross Tab Report
  • การดูข้อมูลในมุมมองต่างๆ (Dimension) ไม่ว่าจะมองมุมมองเดียว (Slice) หรือหลายมุมมอง (Dice)
  • สามารถแสดงแผนภาพ (Chart) ตามข้อมูลที่เลือกได้
  • คำนวณข้อมูลที่ซับซ้อนได้หลายหลายมุมมอง (Multi Dimensional)
  • export ข้อมูลออกมาได้หลายรูปแบบ เช่น PDF, HTML, Excel, RTF, Text File
  • รองรับ Multidimensional Expression (MDX) language เพื่อใช้ในการแสดงข้อมูลในรูปแบบที่ซับซ้อน
  • ดูข้อมูลแบบลำดับชั้นได้ (Hierarchy)
  • รองรับ JDBC 2.0 เป็นต้นไป
  • รองรับหลากหลายฐานข้อมูล เช่น Oracle, DB2, Microsoft SQL, MySQL, PostgreSQL และอีกมากมาย
  • กำหนดสิทธิ์การใช้งานได้ข้อมูล RDBMS

Dashboard


ช่วยให้ผู้ใช้งานเห็นข้อมูลประสิทธิภาพการทำงาน (Performance) และเป้าหมายการทำงานทั้งในระดับส่วนตัว, ระดับแผนก, ระดับบริษัท ในรูปแบบที่เป็นรูปภาพหรือแผนภาพ ช่วยให้ผู้ใช้งานมองเห็นข้อมูลในแต่ละระดับในภาพรวมซึ่งสามารถนำไปพัฒนาปรับปรุงประสิทธิภาพการทำงานต่อไป

ความสามารถของ Dashboard ประกอบด้วย -

  • รองรับมาตรฐาน Java 100%
  • ช่วยในการชี้วัดประสิทธิภาพการทำงาน
  • ง่ายต่อการเข้าใจข้อมูลเนื่องจากแสดงข้อมูลในรูปแบบที่เป็นรูปภาพหรือแผนภาพ
  • เชื่อมต่อกับ Pentaho Reporting และ Pentaho Analysis ซึ่งช่วยให้ผู้ใช้งานสามารถดูรายละเอียดของข้อมูลที่มีปัญหาหรือข้อสงสัยได้ (Drill Down)
  • เชื่อมต่อกับ Portal ทำให้สามารถแสดงข้อมูลได้หลายหลายและเป็นอิสระต่อกัน ซึ่งทำให้รองรับกลุ่มผู้ใช้งานที่มากขึ้น
  • กำหนดเงื่อนไข เพื่อให้ระบบแจ้งเตือนผู้ใช้งานให้ทราบถึงสถานการณ์ต่างๆที่กำลังจะเกิดขึ้นซึ่งจะช่วยให้ผู้ใช้งานสามารถรับมือหรือแก้ปัญหากับสิ่งที่กำลังจะเกิดขึ้นได้

Data Integration


คือเครื่องมือที่ใช้สร้างคลังข้อมูล (Data Warehouse) โดยทั่วไปเครื่องมือดังกล่าวเรียกว่า ETL (Extraction, Transformation and Loading)

  • Extraction คือการดึงข้อมูลจากแหล่งต่างๆ ที่เราต้องการมาเก็บไว้ใน Data Warehouse โดยจะดึงมาเฉพาะข้อมูลใหม่ที่เพิ่มขึ้นมาหรือข้อมูลที่ถูกเปลี่ยนแปลงแก้ไข โดยข้อมูลที่ดึงมาจะมาเก็บพักไว้ก่อนซึ่งเรียกว่า Staging Area•
  • Transformation คือการเปลี่ยนแปลงรูปแบบของข้อมูลที่ได้จากการ Extract ให้อยู่ในรูปแบบที่ถูกต้องตามโครงสร้างของ Data Warehouse •
  • Loading คือการเก็บข้อมูลลงใน Data Warehouse หลังจากทำการแปลงข้อมูลให้อยู่ในรูปแบบที่ถูกต้อง

ความสามารถของ Pentaho Data Integration ประกอบด้วย

  • รองรับมาตรฐาน Java 100%
  • ง่ายต่อการใช้งาน ด้วยเครื่องมือต่างๆ ที่จัดเตรียมไว้ให้ในรูปแบบกราฟิก เพียงลากวางเครื่องมือต่างๆ ตามกระบวนการที่ต้องทำ
  • รองรับ Slowly Changing Dimension และ Junk Dimension
  • ออกแบบมาเน้นในเรื่องของประสิทธิภาพ (Performance) และการขยายระบบเมื่อระบบมีปริมาณการใช้งานที่มากขึ้น (Scalability)
  • มีเครื่องมือในการเชื่อมต่อกับระบบ ERP (ERP Connectors)
  • มีเครื่องมือที่ใช้ในการตรวจสอบความถูกต้องของข้อมูล (Data Quality)
  • รองรับหลากหลายแหล่งข้อมูล (Data Source) ไม่ว่าจะเป็น Database, File Base (DBF), Text File, Excel File และอื่นๆ
  • เชื่อมต่อกับ Pentaho BI Suite ทำให้สามารถใช้ความสามารถอื่นๆร่วมกันได้เช่น เรื่องของการ Scheduling, Security, Workflow เป็นต้น
  • นำไปใช้งานในลักษณะต่างๆ ดังนี้ สร้างคลังข้อมูล (Populate Data Warehouse), Export ข้อมูลจากฐานข้อมูลไปเป็น Text File, Import ข้อมูลจาก Text File เข้าฐานข้อมูล, นำข้อมูลจากฐานข้อมูลหนึ่งไปเข้าอีกฐานข้อมูลหนึ่ง, ดูข้อมูลจากฐานข้อมูลที่มีอยู่

ที่มา : http://www.goingjesse.com/gj/index.php?option=com_content&view=article&id=11&Itemid=2

นี่คือความสามารถที่ Pentaho ได้จัดเตรียมไว้ให้แล้ว ดังนั้นการทำ Business Intelligent ก็ไม่ใช่เรื่องยากที่จะเรียนรู้อีกต่อไป หากใครสนใจก็สามารถไปศึกษาต่อได้ที่ http://www.pentaho.com/

Note : ข้อความในนี้ส่วนใหญ่หาข้องมูลจาก Commercial Site ของ Pentaho

Monday, April 19, 2010

มหากาพย์แห่ง Business Intelligent และ Pentaho ภาคแรก

สวัสดีอีกครั้ง หลังจากวันหยุดยาว ทำให้ผมมีเวลา (นอน) มากขึ้น พอดีช่วงนี้กำลังศึกษาเรื่อง BI (Business Intelligent) ก็เลยลองหา Opensource Software ที่มาใช้ทำ BI ดูแล้วผมก็ได้เจอนี่ครับ "Pentaho" ชื่ออาจจะดูแปลก (ประมาณอินเดียนแดงหรืออะไรทำนองนั้น) แต่ความสามารถนั้นแจ่มใช้ได้เลยทีเดียว
ก่อนอื่น สำหรับผู้ที่ไม่มีพื้นฐานก็ต้องมาศึกษาก่อนว่า BI คืออะไร แล้วมันมีประโยชน์ต่อธุรกิจยังไงบ้าง

Business Intelligent คืออะไร

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

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

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

Business Intelligent ก็คือ Software ที่นำข้อมูลที่มีอยู่เพื่อจัดทำรายงานในรูปแบบต่างๆที่เหมาะสมกับมุมมองในการวิเคราะห์, ตรงตามความต้องการของผู้ใช้งาน และใช้สำหรับวิเคราะห์ข้อมูลของงานในมุมมองต่างๆ

เช่น

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

Business Intelligence จะประกอบไปด้วยระบบข้อมูล และ Application ด้านการวิเคราะห์ มากมายหลายอย่าง เช่น

  • Data Warehouse
  • Data Mart
  • Data Mining
  • Operations Research & Numerical Methods
  • OLAP
  • Search, Report

จากข้างบนเราสามารถสรุปได้ว่า Business Intelligent มีประโยชน์มากมายต่อองค์กรดังนี้

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

ร่ายซะยาวยังไม่ได้เข้าเรื่อง Pentaho ซักนิดเลย เอาล่ะ เพื่อไม่ให้เป็นการเสียเวลาเรามาทำความรู้จัก Pentaho กันเลย

Pentaho คืออะไร

Pentaho ก็คือ Opensource Software ที่ใช้มาเพื่อจัดการ Business Intelligent นี่หละครับโดยที่ Pentaho จะมีฟังก์ชั่นให้เลือกใช้อย่างมากมายและครบถ้วนกระบวนความ ไม่ว่าจะเป็น Data Integration, Reporting, Ad-hoc Query, Analysis, Dashboard หรือแม้แต่ Data Mining ดังนั้น Pentaho จึงเป็นอีกหนึ่งทางเลือกที่คุ้มค่ามากในการเลือกเพื่อมาพัฒนาระบบ DWH(Data Warehouse) และ BI

Pentaho นี้ได้รวบรวม Application ทางด้าน BI เข้าด้วยกันเพื่อทำงานร่วมกันเป็น Solution โดยสามารถแบ่งเป็นส่วนประกอบหลักได้ 6 ส่วนคือ

  1. Platform
  2. Reporting
  3. Ad-hoc Query
  4. Analysis
  5. Dashboard
  6. Data Integration

Plateform






ถ้าดูจากรูปหลายคน (รวมทั้งผมด้วย) อาจจะยังไม่เข้าใจว่านี่คืออะไร ออกแนวมึนตึ้บ เนื่องจากขาดความเชี่ยวชาญทางด้าน BI ดังนั้นให้ลงมามองที่ข้อความก่อนแล้วถึงขึ้นไปดูก็จะช่วยได้ (เล็กน้อย - -")

  • Solution Engine ที่เป็นหัวใจหลักของ Pentaho Platform ทำหน้าที่อ่านและสั่ง Process (Action Sequences) ของ BI ให้ทำงาน เช่น Reporting, Analysis, Dashboard
  • Solution Repository ทำหน้าที่เก็บ Template, Query, Report, Business Rule, Process, Style Sheet และ Action Sequence ซึ่งเก็บอยู่ใน Database ที่เรียกว่า Solution Database
  • Runtime Engine ทำหน้าที่อ่าน Resource ไม่ว่าจะเป็น Query, Report, Business Rule, Process, Style Sheet และ Action Sequence จาก Solution Repository มาเพื่อประมวลผลแล้วทำการบันทึกข้อมูลการประมวลผลลงในส่วนของ Auditing ซึ่งตัว Runtime Engine ก็คือ BI Virtual Machine เป็น Environment สำหรับประมวลผลตัว Action Sequence
  • BI Components คือ ส่วนประกอบหลักที่ถูกเรียกใช้งานและถูกควบคุมการทำงานผ่าน Action Sequence โดย BI Component พื้นฐานที่ติดมากับ Pentaho BI Platform ได้แก่ reporting, charting, OLAP, ETL, dashboard, workflow, scripting เป็นต้น นอกจากนี้เรายังสามารถนำ Component อื่นๆ ที่เขียนขึ้นเองหรือของ Third Party เข้ามาใช้ต่อพ่วงกับ Pentaho BI Platform ได้อีก อย่างเช่น E-Mail, Print
  • API คือส่วนของ Application Programming Interface ที่ถูกออกแบบมาในลักษณะ SOA (Service Oriented Architecture) ทำให้ง่ายแก่การเรียกใช้ เพียง 5 บรรทัดของ Java ก็สามารถเรียกใช้ HTTP, JMS, SOAP, AJAX, POJOs, BPEL ผ่าน Action Sequence ได้
  • User Interface คือส่วนที่ใช้แสดงผลให้กับผู้ใช้งานโดย โดยสร้างการแสดงผลมาจาก HTML ซึ่งสามารถแปลงมาจาก XML และยังสามารถใช้งาน AJAX, Single Sign on และ Security ร่วมกับ User Interface ได้
  • Client คือส่วนที่ผู้ใช้งานสามารถเรียกประมวลผล Action Sequence, Workflow, ESB, SOA ได้เป็นต้น โดยสามารถเป็นได้ทั้งแบบ Remote หรือ Local การเรียกใช้งานก็สามารถเรียกผ่าน Web Browser หรือจะเรียกผ่าน Application ที่เขียนขึ้นมาเองก็ได้
  • Configuration ใช้กำหนดชื่อ Component ที่ต้องการเรียกใช้ พร้อมทั้งกำหนดค่า Standard Parameter ในการเรียกใช้ไว้ในส่วนของ Configuration

ความสามารถของ Platform ประกอบด้วย

  • รองรับมาตรฐาน Java 100%
  • เชื่อมต่อกับ Data Source, Portal และ Application ผ่าน Open Standard
  • เชื่อมต่อกับ Application ตั้งเวลา (Scheduling) การตรวจสอบรหัสผู้ใช้งานเพื่อเข้าระบบ (Authentication) และสิทธิ์การใช้งานของแต่ละรหัสผู้ใช้งาน (Authorization)
  • รองรับการปรับแต่ง Application โดยใช้ APIs, Web Services หรือทำการแก้ไข Template, Business Rules หรือแม้แต่ Source Code
  • ออกแบบโดยเน้น Workflow-Base จึงช่วยให้สามารถแก้ไขระบบตามความต้องการได้
  • มีการบันทึก Log การเข้าใช้งานของผู้ใช้งานแต่ละคน ทำให้สามารถติดตามการใช้งานของผู้ใช้งานแต่ละคนได้

ที่มา : http://www.goingjesse.com/gj/index.php?option=com_content&view=article&id=11&Itemid=2


เขียนไป ก๊อปไป อ่านไป เพลินมากเหลือบขึ้นไปดู โว้ว!!~ ยาวมากจนต้องเปลี่ยนชื่อบทความ ก็เลยตัดไว้แค่นี้ก่อนละกัน เด๋วจะท้อกับการอ่านซะก่อน เด๋วเอาไว้จะอัพภาคต่อของ Pentaho รวมไปถึง Feature ที่ยังไม่ได้กล่าวถึงอีก 5 อันมาให้ได้ชมได้อ่านกันนะครับ

Note : ข้อความในนี้ส่วนใหญ่หาข้องมูลจาก Commercial Site ของ Pentaho