[Insider Tỏ tường] Chặng 2: Giai đoạn phát triển (phần 1)

Tiếp nối ngay sau giai đoạn “cân đo đong đếm”, dự án sẽ bước sang giai đoạn Phát triển – nơi những kỹ sư phần mềm phô diễn tài năng lập trình. Trong giai đoạn này, đội ngũ lập trình viên chính thức bắt tay vào “code” và dần tạo nên hình hài của sản phẩm dựa trên các thông số thiết kế được đưa ra ở giai đoạn trước.

???????: ??̉ ??̛?̛̀?? – chuỗi bài viết giúp công chúng hiểu tường tận về công việc của các thành viên trong một dự án sản xuất phần mềm tại CMC Global. Bạn sẽ được gặp gỡ những C-Globalers nổi bật, để tìm hiểu về quy trình phát triển phần mềm “cơ bản” trong công ty IT Outsourcing, vai trò của từng thành viên trong một dự án ở CMC Global, và đặc biệt là những “góc khuất” về mỗi vị trí công việc.


Tiếp nối ngay sau giai đoạn “cân đo đong đếm”, dự án sẽ bước sang giai đoạn Phát triển – nơi những kỹ sư phần mềm phô diễn tài năng lập trình. 

Tại đây, đội ngũ lập trình viên chính thức bắt tay vào “code” và dần tạo nên hình hài của sản phẩm dựa trên các thông số thiết kế được đưa ra ở giai đoạn trước. Sau khi hoàn tất việc coding, các lập trình viên sẽ deploy (triển khai) sản phẩm và tiến hành thử nghiệm. Đây là giai đoạn chiếm khá nhiều thời gian và nhân lực trong toàn bộ quy trình phát triển phần mềm. 

Vậy họ là ai? Và họ làm gì đằng sau màn hình máy tính? Hãy cùng CMC Global Careers tìm hiểu về 04 vị trí: 

? Frontend Developer 

? Backend Developer  

? Fullstack Developer 

? Mobile Developer 

Tại bài viết này, các vị trí lập trình viên được phân loại dựa theo vai trò của họ trong các cấu phần của một sản phẩm phần mềm.

 

Hồ Lê Huy – Backend Developer (BE) 

Như một Producer ngồi sau ánh đèn sân khấu, nhiệm vụ của Huy là xây dựng nền tảng của một trang web. Những cấu trúc mã nguồn BE chính là “xương sống” vận hành của toàn bộ website, hỗ trợ thông tin cơ sở dữ liệu cho trình duyệt. 

BE tạo ra các logic hoạt động của ứng dụng thông qua việc sử dụng các ngôn ngữ lập trình kịch bản. Ngoài ra, BE cũng là người chịu trách nhiệm tối ưu hoá ứng dụng về tốc độ và hiệu quả. Một trong những thành phần quan trọng của tất cả các ứng dụng web là Cơ sở dữ liệu (Database) cũng do các BE đảm nhận. 

Mỗi ngày, sau khi trao đổi và nhận yêu cầu từ Project Manager hoặc Comtor, Huy lại bắt tay vào tác nghiệp lập trình. Sau đó, đưa kết quả vào nguồn chung của team để cùng kiểm tra và đối chiếu. Đối với các yêu cầu phức tạp, Huy sẽ tham gia các buổi họp cùng cả đội để thảo luận hướng triển khai. 

BE thường xuyên phải làm việc mật thiết với các Frontend Developer (FE) để:  

  • Cung cấp cho FE các logic hệ thống;  
  • Tiếp nhận từ FE các yêu cầu về mặt cấu trúc hiển thị. 

Từng có thời gian thử sức ở vị trí FE chính là điểm cộng khi cậu bạn làm việc tại vị trí BE. Lợi thế đó giúp Huy nhanh chóng nắm bắt được ý tưởng của đội FE và quá trình “code” cũng mượt mà hơn. Sự ăn ý giữa FE và BE chính là chìa khóa giúp tối ưu giai đoạn phát triển sản phẩm.  

Với Huy, điều thú vị nhất và cũng thách thức nhất ở công việc này đó là phải liên tục nâng cấp bộ kỹ năng trong thời gian ngắn. Để triển khai công việc hiệu quả hơn, BE cần học hỏi và cập nhật các công nghệ mới mỗi ngày. Tuy nhiên, việc học hỏi chỉ mới là điều kiện cần, điều kiện đủ là phải học nhanh. Theo yêu cầu dự án, Huy thường xuyên phải tìm hiểu và tự triển khai những công cụ, tính năng mới trong vòng vài tuần ngắn ngủi. 

Cơ sở dữ liệu (Database) giữ vai trò nền tảng, ảnh hưởng lớn đến toàn bộ sự vận hành của dự án. Vì vậy, công việc quản lý Database đòi hỏi độ chính xác rất cao, mỗi chi tiết đều phải được xử lý với sự cẩn trọng tối đa. Một trong những sai lầm nhớ đời của Huy chính là nhầm lẫn cơ sở dữ liệu của dự án và đã vô tình … xóa mất một dòng code. Hậu quả là kết quả tính toán của hệ thống bị sai lệch và gây ra phản ứng dây chuyền nhiều ngày sau đó. May mắn là sai lầm này chỉ diễn ra ở “môi trường dev”, chưa gây ra ảnh hưởng nghiêm trọng ở sản phẩm chính thức. Tính cẩn trọng, kỹ lưỡng là yêu cầu tiên quyết nếu BE muốn đi xa ở con đường này.  

 

 

Nguyễn Đức Thắng (Thomas) – Frontend Developer (FE) 

Dù chỉ mới là thành viên của CMC Global tròn 01 năm, Thắng đang là một trong những nhân tố nổi bật nhất của DKR1 – phụ trách nhóm dự án của thị trường Hàn Quốc. Anh bạn 9x đã luôn làm việc với tôn chỉ “Giúp khách hàng đạt được sự hài lòng tuyệt đối”.  

Nếu như xem việc phát triển dự án là xây dựng một ngôi nhà, thì Frontend Developer chính là người chọn màu sơn, mẫu gạch và tạo nên diện mạo của ngôi nhà. 

Thắng mô tả công việc hàng ngày của mình như một người làm đẹp giao diện cho sản phẩm. Bằng việc sử dụng ReactJS, Thắng đã biến những mẫu thiết kế trên bản vẽ trở thành các website sống động với tính ứng dụng cao.  

Trong phát triển dự án, lập trình FE giữ vai trò xây dựng giao diện website sao cho trực quan và bắt mắt nhất để thu hút sự quan tâm của người dùng. Đồng thời, người làm FE còn góp phần nâng cao trải nghiệm người dùng cuối thông qua những cải tiến về tương tác, đáp ứng và tối ưu hóa tốc độ tải trang.Thực tế cho thấy, một ứng dụng có trang web ấn tượng cùng thông tin đầy đủ và dễ sử dụng có thể gia tăng lợi nhuận gấp nhiều lần. 

Trong bối cảnh của một đội phát triển phần mềm, FE cần phải phối hợp chặt chẽ với Designer để thiết kế nên một giao diện người dùng đẹp mắt, hấp dẫn và có tính ứng dụng cao. Song song, FE cần phối hợp với BE để đảm bảo tích hợp đầy đủ các thành phần hệ thống và cơ sở dữ liệu quan trọng.  

Sau 05 năm làm việc ở vị trí FE, Thắng nhận thấy tính sáng tạo chính là chất xúc tác quan trọng để cho ra đời những con web 10 điểm. Ngày nay, trải nghiệm người dùng là yếu tố được quan tâm hàng đầu của mọi dự án phần mềm. Một FE hiện đại không những cần nắm vững kiến thức về lập trình mà còn phải liên tục cập nhật xu hướng mới và chủ động đề xuất các giải pháp, ý tưởng mới. 

Chia sẻ về trải nghiệm đáng nhớ nhất tại CMC Global, Thắng kể về việc được Leader “trao quyền làm PM”, chủ động về các phương án công nghệ (Techstack) và cơ hội trao đổi trực tiếp với khách hàng Hàn Quốc. Nắm bắt những cơ hội đó, Thắng đã liên tục nâng cao trình độ và vượt qua giới hạn của bản thân. Thành quả là anh chàng đã được khách hàng đánh giá rất cao và quyết định “giữ chân”, gia hạn thời gian tham gia dự án so với kế hoạch ban đầu. 

 

Bùi Bảo Long – Fullstack Developer 

Cùng với “bạn thân” là chiếc bàn phím, Bảo Long đã chinh chiến qua rất nhiều vị trí trước khi trở thành một lập trình viên Fullstack tại CMC Global.  

Với xuất phát điểm là dân IT chính hiệu, công việc đầu tiên của anh chàng là Data Engineer, sau đó lần lượt là BE và FE. Long đã chọn JS làm ngôn ngữ chính để phát triển vì đây là ngôn ngữ bậc cao và linh hoạt. JS vừa có thể áp dụng để lập trình BE (NodeJS, NestJS, …), lập trình FE (ReactJS, Angular, VueJS, …), và còn có thể lập trình Mobile (React Native) một cách dễ dàng. Lựa chọn này cũng chính là cơ sở giúp cho Long hướng đến vị trí Fullstack như hiện tại. 

Không có nhiều sự khác biệt so với FE hay BE, công việc chủ yếu của Long vẫn là code để hoàn thiện yêu cầu của khách hàng trong thời gian dự kiến. Tuy nhiên, Fullstack là sự tổng hòa năng lực của cả lập trình FE và lập trình BE, nên một Fullstack Developer cần có sự hiểu biết sâu sắc về cả hai khía cạnh trên: 

  • Vừa có khả năng tư duy logic để phân tích và thiết kế cơ sở dữ liệu,
  • Vừa có thể ứng biến linh hoạt để tối ưu hóa cách hiển thị của trang web/ ứng dụng đi động.

Vai trò này đòi hỏi sự hiểu biết rộng về cả hệ thống gồm nhiều thành phần khác nhau, sự tương tác giữa chúng trong quá trình phát triển phần mềm, và quan trọng nhất là cách để kết hợp chúng lại với nhau thành một sản phẩm hoàn chỉnh. 

Cũng nhờ khả năng bao quát “toàn sân” này mà một Fullstack Developer có thể xử lý một vấn đề Frontend ở góc độ của một … BE và ngược lại. 

Ngoài ra, do biết cả Frontend, Backend, … nên Long trở thành cầu nối giữa các thành viên, giúp cho việc giao tiếp trở nên dễ dàng hơn. Điều này giúp Fullstack Developer dễ trở thành key member trong team và gắn kết các anh em trong đội. 

Theo Long, các lập trình viên không nhất thiết đều phải phát triển theo hướng Fullstack, điều này phụ thuộc vào định hướng nghề nghiệp của mỗi người. Các bạn hoàn toàn có thể đào sâu phát triển và trở thành chuyên gia ở một mảng FE hoặc BE. Và ngược lại nếu bạn thích mình là một người đa năng, là một “thợ đụng” đúng nghĩa (đụng đâu làm đó) thì Fullstack chắc chắn là hướng phù hợp với bạn. 

 

Phạm Minh Duy (Paul) – Mobile Developer

Duy đã tình cờ đến với bộ môn Mobile khi đang là thực tập sinh … lập trình web. Cơ duyên này đến khi cậu bạn được ngồi cạnh một team Mobile lúc đang chập chững bước vào nghề “code”. Nhìn thấy các anh em xây dựng ứng dụng, tích hợp nhiều tính năng xịn xò trên một chiếc điện thoại, Duy biết mình đã tìm được chân ái cuộc đời. Hiện tại, chàng trai thuộc thế hệ GenZ này đã là một lập trình viên Mobile đa-zi-năng khi có thể lập trình tốt cả Android và iOS.  

Đúng như tên gọi, Mobile Developer là những lập trình viên phát triển ứng dụng trên thiết bị di động như điện thoại hoặc máy tính bảng. Về bản chất, công việc của Mobile Developer và FE, BE hay Fullstack là giống nhau, chỉ khác nhau về nền tảng lập trình. Tất cả đều thực hiện việc tạo lập mã nguồn để xây dựng, thiết kế và tạo lập các ứng dụng, phần mềm. 

Theo Duy chia sẻ, một Mobile Developer có nhiều nét tương đồng với vị trí FE ở nền tảng web. Mục tiêu chính là đều hướng đến trải nghiệm của người dùng cuối và phụ thuộc vào logic hệ thống cũng như Database do đội BE thiết lập. 

Công việc thường xuyên của Duy sẽ bao gồm: 

  • Viết code lập trình và xây dựng khung tính năng phần mềm mà khách hàng yêu cầu. 
  • Chạy thử và xem xét các ứng dụng trên các phần mềm giả lập. 
  • Sửa chữa và nâng cấp các lỗi xuất hiện trong quá trình ứng dụng chạy bản beta. 
  • Lên ý tưởng cho các tính năng mới dựa vào nhu cầu và trải nghiệm của người dùng. 

Một nguyên tắc làm việc quan trọng mà Duy luôn hướng đến đó là “Code sạch”. Theo Duy, khi làm việc trong một môi trường tập thể thì lập trình viên cần phải đảm bảo rằng những phần code của mình dễ hiểu và dễ xử lý cho cả đội. Code rõ ràng sẽ là cơ sở cho một môi trường làm việc nhóm hiệu quả. 

Kỉ niệm đáng nhớ nhất của Duy tại CMC Global là lần vượt qua chính mình để biến “điểm yếu” thành “thế mạnh”. Dự án mà Duy phụ trách đặt ra yêu cầu phải tích hợp ứng dụng di động trực tiếp vào nền tảng điện toán đám mây (AWS). Bằng một cách thần kì nào đó, anh chàng đã tìm hiểu và triển khai thành công yêu cầu này trong một thời gian ngắn.  

Theo Duy, để làm tốt ở vị trí này, Mobile Developer cần phải có một sự khát khao tìm tòi lớn để có thể theo kịp tốc độ phát triển ngày càng nhanh của tiến trình Mobile hóa. Đây chính là xu hướng tất yếu của công nghệ tương lai. “Các rapper luôn muốn đặt Rap Việt lên World Map, còn em thì có một ước mơ ‘nhỏ nhoi’ là Coder Việt được có tên trên bản đồ thế giới”. – Duy lạc quan chia sẻ. 

 

Đọc thêm các bài viết của ???????: ??̉ ??̛?̛̀??

Chặng 1: Giai đoạn phân tích, lên kế hoạch và thiết kế giải pháp

Chặng 3: Giai đoạn kiểm thử  – Coming Soon

Chặng 4: Giai đoạn triển khai & vận hành – Coming Soon 

 

Copy link
Powered by Social Snap