Thomson Reuters Internship#28 : MVC and 5 Whys

8.30 ถึงบริษัท ทอมสัน รอยเตอร์ส(Thomson Reuters

9.30 Stand Up Meeting

Issue ของวันนี้ก็คือทำเรื่อง “SP63  Conmentary Dialog : Unable to publish commentary to My Personal Group” ซึ่งเป็นสตอรี่ที่ทำอยู่ หลังจากที่เสร็จแล้วก็มาเริ่มงาน โดยวันนี้ตอนที่เริ่ม ref server ไม่สามารถเข้าไปได้ ก็เลยต้องรอ ไอ้ตอนที่รอนี่แหละเลยได้คุยกันยาวเลย

องค์ประกอบหลักๆ

1. Web Front End ( WFE ) : แสดงส่วนหน้า Interface

2. Index Server : เรียกผ่านหน้า Front-End ไปดูว่าฐานข้อมูลมีการเปลี่ยนแปลงตรงไหน และทำการเก็บ Index ไว้

3. Query Server : เก็บ Index ทำให้เมื่อมีการ Search จะมาค้นหาใน Query Server ซึ่งจะทำให้การค้นหาเร็วขึ้น

4. Database

ตัวอย่าง : ถ้า Client เรียกผ่าน API SP มาที่ WFE ถ้าเกิดว่ามีการ Add Commentary ก็จะมีการไปเก็บค่าที่ Database และ Index Server ก็จะเรียกผ่านหน้า WFE ไปที่ Database แล้วดูว่ามีอะไรเปลี่ยนแปลงไหม แล้วเก็บ Index ไว้ที่ Query Server แต่เมื่อมีการ Search ผ่าน WFE ก็จะมีการไปค้นหาข้อมูลจาก Query Server

หลังจากที่เริ่มต้นจากภาพรวมไปแล้ว ก็มาเข้าเรื่องงานซึ่งออฟยังไม่ค่อยเข้าใจเรื่อง VIEW เท่าไหร่นัก แบบว่าทำสตอรี่นี้ก็เริ่มด้วยการ Re-Produce แล้วดูว่าไม่สามารถเลือก visible to My Personal Group ที่เพิ่งจะสร้าง แล้วหน้าที่แสดงที่พี่ปัดเปิดให้ดูสองหน้าจอ ก็ทำให้ออฟงง แบบว่าหน้าจอแรกโทนสีดำ อีกหน้าจอโทนสีฟ้า ก็เลยต้องมีการขยายความกันนิดหน่อย

ภายใน Web Front End ( WFE ) จะมี SP API อยู่ ซึ่งก็จะมีหน้า Web ของ Sharepoint ที่เราได้มาเปลียนให้เป็นของรอยเตอร์ ซึ่งตอนนี้จะเป็นหน้าจอสีดำๆ หรือที่เรียกว่า SPACE V1 ซึ่งทางทีม VIEW ซึ่งจัดการเกียวกับ Interface ต่างๆ ก็จะมีความยุ่งยากถ้าต้องติดต่อมายัง SP API โดยตรง ก็เลยมี SPACE CP API ขึ้นมา (หน้าจอสีฟ้า) เพื่อให้ทีม VIEW เรียกได้ง่ายขึ้น ดังนั้นผลที่ได้จากหน้าจอสีฟ้า และสีดำก็ควรจะเหมือนกัน เพราะว่าเรียกไปที่ SP API เหมือนกัน แต่ว่าคราวนี้หลังจากที่ทดสอบสร้าง User และ Group หลังจากนั้น create commentary แล้วเลือกให้ Group ที่เพิ่งสร้างสามารถเห็น Commentary นี้ได้ ผลปรากฏว่าหน้าจอสีฟ้าแสดง message ว่าไม่สามารสร้างได้ แต่ว่าหน้าจอสีดำทำได้ = =

10.00 Vote Story

ช่วงนี้รู้สึกว่ากระดานจะว่างๆ ไปเยอะเหมือนกันที่ช่อง To Do ก็ไม่มีแผ่น Story หลงเหลืออยู่แล้ว แต่ไปติดอยู่ที่ Blocked ซะเป็นส่วนใหญ่ ซึ่งช่องนี้แสดงว่าทีมเทสยังเทสไม่เสร็จก็ยังปิดสตอรี่ไม่ได้ วันนี้ก็เลยมาโหวต Task Story ซึ่งวันนี้เรื่องที่โหวตก็คือ “SPIKE : MQPublisher” ซึ่งก็เป็นโค้ดส่วนที่ทางนิวยอร์กเค้าเขียนไว้แล้ว ก็ให้ไปศึกษาให้เข้าใจว่าทำงานยังไง ใช้ยังไง ซึ่งส่วนนี้ก็เป็นส่วนที่จะใช้เอาไปติดต่อ compliance อีกที

11.00 Model–View–Controller (MVC)

หลังจากพี่ก้องและพี่ปัดได้อธิบายภาพรวมและการทำงานของเรื่องที่กำลังทำอยู่ให้ฟังแล้ว ก็เลยได้มารู้จัก MVC ซึ่งพี่ก้องบอกว่าเป็นเรื่องที่น่ารู้ ซึ่งหลังจากที่ฟังพี่อธิบายก็พอจะสรุปได้ว่า MVC ก็เป็นการออกแบบ software แบบนึง โดยสถาปัตยกรรมซอฟแวร์แบบนี้จะแบ่งออกเป็น 3 ส่วนหลักๆ

1. View : เป็นส่วนหน้า Interface

2. Controller : จัดการค่าที่ view ส่งมา และเรื่อง Business Logic

3. Model : เป็นตัวส่งและดึงค่าจากฐานข้อมูล

แล้วความเจ๋งของสถาปัตยกรรมซอฟแวร์แบบนี้คืออะไร ทำไมต้องมาแบ่งกันด้วย พี่ก้องก็ยกตัวอย่างให้ฟังว่า ในการทำงานจริงๆ แล้วน้อยมากที่จะทำงานคนเดียว ดังนั้นการที่สามารถจะแยกงานออกเป็นสัดส่วนก็จะทำให้เวลาที่มีการเปลี่ยนแปลงเฉพาะบางจุดก็ไม่กระทบไปถึงส่วนอื่น เช่น ถ้าเกิดว่ามีการรวมบริษัทแล้วต้องเปลี่ยนโลโก้ ก็ไปทำแต่ส่วน view ส่วนอื่นก็เหมือนเดิม รวมไปถึงตัว View เองก็ไม่จะเป็นจะต้องเป็นหน้าเวบอย่างเดียวด้วยอาจจะเป็นมือถือ หรือ PDA ก็ได้

เพิ่มเติมเรื่อง Model–view–controller (MVC)

MVC < Knowledge < SETEC Wiki

Model–view–controller – Wikipedia, the free encyclopedia

12.00 Lunch

Reuters_Day28_1.jpg

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

13.00 One-One

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

13.45

มาทำงานต่อคราวนี้ก็ได้มาดู Log ซึ่งก็ใช้ WCF Service Trace Viewer  ซึ่งติดมากับ .NET Framework 3.0 เพื่อให้เราสามารถที่จะดูการส่งค่าผ่าน web service ได้ ซึ่งก็ได้เห็นส่วนที่เป็น Error ก็เลยได้รู้ว่าจุดเกิดเหตุมันอยู่ตรงไหน แล้วก็ลองทำการเปลี่ยน Unit Test ให้มีค่าตามที่ทาง View ส่งมาก็ปรากฏว่าความแตกต่างอยู่ตรงที่ ทาง view ไม่มีการส่ง GroupID มาด้วยส่งมาแต่ Group Name เลยทำให้ไม่สามารถ publish Commentary ได้ ตอนแรกไม่เห็นค่าที่ส่งมาเพราะว่าไปเปิดการดู log ไม่หมด = = งมอยู่ตั้งนาน

เพิ่มเติม

– Using Service Trace Viewer for Viewing Correlated Traces and Troubleshooting

Service Trace Viewer Tool (SvcTraceViewer.exe)

16.16

ตอนนี้กลับมานั่งที่โต๊ะ (ช่วงนี้แพร์คู่พี่ปัด เลยไปทำงานที่โต๊ะพี่ปัด) พอมานั่งไม่นานก็ได้รับอีเมล์จากทางรอยเตอร์ว่าจะมีนัดคุยกัน

When: 30 April, 2009 10:00-11:00 (GMT+07:00) Bangkok, Hanoi, Jakarta.
Where: TH UCL 35 Oxford Room (5)
Agenda
– Tech Check
– Presentation

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

เริ่มต้นการเตรียมพรีเซนต์ด้วยการไปดูว่าได้ทำอะไรไปบ้างก็เลยไปอ่านบล็อกของตัวเองที่เขียนไว้ ก็เลยเกิดความสงสัยในส่วนของวันที่มี Retrospect ว่าทำไมต้อง 5 Whys ด้วย ตอนแรกถามพี่ตาร์ แล้วพอดีพี่ปอมเดินมาก็เลยถามพี่ปอมอีกที พี่เค้าเลยให้ลองหาคำว่า 5 whys ดู อ่านๆดูก็พอจะสรุปได้ว่าที่ต้องมี 5 Whys เป็นกระบวณการที่เราใช้วิเคราะห์หา root cause ซึ่งจริงๆแรกเริ่มเลยเกิดจากบริษัทโตโยต้าที่ใช้เป็นองค์ประกอบหลักในการแก้ไขปัญหา และการที่จะมีการถามคำถามทำไม 5 ครั้ง ทำไมไม่ 4 ครั้ง หรือ 6 ครั้งก็เนื่องจาก ” it is postulated that five iterations of asking why is generally sufficient to get to a root cause” หรือสมมุติฐานเอาว่าในการถามทำไม 5 ครั้งก็เพียงพอแล้วในการหา root cause

เพิ่มเติม 5 Whys

Determine The Root Cause: 5 Whys

5 Whys – Wikipedia, the free encyclopedia

How Do You Find Root Causes?

เทคนิคการตั้งคำถาม 5 whys « Jordy22’s Weblog

TPA Writer: แบ่งปันความรู้ สู่กันและกัน

17.00 Scrum

17.30 Back Home

Leave a comment