5.1 Một chút lịch sử
Khi vào những năm 90, cuộc Cách mạng Internet mới bắt đầu, không ai biết cách phát triển dịch vụ internet đúng cách. Tất cả các tính năng của chúng ngay lập tức trở nên khả dụng cho người dùng, điều này rất khác với phát triển phần mềm truyền thống.
Công cụ tìm kiếm lớn nhất thời đó, công ty Yahoo, đã quyết định đi theo một con đường mới và áp dụng phương pháp từ Hollywood: các quản lý của họ thậm chí còn được gọi là Nhà sản xuất :) Không có gì ngạc nhiên khi họ không thành công. 🤦♂️
Yahoo — là một kẻ thất bại lớn nhất trong việc mua lại các công ty khác. Đã có lúc họ được đề nghị mua cả Google và Facebook. Nhưng khi sụp đổ, họ bị Microsoft đề nghị mua lại với giá 40 tỷ, nhưng họ lại từ chối. Một vài năm sau, họ được mua lại với giá 3 tỷ. Mặc dù trong thập niên 90, ở đỉnh cao, họ đáng giá 200 tỷ, và nếu họ mua Google, giờ họ sẽ có giá trị vài nghìn tỷ. Đừng như Yahoo.
Từ thời kỳ Cách mạng Internet, hàng chục phương pháp phát triển phần mềm khác nhau đã được thử nghiệm, và hiện nay tình hình đã ổn định. Tồn tại những vai trò tiêu chuẩn với các nhiệm vụ tiêu chuẩn, quy trình tiêu chuẩn và phần mềm tiêu chuẩn.
Trong quá trình học, bạn sẽ học tất cả những gì bạn cần biết để làm việc tại các công ty IT hiện đại, với các công cụ phát triển hiện đại.
5.2 Nhóm sản phẩm
Một nhóm phát triển điển hình bao gồm:
- Những người quyết định các chức năng và tính năng nào sản phẩm cần có
- Product Owner
- Business Analytic
- Các nhà phát triển, người thực hiện tất cả điều đó
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
- Những người chịu trách nhiệm về chất lượng hoạt động của sản phẩm
- QA Automation
- DevOps
Product Owner trong phát triển phần mềm đóng vai trò quan trọng. Họ quản lý sản phẩm và đảm bảo rằng nhóm phát triển tập trung vào các nhiệm vụ quan trọng nhất. Họ xác định tầm nhìn sản phẩm, lập danh sách nhiệm vụ (backlog) và ưu tiên hóa danh sách đó. Điều này giúp đảm bảo rằng mọi giai đoạn phát triển tối đa hóa mục tiêu kinh doanh và yêu cầu của người dùng.
UX Designer chịu trách nhiệm tạo ra giao diện người dùng tiện lợi và hiệu quả cho sản phẩm, bao gồm nghiên cứu nhu cầu người dùng, phát triển nguyên mẫu và thử nghiệm giao diện. Công việc này nhằm cải thiện sự tương tác của người dùng với sản phẩm, để làm cho nó dễ hiểu và tiện lợi nhất có thể.
DevOps chuyên về tối ưu hóa quy trình phát triển phần mềm và quản lý hoạt động, để tăng tốc và đơn giản hóa việc phát hành cập nhật sản phẩm. Công việc của họ bao gồm tự động hóa kiểm thử, triển khai và giám sát hệ thống, cũng như cấu hình hạ tầng và đảm bảo tích hợp liên tục và phân phối (CI/CD).
5.3 Đội ngũ phát triển
Việc phát triển trực tiếp được thực hiện bởi các lập trình viên. Có thể chia họ thành 5 nhóm chính:
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
- DBA
Vai trò và nhiệm vụ có thể thay đổi tùy theo kích thước nhóm và đặc tính sản phẩm, nhưng cỡ như sau:
Software Architect: chịu trách nhiệm thiết kế kiến trúc phức tạp của các hệ thống phần mềm. Architect phát triển cơ sở hạ tầng kỹ thuật, xác định cấu trúc và phương pháp tương tác của các thành phần khác nhau của sản phẩm phần mềm, đảm bảo tính mở rộng, hiệu suất và bảo mật của chúng.
Backend Developer: chuyên phát triển phần phía máy chủ của các ứng dụng. Nhiệm vụ của Backend Developer bao gồm thực hiện logic, tích hợp cơ sở dữ liệu và hệ thống quản lý dữ liệu, xử lý yêu cầu của người dùng và duy trì tương tác với phần frontend.
Frontend Developer: phát triển giao diện người dùng của các ứng dụng web. Vai trò này đòi hỏi kiến thức về HTML, CSS và JavaScript, cùng các frameworks và thư viện để tạo ra giao diện tương tác và phản hồi, đảm bảo sự tương tác tốt của người dùng với sản phẩm.
Mobile Developer: phát triển các ứng dụng cho thiết bị di động. Mobile Developer tạo ra các ứng dụng cho các hệ điều hành khác nhau (ví dụ: iOS và Android), cân nhắc đặc điểm nền tảng, hiệu suất thiết bị và trải nghiệm người dùng.
DBA (Database Administrator): chịu trách nhiệm quản lý cơ sở dữ liệu, đảm bảo chúng khả dụng, an toàn và tối ưu hóa. DBA thực hiện các nhiệm vụ cấu hình, giám sát và bảo trì cơ sở dữ liệu, cũng như phát triển chiến lược sao lưu và khôi phục dữ liệu.
GO TO FULL VERSION