Senior Developer là gì? Senior Developer là người có khả năng làm việc ở tất cả các giai đoạn của quy trình phát triển phần mềm: từ lên ý tưởng, liên lạc khách hàng, tới thiết kế, phát triển và kiểm tra bảo trì phần mềm.
“Bản thân phải có khả năng quản lý project hoặc là module mình phụ trách, đủ khả năng để hướng dẫn cũng như lên kế hoạch cho team” – Anh Vũ Nam Sơn, Lead Consultant tại Capgemini Australia, cho biết thêm về công việc của một Senior Developer là gì. Cũng đi từ Junior Developer lên như bao người khác, anh chia sẻ những lời khuyên và hướng đi vô cùng rõ ràng cho các bạn Junior Developer. Hãy đọc bài viết này để biết thêm nhé!
*Bài phỏng vấn được thực hiện từ tháng 12/2016 khi anh Nam đảm nhận vị trí Senior Developer tại Prime Mover Global
Tham khảo mức lương lập trình viên theo khoảng năm kinh nghiệm
Công việc của một Senior Developer là gì?
Senior Developer là gì? Như đã nhắc ở đầu bài viết, Senior Developer là người có khả năng làm việc ở tất cả các giai đoạn của quy trình phát triển phần mềm: từ lên ý tưởng, liên lạc khách hàng, tới thiết kế, phát triển, và kiểm tra bảo trì phần mềm.
Bản thân người Senior Developer phải có khả năng quản lý project hoặc là module mình phụ trách, đủ khả năng để hướng dẫn cũng như lên kế hoạch cho team.
Công việc hằng ngày hiện tại của anh Sơn – một Senior Developer là gì?
- Liên lạc với khách hàng, nhận các feedback, issue từ khách hàng.
- Tiến hành phân tích, thảo luận, đưa ra solution và estimate về thời gian để báo với khách hàng.
- Sau đó, anh sẽ chia nhỏ task ra và hướng dẫn thành viên trong team làm nếu cần, hoặc một số thay đổi lớn về hệ thống thì anh sẽ trực tiếp code.
- Sau khi issue được giải quyết thì anh sẽ review code, cũng như đưa ra các phương án test.
- Đôi khi có ít issue thì anh sẽ xem xét để cải thiện hiệu năng của hệ thống, cũng như chỉnh sửa lại những đoạn code chưa tốt để chương trình hoạt động tốt hơn và dễ bảo trì sau này hơn.
Chẳng hạn, bên phía khách hàng yêu cầu bên anh phát triển một tính năng mới. Anh sẽ gặp khách hàng để họ trình bày requirement, rồi anh đưa ra estimate về thời gian cho khách hàng và vài design đơn giản về giao diện cho khách hàng lựa chọn.
Sau đó, cả Senior và Junior là người trực tiếp thực hiện công việc.
Anh chia story này làm 2 phần lớn là Front-end và Back-end, chia cho bạn Developer trong team làm Front-end cũng với bản design hoàn chỉnh, cả các hàm cần viết.Sau cùng là khi hoàn thành tính năng, anh sẽ viết tài liệu ngắn gọn về tính năng, cách cài đặt, flow đi đơn giản để gửi cho khách hàng review và feedback cho giai đoạn sau.
Những kỹ năng cần thiết để từ Junior lên Senior Developer là gì?
Điểm khác biệt giữa một Junior và Senior là gì? Anh Sơn chia sẻ, “Để trở thành một Senior Developer, bạn nên tích lũy nhiều kỹ năng và kiến thức khác nhau, không chỉ riêng về việc viết code”. Cụ thể hơn, anh chia sẻ những kỹ năng sau là không thể thiếu:
- Kỹ năng viết code và đọc code phải thật “chuẩn”
Muốn trở thành Senior Developer, kỹ năng viết code phải thật “chuẩn” là điều hiển nhiên. Tuy nhiên, không chỉ viết code giỏi, bạn còn cần phải biết đọc code giỏi.
Anh Sơn kể về khoảng thời gian làm việc tại CSC Vietnam, anh phải đọc code “rất rất xấu” do code dự án của anh không phải do người viết, mà do một chương trình khác translate ra. Tuy nhiên, nhờ vậy, anh được “rèn dũa” kỹ năng debug và đọc log của system để fix lỗi trên production (môi trường của khách hàng).
Lời khuyên: Hãy code thật nhiều và nên có side project
Code nhiều là một lời khuyên rất hiển nhiên, code thường xuyên giúp bạn hiểu rõ hơn về ngôn ngữ mình đang làm việc, hiểu được những design pattern, các coding convention để áp dụng vào công việc. Code của bạn sẽ ngày càng ít “kinh” hơn, dễ đọc, dễ hiểu, dễ bảo trì hơn. Điều này sẽ giúp bạn code nhanh, ít bug hơn sau này.
- Nắm vững quy trình phát triển sản phẩm
Về mặt quy trình, bạn nên được trải nghiệm đủ các bước phát triển của phần mềm, ở đây là phát triển một tính năng mới, từ việc lên ý tưởng, tới thiết kế, coding, test và release tính năng đó ra.
- Kỹ năng đưa ra giải pháp hiệu quả
Anh Sơn chia sẻ, là một Senior Developer, bạn sẽ phải đưa ra những quyết định mang tính “chìa khóa” với sản phẩm. Để làm được điều này, bạn phải hiểu đúng và nắm sản phẩm.
Lời khuyên: Tìm hiểu về lĩnh vực mà project của mình đang làm càng nhiều càng tốt
Kiến thức về lĩnh vực đang làm việc sẽ giúp bạn hiểu rõ được yêu cầu của dự án, hướng giải quyết, cũng như dễ dàng hơn trong việc tiếp nhận thông tin từ phía khách hàng hoặc Business Analyst (BA). Đồng thời, càng nắm chắc và hiểu rõ được mọi vấn đề của project thì khả năng thăng tiến sẽ càng cao hơn.
Bạn có thể “thu thập” Domain Knowledge này thông qua các khóa đào tạo tại công ty hoặc tự mày mò. Khi sang chuyển sang làm những dự án khác nhau, bạn cũng nên có ý thức là phải tìm hiểu hoặc vận dụng những Domain Knowledge giống như vậy để có thể đưa ra giải pháp mang lại hiệu quả hơn.
Ngoài việc nắm vững kiến thức nền tảng về lĩnh vực cụ thể ra, bạn nên cập nhật các kiến thức về công nghệ mỗi ngày. Điều này sẽ giúp ích rất nhiều khi bạn cần đưa ra giải pháp và triển khai giải pháp.
Khi có vấn đề, anh tự nghiên cứu giải pháp và phát triển. Khi nào bí thì tự Google, hết cách rồi mới hỏi lại. Nhờ việc tự mình tìm tòi về công nghệ để giải quyết vấn đề đó, anh học được cách chọn công cụ cũng như sử dụng nhiều công nghệ thích hợp cho project, kiến thức về công nghệ cũng phát triển nhanh hơn.
- Kỹ năng giao tiếp
Senior Developer là phải nói chuyện với khách hàng và trao đổi với Project Manager (PM) nên khả năng giao tiếp phải hơn các Developer khác. Cụ thể và quan trọng nhất là bạn phải từ chối hoặc thương lượng về thời gian, khối lượng công việc. Nhận hết việc sẽ khiến bạn và Junior Developer dưới mình “quá tải”, cần biết nói không đúng lúc.
Xem thêm: Project Manager là gì?
- Kỹ năng quản lý công việc
Khi là Senior Developer, bạn còn phải quản lý công việc của các Junior Developer dưới quyền nên kỹ năng quản lý công việc cũng rất quan trọng.
Cụ thể nhất là cần phải chia công việc hợp lý, giúp bản thân cũng như những đồng nghiệp làm chung không bị “quá tải”, nhờ đó giảm khả năng gây lỗi của mỗi thành viên trong nhóm.
Thêm vào đó là việc làm đúng việc, đúng sức sẽ giúp cho cách thành viên trong nhóm tiến lên, cả nhóm sẽ ngày càng tiến bộ.
Xem thêm các nhà tuyển dụng mong đợi gì ở Senior Developer tại ITviec
Tài liệu tham khảo dành cho Junior muốn thành Senior Developer
- Clean Code: A Handbook of Agile Software Craftsmanship: cuốn sách kinh điển của ngành cực kỳ cần thiết cho ai mới vào nghề.
- Refactoring: Improving the Design of Existing Code: cuốn sách rất hay về refactoring, rất phù hợp cho những bạn đang lập trình hướng đối tượng.
- Working effectively with legacy code: tác giả Michael Feathers mang đến nhiều chiến lược từ A-Z để bạn xử lý hiệu quả những “code không sạch” (legacy code).
- Design Patterns: Elements of Reusable Object-Oriented Software: đây là cuốn kinh điển và đầy đủ nhất về các design pattern trong lập trình hướng đối tượng.
- Các khóa học tại CodeAcademy, Udacity
Senior Developer trong ngành nói gì?
- Việc trao đổi thông tin là vô cùng quan trọng
Theo anh, là một Senior Developer, việc trao đổi thông tin là cực kỳ quan trọng, giữa các thành viên trong cùng một team, giữa team và khách hàng cần được rõ ràng.
Nếu không hiểu gì thì nên hỏi ngay và xác nhận lại, luôn mạnh dạn đặt câu hỏi cũng như đưa ra những ý tưởng mới nếu có, mọi công việc sẽ trôi chảy và hiệu quả hơn.
Trước đây, anh đã từng phạm phải một sai lầm khá nghiêm trọng vì đã không giao tiếp, trao đổi thông tin rõ ràng.
Có một lần, nhóm anh phát triển một module mới, nhưng ở dạng demo. Cả module tại thời điểm đó chưa có môi trường phát triển riêng, nên được đặt chung trong môi trường phát triển của project chính của công ty.
Tới một ngày, PM yêu cầu cần release một Package để có thể test và demo trên môi trường thật, anh đã không hỏi kỹ PM về môi trường phát triển của module đó, mà lại dùng chính Project kia release. Sau khi release rồi thì module đó không thể gỡ bỏ khỏi project chính của công ty.
Sau đó, tuy anh cũng đã tìm được cách để vô hiệu hóa module đó trong các release sau nhưng đây là một trong những bài học sâu sắc dành cho anh trong quá trình làm việc với các bên.
- Muốn trở thành Senior Developer, các Junior Developer nên kiên nhẫn
Anh Sơn chia sẻ thêm về lúc anh còn là Junior Developer tại CSC Vietnam, anh phải mất khoảng 2-4 tháng đầu chỉ làm những chính sửa đơn giản như sửa font chữ, chính tả trên màn hình… Sau đó “cứng” hơn tí thì sửa vài đoạn code đơn giản, có Senior Developer hướng dẫn từng file/hàm.
Phải mất tầm gần 2 năm, các bạn Developer mới có thể tự tin làm những task/issue khó hơn và tiến tới phát triển những tính năng nhỏ. Chính vì thế, con đường trở thành Senior Developer cần rất nhiều sự kiên nhẫn.
Có thể xem công việc của Junior Developer trong khoảng 2 năm đầu sẽ gồm, theo thứ tự từ trên xuống:
- Học build project
- Fix UI
- Học về kiến thức dự án
- Fix lỗi tính toán nhỏ
- Fix batchJob
- Phát triển tính năng nhỏ
Trong khoảng thời gian 2 năm này, bạn vẫn có thể tích kỹ thêm những kiến thức và kỹ năng cần thiết như anh Sơn đã có chia sẻ ở trên.
Tiểu sử:
Anh Vũ Nam Sơn tốt nghiệp trường Đại học Khoa học tự nhiên TP. HCM năm 2012. Trong khoảng hơn 2 năm đầu sau khi ra trường, anh là Developer của CSC Vietnam, chuyên về mảng Hệ thống Bảo hiểm.
Sau đó, anh là Salesforce Senior Developer cho Prime Mover Global, cũng là một công ty Outsourcing. Công việc chính của anh là phụ trách phát triển và bảo trì các phần mềm trên nền tảng Force.com.
Salesforce là một bộ giải pháp phần mềm CRM tổng thể, cung cấp một loạt các ứng dụng CRM chuyên về bán hàng và dịch vụ khách hàng dành cho các doanh nghiệp vừa và nhỏ. Salesforce Developer là người sẽ phát triển những ứng dụng hỗ trợ người dùng, giống như App của iOS/Android vậy.
Ngôn ngữ chính để phát triển Salesforce là Apex, ngoài ra còn sử dụng Visualforce components và Javascript/HTML cho Front-end.
Ở Prime Mover Global hơn 2 năm làm việc, anh được thăng tiến lên thành Senior Developer. Sau đó, vào năm 2019, anh chuyển sang vị trí Lead Consultant tại Capgemini Australia. Tổng cộng, anh đã có hơn 10 năm kinh nghiệm trong ngành IT.
Anh Sơn tại văn phòng làm việc của Prime Mover Global
Nếu bạn nghĩ những chia sẻ này có thể giúp ích cho bạn bè hoặc đồng nghiệp thì đừng ngại nhấn nút Share bên dưới nhé!
Xem thêm các việc làm Senior Developer “chất” dành cho bạn tại ITviec: