ทักษะประจำกาย Developer #4 – Eating your own dog food

แปลตรงตัว การกินอาหารหมาของตัวเอง
เป็นคำเปรียบเทียบว่า ถ้าเราทำอาหารหมา เราก็ควรกินอาหารหมาที่เราทำ จะได้รู้ว่าอร่อยรึเปล่า

แต่จริงๆเป็นการเล่นคำในวงการ software development ว่า การที่เราสร้าง Product อะไรมานั้น เราในฐานะผู้ใช้สร้าง ก็ควรจะใช้งานมันด้วย และที่สำคัญถ้าใช้ในชีวิตประจำวันได้เลยยิ่งดี ซึ่งแนวคิดนี้จะทำให้ Product/Software ที่พัฒนาออกมาได้รับ feedback ที่เร็วขึ้น รวมทั้งได้แง่มุมจากการใช้งานจริงของคนภายใน ก่อนที่จะส่ง Product ออกไปให้ User ใช้

แนวคิดนี้เปลี่ยนมุมมองของการพัฒนา software เลยนะ ผมว่า
เนื่องจากปกติแล้ว Developer จะชอบจดจ่อแต่กับการเขียน Code และเขียนให้เสร็จ แต่จะชอบละเลยการทดสอบ(Test) ซึ่งปกติ Developer จะ Test โดยสนใจผลลัพธ์ของ software ว่าทำงานถูกต้องรึเปล่า(ซึ่งนั่นก็เป็นข้อดี) แต่อีกมุมหนึ่งซึ่งเป็นหัวใจของการ Test ก็คือประสบการณ์ที่ดีของผู้ใช้ (User Experience)

ผมชอบแนวคิดนี้นะ จริงๆไม่ใช่เฉพาะแวดวง Software หรอกที่จะประยุกต์ไปใช้ได้ ผมว่ามันใช้ได้กับทุกผลิตภัณฑ์ เช่น

  1. ถ้าทำธุรกิจอาหาร คุณก็ควรจะกินอาหารจากฝีมือตัวเอง หรือ เซฟ ประจำร้าน อย่างสม่ำเสมอ เพราะถ้าคุณกินแล้วไม่อร่อย คุณคาดหวังจะให้คนอื่นกินอร่อยเหรอ?
  2. เซลล์ขายรถยี่ห้อ A ถ้าคุณเองดันใช้แต่รถยี่ห้อ B แล้วคุณจะแนะนำสิ่งดีๆ หรือประสบการณ์ดีๆจากรถยี่ห้อ A ได้ยังไง
  3. ถ้าคุณเปิดร้านกาแฟ แต่ตกเย็นคุณไปนั่งจิบกาแฟ s… แทนการชงเอง

ทั้งนี้และทั้งนั้น ก็อย่าลืมที่จะ Eating other dog food ด้วยนะครับ เพื่อเป็นการเปิดโลกและสร้างประสบการณ์ใหม่ๆ แล้วนำมาใช้กับชีวิตเรา 😉

ref: https://en.wikipedia.org/wiki/Eating_your_own_dog_food

ทักษะประจำกาย Developer #2 – คิดเยอะขึ้นอีกนิด

เนื่องด้วยลักษณะงานของ Developer(Dev) คือการพัฒนาระบบใหม่ๆและแก้ปัญหาของผู้ใช้ (users) การพัฒณาความสามารถของเรานั้นจะต้องใช้ความคิดในการแก้ปัญหาและการต่อยอดจากสิ่งที่มีอยู่แล้ว รวมทั้งการสร้างสรรค์สิ่งใหม่ๆให้กับคนบนโลกนี้

เราต้องเพิ่มมุมมองในการมองสิ่งต่างๆ ซึ่งปกติส่วนตัวผมจะฝึกมองและคิดสิ่งต่างๆที่เจอในชีวิตประจำวันเพิ่ม 2 มุม

  1. คิดว่ามันทำได้ยังไง
  2. คิดว่าทำยังไงให้มันดีขึ้น
ยกตัวอย่าง App – LINE ยอดฮิต เชื่อว่าคนไทยเกือบทุกคนที่มี smartphone ใช้ app นี้ โดยปกติเราอาจจะโหลดมาใช้งานทั่วไป ซึ่งก็เป็นปกติอยู่แล้ว
แต่ในมุมมองของ Dev เราคิดต่อไปเลยครับ
“มันทำได้ยังไง” – ลองคิดเลยว่าระบบของ app นี้จะเป็นยังไง ประกอบด้วยอะไรบ้าง มี database หรือว่า infrastructure อะไรบ้าง การทำ User Interface(UI) ประมาณนี้ต้องเขียน Code ยังไง คิดว่าถ้าเราต้องสร้างระบบประมาณนี้จะต้องออกแบบลักษณะไหน ซึ่งการทำแบบนี้บ่อยๆจะทำให้เราได้มี Idea ดีๆเวลาที่เพื่อต้องใช้งานจริงซักวัน
“ทำให้มันดีขึ้นยังไง” – ลองคิดดูว่า app – LINE มันขาดอะไรไป เช่น จะดีกว่านี้มั้ยถ้ามันส่งไฟล์ง่ายๆไม่ได้ หรือจะดีกว่านี้มั้ยถ้ามีระบบตอบรับอัตโนมัติ
การคิดแบบนี้บ่อยๆจนเป็นนิสัย ผมเชื่อว่าจะช่วยให้ตัวเราพัฒนาขึ้น
มาเริ่มเป็นนักคิดกันเถอะ….

ทักษะประจำกาย Developer #1 – การเรียนรู้

ในโลกที่หมุนเร็วขึ้นทุกๆวัน ทุกสายงานทุกอาชีพนั้นจำเป็นต้องเรียนรู้สิ่งใหม่ๆเสมอเพื่อพัฒนาตัวเองให้ทันยุคทันสมัย แต่ถ้าเจาะจงมาทางสาย IT หรือ Software Development ล่ะ

มันโคตรจะเร็วเลยครับ เอาง่ายๆแค่ลองมองย้อนกลับไป 10 ปีที่แล้วเราเห็นอะไรบ้าง

จาก Desktop Application => Web => Web 2.0 และมาที่ Apps

ซึ่งพื้นฐานของการพัฒนา software จริงๆแล้วก็มาจากพื้นฐานเดียวกันนั่นแหละ สิ่งที่ Developer ควรจะสนใจเป็นพิเศษคือเราควรจะต้องยอมรับการเปลี่ยนแปลงของกระแสหลัก เรียนรู้ขีดความสามารถของเทคโนโลยี และนำมาใช้ให้เหมาะสมกับลักษณะงานของเรา

การที่ Developer นั้นยึดติดกับเครื่องมือหรือภาษาที่ใช้ในการพัฒนา software นั้น เป็นเหมือนกำแพงที่จะปิดกั้นการพัฒนาศักยภาพของตัวเอง

การเรียนรู้ด้วยตัวเองในสมัยนี้ก็ง่ายจริงๆ มีทั้ง internet, e-book, youtube และะพวก online course ต่างๆ
เราอาจจะตั้งเป้าหมายว่าทุกๆเดือนเราจะเรียนรู้เรื่องต่างๆเพิ่มขึ้นก็ได้ เช่น เดือนนี้จะรู้เรื่องการเขียน app บน android, เดือนหน้าจะลองเขียนเวปด้วย nodejs, เดือนต่อไปอีกจะลองเล่น Linux ซักครั้ง

เป้าหมายในช่วงแรกอาจจะไม่ถึงขั้นเป็น expert แต่ให้เราพอที่จะมีความรู้เพิ่มเติมก็นับเป็นจุดเริ่มต้นที่ดีแล้ว

เนื่องด้วยลักษณะของสายงานของ Developer เป็นแบบนี้แล้ว ทำให้คนในแวดวงนี้อาจจะได้เปรียบคนในสายงานอื่น(มั้ง)ก็คือ เราจะตื่นตัวกับการเปลี่ยนแปลงอยู่เสมอและพร้อมที่จะเรียนรู้ตลอดเวลา ….