Full stack developer คืออะไร
Full stack developer คือนักพัฒนา Software หรือ Programmer ที่มีความชำนาญการและมี Skill ที่หลากหลาย
ครอบคลุมการรับผิดชอบงานได้ทั้ง Module ไม่ว่าจะเป็น Front end , Back end
และอาจรวมถึง Soft Skill ในการ Communicate กับ User หรือผู้เกี่ยวข้องในการเก็บรวบรวม Requirement
และทำการ Design ระบบ ตลอดจนอาจรวมถึง Skill ในการวางระบบ และ Deployment หลังจากที่ Develop เสร็จสิ้น
ข้อดีของการมี Full stack developer คือจะทำให้ทีมงานมีคนที่มีความรู้หลากหลายสามารถทำงานแทนกันได้
แต่ข้อเสียอาจทำให้ขาด บุคลากร ที่มีความรู้เฉพาะด้าน เนืื่องจากในปัจจุบันหลายๆ องค์กรมักจะมองหา ทีมงานตาม ROLE
เช่น PM ,SA , Frond end Developer , Back end Developer , Tester , DBA , System (Hard ware) Unix ,Linux ตลอดจน
อาจมีทีมงาน Deployment ที่ชำนาญด้าน Container เช่น JBoss , Weblogic เป็นต้น
ซึ่งเราก็ต้องยอมรับว่างานใน Role ต่างๆ เหล่านี้ถ้าเอาให้ลึกจริงๆ มันก็มีรายละเอียดเฉพาะด้านที่ยากเกินกว่าคนคนเดียวจะรู้ทั้งหมด
ดังนั้นทีมงานที่ Balance จริงๆ ควรจะมี Full stack developer ที่คอยดูภาพรวมและดูแลงานได้ทั้งเส้นคอยให้ความช่วยเหลือในการติดต่อเชื่อมโยงกับทีมงานที่เป็น Role Base ต่างๆ ได้ โดยที่ Skill ในแต่ละเรื่องอาจจะไม่ได้ลึกเท่าคนในแต่ละ Role
เพียงแต่จะต้องสามารถพูดคุยสื่อสารกับทุก Role ได้
ลองยกตัวอง่า Skill แยกตาม ตาม W3Scholl เลย
Front End : HTML,CSS,Bootstrap,W3.CSS,JavaScript,ES5,HTML DOM,JSON,XML,
jQuery,Angular,React,Backbone.js,Express.js,Ember.js,Redux,
Storybook,GraphQL,Meteor.js,Grunt,Gulp
Back End :,PHP, ASP, C++, C#,Java, Python, Node.js, Ruby,
REST, GO,SQL,MongoDB,Firebase.com, Sass, Less, Parse.com, PaaS (Azure and Heroku)
.... เป็นต้นนะ 555 ดังนั้นคนที่จะเป็น Full Stack ไม่จำเป็นต้องรู้ทั้งหมดนี่แต่ว่าอย่างน้อยต้องมี Skill Front end , Front end อย่างละ 1 อย่างลึกซื้ง
และก็ถึงจะไม่รู้ในเชิงลึกแต่จะต้องสามารถรู้ได้ว่ามันคืออะไรมีการทำงานเบื้องต้นอย่างไร
และนี่ก็เป็นแค่ภาพของการ Develop นะเป็น Skill ของ Programmer เท่านั้น
ถ้ามองให้ลึกทั้งเส้นตั้งแต่ รับ Requirement ยัน Deploy คนที่เป็น Full Stack Developer ที่เอาอยู่ทั้งเส้นนี่ได้จัดว่าเทพมากๆ หรือเรียกได้ว่าแทบจะเป็นไปไม่ได้
ดังนั้นในเมื่อมันเป็นไปไม่ได้ทีมงานที่เหมาะสมควรจะเป็นอย่างไร ?
ยกตัวอย่างทีมงานขนาดกลางๆ
- Full stack developer 2 คน
- Front end Developer 3 คน
- ฺBackend Developer 2 คน
- DBA 1 คน
อย่างไรเสียทีมงานเหล่านี้ก็ขึ้นอยู่กับแต่ละองค์กรนะครับไม่ได้มีสูตรสำเร็จว่าจะต้องเป็นอย่างไง
เอาไปปรับให้ให้เหมาะสมนะ