Engineer Principles คือสิ่งที่ชาว THiNKNET Engineer ยึดถือเป็นแนวทางปฏิบัติ เพื่อให้ทุกคนมองเห็นเป้าหมายและแนวทางเดียวกัน โดยที่ Engineer Principles เกิดจากการร่วมมือของทุกคน ที่ได้มีส่วนร่วมออกความเห็นและช่วยกันสร้างขึ้นมาจากปัญหาที่เคยเจอ, ข้อตกลงร่วมกัน, ไอเดียที่ได้จากการทำงาน และความต้องการผลักดันคุณภาพและความคิดสร้างสรรค์ในการทำงานให้เป็นหนึ่งเดียว มาดูกันว่ามีอะไรบ้าง
1. The Great Software Comes with Great Responsibility
รู้ให้รอบ มองให้ครอบคลุม เพราะทุกการแก้ไขมีผลกระทบเสมอไม่ว่ามากหรือน้อย และ เพื่อให้คุณภาพของ Software ที่ออกไปถึงมือผู้ใช้อย่างถูกต้องและใช้งานได้ดี การทดสอบจึงต้องถูกออกแบบและตกลงเอาไว้ร่วมกันตั้งแต่แรกเพื่อให้ทีมพัฒนาเห็นภาพและใช้ในการทดสอบความถูกต้องได้ตลอดการพัฒนา เราจะให้ความสำคัญกับการออกแบบการทดสอบไม่ยิ่งหย่อนไปกว่าการออกแบบ Business Logic และพัฒนาวิธีการจัดการกับการทดสอบอยู่เสมอ
2. Be Like a Championship Team
การร่วมมือกันคือกุญแจสู่ความสำเร็จ ทุกคนมีความเป็นส่วนหนึ่งของทีมไม่ได้แบ่งแยกขาดจากกัน เราจะยึดเป้าหมายเป็นหลัก และร่วมมือกันเพื่อเป้าหมายเดียวกัน สื่อสารกันได้แบบตรงไปตรงมา มีข้อตกลงที่ชัดเจน
3. Eliminate Toil and Do the Automation
อย่ามัวงมกับงานปริมาณ ทำ automation ซะ!
-
กำจัดงานที่ต้องทำซ้ำ ๆ ด้วย automation tools
-
บางครั้งการทำบางอย่างด้วยมือง่ายและเร็วกว่าการสร้าง automation ขึ้นมาทำ แต่ถ้าต้องทำซ้ำ ๆ หลายครั้ง การลงแรงกับการทำ automation จะทำให้จัดการได้เร็วกว่าในระยะยาว
-
การทำแบบ manual บางอย่างที่มีขั้นตอนซับซ้อน หลงลืมง่าย เกิด human error ได้ง่าย การทำ automate หรือสร้าง script ไว้จะช่วยลดการผิดพลาดในการทำงานครั้งต่อๆไปได้
-
คำนึงถึงการ monitoring , tracking , observation อยู่เสมอ เพื่อลดการเจอปัญหาหรือข้อมูลที่สำคัญล่าช้าเกินไป
4. Make It Smart and Simple
ลดความซับซ้อนที่ไม่จำเป็น
-
ลดความซับซ้อนของ process ที่ไม่ได้ใช้งานแล้ว หรือไม่สำคัญเพื่อให้คล่องตัวมากขึ้น
-
ส่วนสำคัญของการ simplify คือการวิเคราะห์ถึงผลกระทบ , performance , usability , resource และความเหมาะสมในแง่มุมต่าง ๆ เป็นอย่างดีแล้ว
-
ทำให้เข้าใจง่ายทั้งโครงสร้างข้อมูล , architecture , โครงสร้าง logic
-
ทำให้มนุษย์เข้าใจได้ง่ายขึ้น ทำให้ debug ง่าย และคนอื่นๆนำไปพัฒนาต่อได้ง่ายด้วย
5. Make Decision by Information
ใช้ข้อมูลช่วยคิดตัดสินใจ เก็บให้ได้ ใช้ให้เป็น
-
Start with Why - รู้ที่มาที่ไปก่อนเริ่มหาไอเดีย
-
ออกแบบเป้าหมายการวัดผลและเก็บข้อมูลก่อนเริ่มลงมือพัฒนาซอฟต์แวร์ทุกรอบการทำงาน
-
ข้อมูลมหาศาลมีราคาแพง แต่ข้อมูลมหาศาลที่ไม่ถูกเก็บ แพงกว่า
-
วัดผลด้วยข้อมูล แก้ปัญหาด้วยข้อเท็จจริง
6. Continuous Improvement, Be the Better
ทุก ๆ ความยิ่งใหญ่ เริ่มจากจุดเล็ก ๆ เสมอ การได้ก้าวทีละขั้นและพัฒนาไปข้างหน้าอย่างต่อเนื่องทีละน้อยทำให้เราเรียนรู้และปรับเปลี่ยนได้คล่องตัวกับสถานการณ์มากขึ้น
-
สร้างซอฟต์แวร์ที่ใช้งานได้เป็นก้อนเล็ก ๆ แล้วค่อยเพิ่มทีละน้อย ยิ่งก้อนเล็กยิ่งความเสี่ยงน้อยและทดสอบไอเดียได้เร็ว
-
Optimize และมองหาจุดพัฒนาอยู่เสมอ
-
Quality over quantity เน้นประสิทธิภาพ มากกว่าปริมาณ
-
พัฒนาองค์ความรู้ใหม่ๆ ลองเอาของใหม่ๆ มาประยุกต์ใช้บ้างก็ได้
-
เป็นตัวเองในเวอร์ชันที่ดีขึ้นเรื่อย ๆ ในแต่ละวัน
-
ให้ความรู้และผลักดันให้เกิดการเปลี่ยนแปลงได้เสมอเมื่อเจอสิ่งที่ดีกว่า
7. Be Creative, Be Different, Be Brave
คิดอย่างสร้างสรรค์ กล้าคิดนอกกรอบ และกล้าที่จะออกไปลองผิด ลองเจอปัญหาใหม่ ๆ เพื่อได้เรียนรู้อะไรใหม่ ๆ
-
ลองแก้ปัญหาด้วยวิธีใหม่ ๆ ไม่จำเป็นต้องเชื่อในวิธีเดิมๆเสมอไป
-
การยิงคำถาม challenge กันในที่ประชุมจะทำให้เราได้ทางออกที่ดีขึ้นมากกว่าการทำตามแค่ไอเดียคนใดคนหนึ่ง
-
เคารพความคิดเห็นที่แตกต่าง หรือ challenge ที่เกิดขึ้น จะทำให้การนำเสนอไอเดียใหม่ๆ แข็งแรงมากยิ่งขึ้น
-
เรียนรู้จากความผิดพลาดไปด้วยกัน ไม่จำเป็นต้องกล่าวโทษคนที่ทำผิดพลาด
-
เราไม่คิดว่าจะมีใครทำผิดพลาดโดยเจตนาไม่ดี
-
หาทางออกร่วมกัน เมื่อเกิดข้อผิดพลาดหรือปัญหา
-
ความผิดพลาดเกิดขึ้นได้เสมอแม้อาจจะเป็นความผิดพลาดง่าย ๆ
8. Accept All Problems
รับฟังทุกปัญหาอย่างตั้งใจ เรียนรู้และปรับตัว จัดการกับทุกปัญหาโดยเริ่มจากการเข้าใจและยอมรับมัน โฟกัสที่การปรับปรุง ไม่กล่าวโทษกัน
-
Feedback is a gift
-
ปัญหาของ user คือปัญหาของเรา
-
ไม่มีวิธีการใดแก้ปัญหาทุกอย่างได้ 100%
-
เรียนรู้และปรับตัวอยู่เสมอ
-
ไม่จำเป็นต้องแก้ทุกปัญหาพร้อมกัน ให้วิเคราะห์ลำดับความสำคัญตามความเหมาะสม
-
เลือกแก้ปัญหาอย่างเหมาะสม บางครั้งการเลือกที่จะไม่แก้ปัญหานั้นตรง ๆ อาจเป็นการแก้ปัญหาที่คุ้มค่าและตอบโจทย์ได้เช่นกัน
-
เปิดใจรับฟังอย่างเข้าอกเข้าใจ
9. Keep Learning and Sharing
การเรียนรู้มีอยู่ทุกช่วงเวลา พัฒนาตัวเองอย่างต่อเนื่อง และส่งต่อองค์ความรู้ให้กับผู้อื่น
-
หมั่นแชร์ความรู้ของตัวเอง แม้ว่าจะเป็นเรื่องเล็กน้อย ก็อาจจุดประกายการเริ่มต้นของสิ่งที่ยิ่งใหญ่
-
การแชร์ความรู้ของตัวเองเท่ากับเป็นการทบทวนและได้เรียนรู้เพิ่มเติมด้วย
-
ให้เวลากับการเรียนรู้และทดลอง จะทำให้เราใช้มันได้อย่างมีประสิทธิภาพ
-
แบ่งเวลาเรียนรู้เพิ่มเติมให้ตัวเองสักสัปดาห์ละครั้ง
-
การเรียนรู้และทดลองบางอย่างช่วยให้เราได้รู้จักและเข้าใจเทคโนโลยี เครื่องมือ หรือวิธีการใหม่ ๆ ได้มากขึ้นอยู่เสมอ เราจะมีองค์ความรู้ที่เอาไว้ใช้ในสถานการณ์ต่าง ๆ ได้กว้างขึ้น
-
ไม่จำเป็นต้องเรียนรู้แต่เรื่องใหม่ๆ เรื่องที่เป็นพื้นฐานต่างๆก็มีความสำคัญไม่แพ้กัน บางอย่างที่เราเคยรู้แต่ไม่แตกฉาน รู้แค่ทำตามคนอื่น หรือมีข้อสงสัยติดค้างอยู่ในใจ ควรหาเวลาศึกษาอย่างละเอียดถ่องแท้ มันจะช่วยให้เรานำไปแก้โจทย์ปัญหาต่างๆได้ทะลุปรุโปร่ง และต่อยอดสิ่งใหม่ๆได้อย่างมั่นใจ
-
เปลี่ยนองค์ความรู้ในทีมให้เป็นการแชร์
-
องค์ความรู้ในทีมบางอย่างสามารถนำไปเขียนเป็น blog, broadcast, sharing session เพื่อให้คนอื่นมาเรียนรู้ได้
-
“ยิ่งให้ยิ่งได้” ยิ่งแชร์ยิ่งทำให้เราได้ทบทวนความรู้เราให้แน่นขึ้น ได้พัฒนาตนเองด้าาน soft skill ทั้งการเขียน การทำ presentation และการพูดใน public ได้ยกระดับความมั่นใจในตัวเองไปอีกขั้นหนึ่ง
-
ไม่จำเป็นต้องรู้ทุกอย่างทะลุปรุโปร่งก็เป็นคนแชร์ได้ เพราะการแชร์ จะได้ข้อมูลจากผู้ฟังได้ด้วยเช่นกัน
-
การเรียนรู้มีหลายรูปแบบไม่จำเป็นต้องยึดติดกับวิธีการเดิม ๆ หาวิธีที่เหมาะกับตัวเองให้เจอ
10. Work-Life, Harmonized
ให้ความสำคัญกับสมดุลชีวิตและการทำงาน
-
บางครั้งการผ่อนคลายก็คือการปิดคอมฯ แล้วออกไปมองโลกข้างนอกในช่วงเวลาที่ไม่เคยออกดูบ้าง
-
ลดการประชุมที่ไม่จำเป็น ใช้การสรุปเป็นเอกสารหรือ message แทนจะช่วยให้ไม่เสียเวลาประชุมโดยไม่จำเป็นได้
-
หากมีเรื่องไหนที่อยากให้ช่วย คุยกันได้เสมอ
-
ทำกิจกรรมอื่น ๆ ร่วมกันกับทีมนอกเหนือจากเรื่องงานบ้าง
-
ค้นหาตัวเองได้ตลอดเวลา ลองใช้เวลากับสิ่งใหม่ อาจพบสิ่งที่ใช่สำหรับตัวเอง อย่ารอให้ Burn Out
หากใครที่สนใจทำงานแบบ Work from Anywhere
มาร่วมงานกับ THiNKNET from Anywhere และดูตำแหน่งงานทั้งหมดได้ ที่นี่