สำหรับ developer อย่างเรานั้น ความสามารถที่ขาดไปไม่ได้เลยก็คือ
การทำงานกับคนอื่น และ ทำงานกับ code ของคนอื่น
ดังนั้น ความสามารถด้านนี้เราต้องทำการสร้างและพัฒนามันขึ้นมาให้ได้
เพื่อทำให้เราสามารถเข้าใจทั้ง code ใหม่ และ legacy code แบบง่ายๆ
ซึ่งมีวิธีการแนะนำง่ายๆ ดังต่อไปนี้
1. การพูดคุยกับคนอื่นๆ
การพูดคุยแบบเห้นหน้าเห็นตากันเป็นสิ่งที่ดีที่สุด
เนื่องจาก คน คือ แหล่งความรู้ที่ดีที่สุด
แต่ถ้าไม่สามารถทำได้ให้ใช้พวก vdo conference หรือ โทรคุยกัน
หรือถ้ามันถึงที่สุด จึงใช้ email มาช่วย
แต่ถ้าแยกกันทำงานแบบไกลๆ หรือ แยกกันทำงาน
ก็ให้ใช้เครื่องมือที่ช่วยทำให้ทุกๆ คนสามารถพูดคุย ติดต่อกันได้ตลอดเวลาในทุกๆ วัน
เช่น พวก Social Network, Trello และ github เป็นต้น
โดยรวมแล้วใช้อะไรก็ได้ ที่ทำให้ทุกๆ คน สามารถพูดคุยและติดต่อกันได้ตลอดเวลา
2. หัดสังเกตสิ่งต่างๆ
เมื่อเริ่มต้นพัฒนาระบบงาน แนะนำให้เริ่มแบบง่ายๆ อย่าใช้ท่ายากมาก
อย่าคิดว่า ทุกๆ อย่างมันจะสมบูรณ์แบบตั้งแต่เริ่มต้น
จากที่ผ่านมามักพบว่า เมื่อเราทำงานอยู่กับระบบงานประมาณ 1-2 เดือน
พบว่า developer จะเริ่มมี productivity ที่ดีและเสถียรขึ้น
ทำให้เห็นว่า code ที่เราเขียนหรือสร้างขึ้นมานั้น จำเป็นต้องใช้เวลาในการเรียนรู้
ทั้งในเรื่องของแนวคิด เงื่อนไข และ ความเชื่อต่างๆ
วิธีการเริ่มต้นก็ไม่ยาก สามารถทำได้ดังนี้
- ใช้เวลาในการศึกษาแบบ step-by-step ในทุกๆ อย่าง
- สรุปคำถาม และ สอบถามเพื่อให้ชัดเจน
- เริ่มต้นด้วยการสร้างชุดของ test
- ทำการ run test
- ทำการอ่าน code และ เอกสารต่างๆ
ดังนั้น เริ่มต้นด้วยวิธีการง่าย เพื่อให้โอกาสตัวเองสำหรับการเริ่มต้น
ต่อจากนั้น คุณก็จะเข้าใจระบบงานได้ดีขึ้นเรื่อยๆ
อย่าอายที่จะถาม
อย่าอายที่จะไม่รู้
3. ทำการ Run test
ถ้า code ที่ทำงานด้วยนั้นดี แสดงว่า code ชุดนั้นจะมี test
ดังนั้น run test นั้นซะ
ทำการอ่าน test เหล่านั้นซะ
ถ้า test เหล่านั้น เขียนขึ้นมาดีแล้ว
มันจะเป็นตัวอธิบายว่าระบบงานของเรามีขั้นตอนการทำงานอย่างไร
ทำงานตามที่เราคาดหวังไว้หรือไม่
แต่ละส่วนของระบบทำงานร่วมกันอย่างไร
แน่นอนว่า ต้องใช้เวลาในการศึกษาบ้าง แต่มันช่วยคุณได้จริง
ถ้าไม่มี test ก็เป็นสัญญาณที่ไม่ดีเท่าไร
แต่เราต้องทำให้มันดีขึ้น ด้วยการเริ่มเขียน test ใช่ไหม
ซึ่งถือว่าเป็นการเริ่มต้นที่ดี
4. เริ่มต้นด้วยการแก้ไข bug มันคือเส้นทางที่สร้างไว้สำหรับผู้มาใหม่
สำหรับมือใหม่ หรือ คนที่เข้ามาร่วมทีมใหม่ หรือ สำหรับคนศึกษาระบบใหม่ๆ
แนะนำให้เข้ามาทำการแก้ไข bug
มันจะเป็นเส้นทางลัดสำหรับการทำความเข้าใจระบบงานอย่างดี
เริ่มต้นจาก bug เล็กๆ ที่ไม่มี issue ทางด้าน technical มากนัก
มันจะช่วยเสริมสร้างกำลังใจให้เราอย่างมาก
5. พยายามหาแหล่งความรู้ต่างๆ ของระบบ
เมื่อคุณเข้าไปทำงานกับทีม และ ต้องการศึกษา code ของระบบงาน
วิธีการที่ดีที่สุด คือ คุณจะต้องพยายามหาเอกสาร และ แหล่งความรู้ต่างๆ
ของระบบงานนั้นเพิ่มเติม ให้ได้มากที่สุด ตัวอย่างเช่น
- มีระบบ Mailing list อะไรบ้าง
- มีระบบ Wiki ไหม
- ระบบเอกสารของระบบเป็นอย่างไร
- สามารถอ่านจาก history message จาก version control ได้ไหม
6. พยายามใช้ Text Editor และ IDE ที่ดี
เครื่องมือที่ดี คือ เครื่องมือที่ไม่ช่วยเพิ่มเวลาในการเรียนรู้ของเรา
ดังนั้น พยายามใช้เครื่องมือที่เหมาะกับภาษา และ งานของเรา
มากกว่าจะใช้เครื่องมือที่ชอบ
7. พยายามอ่าน และ เรียนรู้อยู่เสมอ
คุณจะต้องเรียนรู้อยู่เสมอ เพื่อทำให้คุณมีความรู้ความเข้าใจที่มากขึ้น
คุณจะต้องเรียนรู้จากทั้งการอ่านและลงมือทำไปด้วยกัน
ยิ่งทำมากยิ่งได้มาก และ ทำให้มันกลายเป็นนิสัยไปเลย
ถ้าคุณหยุด นั่นหมายถึงคุณกำลังเดินถอยหลัง
8. พยายามเขียนความรู้ต่างๆ ออกมา อย่าให้ความรู้ผูกติดกับตัวบุคคล
สิ่งที่ developer แต่ละคนควรทำคือ การเขียนเอกสาร บทความต่างๆ ออกมา
อาจจะอยู่ในรูปแบบของ blog, wiki และ เอกสารต่างๆ
เพื่อใช้อธิบายสิ่งต่างๆ ในระบบงาน
เพื่อให้คนที่จะเข้ามาใหม่ หรือ คนที่ทำงานอยู่สามารถอ่านและทำความเข้าใจได้ง่าย
เมื่อคุณเขียนไปเรื่อยๆ สักวันหนึ่งมันจะมีประโยชน์ต่อตัวคุณเอง และ เพื่อร่วมงาน
ทั้ง 8 ข้อคือสิ่งที่ผมขอแนะนำสำหรับคนที่เข้ามาร่วมทำงานกับทีมใหม่ๆ
เพื่อให้คุณสามารถทำงานร่วมกับคนอื่นๆ ได้อย่างมีความสุขครับ
สิ่งที่สำคัญมากๆ คือ เรื่อง ทัศนคติต่อการทำงานเป็นทีมครับ
ถ้ามีวิธีการอื่นๆ แนะนำได้นะครับ