CodeGym /Các khóa học /JAVA 25 SELF /Tạo sản phẩm: các sản phẩm CNTT hiện đại ra đời như thế n...

Tạo sản phẩm: các sản phẩm CNTT hiện đại ra đời như thế nào

JAVA 25 SELF
Mức độ , Bài học
Có sẵn

1. “Con người không còn được sinh ra, họ được nuôi trồng”

Được rồi, nếu bạn vẫn còn ở đây, chúng ta tiếp tục nhé. “Và tôi sẽ cho bạn thấy hang thỏ sâu đến mức nào” © 🐇

Hãy để tôi kể bạn nghe cách diễn ra quy trình phát triển sản phẩm — chúng ta sẽ đi từng bước từ tầng cao nhất, toàn cục đến tầng thấp nhất — viết mã. Tôi nghĩ bạn sẽ có vài khám phá thú vị…

Các sản phẩm CNTT hiện đại không còn được “viết” nữa, mà được “tạo ra”. Chúng được lắp ghép từ các thư viện, framework, phần mềm và sản phẩm bên thứ ba, hoặc thậm chí sử dụng các dịch vụ Internet từ xa có trả phí hoặc miễn phí 🧩.

Một sản phẩm hiện đại là cả một “sở thú” của công nghệ, dịch vụ, giải pháp và quy trình. Một phần công việc do con người thực hiện, một phần được tự động hóa, còn lại đến 90% được các dịch vụ đám mây trong các trung tâm dữ liệu đảm nhiệm ☁️. Thế giới đã khác xưa rồi.

Nhưng điều đầu tiên bạn sẽ chú ý — đó là sự thay đổi liên tục. Bạn không còn “viết” chương trình nữa, bạn liên tục đưa thay đổi vào chúng.

2. Thay đổi liên tục

Bạn sẽ đi làm và gia nhập một đội 20 người đã làm việc với sản phẩm này suốt 5 năm. Hiện người dùng đang sử dụng phiên bản thứ 7 của nó. Nhiệm vụ của bạn là đưa các thay đổi vào sản phẩm này. Những thay đổi nhỏ thôi, để không làm hoảng sợ nhóm người dùng hiện đang hoạt động.

Và điều đó sẽ không dễ, vì sản phẩm đã chạy rồi. Nó có khách hàng và họ trả tiền 💰. Vì vậy không được làm hỏng bất cứ thứ gì. Đưa thay đổi vào một sản phẩm đang vận hành khó gấp nhiều lần so với sản phẩm mới. Vì thế có các tiêu chuẩn chuyên biệt, giao thức di trú (migration) và tiện ích hỗ trợ. Chợt nhớ một câu chuyện cười:

Hai người bạn cũ gặp nhau: một người trở thành thợ máy, người kia là bác sĩ phẫu thuật... Mỗi người một cuộc sống, lo toan, niềm vui... Họ kể cho nhau mọi thứ, rồi câu chuyện chuyển sang lương. Thợ sửa ô tô nói: “Tôi nhận khoảng 30k mỗi tháng và rất hài lòng, còn cậu thì sao?”. Bác sĩ phẫu thuật tim nói: “Ừ, tôi khoảng 100k cho mỗi ca mổ...”. Lúc này thợ máy tò mò: “Lạ nhỉ, sao chênh lệch lớn vậy? Có vẻ chúng ta làm cùng một việc — đều thay thế ‘phụ tùng’ mà”. Bác sĩ bảo: “Thế ra xe đi, nổ máy đi...”. Thợ máy nổ máy, bác sĩ mở nắp capo và nói với anh ta: “Thấy không, động cơ đang chạy? Hãy thay nó đi!” 😂

Ngay cả khi phép màu xảy ra: đội của bạn viết sản phẩm từ con số 0 suốt một năm và chỉ sau đó mới phát hành nó, bạn biết điều gì xảy ra tiếp theo chứ? Nếu sản phẩm thành công, chủ sản phẩm sẽ muốn phát triển nó thêm. Phát hành phiên bản mới, bổ sung một số tính năng. Hoặc ít nhất tiến hành vài thử nghiệm. Và bạn biết điều gì theo sau chứ? Thay đổi 🙈

3. Giá trị của sản phẩm

Từ góc nhìn phát triển hiện đại, chỉ có mã đã được phát hành và tính năng mà người dùng thực sự sử dụng mới có giá trị. Nếu bạn viết mã, nó được lưu đâu đó, chạy đấy nhưng không ai dùng, giá trị của nó gần như bằng 0. Vì vậy, toàn bộ mã cần lên production càng sớm càng tốt 🚀

Mã của bạn cần đi qua các giai đoạn sau:

  • ✔️ Bạn đã viết và bảo đảm nó chạy.
  • 🔍 TeamLead của bạn đã review và gộp nó vào nhánh chính trong Git.
  • 🧪 Các bài kiểm thử trong quá trình build cho thấy bạn không làm hỏng thứ gì quan trọng.
  • 🧩 Kiểm thử tích hợp cho thấy sản phẩm hoạt động như mong muốn.
  • 🛡️ QA đã kiểm tra mã này và cho phép phát hành.
  • 📦 Sau đó cần build phiên bản mới của sản phẩm và phát hành nó lên máy chủ.
  • 🐳 Cần đóng gói phiên bản mới vào Docker Images và phát hành.
  • 🗄️ Có thể phải chạy các script migration và cập nhật cơ sở dữ liệu và/hoặc các giải pháp bên thứ ba khác.
  • 📊 Sau đó cần thu thập log trên máy chủ để bảo đảm mọi thứ chạy đúng.
  • ⏪ Nếu có sự cố, khi bạn làm hỏng điều gì đó, cần rollback bản build, khôi phục trạng thái trước của cơ sở dữ liệu và không làm mất những thao tác người dùng đã thực hiện trong thời gian họ dùng phiên bản không ổn định.

Ở đa số công ty, các bài toán này nay đã có lời giải: quy trình mới được thiết lập, có những con người chuyên trách, các giao thức bảo mật và tiêu chuẩn kiểm soát chất lượng được đưa vào. Công ty càng lớn, thời gian từ lúc viết mã đến lúc mã lên production và trở thành giá trị — bắt đầu đem lại lợi ích cho con người — càng ngắn.

Ở phần lớn công ty, mã đi trọn hành trình này trong khoảng hai tuần. Tuy nhiên có những công ty phát hành mỗi tuần hoặc thậm chí mỗi ngày. Và những “đặc biệt xuất sắc” — vài lần mỗi ngày.

Mã đã viết thì chưa có giá trị gì. Chỉ mã đang chạy trên production mới mang lại giá trị.

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION