Blog Archives

3 ข้อที่จะทำให้คุณเป็นนักพัฒนาที่ใครก็อยากได้ไปทำงานด้วย

หลายวันก่อนมีคนถามผมว่าอะไรที่เค้าควรจะใช้เป็นแนวทางในการหานักพัฒนาที่ยอดเยี่มมเข้าสู่ทีมงาน เลยมีโอกาสได้นั่งคิดตอนอยู่บนเครื่องบินหลังจากกลับจากงาน อไจล์สิงคโปร์ ความยากคือเค้าไม่ต้องการนักพัฒนาธรรมดาแต่ต้องการนักพัฒนาที่ยอดเยี่ยม นอกเหนือจากคุณลักษณะพื้นฐานที่นักพัฒนาทุกคนควรมี โดยน้อง Weerasak ในฐานะที่ต้องสัมภาษณ์พี่ๆน้องๆ และเพื่อนๆที่ทำงานด้วยกัน เลยอยากแบ่งปันซักสามข้อที่จะทำให้เป็นนักพัฒนาที่ใครก็อยากให้ไปทำงานด้วย 1. ทำงานเป็นทีมได้ ฟังดูเหมือนง่าย แต่การทำงานเป็นทีม คือการยอมรับข้อแตกต่างของทีมให้ได้ และยอมที่สละจุดยืนของตัวเองบ้างเพื่อให้เพื่อนๆได้มีโอกาสนำเสนอผลงานที่ทกคนสามารถยอมรับได้ ในโลกทุกวันนี้หมดยุคของโคดที่ดีที่สุดเพราะเหตุว่า ความเร็วของฮาร์ดแวร์ที่ทำให้โคดที่เร็วและเจ๋งที่สุด ไม่ได้เร็วไปกว่าโคดที่ทุกคนในทีมยอมรับได้ และทำงานต่อเนื่องกันอย่างคล่องแคล่ว 2. มีความสามารถในการเขียนโคดได้หลากหลาย จากประสบการณ์ตรงนักพัฒนาที่ดีมีอาวุธที่ใครๆอาจมองไปเรื่องของความเก่งกาจ แต่หากแท้จริงในการแก้ปัญหาของนักพัฒนานั้น ต้องสามารถเขียนโคดได้หลากหลาย เพื่อตอบสนองความต้องการที่แตกต่างกัน ความหลากหลายในที่นี้คือ ควรจะเขียนรูปแบบของภาษาได้อย่างน้อยสามรูปแบบ ได้แก่   ภาษาที่ต้อง Compile ให้ความเร็วสูง และสามารถสเกลได้ง่าย เช่น C/C++, C#, Java  ภาษาเหล่านี้จะทำคุณขยายขอบเขตความสามารถของ Application แบบก้าวกระโดดได้

Tagged with:
Posted in Developer, Software

วิธีสร้างผลิตภัณฑ์ที่ใครๆก็อยากใช้ และบอกต่อ

นอกเหนือจากผู้อำนวยการโครงการนาซ่า ที่จะมาแบ่งปันเรื่องราวเกี่ยวกับวิธีการที่ส่งยานสำรวจดาวอังคาร ที่ส่วนตัวอยากรู้ว่าต้องทำอะไรบ้าง เคล็ดลับความสำเร็จ หนี่งในหัวข้อที่มีโอกาสได้รับเกียรติให้ไปแบ่งปันในงาน Thailand Practical Software Engineering ที่จะจัดขึ้นในวันที่ 2ๅ-22 พฤศจิกายน 2556 (ลงทะเบียนฟรี) เราจะมาพูดคุย แบ่งปัน ว่าทำไมหลายครั้งเราเห็นผู้นำที่สุดยอด เป็นที่ยอมรับของน้องๆ และหลายคนที่เรารู้จักก็ผลิตงานแบบอไจล์ กล่าวคือ ผลิตงานออกมาได้ทุก 2-4 สัปดาห์ ออกสู่ตลาด ยังไม่พอทีมเหล่านี้ใช้เทคโนโลยีล่าสุดที่ดีที่สุดที่มีในตลาด หากแต่ว่า หลายครั้งเรากลับเห็นว่า ลูกค้าไม่เล่นด้วย กับทีมที่สร้างผลิตภัณฑ์เหล่านี้ คงเป็นเรื่องยากที่จะตอบว่าทำไม เพราะหลายครั้งเรามักคิดว่า ทีมที่ทำงานได้ดีจะสามารถสร้างผลิตภัณฑ์ที่ลูกค้าอยากใช้ และอุดหนุน หรือแม้แต่บอกต่อ  หากแต่จากประสบการณ์จริง ทีมที่ดีนั้นสำคัญ แต่ก็มีวิธีการที่เราสามารถเอาไปใช้ได้จริงที่ได้ลองปฎิบัติมาแล้ว ล้ม ลุก คลุก คลาน

Tagged with:
Posted in Business, development, Leadership, Product, Software

การสร้างสถาปัตยกรรมบนพื้นฐานของความไม่แน่นอน

สิ่งที่เรียนรู้จากงาน อไจล์สิงคโปร์ จาก Architecture of Uncertainty, Kevlin Henney พอจับใจความได้คร่าวๆคือ เริ่มออกแบบจากสิ่งที่ยากที่สุด หลายต่อหลายครั้งเรามักไปทำส่วนที่ง่ายที่สุด แล้วค่อยย้อนไปมองส่วนที่ยากที่สุด แต่ในมมของ Kevlin คือ ต้องสร้างสถาปัตย์เหมือนกับการสร้างบ้าน คือคิดในส่วนที่เป็นรากฐานของบ้านให้ดี แล้วค่อยไปโครงสร้างชั้นถัดไป ทุกคนที่มีส่วน ไม่ว่าจะเป็นคนสร้างโคด หรือ แม้แต่คนที่มีอิทธิพลต่อโครงสร้างไม่ว่าทางใด ทางหนึ่่งเป็นนักสถาปัตยกรรมหมด ตำแหน่งหรือว่าคนเป็นแค่ตัวแทนของคนที่รวบรวมเพื่อให้ทุกคนเห็นภาพเดียวกัน การสร้างสถาปัตยกรรมเหมือนกับปรากฏการณ์ทางวิทยาศาสตร์ที่เรียกว่า Big bang ตอนเริ่มต้น เริ่มจากเล็กๆมากแต่พอขยายมันกลายโลกอย่างที่เราเห็นทุกวันนี้ เช่นเดียวกับการเขียนโคด วันแรกเราอาจไม่ได้คิดอะไร แต่เราอาจกำลังสร้างกับดักให้กับตัวเองในอีกสิบปีถัดไป การทำสถาปัตยกรรมแบบที่เรารู้จักกันดี คือ วิเคราะห์ ออกแบบ เขียนโคด และ ทดสอบ ใช้ไม่ได้กับซอฟ์ตแวร์

Tagged with:
Posted in Architecture, Coaching, Software