แวะไป Thailand Practical Software Engineering Conference 2015 มา #TPSE2015

งานนี้มีหลายหัวข้อที่น่าสนใจอยากเข้าฟัง แต่แยกร่างไม่ได้ ต้องเลือกตามที่สนใจมากที่สุดแล้วสรุปแบบโคตรสั้นได้ตามนี้

You Are Not Alone: Reflection on Global Software Development Industry โดยคุณ Tamara Nation จาก Rally Software

Tamara on You Are Not Alone: Reflection on Global Software Development Industry at TPSE 2015
ยุคสมัยนี้บริษัทจะอยู่รอดได้ต้องมีการตอบสนองต่อการเปลี่ยนแปลงที่รวดเร็ว การตลาดของบริษัทต้องปรับเปลี่ยนไปให้เร็วตาม การที่จะทำแบบนั้นได้สิ่งสำคัญคือเราต้องโฟกัสที่ value และ release บ่อยๆ เพื่อให้ได้ feedback กลับมาในเวลาอันรวดเร็ว

Machine Learning in Agoda โดยคุณ Uri Weiss จาก Agoda

Weiss on Machine Learning in Agoda at TPSE 2015

ที่ Agoda มีทีม data scientist อยู่ case study หนึ่งที่เอามาบอกเล่ากันคือการนำเอา machine learning ไปใช้กับการ bid ของ Google AdWords กล่าวคือเวลาที่ผู้ใช้ search ข้อมูลที่พักจาก Google แล้ว Agoda จะหาที่พักแล้วพยายามทำให้ rank ของผลลัพธ์จากการ search ไปอยู่ rank ต้นๆ เนื่องจาก Agoda มีคู่แข่งหลายบริษัท ดังนั้นการที่ทำให้ผลลัพธ์จากการ search มี Agoda อยู่ใน rank ที่สูงกว่าคู่แข่งนั้นย่อมเป็นเรื่องที่ดี

การนำเอา machine learning มาใช้ในส่วนนี้ทำให้ลดค่าใช้จ่ายไปได้เยอะเลยทีเดียว ยกตัวอย่างเช่น ถ้ามีคำว่า bangkok ในการ search เยอะๆ แล้วโรงแรมที่ผ่านการ search ด้วยคำๆ นี้สามารถเพิ่มยอดการจองได้ ทางทีมก็จะนำข้อมูลพวกนี้ไปเพิ่ม bid ให้สูงขั้นใน AdWords

Better Deliver with DevOps Driven Development โดยคุณ Jirayut Nimsaeng (เดียร์) จาก Kaidee

Jirayut on Better Delivery with DevOps Driven Development at TPSE 2015

คุณเดียร์กล่าวว่า DevOps ควรจะเป็นคนๆ หนึ่งที่เป็นทั้ง software engineer และ infrastructure engineer โดยมีวิธีคิดแบบทั้ง dev และ ops มีหน้าที่คือเรียนรู้ business ของบริษัทตั้งแต่การพัฒนาไปจนถึงการส่งมอบ แล้วได้แบ่งขั้นตอนการเริ่มต้นพัฒนาเพื่อการส่งมอบที่ดีขึ้นออกเป็น 3 ขึ้นคือ

  1. ขั้นการวางแผน คือการจ้างคนมาทำตำแหน่งนี้เลยจะได้โฟกัส หรือพัฒนาคนขึ้นมาทำตำแหน่งนี้เอง แล้วก็ลองออกแบบ development flow ในอุดมคติขึ้นมา
  2. ขั้นการปฏิบัติ คือให้ลองทำโปรเจคแบบ pilot ขึ้นมาสักโปรเจคหนึ่ง โปรเจคนี้จะต้องมีขนาดเล็กที่สามารถทำ development flow แบบในอุดมคติที่คิดขึ้นมาได้ ต้องทำออกมาจริงๆ
  3. ขั้นตอนการขยับขยาย คือทำ knowledge sharing หรือลองให้งานของ DevOps ให้คนอื่นลองทำบ้าง
ใครสนใจเรื่อง DevOps ลองดูจากสไลด์เพิ่มเติมนะครับ

Thailand Big Data User Group #1

จัดโดย อ.​ Thanachart Numnonda ที่ Q.House ลุมพินี วันที่ 9 ม.ค. 2558 มีผู้เชี่ยวชาญทางด้าน Big Data มาร่วมด้วยคือ John Berns กับ Axel Winter มาร่วมวงด้วย งานนี้เกิดขึ้นค่อนข้างกะทันหัน แต่ก็จัดออกมาได้ดี อ. คุมเวลาได้น่าประทับใจมาก (ปกติงานแบบนี้จะลากยาว) จากที่ออกจากกะลาไปนั่งฟัง เขียนออกมาตามความสนใจส่วนตัวได้ตามนี้

  • Hadoop จากเวอร์ชั่น 1.x ไปเวอร์ชั่น 2.x มีการเปลี่ยนแปลงเยอะมาก เปลี่ยนไปแบบยกเครื่อง เวอร์ชั่น 1.x นั้นเวลาทำอะไรกับข้อมูลที่ Hadoop Distributed File System (HDFS) จะต้องผ่านส่วน MapReduce ก่อน แต่เวอร์ชั่น 2.x จะมี YARN มาทำหน้าที่เป็น Cluster Resource Management ทำให้อะไรๆ ก็ไม่ต้องขึ้นอยู่กับส่วนของ MapReduce อีกต่อไป ลองดูภาพข้างล่าง

    Hadoop Stack
    Hadoop Stack (credit: annovate.blogspot.com)
  • Hadoop ทั้งสามารถเป็นทั้ง Data Storage และสามารถนำไปใช้ประมวลผลได้ด้วย การใช้ Hadoop นั้นสามารถลดค่าใช้จ่ายได้เป็นอย่างมาก ถ้าเทียบกับการเก็บข้อมูลแบบปกติ แต่ที่น่าสนใจอย่างหนึ่งคือ Cloud Storage อย่าง S3 ของ AWS Amazon ยังคงมีค่าใช้จ่ายที่ถูกกว่า -- มาถึงตรงนี้ก็เกิดคำถามขึ้นมาในใจว่า แล้วเราจะเลือกใช้อะไร? ระหว่างจะตั้ง Hadoop Cluster เอง หรือว่าไปทำบน AWS Amazon ลองอ่านความคิดเห็นจาก What are the advantages of Amazon EMR, vs. your own EC2 instances, vs. running Hadoop locally? ดู จริงๆ แล้วมันก็ trade-off กันเนอะ การคำนึงถึง long-term solution ของธุรกิจของเราให้มากๆ แล้วก็การลองผิดลองถูกอาจจะช่วยตัดสินใจได้
  • Apache Drill เป็นตัวที่เกิดมาใหม่ คล้ายๆ Hive คือ เป็น Query Engine เหมือนกัน แต่มีความสามารถอย่างหนึ่งคือ Schema Discovery On-The-Fly นั่นคือเราไม่ต้องกำหนด Schema ให้กับข้อมูลก่อนเหมือนอย่าง Hive ซึ่งแน่นอนว่าฝ่าย Business สามารถย่นระยะห่างระหว่างตัวเองกับข้อมูลมากขึ้น ทำให้ Agile มากขึ้น แล้วก็ช่วยลดภาระทางฝั่ง IT ด้วย (ถ้าเป็น Hive ฝั่ง IT อาจจะต้องช่วยกำหนด Schema ให้)
  • Query Engine หมายความว่า Query อย่างเดียว 🙂 ไม่มี INSERT UPDATE หรือ DELETE
  • ตอนท้ายเป็น Open Discussion มีการอ้างถึง Use Case ต่างๆ บริษัทต่างๆ มีการปรับเปลี่ยนอย่างไรให้ทัน Technology ที่เกิดขึ้นใหม่มาแทบทุกวัน การตัดสินใจจะขึ้นอยู่กับข้อมูลแล้ว ไม่ใช่ขึ้นอยู่กับการมโนหรือการวางแผนเอาเอง เราอาจจะต้องลงทุนกับเวลาที่เสียไปเพื่อเลือก Technology ที่ใช่
  • มีการอ้างถึงคำพูดของ Amr A. Awadallah, CTO ของ Cloudera ว่า "Data goes to tape archives to die." สื่อออกมาประมาณว่า ข้อมูลที่โดน Archive ไปแล้ว จะค่อนข้างยาก หรืออาจจะมีค่าใช้จ่ายไม่ว่าจะเป็นทางด้านการเงินหรือเวลา ที่จะดึงกลับมาใช้งานหรือ Query ขึ้นมาได้อีก
  • เมื่อก่อน เนื่องด้วยข้อจำกัดทางด้านต่างๆ เวลาเราจะประมวลผลทางสถิติ หรือพัฒนาอัลกอริธึม Machine Learning ขึ้นมา เราจะ Sampling ข้อมูลมาแค่ส่วนหนึ่งเท่านั้นเพื่อมาแทนข้อมูลทั้งหมด แต่จะดีกว่าเยอะมากๆ ถ้าเราสามารถเอาข้อมูลทั้งหมดมาประมวลผลได้ ซึ่งสมัยนี้สามารถทำได้แล้ว Hadoop เป็น Technology หนึ่งที่ทำให้เราทำแบบนั้นได้
  • การเลือก Partner มาช่วยเรา ให้เลือก Partner ที่สามารถแนะนำเราได้ว่าอะไรคืออะไร แนะนำข้อดีข้อเสียได้ แต่อย่าไปเลือก Partner ที่มาบอกให้เราทำอะไร ซึ่งธุรกิจของเรา ข้อมูลของเรา ตัวเราเองเท่านั้นที่รู้ดีว่าควรจะทำอะไร
  • เทรนด์ในประเทศไทย ณ​ ตอนนี้ บริษัทต่างๆ เริ่มมีการนำ Hadoop เข้ามาใช้งานแล้ว แต่ส่วนใหญ่ยังใช้แค่เพื่อเก็บข้อมูลอยู่
  • ถ้าอยากเริ่มต้นศึกษาเรียนรู้ใช้แค่ Virtual Machine ก็สามารถเริ่มต้นได้แล้ว ไม่จำเป็นต้องรอให้มี Cluster จริงๆ เสียก่อน

จริงๆ มีเยอะกว่านี้แต่คงเขียนไม่ได้ออกมาหมด ใครสนใจลองเข้าไปติดตามเฟสบุคเพจ IMC Institute ต่อนะ ได้ยินมาว่าสไลด์ในงานจะโพสต์ไว้ที่นั่นครับ

ข้อสังเกต ในงานนี้ผมได้ยินคำว่า "Agile" บ่อยมาก ทั้งๆ ที่ไม่ใช่งาน Agile คำๆ นี้มันไปอยู่ทุกหนทุกแห่งจริงๆ 🙂

สรุปโคตรสั้นกับหัวข้อที่ไปฟังมาในงาน Agile Tour Bangkok 2014 #AgileTourBKK

คำเตือนก่อนอ่าน ผมยกมาแค่บางส่วนของแต่ละหัวข้อเท่านั้น~ รายละเอียดจริงๆ คอยติดตามจากสไลด์ของแต่ละท่านนะครับ ดูได้จากลิ้งค์ตอนท้ายของบทความนี้ ถ้าอ่านคำเตือนกันเรียบร้อยแล้วก็เชิญอ่านต่อได้จ้า

Scrum and Waterfall from the view of Plato and Aristotle โดย Fredrik Carleson

fredrik-agiletourbkk2014-scrum-philosophy

เมื่อ 2500 ปีก่อน ก็มีแนวคิดของ Agile หรือ Scrum กับ Waterfall เกิดขึ้นแล้วนะ อย่างแนวคิดของพลาโต้จะเน้นความคิดเป็นหลัก ความคิดสมบูรณ์จะไม่เปลี่ยนแปลง จะออกแนว Waterfall ที่ประมาณว่าความต้องการของลูกค้าจะไม่เปลี่ยนแปลง การพัฒนาระบบก็จะไปได้อย่างราบรื่น ส่วนแนวคิดของอริสโตเติ้ลจะแตกต่างไป แนวคิดนี้จะไม่บอกให้เชื่อแนวคิดของตัวเราเอง จะเน้นให้ออกไปทดลองทำจริง แล้วกลับมาพัฒนาแก้ไข..​ ซึ่งแนวคิด Scrum ก็เป็นเช่นนั้น

Practical Guide for First Time Product Owners โดย Alex Phelps

alex-agiletourbkk2014-po-guide

Product Backlog เป็นอาวุธที่ Product Owner (PO) จะนำเสนอแนวคิดให้กับทีมให้เข้าใจ อเล็กมีวิธีการสร้าง Product Backlog ที่ค่อนข้างจะแตกต่างจาก PO ทั่วไปคือ

  1. เก็บเกี่ยว หรือศึกษาแนวคิดต่างๆ โดยการ คุยกับ Stakeholder คุยกับ User รวมไปถึงการลองใช้ระบบของคู่แข่ง
  2. วิจัยทางด้านเทคนิค หรือทำ Spike เพื่อดูความเป็นไปได้ และดูว่าตรงความต้องการหรือเปล่า ก่อนที่จะเขียน User Story
  3. เขียน User Story เพื่อสื่อสารกับทีม
  4. สร้าง Prototype ทำ Basic UX Design รวมไปถึงทำ Mockup แบบจับต้องได้ เพื่อให้ทีมได้เข้าใจความต้องการมากขึ้น

สิ่งที่ PO ไม่ควรทำ เช่น อย่าตอบตกลงเพื่อที่ทำให้ลูกค้าพอใจ อย่าพลาดการประชุมบ่อยๆ อย่าเปลี่ยน requirement ตอน last minute ส่วนสิ่งที่ควรทำ เช่น ให้คอยบริหารจัดการความคาดหวังจาก Stakeholder อยู่ตลอดเวลา จัดการ Product Backlog ทุกวัน แล้วก็พยายามทำตัวให้ว่างเพื่อทีมจะได้ถามคำถามต่างๆ

Abstraction Is A Communication Tool, Period. โดย Terry Yin

terry-agiletourbkk2014-abstraction

คนส่วนใหญ่จะพยายามที่จะเอา Abstraction มาแก้ปัญหา ใช้เป็น Solution แต่จริงๆ แล้ว Abstraction นั้นเป็นแค่เครื่องมือในการสื่อสาร เราควรจะใช้แค่นั้น

Do and Don’t for Continuous Delivery โดย Michael Athiwat Wongwaisayawan

michael-agiletourbkk2014-cd

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

michael-agiletourbkk-2014-devops

ส่วน Panel Discussion นั้น.. ไม่ได้เข้าครับ แหะๆ

ปล. ดูตารางงานได้ที่  Agile Tour Bangkok 2014 Schedule
ปล. อีกรอบ สไลด์ของแต่ละหัวข้อจะอยู่ที่ Agile Tour Bangkok 2014 Slides

ฝึกงานที่ Pronto Tools

ลองนึกย้อนกลับไปว่าตอนเราเรียนอยู่ปี 3 แล้วทาง ม. ให้เราออกไปฝึกงาน คำถามมากมายจะเข้ามาในหัวทันที ว่าบริษัทไหนดี? บริษัทชื่อดังๆ บริษัทใหญ่ๆ น่าจะดีกว่าไหม? เข้าไปเราจะได้เรียนรู้งานของเค้าจริงๆ หรือเปล่า? ไม่จบไม่สิ้น และสุดท้ายก็จะมีคำถามที่เราจะถามตัวเองบ่อยๆ ว่า เราได้อะไรจากการฝึกงานนี้บ้างนะ?

ฟังจากเสียงบ่นส่วนใหญ่แล้ว.. หลายคนเลยจะเข้าไปนั่งว่าง เล่นเนท แชท ตบยุง ชงกาแฟ ปริ้นท์หนังสือ ฯลฯ ใช่ไหม? เหตุผลหนึ่งที่ทำให้เป็นแบบนี้ก็น่าจะเพราะว่าเค้า "ไม่เชื่อใจเด็กฝึกงาน" แต่นั่นเป็นสิ่งที่พวกเรามองต่างออกไป เรามองว่าเค้าเชื่อใจเรา เค้าคาดหวังกับเรา เค้าถึงมาฝึกงานกับเรา เราก็ต้องเชื่อใจเค้าเช่นกัน และให้ทุกอย่างแก่เค้าเท่าที่เราให้ได้ ไม่มีกั๊ก 🙂

ที่นี่ Pronto Marketing กับทีม Research & Development (ตอนนี้เปลี่ยนเป็น Pronto Tools) เราเปิดโอกาสให้น้องๆ ทุกคนได้เรียนรู้ ได้ร่วมทีมกับเรา และได้ทำงานจริงๆ ที่นี่เราทำงานกันแบบ Agile เรามี Agile Coach ประสบการณ์สูง เรามีทีมที่ดี เรามี work-life balance เราเฮฮา เราสนุกกับงาน ลองอ่านบล็อกของน้องๆ ที่น่ารักที่เคยมาฝึกงานกับเราดูสิ 😀

อยากลองสมัครดูไหม? เชิญที่ Junior Software Engineer Intern

มาร่วมสร้าง Agile66 Stack เว็บตอบคำถามเกี่ยวกับ Agile ภาคภาษาไทย

Agile66 Stack invitationรูปจากกลุ่ม Agile66

บล็อกนี้ขอเชิญชวนทุกคนในวงการ IT มาร่วมกันสร้างสังคม Q&A ออนไลน์ Agile66 Stack กันครับ ซึ่งจะเป็นเว็บถามตอบคำถามทุกปัญหาเกี่ยวกับการพัฒนาซอฟต์แวร์แบบ Agile ภาคภาษาไทย ซึ่งตอนนี้ตัวเว็บยังอยู่ในส่วนของ Area 51 อยู่

Continue reading "มาร่วมสร้าง Agile66 Stack เว็บตอบคำถามเกี่ยวกับ Agile ภาคภาษาไทย"