Google ปิดคุณสมบัติบางอย่างใน Google Code และแนะนำให้ย้ายไปใช้บริการ Google Drive แทน

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

แต่ข่าวล่าสุดนั้นแจ้งว่านั้นปิดคุณสมบัติดาวน์โหลดในบริการ Google Code ออกไป โดยได้แนะนำให้นักพัฒนาย้ายไปใช้ตัวอื่นๆ แทนเช่น Google Drive เป็นต้น แต่เรื่องนี้ไม่ได้เป็นเรื่องใหม่ของวงการเพราะ Github ก็ได้ประกาศเรื่องแบบเดียวกันไปเมื่อปลายปีที่แล้วเช่นกัน (Goodbye, Uploads – GitHub)

แต่หลังจากที่ข่าวนี้ออกมา SourceForge ขานรับประกาศและขอเป็นพื้นที่สำหรับให้นักพัฒนาที่ใช้อยู่บน Google Code และต้องการใช้งานคุณสมบัติที่ถูกปิดไป หรือย้ายมาใช้งานที่ SourceForge ทั้งหมดเลยก็ได้ (Welcome Google Code user! – sourceforge)

ที่มา:

เครื่องมือบริหาร Project สำหรับโครงการพัฒนาซอฟต์แวร์ขนาดเล็ก-กลาง ฉบับ 2012-2013

จาก เครื่องมือบริหาร Project ที่ใช้งานอยู่ตอนนี้ ที่เขียนไว้ในปี 2011 ก็ผ่านมาได้ปีกว่าๆ แล้ว แน่นอนว่าจากวันนั้นถึงวันนี้ก็มีการปรับเปลี่ยนการทำงานอยู่ตลอดเวลาเพื่อให้รับกับการเปลี่ยนแปลงใหม่ๆ ได้ สำหรับปี 2012-2013 นั้น ส่วนตัวแล้วมีการปรับเปลี่ยนการใช้เครื่องมือหลายๆ ตัวอยู่พอสมควร

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

1. โทรศัพท์!
เรื่องพื้นฐานมากๆ เพราะความชัดเจนในการสื่อสารสำคัญ ซึ่งการโทรศัพท์นั้นเหมาะกับสถานะการณ์บางอย่างที่ต้องการการตอบสนองที่รวดเร็ว ออกแนวว่าด่วนสุดๆ  เพราะบางครั้งส่งอีเมลไป ไม่เข้าใจหรือไม่ชัดเจน โทรคุยอธิบายอาจจะชัดเจนกว่าใช้เวลาสั้นกว่า และน้ำเสียงทำให้การสื่อสารนั้นดูนุ่มนวลกว่าตัวหนังสือใน E-Mail กว่าในบางครั้ง

2. E-Mail
เป็นการใช้ในด้านการยืนยัน หรือแจ้งรับทราบร่วมกันเป็นกลุมเป็นหลัก ซึ่งปรกติจะใช้เป็นส่วนหนักในการคุยงาน สร้างหลักฐานร่วมของการทำงาน ในบาง Project ใช้อีเมลโต้ตอบกันไป-มาเยอะมากเพื่อสรุปและแจ้งรับทราบให้ทุกกรณีเพื่อไม่ให้ตกหล่น

3. IM

  • GTalks – ด้วยความที่ใช้บนระบบ Webbased ได้ด้วย ประกอบกับตัวอักษรล้วนๆ รวดเร็วไม่ต้องมีอะไรมากมาย จึงเหมาะมากๆ กับการโต้ตอบ ไป-มาระหว่างคนสองคน (แถมมี logging chat ด้วยสะดวกดี)
  • Windows Live Messenger – ตอนนี้รวมและย้ายไปใช้ Skype แทนแล้ว
  • Skype – ใช้คุยทั้ง Skype Account และ Microsoft Account (Windows Live Messenger) รวมไปถึงประชุมสายเพื่อลดต้นทุนการโทรศัพท์
  • Google+ Hangouts – ถ้าใช้ Skype สำหรับประชุมสายผ่านโทรศัพท์ ตัว Hangouts ก็เป็นส่วนของการประชุมสายผ่านทาง Webcam นั้นเอง
  • Line/WhatsApp/IM+ Pro – App สำหรับ Chat บนมือถือ เหมาะสำหรับเวลาติดต่อที่ต้องการความรวดเร็วกว่า Skype และ GTalks แน่นอนว่ามันติดอยู่กับโทรศัพท์มือถือ เพราะฉะนั้นจะค่อนข้างไวกว่าในการโต้ตอบ
  • Facebook Chat – ส่วนตัวแล้วเหมาะกับฝากข้อความเป็นหลัก ใช้แทน SMS ได้ดี และคนในทีมใช้ Facebook กันทุกคน เพราะฉะนั้นจึงเหมาะกับการฝากข้อความหรือเน้นย้ำมากกว่า

4. Project Sharing CodeBitbucket หรือ Github

จากปี 2011 มาปี 2012 นั้นในทีมได้ย้ายจาก Github ที่เป็นระบบ Project Sharing Code ที่มีผู้ใช้งานอยู่ทั่วโลก ได้รับความไว้วางใจาก Developer มากมาย มาใช้ Bitbucket ที่มีค่าใช้จ่ายด้านการบริหารจัดการ Project Sharing Code แบบ private ที่มีต้นทุนแปรผันตามขนาดทีมที่ใช้งาน ซึ่งประหยัดมากกว่าจำนวน Repositories แบบ Github ที่ผมต้องเสียเงินเพื่อเช่าใช้แบบ private เดือนละประมาณ $12/month อยู่ โดยปรกติแล้วทำงานกันจะเป็นทีมขนาดเล็ก เพราะฉะนั้นถ้าจำนวนคนใน Project ไม่เกิน 5 คนก็ไม่มีค่าใช้จ่ายต่อเดือนแต่อย่างใดสำหรับ Bitbucket ทำให้ประหยัดลงไปได้มาก มีอยู่หลายเดือนที่ต้องเสียเงินให้กับ Github มากกว่า $12/month เพราะมี Private Repositories มากกว่าที่กำหนดไว้ และถ้า Project ไหนจบแล้วก็ต้องลบออกทำเป็น copy source ไว้ด้านนอกเพื่อประหยัดพื้นที่ไว้สำหรับ Repositories ตัวต่อไป ซึ่งในทางการทำงานบางครั้งก็ไม่สะดวกถ้าเรามี Project ที่เราต้องดูแลต่อในอนาคตเราต้องกันพื้นที่ส่วนนี้เป็น Repositories ค้างไว้ ซึ่งแน่นอนว่าถ้าเราลดต้นทุนในส่วนนี้ได้ ก็ประหยัดลงไปได้พอสมควรเลย

หลายคนไม่ทราบว่า Bitbucket นั้นเป็นระบบที่รองรับ Git Version Control System แบบเดียว Github เช่นเดียวกัน ซึ่งเป็น Source Code Versioning แบบ distributed version control system โดยแต่ละคนไม่เพียงได้ข้อมูลล่าสุดของไฟล์งานต่างๆ เท่านั้น แต่ได้ทั้งมา Repository ไปด้วยเพราะฉะนั้นถ้า Server ตัวหลักมีปัญหา (ในที่นี้หมายถึง Server Bitbucket) ตัวเครื่อง Client ก็สามารถทำงานได้อยู่ พอ Server ตัวหลักกลับมาทำงานได้ปรกติก็จะสามารถส่ง Source กลับไปได้โดยข้อมูลที่แก้ไขไป-มานั้นยังคงอยู่และพร้อมให้ Server สามารถรับข้อมูลล่าสุดต่อไปได้ทันที เหมาะกับ Project ทุกขนาดที่ต้องใช้การแชร์ Source โปรแกรมมากกว่า 1 คนขึ้นไป เพื่อป้องกันการแก้ไขทับไปมาระหว่างคนในทีม ช่วยเรื่อง Backup และ Recovery ได้ดีมากๆ

ซึ่งแน่นอนว่าระบบเป็นแบบ Webbase เพราะฉะนั้นมันจึงมี Issue/Milestone/Version ที่ช่วยติดตามงานต่างๆ ได้ดีมากขึ้น โดยถ้าเป็นใน Github เราสามารถใช้ Label ได้อิสระ แต่ใน Bitbucket เราจะไม่สามารถกำหนด Label ได้ แต่กำหนดเป็น Kind ที่ตั้งค่ามาให้เรามาเลยโดยเพิ่มเติมไม่ได้อยู่ 4 แบบ คือ bug, enhancement, proposal และ task ซึ่งโดยรวมจริงๆ ก็เพียงพอสำหรับใช้งานอยู่แล้วตามรูปแบบทั่วไปที่ใช้ๆ กันอยู่แล้ว

สำหรับบันทึกช่วยจำนั้นใน Bitbucket ก็มี Wiki มาให้แบบเดียวกับ Github ส่วนใหญ่เอาไว้แจ้งข้อมูลทั่วไปพวก FTP, Databases Access หรือเอกสารของลูกค้าต่างๆ ที่เป็น Features หรือข้อตกลง เป็นหลัก ซึ่งรวมไปถึงคู่มือหรือการแก้ไขปัญหาต่างๆ ที่เกิดขึ้น

5. Documents/Spreadsheet (เอกสารแชร์กับลูกค้า)

จากเมื่อปี 2011 ที่ผ่านมาใช้ Google Docs ในปี 2012 ที่ผ่านมาเริ่มปรับเปลี่ยนมาใช้ Microsoft Office Web Apps มากขึ้นเรื่อยๆ เหตุผลง่ายๆ คือลูกค้าเข้าใจส่วนติดต่อ (UI) ของ Microsot Office มากกว่า แถมมีข้อดีคือสามารถเปิดเอกสารผ่าน Microsoft Office ตัวปรกติบนเครื่องได้และบันทึกกลับเข้ามาใน Web Apps ได้โดยสะดวก แต่ก็ยังใช้ผสมกันทั้ง Google Docs และ Office Web Apps ขึ้นอยู่ที่ Project ที่กำลังทำงานอยู่ว่าลูกค้าถนัดตัวไหน ซึ่งเหตุผลในหลายๆ ส่วนเอกสารบางตัวใน Wiki ของ Bitbucket ก็ถูกนำมาใส่ในส่วนนี้เช่นกัน เพราะลูกค้าคงใช้ Bitbucket ไม่เป็น เพราะฉะนั้นงั้นก็ควรใช้อะไรที่ง่ายๆ ที่เข้าถึงได้สะดวกกว่านั้นเอง

6. Cloud Storage Sharing/Sync

เป็นการปรับเปลี่ยนครั้งใหญ่โดยส่วนตัว โดยย้ายมาใช้ SkyDrive แทน Dropbox ด้วยเหตุผลด้านค่าใช้จ่าย ด้วยราคาต่อหน่วยพื้นที่เก็บไฟล์ที่ราคาไม่สูงมากนัก แถมยังมีตัวเลือกในการเช่าพื้นที่เพิ่มเติมที่มีหลายระดับราคามากกว่า ซึ่งตัว App ที่เป็นตัว Sync File เพื่อทำงานรวมกับระบบ Cloud นั้นทำงานได้ดีพอๆ กับ Dropbox แล้ว และยังเข้ากันได้ดีกับ Windows 8 และ Windows Phone 8 ด้วย (บน iOS และ Android ก็ใช้งานได้ดีเช่นกัน)

โดยในส่วนของ Cloud Storage พวกนี้จะถูกใช้สำหรับเก็บเอกสารต่างๆ ทั้งส่วนตัวและลูกค้าที่เป็น Word, Excel หรือ PowerPoint ที่เป็นไฟล์โยนไป-มาในอีเมล โดยปรับเปลี่ยนมาใช้การ Share ผ่าน link เป็นหลักเพื่อความรวดเร็วในการรับ-ส่งและยังแก้ไขได้ง่ายกว่าการแนบไฟล์ตามปรกติที่ทำๆ กันมาที่บางครั้งก็ไม่รู้ว่าไฟล์ไหนเป็นไฟล์ตัวล่าสุด ทำ snapshot และ versioning แบบเปรียบเทียบกับของเก่าได้ยากกว่า อีกทั้งระบบพวก cloud storage พวกนี้ยังมีส่วนของการค้นหาและสำรองข้อมูลไว้บน Cloud อีกชุดเพื่อความปลอดภัยของข้อมูลด้วย

ข้อดีที่สำคัญอีกอย่างของ Cloud Storage (ทั้ง SkyDrive และ Dropbox) ที่เหนือกว่าการเก็บไฟล์แบบเดิมๆ บนเครื่องก็คือยังสามารถเข้าถึงได้จากมือถือผ่าน App ที่มีให้ดาวน์โหลดบน Store ของแต่ละค่ายเอง หรืออุปกรณ์อื่นๆ ที่เข้า Internet ได้ผ่านทาง Web Browser ได้ด้วย แต่ข้อดีของ SkyDrive ที่ปรับเปลี่ยนมาใช้ก็เพราะสามารถทำงานร่วมกับ Office Web Apps ได้ดีกว่า Dropbox อยู่เยอะ แต่ข้อเสียของ SkyDrive คือระบบ versioning ที่รองรับแต่เฉพาะไฟล์ของ Micorosoft Office เป็นหลัก ไม่รอบรับไฟล์รูปแบบอื่นๆ เหมือน Dropbox อาจจะต้องเลือกการใช้งานให้ถูกกับประเภทสักหน่อยเท่านั้นเอง

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

เครื่องมือบริหาร Project ที่ใช้งานอยู่ตอนนี้

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

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

E-Mail
ส่วนใหญ่จะใช้ในด้านการยืนยัน หรือแจ้งรับทราบร่วมกัน รวมถึงการสื่อสารเพื่อสร้างหลักฐานร่วมของการทำงาน ในบาง Project ใช้อีเมลโต้ตอบกันไป-มามหาศาลมากเพื่อสรุปให้ทุกอย่างแน่ชัดจริงๆ

IM

  • Skype – ใช้คุยหรือประชุมสาย ลดต้นทุนการโทรศัพท์ นานๆ ใช้ทีนึง
  • GTalks – ด้วยความที่ใช้บนระบบ Webbased ได้ด้วย ประกอบกับตัวอักษรล้วนๆ รวดเร็วไม่ต้องมีอะไรมากมาย จึงเหมาะมากๆ กับการโต้ตอบ ไป-มาระหว่างคนสองคน (แถมมี logging chat ด้วยสะดวกดี)
  • Windows Live Messenger – ใช้คล้ายกับ GTalks แต่สะดวกกว่าที่มีทุกเครื่อง ทำ Invite มาคุยกันหลายๆ คนได้ และรวมถึงคุยกับลูกค้าบางคนที่ไม่ได้ใช้ GTalks (เกือบทั้งนั้นเลย)

Github
ระบบ Project Sharing Code ที่มีผู้ใช้งานอยู่ทั่วโลก ได้รับความไว้วางใจาก Developer มากมาย ผมเสียเงินเพื่อเช่าใช้แบบ private เดือนละประมาณ $12/month อยู่ ทำงานได้ดีครับ กับจำนวณคนไม่มาก เป็นทีมเล็กๆ แบบผม ถ้า Project หรือคนที่ทำงานร่วมกันมากกว่าที่รอบรับก็เพิ่มเงินเข้าไป แต่ถ้า Project ไหนจบแล้วก็ลบออกพร้อมทำ copy source ออกมาพร้อมสรุป จนถึงระดับนึงอาจจะลด plan ลงได้ (ออกแนวใช้เมื่อจำเป็น) ทำให้ประหยัดต้นทุนได้มากขึ้น

  • Git Version Control System 
    เป็น Source Code Versioning แบบ distributed version control system โดยที่แต่ละคนไม่เพียงได้ข้อมูลล่าสุดของไฟล์งานต่างๆ เท่านั้น แต่ได้ทั้งมา repository (project code) เพราะฉะนั้นถ้า Server ตัวหลักเสีย เครื่อง Client ก็สามารถทำงานได้อยู่ พอ Server กลับมาทำงานได้ปรกติก็จะสามารถส่ง Source กลับไปได้โดยข้อมูลที่แก้ไขไป-มานั้นยังคงอยู่และพร้อมให้ Server สามารถรับข้อมูลล่าสุดต่อไปได้ทันที เหมาะกับ Project ขนาดเล็กถึงใหญ่ที่ต้องใช้การแชร์ Source โปรแกรมมากกว่า 1 คนขึ้นไป เพื่อป้องกันการแก้ไขทับไปมาระหว่างคนในทีม ช่วยเรื่อง Backup และ Recovery ได้ดีมากๆ
  • Issue/Milestone
    ระบบช่วยติดตามงาน การเพิ่มเติม Label เพื่อง่ายต่อการแยกประเภทของ Issue โดยถ้ามีเรื่องต้องปักวัน หรือ Milestone ก็ทำงานควบคู่กันได้ โดยหลักๆ ใช้เพื่อทำงานต่อไปนี้
    • แจ้งการเปลี่ยนแปลงต่างๆ หรือมีการส่ง Features ใหม่เข้ามา จะทำเพื่อแจ้งให้ทราบ จะสร้าง Issue แล้วมาลงชื่อและ comments กันไป-มาเพื่อมา track ต่อได้ จะใช้ Label ชื่อ Information เมื่อตกลงแล้วจะสร้าง Issue ชื่อ Features ขึ้นมาแทนเพื่อประกบ Milestone
    • ใช้ Milestone มาจับกับ Issue ทีเป็น Label ที่ตั้งว่า Features เพื่อรวมว่า Milestone ไหนที่ Close Issue บ้าง
    • Bug Tracking โดยกำหนด Label ที่ชื่อ Bugs เพื่อแจ้งให้ทราบว่า Issue นี้เป็น Bug report และเมื่อแก้ไขแล้วจึง Close Issue เพื่อจบ Issue
  • Wiki
    ใช้เพื่อ Note และแจ้งข้อมูลทั่วไปพวก FTP, Databases Access หรือเอกสารของลูกค้าต่างๆ ที่เป็น Features หรือข้อตกลง เป็นหลัก ซึ่งรวมไปถึงคู่มือหรือการแก้ไขปัญหาต่างๆ ที่เกิดขึ้น

Google Docs : Documents/Spreadsheet (เอกสารแชร์กับลูกค้า)
ไม่มีอะไรมาก ลูกค้าคงใช้ Github ไม่เป็น เพราะงั้น ใช้อะไรที่ง่ายๆ เข้าถึงง่ายกว่า สำหรับเอกสารพวกนี้เสีย

Dropbox : Cloud Storage Sharing/Sync
ไฟล์รูป ไฟล์ Themes ต่างๆ หรือเอกสารลูกค้าที่เป็น Word, Excel หรือ PowerPoint ที่เป็นไฟล์โยนไป-มาในอีเมล จะรวบรวมไว้ในนี้เพื่อให้ง่ายต่อการค้นหาและส่งต่อ