Trong bài viết này, chúng ta sẽ tìm hiểu về full stack developer. Họ là ai? Họ làm việc như thế nào? Giá trị của họ ra sao? Họ có giống như những Full stack Overflow developer mà tôi đã đề cập trước đây. Nào cùng tìm hiểu nhé!


Họ là ai?


Hầu hết các developer dành phần lớn thời gian của sự nghiệp cho việc chuyên môn hoá bản thân về một mảng nào đó. Còn đối với full stack developer, họ làm tất, vậy họ có phải là thiên tài công nghệ? Hay họ là những người thực sự tài năng?


Câu hỏi thứ nhất rất dễ dàng để trả lời, họ cũng như bao developer khác trên trái đất này có thể họ code vì đam mê, có thể họ code vì kiếm ăn ngày ba bữa. Còn đối với câu hỏi thứ hai, phức tạp hơn và cũng khó có cách nào để trả lời một cách hoàn hảo.


Full stack developer, họ có thực sự tồn tại?


Vâng, họ có tồn tại. Tuy nhiên, để đánh giá được đúng một developer có có đầy đủ những khả năng để trở thành một full stack developer thực sự rất khó khăn, và bạn phải vô cùng cẩn thận với điều đó. Trở thành một full stack developer giỏi không chỉ là phải quen thuộc với nhiều thứ, nó là sự tổng hợp từ kiến thức, sự hiểu biết trực quan và sâu sắc về cả front-end và back-end, cũng như nắm vững các best practices và khái niệm.


Đương nhiên, các full stack developer đều có khả năng coding cho mọi thành phần của hệ thống, và nếu họ có tài, họ sẽ làm mọi thứ một cách tốt nhất. Điều này đòi hỏi một lượng lớn các kỹ năng cũng như kinh nghiệm.


Tuy nhiên thì một full stack developer làm việc với front-end sẽ không thể bằng một chuyên gia front-end được, điều này cũng tương tự với những thành phần khác. Một full stack developer có thể là một chuyên gia trong một số thành phần nào đó, nhưng để là chuyên gia trong tất cả thì đó hẳn là một thiên tài. Thế đấy, họ tồn tại nhưng có thể họ không phải là người mà một số nhà tuyển dụng đang tìm kiếm.


Full stack developer không phải là người một mình gánh team!


Một full stack developer sẽ có hiểu biết rộng về nhiều thành phần khác nhau, và cách tương tác giữa chúng trong quá trình phát triển, và kết hợp chúng lại với nhau thành một sản phẩm hoàn chỉnh.


Điều gì cũng sẽ có những ích lợi và hạn chế. Đối với những hệ thống mà ngày một phức tạp thì full stack developer sẽ lộ ra điểm yếu, họ khó có thể kiểm soát toàn bộ stack nữa. Lúc này chúng ta sẽ cần những chuyên gia cho từng thành phần. Đã có rất nhiều sai lầm phổ biến khi cho rằng nếu bạn thuê một full stack developer bạn sẽ chẳng cần phải thuê một đội ngũ nào nữa.


Điều này thật ra không hoàn toàn sai, nhưng nó chỉ có thể áp dụng lên những startup non trẻ với budget hạn chế và chỉ cần xây dựng minimum viable product (MVP). Đối với trường hợp đó, một full stack developer là một lựa chọn cực kì tuyệt vời. Nhưng một khi sản phẩm phát triển và trở nên phức tạp, bạn sẽ cần sự hỗ trợ từ một đội các developer có khả năng chuyên môn hoá cao ở các thành phần khác nhau.


Nói một cách công bằng, việc có một người có hiểu biết một cách tổng hợp các thành phần, để kết nối chúng lại với nhau, sau đó làm việc với từng chuyên gia ở mỗi phần để có thể đưa ra sản phẩm hoàn hảo là việc vô cùng quan trọng. Và đó là nơi mà vai trò của full stack developer được thể hiện rõ ràng nhất.


Kỹ năng của một full stack developer


Mỗi developer đều có kỹ năng tốt trọng một hoặc hai lĩnh vực, sau đó kiến thức của họ được làm rộng ra để hiểu được những mảng khác nhau trong quá trình phát triển phần mềm. Và sự hiểu biết rộng này làm cho vai trò của full stack developer trở nên quan trọng trong team.


Giải quyết khó khăn trong việc giao tiếp


Phần lớn các dự án thất bại bởi vì sự yếu kém trong giao tiếp, mặc dù vẫn có nhiều vấn đề khác như trễ hẹn, đội chi phí, hay sản phẩm có chất lượng không tốt.


Thông thường, sự giao tiếp yếu kém là nguyên nhân của rất nhiều sự hiểu nhầm giữa các team khác nhau. Giả sử như, back-end developer muốn xây dựng một framework lý tưởng với cơ sở dữ liệu, nhưng việc này vô tình lại tạo ra những điều khó khăn cho front-end developer làm phần giao diện tốt.


Những vấn đề này phát sinh khi các chuyên gia ở mỗi thành phần không hiểu được những thành phần còn lại cần gì để cùng thành công.


Trở thành key player trong team


Một full stack developer có thể là một key player trong team. Họ hiểu toàn bộ các quy trình trong hệ thống cũng như hiểu về business và người dùng mà sản phẩm hướng tới. Họ có thể trở thành những team member tuyệt vời như tôi đã từng nói.


Như một điều tất yếu, full stack developer làm việc tốt hơn trong team bởi vì họ biết những công cụ nào các team member khác đang làm việc, và họ cần gì để hoàn thành. Khả năng này cho phép họ thích nghi tốt với những team sử dụng agile trong quy trình phát triển.


Một lợi ích khác của việc có full stack developer trong team đó là họ dễ dàng phù hợp với những vị trí về quản lý dự án. Họ có kiến thức về nhiều thành phần, vì thế họ dễ dàng đảm bảo các thành phần đều phát triển ở mức hợp lý và hoạt động tốt trong bối cảnh tổng thể của dự án.


Tóm lại


Vậy, đối với nhà tuyển dụng, bạn có nên thuê một full stack developer? Nếu bạn là một startup trẻ, và cần xây dựng MVP, hoặc một dự án lớn cần sự gắn kết và có một kênh giao tiếp giữa các team về code base của họ thì câu trả lời chắc chắn là có.


Còn đối với developer, có nên trở thành một full stack developer? Thì câu trả lời của mình là tuỳ thuộc vào đam mê hay mục tiêu mà bạn theo đuổi. Câu trả lời sẽ là ở bạn. Cùng chia sẻ ý kiến của các bạn ở phần comment của bài viết nhé!


Tạm biệt và hẹn gặp lại các bạn trong các bài viết tiếp theo.


Bài gốc: Codeaholicguy