วันอาทิตย์ที่ 23 สิงหาคม พ.ศ. 2558

สวัสดีครับวันนี้ขอมาเสนอคำว่า Docker

สวัสดีครับวันนี้ขอมาเสนอคำว่า Docker
เพื่อนๆ คงสงสัยว่า Docker คืออะไร ไม่เคยเห็นไม่เคยคิด ( ผมก็เช่นกัน squint emoticon มันกินได้ที่ไหนละนั่น ) พอดีผมได้โจทย์จากบริษัทแห่งหนึ่งที่ผมเป็น Vendor ให้กับบริษัทแห่งหนึ่ง มีโลโก้สีแดง มีสี่ตัวอักษร ซึ่งให้โจทย์มาว่าให้ push os + config server + code ของโปรจค ให้อยู่ในรูปแบบของ Docker ถึงกับงงไปเป็นแถบ แต่ก็ศึกษามาจนถึงขั้น ใช้เป็น และเข้าใจข้อจำกัดต่างๆ ของ Docker และ จึงอยากมาแชร์ให้ สาธุชนทั้งหลาย ได้รู้จัก ให้เข้าใจคำว่า Docker ว่ามันจะมาในอนาคตแน่ๆ ผมคิดว่าน่ะ
ผมขออนุญาติสรุป ตามความเข้าใจผมน่ะครับถูกผิดไม่รู้ รู้แค่ว่าใช้แล้วมันเวิค์ก โอเคตามนี้น่ะครับ ( squint emoticon เผด็จการฟุดๆ )
1. Docker คือ vmware ที่สามารถใช้ทรัพยากรของเครื่อง Server ร่วมกัน ไม่มีการ กำหนดขนาดของ CPU , HDD , Memory ให้กับ images ก้อนใดก้อนหนึ่ง สรุปง่ายๆ คือ มันใช้ io ของ server ร่วมกับ เครื่อง Host นั่นเอง
2. Docker มีประโยชน์ ยังไง ? เหมาะสำหรับงานที่ต้องการมีหลาย ๆ service เช่น apache , nginx , mysql , memcache , redis , อื่นๆ อีกมากมาย คือเอาง่ายๆ ก็อยากมีหลายๆ service รันอยู่ในเครื่องเดียวกัน มันก็เหมือนกับ vmware นั่นแหละ แต่ว่ามันจะรันหลาย ๆ port เอาเช่น apache 80 , docker apache 81 เป็นต้น
3. Docker ให้ใครใช้ ? ก็เหมาะสำหรับทีม อะไรก็ได้ที่ยุ่งกับ Server ( Programmer , System Admin , DevOps ) ซึ่งจะช่วยให้ไม่ต้องปวดหัวเรื่อง สเป็กเซอร์เวอร์อีกต่อไป เพราะแชร์ทรัพยากรเครื่องทั้งหมดร่วมกัน หลายคนคงสงสัยว่ามันดีอย่างไรที่มันแชร์ร่วมกัน ยกตัวอย่างง่ายๆ เช่น ถ้าเป็น vmware เราคงไม่สามารถให้ vmware1 มี ram 8gb ที่เหลือใช้ มาแบ่งให้กับ vmware2 ที่มี ram 2gb ที่ไม่พอใช้ได้แน่ๆ เพราะ vmware2 จะใช้ ram 2gb ก็บางเวลา ไม่ใช่ตลอดเวลา แต่ไอเจ้า Docker มันไม่มีการ limit ram ให้กับ service ใด service หนึ่ง มันใช้ร่วมกัน ( ช้าร่วมกัน เอ้ยไม่ใช่ดิ เร็วร่วมกัน ^-^ )
4. Docker แพงไหม ? แพงน่ะครับผมว่า แพงเวลา เพราะว่าคุณต้องเรียนรู้เพราะว่ามันใหม่มาก แต่ Docker เป็น Free Service ครับ โหลดแล้วลงโล้ด
5. Docker เลวเอ้ยเร็วแค่ไหน ? ก็เหมือนเรามี Service เพิ่มก็เร็ว ตามจำนวน Service ครับ ผมมองว่า มันอาจจะไม่ได้เร็วมากมาย แต่มันจะทำให้ User ทุกคน สามารถใช้บริการที่มีความเร็วเท่า ๆ กัน โดยไม่ต้องรอคิวของ process ครับ คล้ายๆ กับการทำ load balance ให้กับ Service นั่นเองครับ
6. Docker มีข้อเสียไหม ? ของทุกอย่างย่อมมีข้อดีข้อเสียครับต้องเลือกให้เหมาะกับงาน Docker ต้องการใช้ Hdd ครับ มันเลยไปอ่วมที่ Hdd แทนยิ่งมีการ run docker หลายๆ service Hdd ก็จะมีการ read/write ถี่ขึ้น จนทำให้ service docker ทั้งหมดช้าได้ วิธีการแก้ไขใน พ.ศ. นี้ก็ง่ายๆ คือเปลี่ยน Hdd เป็น SSD ซ่ะหรือไม่ก็ใช้ Flash Disk เอาหรืออยากหล่ออยากเทห์ ก็ Raid SSD ซ่ะเลย ก็น่าจะแก้ปัญหาจุดนี้ได้
ของดีเลยเอามาบอกต่อครับ จากความเห็นส่วนตัวและการใช้งานจริง ไม่มีการ relate บทความใดๆ ทั้งสิ้น ถูกผิดไม่รู้ รู้แค่ว่าใช้มาแล้วจึงบอกต่อครับ
ขอบคุณที่แวะมาอ่านครับ
// JACK

วันพฤหัสบดีที่ 6 สิงหาคม พ.ศ. 2558

laravel ทั้ง phalcon และ nodejs

ผมเขียนมาทั้งหมดแล้ว ทั้ง laravel ทั้ง phalcon และ nodejs มีคนถามมา อะไรเร็วกว่ากัน ไหนๆ ก็เขียนมายาวเลยเอามาแปะให้อ่านกันเพิ่ม
ก่อนอื่น laravel คือ framework ส่วน nodejs คือภาษา เอามาเทียบกันไม่ได้ ถ้าจะถามเทียบกับ ต้องถามว่า php กับ nodejs ต่างกันยังไง
ดังนั้นผมจะตอบในคำถามนี้แทน php กับ nodejs ต่างกันยังไง ก่อนอื่นทั้งสองตัวต่างกันมาก nodejs จะไวกว่ามาก เพราะเป็นภาษากลุ่ม non-blocking มันสามารถทำงานแบบ async ได้ ซึ่งไม่ต้องรอการทำงาน แนวการเขียนจะต่างจาก php ไปสินเชิง เพราะ nodejs ต้องเขียนเชิง event/callback driven ของพวกนี้จะไม่รู้ความต่างถ้าคนเขียนนั้นๆ ไม่เคยศึกษาเรื่อง design pattern มาเยอะพอ ดังนั้นบอกเลย แนวการเขียนต่างกันมาก เพราะ nodejs มันคือ javascript
ต่อมาข้างบนมีคนพูดบอก phalcon สู้ nodejs ได้ในเรื่องความไว บอกเลยว่า phalcon มันก็ php framework ที่เปลี่ยนโค้ดตัวเองเป็น php extension ก่อนอื่นมันช้ากว่า php native เพราะยังไงมันก็เป็น framework ที่ทำงานทับขึ้นมา ไม่มีทางไวกว่า native เพียวๆ
พิมพ์มาถึงตรงนี้จะมีคำถามล่ะ แล้วตอนนี้ควรใช้อะไร อย่างงานผมล่าสุดใช้ phalcon ก่อนหน้าคือ laravel 5 และ 4 แต่ไม่มีสักอันที่ผมเขียนขึ้น production ด้วย nodejs เพราะ?
1. หาคนเขียนดีๆ ยาก javascript เป็นภาษาที่ละเอียดอ่อน ทดลอง console.log(0.1+0.2);
จะได้ผลลัพท์เป็น 0.30000000000000004 เป็นทั้งบน browser และ nodejs เรื่องพวกนี้หลายคนไม่รู้ เผลอไปเขียนเรื่องเงินๆ ทองๆ มีตาย (อ่านเพิ่มhttp://floating-point-gui.de/basic/)
2. javascript ไม่สามารถรักษา design pattern ดีๆ ไว้ด้วย เพราะด้วยความที่ยังเป็น OOP แบบลูกพี่ลูกคน แน่นอนเขียนงานเสร็จได้ แต่โปรแกรมที่ได้มักไม่รอดจาก penetration testing ไม่ได้ ต่อให้รอดได้ด้วยการเขียนแบบรัดกุม โค้ดนี้จะไม่มีคนอื่น maintenance ได้เลยนอกจากคนเขียน (มีแต่พระเจ้าเท่านั้นที่รู้)
3. nodejs เป็น engine ที่ทำการ scale out ระบบลำบาก ตัวมันทำงานแบบ single core ตลอดจนกว่าจะเขียน cluster เอง ไม่งั้นต่อให้เครื่องมี cpu 16 core มันก็ใช้ core เดียวเสมอ (หลายคนเลือกไป go lang แทนด้วยเหตุผลนี้)
ส่วนข้อดีล่ะ
1. แนวคิดของ nodejs คือการทำภาษามา execute ทำให้เราเขียนโปรแกรมด้วยแนวคิดที่ไม่เหมือน php ได้ เช่น ทำ variable caching บน memory ได้แล้ว เพราะ process ไม่ถูก terminate ตอนจบ request แต่ถูก reuse ได้
เราจึงสามารถทำงานบางอย่างเช่น เข้าเว็บนับ view ก็ให้อัพเดตลงตัวแปรไว้ แล้วทุกๆ 5 นาที ค่อยยิงไปเขียน db ทีเดียว เป็นต้น
2. ด้วย nature ของ javascript อย่างที่พูดไปข้างต้น มันเร็วมาก และรับ concurrent ได้สูงด้วย
3. เราสามารถทำบริการพิเศษเช่น websocket ได้แล้วด้วยเหตุผลตามข้อ 1
และยังมีเรื่องข้อควรติ แต่มีทางแก้ไข
เนื่องจาก nodejs ถูกออกแบบมาเป็น execution ที่รองรับการเรียก http ได้ถูกตรง ไม่จำเป็นต้องมี webserver มาคั่น แต่ nodejs กลับไม่สามารถเป็น full-stack server ได้ เพราะการส่ง static content ทำได้ช้ากว่า nginx ซะอีก และ nodejs สามารถเขียนให้รองรับหลายโดเมนได้ (นึกถึง vhost ใน apache) แต่ก็ลำบากจนคิดว่าเอา nginx มาครอบยังสบายกว่า
ผมบอกเลย ไม่มีภาษาไหนดีสุด อย่าง golang ที่ผมมีพิมพ์ไป เรื่องการ handle error ก็ห่วย ดังนั้นศึกษาให้เยอะแล้วเลือกใช้ให้ถูกครับ ของแรงๆ ถ้ารับมือได้ก็ใช้เลยครับ
//โจ้

วันอังคารที่ 4 สิงหาคม พ.ศ. 2558

แชร์ประสบการณ์ฝึกงานในบริษัท Mobile Application ระดับโลก (2)

ความคิดเห็นที่ 1

สิ่งที่ได้เรียนรู้จากมุมมองเด็กฝึกงานตัวเล็กๆค่ะ อาจจะมีผิดพลาดกันบ้างก็น้อมรับคำติชมนะคะ 
หัวเราะ

edit - แก้คำผิด, แก้อีกรอบ ข้อความตกค่ะ มันยาวเกิน TT

-----

การหันหน้าคุยกัน ไม่ได้ทำให้งานช้าลง


เราประชุมเยอะมาก การที่เราได้คุยกับทุกๆคนในทุกๆเรื่อง รับรู้ถึงปัญหาและงานแต่อย่างที่ทุกคนในทีมทำอยู่ทำให้เราได้รู้ถึงานทำงานในภาคส่วนอื่นๆที่ไม่ใช่แค่ของเรา ทำให้เราเข้าใจทั้ง Process ของ Software Development

ซึ่งตรงนี้เราคิดว่ามันทำให้เราทำงานได้เร็วขึ้นมาก เพราะเราเริ่มเข้าใจว่างานที่เราทำตรงจุดนี้ ต่อไปมันจะเอาไปผูกกับส่วนไหน แล้ว position ที่เราอยู่ส่งผลยังไงกับ Product/Service โดยรวม

และการที่ทั้งทีมรับรู้ข้อมูลชุดเดียวกัน และปัญหาของแต่ละคน ทำให้งานเร็วขึ้นมาก ไม่มีข้อผิดพลาดที่เกิดจากการสื่อสารผิด ทุกคนช่วยกันให้ผ่านจุดนั้นไปได้ ไม่เกิดคอขวด (Bottleneck Effect) ที่ทำให้งานช้าลง

-----


ทุกตำแหน่งมีความสำคัญในตัวของมัน


เราโชคดีมากที่ได้ทำงานในสภาพแวดล้อมที่ทุกคนให้เกรียติกัน ไม่ว่าจะเป็นคุณลุงคุณป้าคนทำความสะอาด เจ้าหน้าที่ดูแลออฟฟิศ ไปจนถึง หัวหน้าฝ่ายและ CEO

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

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

เราเคยนั่งกินข้าวกับ CEO เค้าก็บอกว่าถ้าไม่มีพนักงาน ผมก็ทำงานไม่ได้ บริษัทคงไม่เติบโตถึงขนาดนี้ ผมต้องขอบคุณพวกคุณที่อุตส่าห์ช่วยกันมาจนถึงตอนนี้

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

-----

คนเก่ง < คนที่ทำงานเป็นทีม

ตอนแรกหัวหน้าพูดให้ฟังเราก็ไม่เข้าใจค่ะ เราเคยถามหัวหน้าว่าทำไมถึงเลือกเรา เราเขียนแอพก็ไม่ค่อยจะเป็น ตอนสัมภาษณ์ ให้ทำเทสท์ก็ทำไม่ได้ ตอบคำถามก็ผิด

หัวหน้าบอกเราว่า เพราะเราพูดรู้เรื่อง เราอยู่ในทีมได้ เราดูจัดการอะไรเป็น (ใส่พอร์ทไปว่าเคยเป็นประธานวงออเครสตร้ามหาลัยค่ะ 55) และคนในทีมก็ชอบเรา

หัวหน้าเล่าให้ฟังว่าการจ้างงานเราไม่ได้ดูแค่ว่าคนเก่งรึเปล่า เราอยากได้คนที่ทำงานเป็น งานมันสอนกันได้ อีกอย่างเราจ้างคุณมาในฐานะนักศึกษาฝึกงาน เราอยากสอนคุณ เราอยากให้คุณเรียนรู้ และเราก็อยากเรียนรู้ไปกับคุณ

ถ้าเราเอาคนที่เก่งมากๆ แต่ไม่มีมนุษยสัมพันธ์ เค้าก็จะไม่ได้อะไรจากเราเลย และเราก็ไม่รู้ว่าจะได้อะไรจากเค้ามั้ย ที่สำคัญที่สุดคือ พนักงานเราจะไม่มีความสุขเปล่าๆกับการที่ตัวหัวหน้าเอาคนที่เข้ากันกับทีมไม่ได้เข้ามา

ที่นี่พนักงานในทีมทุกคนมีส่วนร่วมในการตัดสินใจว่าจ้างงานค่ะ ไม่ใช่แค่ HR หรือ หัวหน้า เพราะเค้าคิดว่าคนที่จะจ้างมานั้นก็จะมาอยู่ในทีม คนที่จะได้สัมผัสมากที่สุดก็คือคนที่ทำงานอยู่ในทีมนั่นแหละ เพราะฉะนั้นทุกคนควรจะมีส่วนออกความคิดเห็น ดูเหมือนยุ่งยาก และเสียเวลาใช่มั้ยคะ การที่ให้คนในทีมทุกคนมาตัดสินใจด้วยเนี่ย

ใช่ค่ะ มันยุ่งยากและเสียเวลามาก เค้าเลยคัดกันนานมาก หัวหน้าเล่าให้ฟังว่า คนล่าสุดที่เพิ่งรับไป process ยาวเป็นปีเลยทีเดียว…

หัวหน้าเลยบอกไม่อยากได้แค่คนเก่ง คนเก่งนั้นจะไปไหนก็ได้ เค้าไม่ได้ ‘รับ’ อะไรจากบริษัทนอกเงินเดือน ไม่มีความรู้สึกว่าจะต้อง ‘ให้’ บริษัทนอกจากงานตรงหน้า ผลงานที่ได้ก็อาจจะออกมาไม่เต็มเม็ดเต็มหน่วย เผลอๆทำให้บรรยากาศการทำงานในทีมไม่ดีอีก เพราะฉะนั้นรับคนที่อยู่ในทีมได้ คนที่จะมาทำงานแล้วแฮปปี้ พร้อมที่จะ ‘รับ’ และ ‘ให้’ กับบริษัทดีกว่า

เพราะออฟฟิศเรามีหัวหน้าที่คิดแบบนี้แหละค่ะ ตอนเซอร์เวย์บริษัท IT ทุกบริษัทในกลุ่มประเทศยุโรปเหนือ ด้านความสุขและความพึงพอใจในการทำงาน ออฟฟิศเราก็เลยได้ที่ 1 มา 😀

-----

บรรยากาศการทำงานดีๆ ทำให้ชิ้นงานออกมาดียิ่งกว่าเดิม



เรารู้สึกว่าบรรยากาศการทำงานดีๆเนี่ยก็สำคัญนะคะ ไม่ใช่แค่ facilities ในออฟฟิศ หรือเฟอร์นิเจอร์ประดับตกแต่ง บรรยากาศที่เราหมายถึงคือเพื่อนร่วมงานค่ะ

อย่างที่เราบอกไปว่าทุกคนในออฟฟิศเชื่อในความสำคัญ และศักยภาพของเพื่อนร่วมงาน เราเลยทำงานแบบไม่ขัดขากัน ไม่มีก้าวล้ำการตัดสินใจของกันและกัน ทุกคนเชื่อว่าเค้าถูกจ้างมาทำหน้าที่นั้น เค้ารับผิดชอบหน้าที่นั้นมาตลอดการทำงานของเค้า เค้าย่อมรู้ขอบเขตของเค้าดีที่สุด เลยทำให้ไม่มีการเมืองในออฟฟิศเลย สันติสุขมากค่ะ คุยกันว่าเที่ยงนี้เล่นเกมอะไรกันดี อาทิตย์นี้จะอบเค้กอะไรดี มีใครอยากกินอะไรมั้ย 55

ซึ่งเกี่ยวอะไรกับชิ้นงาน

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

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

-----

Research and Development ไม่ใช่การผลาญงบ


จากที่เราเล่าให้ฟังตอนแรกแหละค่ะ ฟีเจอร์ที่เราพัฒนามันก็เป็นแค่ส่วนหนึ่ง R&D ที่ทำเล่นสนุกๆเท่านั้น แต่ทีนี้มีคนที่เห็น potential ของมัน ลงแรงทำมันต่อไป จากฟีเจอร์เล็กๆก็กลายมาเป็นส่วนหนึ่งของอะไรที่ยิ่งใหญ่ได้ ตอนนี้มันกลายเป็นตัวชูโรงไปแล้วด้วยซ้ำค่ะ

ไม่ใช่แค่ฟีเจอร์ที่เราทำอย่างเดียว

วันอังคาร (ทุกๆกี่อาทิตย์ก็ไม่รู้ จะเป็น Hack Day ค่ะ) ทุกคนจะได้ทำอะไรก็ได้ที่อยากทำ ตราบใดที่ยังเกี่ยวกับบริษัท เราแอบดูพี่โต๊ะข้างๆ เค้าไม่ได้คิดค้นอะไรใหม่ค่ะ เค้าบอกว่าเค้ามีโปรเจคท์ระยะยาวค่ะ เอา library กับ API ออกมาปัดฝุ่นซะบ้าง ทำความสะอาดกันหน่อย เพื่อให้รองรับกับเทคโนโลยีปัจจุบัน เขียนคอมเม้นท์โค้ด แล้วก็ Optimize เค้าทำมาหลายเดือนแล้ว แล้วก็บอกว่าจะให้เสร็จในซัมเมอร์นี้ล่ะ ก็ดูมีสาระดี

แล้วที่น่าสนใจคืองาน Hack Week ค่ะ ปีละครั้ง ทั้งบริษัทนำทีมโดย Marketing และ HR จัดงาน Hack Week ขึ้นมาได้ให้พนักงานทุกคนทำอะไรก็ได้ที่อยากทำเป็นเวลา 1 อาทิตย์ เริ่มต้นวันจันทร์ก็จะจับทีมกัน ทำของมา วันศุกร์ช่วงเย็นแทนที่ Town Hall ก็จะมา pitch product ที่ทำมาทั้งอาทิตย์ของตัวเอง ในงานนี้ทุกคนจะได้ Rotate ไปทำงานอื่นกันบ้าง ดีไซน์เนอร์ไปเขียนโค้ด โปรแกรมเมอร์มาคิดแผนการตลาด Marketing ก็มานั่งเรียนวิธีออกแบบ ได้รู้จักคนใหม่ๆ ได้ทำงานที่ไม่เคยทำ แถมยังได้ product อีกด้วย

ที่ฮาคือ มีอยู่ปีนึง มีคนทำ Hack ขึ้นมา ฉายเดี่ยวเลย ไม่มีทีม ตอนนั้นคิดอะไรไม่ออก ว่าจะทำอะไรดี ก็เลยคิดมาได้ว่า ปกติหลงในบริษัทบ่อยมาก เสียเวลามาก ก็เลยทำป้ายบอกทาง กับแผนที่ ได้คะแนนท่วมท้นจากทั้งบริษัท ชนะ pitch ไปค่ะ 555

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

ถ้าคุณคิดว่ามันไร้สาระ สูญเปล่า ลองนึกถึง เราจ่ายค่าเทอมให้ลูกค่ะ นี่ก็ R&D เราลงทุนโดยไม่รู้ว่าเราจะเจออะไร เราให้ลูกไปเรียน โดยที่เราไม่รู้ว่าจะได้อะไรกลับมามากขนาดไหน แต่ถ้าเราเชื่อในตัวลูก เชื่อตัว Product มันก็ต้องโต และให้ผลตอบแทนได้

-----

ไร้ซึ่งลำดับชั้น

ที่สวีเดนนี่ถือเรื่องความเท่าเทียมกันมากค่ะ เรียกร้องกันบ่อยๆ ตั้งแต่เพศ อายุ สีผิว ฯลฯ

ดังนั้นแล้วในที่ทำงานก็เช่นกันค่ะ ทุกคนมีความเท่าเทียม ไม่มีชั้น วรรณะ ตำแหน่งใดๆทั้งสิ้น

เราเป็นเด็กฝึกงาน ที่ไม่ใช่แค่เด็กฝึกงาน ทุกคนๆก็ดูแลและให้ความเชื่อใจเราในฐานะพนักงานคนนึง มีเรื่องจะเล่าให้ฟังคือ มีอยู่ครั้งนึงค่ะ ทั้งออฟฟิศลาพักร้อนกันหมดเลย มีเรากับเด็กฝึกงานอีกคนอยู่ออฟฟิศกันวันนั้น แล้วทีนี้มันนัดประชุม  Tele conference กับนิวยอร์ก สองคนที่วุ่นวายกันมากค่ะ ทำไงดี จะประชุมอะไร บ้าบอมาก 55

โทรหาหัวหน้า หัวหน้าบอก เอาเลย ผมเชื่อใจพวกคุณ ตามสบาย!

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


สิ่งที่แตกต่างจากไทยอย่างมากคือเรื่องลำดับชั้นในบริษัทนี่แหละค่ะ ที่สวีเดนอย่างที่เราบอกคือทุกคนเท่ากัน บริษัทเลยเป็น flat-hierarchy แบนราบ ตั้งแต่เด็กลูกกระจ๊อกอย่างเรา ยัน CEO

ทุกคนทำมากได้มาก ทำน้อยได้น้อย ใครทำงานเยอะ รับผิดชอบเยอะ ก็ได้เงินเดือนเยอะ ไม่ใช่อาวุโสกว่าก็ได้เงินเดือนมากกว่า คนที่อยู่สูงก็ไม่ถือตัว เค้าก็คุย และช่วยเหลือเราปกติ

ที่เราชอบมากคือหัวหน้าทีม – แผนกทุกคนจะมีหน้าที่สำรวจความเป็นไปของพนักงานค่ะ ทุกเดือนหัวหน้าจะเรียกเค้าไปคุย 2-2 ในห้องลับ ตอนโดนเรียกเข้าไปครั้งแรกที่เสียวมาก นี่จะโดนด่ามั้ย 555

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

หัวหน้าเล่าให้ฟังว่าเค้าทำยังงี้กับทุกคนในทีม แล้วเค้าก็มีหัวหน้าเค้ามาให้ปรึกษาแบบนี้เหมือนกัน ก็เหมือนสอนกันไปสอนกันมานั่นแหละ และทุกคนทุกระดับก็ happy healthy ดีกันหมด

แถมอีกอย่าง มีครั้งนึงค่ะ เราต้องเข้าไปรายงานผลฝึกงานที่ Stockholm HQ กับหัวหน้า และเด็กฝึกงานอีกคน เค้าให้พักโรงแรม เราก็ไม่ได้คาดหวังอะไรมาก ไปถึงเจอโรงแรมห้าดาว มองห้องตัวเองเป็น Superior Suite คนเดียว แม่จ้าว คืนละ 5 หมื่นบาท ไม่เคยคิดมาก่อนว่าจะได้นอน 55

ถามหัวหน้าบอกห้องใหญ่ไปมั้ยคะ นี่ดาวน์เกรดได้นะ (ตอนนั้นใสใส เด็กดี) เค้าบอกว่า ก็บริษัทเค้าจัดมา คุณกับผมก็เท่ากันทำไมจะต้องแยกล่ะ ถ้าผมได้นอน suite คนก็ต้องได้เหมือนกัน จะให้คุณกับเพื่อนไปนอนอีกโรงแรมก็ยุ่งยากมาทำงานลำบาก มันเหลือแค่นี้ก็นอนๆไปเถอะ …แล้วหัวหน้าก็พาไปเลี้ยงข้าวเย็นที่ภัคตาคารโรงแรมต่อ คือตั้งแต่นั้นก็ ตามสบายหัวหน้าเลยค่ะ จัดเลยค่ะ หนูไม่ขัด หนูไม่เถียง 55555

จบแล้วค่ะ ที่ได้ดูได้เห็นมา
แก้ไขข้อความเมื่อ 1 ชั่วโมงที่แล้ว

แชร์ประสบการณ์ฝึกงานในบริษัท Mobile Application ระดับโลก (1)

แชร์ประสบการณ์ฝึกงานในบริษัท Mobile Application ระดับโลก

สวัสดีค่ะ
นี่เป็นกระทู้แรกของเราค่ะ มาเล่าประสบการณ์
ถ้าอ่านยากไปบอกนะคะ จะพยายามจัดหน้าให้ เพราะยาวมาก

ฤดูร้อนปีที่แล้ว เราได้มีโอกาสเข้าฝึกงานในบริษัทกึ่ง start-up กึ่ง corporate ที่มีชื่อเสียงในระดับนึงของโลก
ถ้าเอ่ยชื่อไปทุกคนก็น่าจะเคยได้ยินชื่อเสียงมาบ้าง หรืออาจจะเคยได้ใช้บริการ (หรืออาจจะไม่ เพราะยังไม่เข้าไทย เสียใจ T_T)

ประสบการณ์และสิ่งที่ได้รับจากการฝึกงานครั้งนี้มีเยอะมากเหลือเกิน จนเราคิดว่าเล่ายังไงก็คงเล่าไม่หมด

เพื่อไม่ให้เป็นการยืดเยื้อเกินไป เราเลยพยายามสรุปประสบการณ์ดีๆ สิ่งที่เราเห็น สิ่งที่เราเรียนรู้มาไว้ในเอนทรี่ต่อๆไปนี้

เราไม่เคยทำงานอย่างจริงจังที่ประเทศไทย เคยแต่จับจ๊อบฟรีแลนซ์เล็กๆน้อยๆ แต่ก็ได้เคยฝึกงานมาบ้างตอนเรียนป.ตรี
และเคยเห็นสภาพแวดล้อมในบริษัทมาบ้าง ดังนั้นเราจะพยายามเล่าในสิ่งที่เราเห็น และเราเข้าใจนะคะ 😀




--------------------------

เริ่มต้น

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

บริษัทนี้เป็นบริษัทใหญ่พอตัวเลยล่ะ มีสาขาอยู่ทั่วโลก โดยมี HQ อยู่ที่ Stockholm เมืองหลวงของประเทศสวีเดน และมีสาขาใหญ่ๆที่นิวยอร์ก และแคลิฟอร์เนีย เราได้ทำงานที่สาขารองเมือง Gothenburg ประเทศสวีเดนค่ะ

สาขาที่เราทำนั้นเน้นด้าน Front-End ของ 3 platform ใหญ่ Web Service, Android และ iOS ทั้งออฟฟิศมีแค่ 30 กว่าคนเท่านั้น บรรยากาศเลยเหมือนบริษัทเล็กๆ แล้วยิ่งช่วงที่เราทำงาน คนในออฟฟิศลาพักร้อนซะส่วนใหญ่ ภาพที่เราเห็นคือการที่ออฟฟิศมีคนไม่ถึงสิบคน ทุกคนอยู่เหมือนเป็นครอบครัวเลยค่ะ :3

--------------------------

หน้าที่

ราถูกว่าจ้างในตำแหน่ง iOS Developer ค่ะ

โดยปกติแล้วการทำงานใน Spotify พนักงานแบ่งแผนกตามฟีเจอร์ค่ะ ไม่ได้แบ่งตามหน้าที่รับผิดชอบตามแบบบริษัททั่วไป ที่อย่างที่ดีไซน์เนอร์ ก็อยู่แผนกดีไซน์ โปรแกรมเมอร์ก็อยู่อีกแผนก การตลาดอยู่การตลาด

ที่นี่ทุกๆคนก็ถูกกวนรวมกันแล้วแยกออกเป็นฟีเจอร์ในแอพค่ะ ยกตัวอย่างเช่น ทีมเราก็ประกอบไปด้วย Developer เขียนโค้ด Designer ออกแบบหน้าตา Marketing ทำแผนสำรวจตลาด Product Owner(manager) ดูแลทุกข์สุขชาวประชา และทำให้งานไหลลื่น

ด้วยการแยกเป็นทีม และแต่ละทีมรับผิดชอบ 1 ฟีเจอร์ ทำให้มีทีมเล็กๆแตกออกมามากมาย ที่ซึ่งค่อนข้างเป็นอิสระต่อกัน เพราะไม่ต้องมานั่งคอย developer แผนกนู้นเอางานมาส่ง ดีไซน์เนอร์แผนกนี้เอาไปทำต่อ ทุกคนนั่งรวมกัน จมอยู่กับลูกน้อย (ตัวฟีเจอร์) บรรยากาศในแต่ละทีมก็เลยเหมือนเป็น start-up เล็กๆบริษัทนึงเลยค่ะ บวกกับการใช้ Agile และการให้อิสระของตัว CEO ทำให้ทุกคนทำงานได้อย่างรวดเร็ว ใครคิดอะไรได้ก็ใส่ไป ทุกคนมีอำนาจและความรับผิดชอบเต็มในการเปลี่ยนแปลงแก้ไขตัว Product/Service แต่ทั้งนี้ต้องอยู่ในร่องในรอยด้วยนะ

แต่ละทีม แต่ละฟีเจอร์ก็มีห้องทำงานแยกค่ะ ทำให้การสนทนาสะดวก งานลื่นไหล

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

ยกตัวอย่างเช่น เราก็กำลังวิ่งอยู่บนลู่วิ่งในยิม แอพก็จะแนะนำเพลงมาให้ซึ่งเป็นเพลงเร็วเหมาะกับการออกกำลังกาย หรือสมมติว่าเรากำลังทำงาน แอพก็จะจัด Playlist เพลงชิวๆสบายๆเหมาะกับการทำงาน

ซึ่งปีที่แล้วฟีเจอร์นี้ยังไม่ออกมาเป็นรูปธรรมซักเท่าไหร่ แต่เมื่อสองเดือนที่ผ่านมา โดยการพัฒนาต่อของทีมทำให้มันออกมาเป็นของจริงแล้ว เฮฮฮฮฮ​ ดีไตมากค่ะ น้ำตาจะไหล 5555

ตามลิงค์นีเลย : http://techcrunch.com/2015/05/20/spotify-introduces-video-clips-podcasts-and-activity-based-playlists/

นี่คือสิ่งที่เราทำประมาณ 2 เดือนครึ่งค่ะ เรารับผิดชอบสร้างฟีเจอร์นี้จากตอนที่มันเป็นแค่ไอเดีย ขึ้นมาเป็น Mock จนมี Front-End และสามารถดักจับ สถานที่และกิจกรรมที่ผู้ใช้ทำอยู่ได้จนถึงจุดนึง แล้วก็ส่งมอบให้คนที่เหลือทำต่อค่ะ

ซึ่งเริ่มแรก จุดที่ศูนย์เนี่ย มีคนที่ขับเคลื่อนฟีเจอร์นี้อยู่ 6 คนถ้วน 555

มีเรา รับผิดชอบ iOS เด็กฝึกงานชาวสวีอีกคน รับผิดชอบ Android และทีมออฟฟิศที่ Boston ผู้ดูแล Database เพลงอีก 4 คน

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

อ่านต่อไปเรื่อยๆนะคะ แล้วเราจะบอกว่าเราได้อะไรมาบ้าง
ยิ้ม


--------------------------




วันๆนึงในออฟฟิศ

ที่นี่ เราไม่มีเวลาทำงานที่แน่นอนค่ะ ตามสไตล์บริษัท IT เนอะ 55

โดยปกติแล้วเราจะไปออฟฟิศตอน 9 โมงเช้าค่ะ เพื่อให้ทันกินข้าวและ Scrum Meeting ตอน 10 โมง

ตอนเช้าที่ออฟฟิศจะมีข้าวเช้าให้กินค่ะ จะมีคนดูแลออฟฟิศเตรียมข้าวเช้าไว้ให้ ตั้งโต๊ะเสร็จตอน 9 โมง ทุกคนก็มาเจอกันแล้วก็คุย อัพเดทข่าวสารบ้านเมือง ข่าว IT เสร็จซัก 9 โมงครึ่งก็หิ้วกาแฟ หิ้วชา โกโก้ กลับโต๊ะไปทำงานกัน

ตอน 10 โมงก็จะเป็น Scrum Meeting ค่ะ อัพเดทว่าเมื่อวานใครทำอะไรบ้าง ติดขัดตรงไหน วันนี้จะทำอะไร สั้นๆ 10 นาทีไม่เกินค่ะ

หลังจากนั้นก็จะทำงานค่ะ ยาวไปยันเที่ยง กินข้าวพร้อมหน้ากับทุกคน กินเสร็จก็ไปเล่นเกม มีตู้พินบอล คาราโอเกะ บอร์ดเกม แล้วก็ห้อง xBox ค่ะ (บรรดาพี่ๆเค้าไว้เล่น Fifa กัน 555 )

บ่ายโมงก็เปิดตู้เย็นบริษัทหิ้วขนม น้ำ ชา กาแฟทำงานต่อ ช่วงบ่ายที่ใครทำงานตัวเองเสร็จก็ออกค่ะ หรือไม่งั้นก็ครบ 8 ชม.ก็ออกได้ เพราะฉะนั้นก็จะมีพี่ๆที่เค้าฟิตมาทำงานตั้งแต่ 6.00-7.30 กลับตั้งแต่บ่าย 3 – 4 สายมาเลทๆอย่างเราก็ทำไปจน 5 – 6 โมงตอนทำงานเสร็จน่ะค่ะ บางทีทำไปเรื่อยๆก็อยู่ได้ 2 – 3 ทุ่มเหมือนกัน เพราะขนมมีกินตลอดเลยไม่เดือดร้อนอะไร อีกอย่างช่วงที่ทำนั้นพระอาทิตย์ตกตอน 5 ทุ่มค่ะ (2 ทุ่มที่ทำตอนนั้นนี่ฟ้ายังสว่างจ้าอยู่เลย 555)

จะมีที่แปลกๆคือ

ทุกวันจันทร์ 11 โมงจะมีประชุมฟีเจอร์ ว่าใครจะทำอะไร ยังไงต่อ แผนเป็นยังไง จะ Launch/Release product ใหม่ตอนไหน ตอนนี้อยู่ Sprint ไหนแล้ว

วันอังคารตอนเที่ยง อาทิตย์เว้นอาทิตย์จะเป็น Lunch and Learn คือเราจะมานั่งกินข้าวด้วยกัน (คือที่จริงก็กินด้วยกันทุกวันอยู่แล้วแต่คราวนี้ลาภปาก บริษัทออกให้) หัวหน้าจะวิ่งไปซื้อข้าวมาให้เราค่ะ ตามแต่เลือก แล้วก็จะมีคนมาผลัดกันพูดสิ่งที่ตัวเองถนัด ที่เราได้เรียนมาก็มีตั้งแต่ Legal, Marketing, Database Management, Hives, Hadoop มากมายหลายสิ่งค่ะ อร่อยและเพลิน ชอบมาก

ทุกวันพุธจะเป็นเวลาน้ำชาค่ะ เรียกว่า Fika จะมีคนผลัดกันอบเค้กมา เราก็นั่งจกกินพร้อมฟังที่เค้าคุยกันอย่างมีความสุข 55

วันพฤหัส 3 อาทิตย์ครั้ง จะมีสิ่งที่เรียกว่าประชุมเผ่า (Tribe Meeting) ค่ะ คือมันเป็นประชุมฟีเจอร์แต่ใหญ่กว่า คืออย่างที่เราอธิบายไปว่าฟีเจอร์เรามันแตกออกมาอีกที เพราะฉะนั้นอันนี้คือการประชุมรวมทีมที่แตกๆออกไปทั้งหมด เป็น tele conference กับทุกออฟฟิศที่เกี่ยวข้องค่ะ ของเรามีเอี่ยวแต่กับที่ HQ Stockholm ก็เลยประชุมกันสองออฟฟิศค่ะ ใครมีอะไรก็รายงานไป แล้วก็มี Demo สิ่งที่ตัวเองทำอยู่ด้วยค่ะ ยิ่งใหญ่กว่าประชุมทีมเล็กๆมาก เพราะฉะนั้นอาทิตย์ไหนมีเดโม ไฟก็จะลุกท่วมทุกโต๊ะค่ะ ปั่นงานกัน 555

วันศุกร์ 3 อาทิตย์ครั้งเช่นกัน ช่วงเย็นๆก่อนเลิกงาน ประมาณ 4- 5 โมงเย็น จะเป้น Town Hall ค่ะ ช่วงเวลาอัพเดทข่าวสารเรื่องราวในบริษัท โดยมี CEO, CTO และ Executive Director ของฝ่ายต่างๆมาพูด จัดขึ้นที่ห้องอาหารที่สาขา HQ Stockholm ค่ะ แต่ยิงถ่ายทอดสดไปทุกสาขาทั่วโลก ปกติแล้วก็จะอัพเดทผลประกอบการ หุ้น ทิศทางการบริหาร service/product ใหม่ๆ กิจกรรมสำหรับพนักงาน ผลตอบรับผู้ใข้ ฯลฯ มีช่วงตอบคำถามที่ให้พนักงานทุกคนมาถามคำถามได้ คือทุกสาขามีสิทธิ์ถามหมด สามารถส่งเข้าไปใน Pool คำถามแล้วจะมีคนอื่นให้ แต่จะมีสาขาใหญ่ๆอย่างนิวยอร์ก หรือแคลิฟอร์เนียที่มียิงวิดีโอเข้าที่ HQ Stockholm แล้วถามตอบแบบเห็นหน้ากัน ตัวอย่างคำถามก็จะเป็นแบบ ตอนนี้เรามีคู่แข่ง คุณมีความเห็นว่าไง กูเกิ้ลทำยังงี้ จะมีผลกระทบต่อเรามั้ย อะไรประมาณนี้ค่ะ เพื่อเป็นการกระชับคามสัมพันธ์ระหว่างผู้บริหารและพนักงาน แล้วก็เป็นเวลาสังสรรค์ด้วย

เราชอบช่วง Town Hall นี่มาก สนุก แล้วก็ได้ฟังอะไรดีๆตลอด

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

เราเคยขึ้นไปพูด Town Hall เองด้วยค่ะ ตื่นเต้นมาก ตอนนั้นพูดเกี่ยวกับ  Feature ที่เรารับผิดชอบ ครั้งแรกที่ได้พูดอะไรเชิงเทคนิคให้หลายพันคนทั่วโลกฟัง สั่นไปหมด พูดอยู่ประมาณเกือบครึ่งชม. ลงมานี่เหมือนยกภูเขาออกจากอก มีวีดีโอด้วย แต่เอามาแปะไม่ได้ เพราะเป็นความลับบริษัท
เม่าเศร้า


-----

เดี๋ยวจะมาเล่าสิ่งที่ได้เรียนรู้ตลอด 2 - 3 เดือนที่ผ่านมานะคะ
เม่าบัลเล่ต์