Operational Concept สำหรับ Software Requirement Analysis

Posted by kannique On September - 27 - 20095 COMMENTS
1 Star2 Stars3 Stars (No Ratings Yet)
Loading ... Loading ...

Requirements

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

ผมเชื่อว่าพวกเราทุกคนในวงการ software development คงจะเคยเจอปัญหาที่เกี่ยวข้องกับ requirement อยู่บ่อยๆโดยเฉพาะอย่างยิ่งปัญหาที่เกิดจาก requirement ที่ได้มาไม่มีความสมบูรณ์หรือละเอียดเพียงพอที่จะทำงานต่อ ทั้งในส่วนของ software development ซึ่งต้องทำการออกแบบระบบสำหรับแต่ละ requirement และในส่วนของ project management ซึ่งต้องทำ estimation and planning


ความไม่สมบูรณ์ของ requirement ที่ผมพบบ่อยๆก็เช่น

Completeness: requirement ไม่สมบูรณ์ในตัวเอง อธิบายเรื่องราวหรือความต้องการได้ไม่ครบถ้วนครับ เช่น “เพื่อเพิ่มความสามารถของระบบในการสนับสนุนการตัดสินใจของผู้บริหาร รายงานประจำปีรูปแบบใหม่จึงควรถูกสร้างขึ้น” สำหรับผม ถ้าได้ requirement มาแค่นี้จริงๆคงเศร้าหละครับเพราะว่าจะทำอะไรต่อก็ลำบากไปหมด ที่มึนมากๆก็คือ “รูปแบบใหม่” นี้มันแบบไหนหละ?

Ambiguity: ข้อมูลที่ระบุใน requirement มีความกำกวมไม่ชัดเจน เช่น “การสร้้้้างรายงานประจำปีต้องดึงข้อมูลจากตารางที่เกี่ยวข้องในฐานข้อมูล” คำว่า “ที่เกี่ยวข้อง” นั้นไม่ชัดเจนเพียงพอที่จะลงมือ design ระบบได้ทันทีหรอกครับ ยิ่งสำหรับคนที่ไม่มีประสบการณ์ในงานด้วยแล้ว ยิ่งยากใหญ่ Read the rest of this entry »

ง่ายๆกับการเพิ่ม Project Task ให้ Outlook

Posted by kannique On September - 19 - 2009ADD COMMENTS
1 Star2 Stars3 Stars (No Ratings Yet)
Loading ... Loading ...

ปัญหายังอยู่ …

จากบทความก่อนหน้า ผมเสนอแนะวิธีการใช้ Tasks และ Task Request ใน Microsoft Outlook เพื่อแก้ปัญหาคนในทีมลืมทำงานที่ได้รับมอบหมายไปแล้ว แต่ว่า … แหะๆ เพื่อนร่วมทีมคนอื่นๆสบายขึ้นแต่สำหรับ Project Manager ก็ใช่จะสบายซะทีเดียวหรอก ทำไมหนะหรอ? ถ้า Project มี Task ไม่เยอะ มีคนทำงานไม่มากก็คงไม่เป็นปัญหาเท่าไร แต่ในโลกความจริงมันต่างจากนั้นมากครับ ลองนึกดูครับ ถ้า Project มี Task เป็นร้อย คนทำงานซักสามสิบคน Project Manager ต้องมีมึนแน่ๆครับกับการไล่ส่ง Task Request ให้ครบทุก Task และทุกคน ฝันร้ายยังไม่จบแค่นั้น เป็นไปได้ยากมากๆที่เราจะใช้ Project Plan ฉบับเดิมตั้งแต่ต้นจนจบโปรเจก ดังนั้นถ้า Project Plan มีการแก้ไข เปลี่ยนแปลง Project Manager ก็ต้องมานั่งลุยส่ง Task Request กันอีกรอบหละครับ … คิดแล้วเหนื่อย

… แต่ทางออกก็พอมี

ไม่ต้องคิดมากครับ ผมมีทางออกให้ อาศัยที่เป็น Programmer มาซักพัก ผมเลยเขียน VBA Macro ใส่ใน Microsoft Project Template ช่วยทำหน้าที่ในการส่ง Task และ Task Request แบบอัตโนมัติออกมาครับ เพื่อนๆลองเอาไปใช้ดูได้เลยครับ Download: project-to-outlook template (154)

เมนูใหม่

เปิดมาจะเห็นมีเมนูเพิ่มมา 1 เมนู อยู่ขวาสุดชื่อ “Outlook” คลิ๊กเข้าไปจะมี 2 เมนูย่อยให้ลองใช้กัน อันแรก “Selected Row(s) to Task(s)” ทำหน้าที่ส่ง Task ให้ตัวเอง(สำหรับสมาชิกทั่วไป) ส่วนอันที่สอง “Selected Row(s) to Task Request(s)” ทำหน้าที่ส่ง Task ให้กับคนที่กำหนด(สำหรับ Project Manager) ครับ

New Menu

New Menu

Read the rest of this entry »

What We Can Learn From Google — Peer Review

Posted by kannique On September - 14 - 2009ADD COMMENTS
1 Star2 Stars3 Stars (No Ratings Yet)
Loading ... Loading ...

วันนี้ผมมีโอกาสได้อ่านบทความของคุณ Bomber เรื่องกระบวนการพัฒนาระบบของ Google ที่พูดถึงแนวคิดและแนวปฏิบัติในการทำงานของ Google ซึ่งมีหนึ่งประเด็นที่น่าสนใจครับเกี่ยวกับกระบวนการ Peer Review ตอนแรกผมไม่คิดว่าบริษัทใหญ่ๆอย่าง Google จะให้ความสำคัญของกระบวนการนี้มากขนาดนี้

Peer Review

มีมาตรฐานของสไตล์การเขียน code ทุกๆคนต้องผ่านการ train ตรงนี้ก่อน code จะต้องผ่านการ review ว่าเขียนถูกต้องตามสไตล์กลาง ก่อนจะเข้า code base จะต้องมี design document เสมอ ไม่ว่าจะเป็น project เล็กแค่ไหน และจะมีคนคอยตรวจดู format ของ document ว่าถูกต้องหรือไม่ งานทุกชิ้นที่ขึ้น codebase กลางต้องมีคุณภาพตามมาตรฐาน process เหล่านี้ทำให้ช้าอยู่บ้าง แต่แลกกับคุณภาพที่ดีของงานแล้วคุ้มค่ามาก

จากประสบการณ์ส่วนตัว ผมมองว่าการทำ Peer Review ในระดับที่เหมาะสม (ไม่มากเกินไป ไม่น้อยเกินไป) จะเป็นประโยชน์มากต่อการพัฒนาระบบ ไม่ว่าจะเป็น Code Review หรือ Document Review ก็ตาม Read the rest of this entry »

Save the Date with Microsoft Outlook

Posted by admin On September - 12 - 20093 COMMENTS
1 Star2 Stars3 Stars (No Ratings Yet)
Loading ... Loading ...

วันไหน ? เมื่อไร ? ต่อไป ? ไม่เข้าใจ

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

Project Planning

Project Planning

ผมมานั่งคิดถึงสาเหตุจริงๆของปัญหานี้ซึ่งก็ได้ข้อสรุปออกมาว่า อย่างแรกเลย developer อย่างเราๆไม่ค่อยถูกโฉลกกับเรื่องพวก management เท่าไร วันๆฉันขอตะบัน coding อย่างเดียวพอ ที่เหลือไม่อยากรับรู้ โปรเจกแพลนคืออะไร อยู่ที่ไหน รายละเอียดยังไงไม่สน ซึ่งก็ไม่ผิดนะครับงาน dev มันก็ต้อง coding เป็นหลักอยู่แล้ว ครั้นจะให้ไปเปิดหาเอกสารเอาเองยิ่งยากไปใหญ่ ถึงผมพยายามแก้ปัญหานี้ด้วยการปริ้นท์งานที่ต้องรับผิดชอบของแต่ละคนไปให้แต่ก็ไม่เวิร์คครับ เพราะอะไร เพราะสาเหตุอย่างที่สองนั่นเอง สังเกตเห็นอย่างชัดเจนมากว่าโต๊ะพวกเด็กคอมพ์ 90% นั้นรกสุดๆ!!! กระดาษใช้แล้ว ยังไม่ใช้ ใช้ได้ ใช้ไม่ได้กองสุมกันเป็นภูเขาเลากอเลย เจอแบบนี้เข้าไปก็ไม่แปลกหรอกครับที่กระดาษแผ่นเดียว(แผ่นที่ไม่สำคัญซะด้วย)จะหายเป็นประจำ Read the rest of this entry »