10.1 «Con người không còn sinh ra nữa, họ được tạo ra»
Ồ, nếu bạn vẫn còn ở đây, hãy tiếp tục. «Và tôi sẽ cho bạn thấy hố thỏ sâu đến thế nào» (ц)
Hãy để tôi kể cho bạn về quá trình phát triển sản phẩm. Chúng ta sẽ đi qua từng bước từ mức cao nhất, mức độ toàn cầu, đến mức thấp nhất — viết code. Tôi nghĩ sẽ có vài khám phá thú vị đang chờ đợi bạn…
Sản phẩm CNTT hiện đại không còn được viết nữa: họ tạo ra chúng. Họ lắp ráp từ các thư viện, frameworks, các chương trình và sản phẩm bên ngoài, hoặc thậm chí sử dụng các dịch vụ internet trả phí hoặc miễn phí từ xa.
Sản phẩm hiện đại là cả một vườn 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 được thực hiện bởi con người, một phần được tự động hóa, và 90% còn lại được thực hiện bởi các dịch vụ đám mây trong các trung tâm dữ liệu. Thế giới đã thay đổi.
Nhưng điều đầu tiên bạn sẽ chú ý đến — đó là những thay đổi liên tục. Bạn không còn viết chương trình nữa: bạn thay đổi chúng.
10.2 Thay đổi liên tục
Bạn sẽ tham gia vào một công việc và gia nhập vào một nhóm 20 người, người đã làm việc trên sản phẩm này 5 năm. Hiện người dùng có thể truy cập phiên bản thứ bảy của nó. Và nhiệm vụ của bạn là thực hiện những thay đổi với sản phẩm này. Những thay đổi nhỏ, để không dọa đi những người dùng hiện tại.
Và điều này không dễ, vì sản phẩm đã hoạt động. Nó có khách hàng, và họ trả tiền. Vì vậy không thể làm hư hỏng gì cả. Thực hiện các thay đổi trong một sản phẩm đang hoạt động khó hơn nhiều so với một sản phẩm mới. Để làm điều này, có các tiêu chuẩn đặc biệt, giao thức, di cư và công cụ. Ngay lập tức nhớ đến 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ợ cơ khí, người kia là bác sĩ phẫu thuật... mỗi người có cuộc sống riêng, công việc, niềm vui... Họ kể cho nhau tất cả mọi thứ và sau đó nói về tiền lương. Thợ cơ khí nói "Tôi kiếm được 30 triệu một tháng và rất hài lòng với điều đó, còn bạn thì sao?", bác sĩ tim nói: "Tôi khoảng 100 nghìn cho mỗi ca phẫu thuật"... Thợ cơ khí ngạc nhiên "Thật kỳ lạ, tại sao lại có sự khác biệt lớn như vậy, xem ra hình như chúng ta làm cùng một việc — thay đổi phụ tùng", bác sĩ nói với anh ta: "Nào, hãy đi đến chiếc xe, khởi động đi"... thợ cơ khí khởi động chiếc xe, bác sĩ mở nắp động cơ và nói với thợ cơ khí "Đấy, thấy động cơ đang chạy không? Thay đi! :)"
Thậm chí nếu có phép mầu xảy ra, và nhóm của bạn đã viết sản phẩm từ đầu trong suốt một năm và chỉ sau đó phát hành, bạn biết chuyện gì sẽ xảy ra tiếp theo không?
Nếu sản phẩm của bạn thành công, chủ sở hữu sản phẩm sẽ muốn phát triển nó. Phát hành phiên bản mới, thêm một số chức năng. Hoặc ít nhất cũng thực hiện vài thí nghiệm. Và bạn biết điều gì xảy ra sau đó không? Thay đổi.
10.3 Giá trị của sản phẩm
Từ quan điểm phát triển sản phẩm hiện đại, chỉ có giá trị là đoạn code đã được phát hành, và tính năng mà người dùng đang sử dụng. Nếu bạn đã viết code, nó được lưu trữ ở đâu đó, hoạt động, nhưng không có người dùng nào sử dụng, thì giá trị của nó gần như bằng không. Vì vậy tất cả code cần được đưa lên production càng sớm càng tốt.
Code của bạn cần trải qua những giai đoạn sau:
- Bạn đã viết nó và đảm bảo rằng nó hoạt động
- TeamLead của bạn đã review và thêm nó vào nhánh chính trong Git
- Các bài test trong quá trình build chương trình cho thấy bạn không làm hỏng gì quan trọng
- Các bài test tích hợp cho thấy sản phẩm hoạt động như mong đợi
- Người kiểm thử đã kiểm tra code này và cho phép phát hành
- Sau đó cần xây dựng phiên bản mới của sản phẩm và phát hành nó trên server
- Phiên bản mới của sản phẩm cần được đóng gói vào Docker Images và phát hành
- Có thể cần chạy các script di cư và thực hiện các thay đổi trong 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 server để đảm bảo mọi thứ hoạt động như mong muốn
- Trong trường hợp có tình huống không mong muốn, nếu bạn đã làm hỏng gì đó, cần phải quay lại bản build trước, khôi phục trạng thái trước đó của cơ sở dữ liệu và không mất những hành động mà người dùng đã thực hiện trong khi làm việc với phiên bản không ổn định của sản phẩm
Ở hầu hết các công ty hiện nay, các nhiệm vụ này đã được giải quyết: các quy trình mới được xây dựng, những người đặc biệt được tuyển dụng, các giao thức bảo mật đặc biệt và các tiêu chuẩn kiểm soát chất lượng đã được đưa ra.
Công ty càng lớn, thời gian từ khi viết code đến khi nó xuất hiện trên production và trở thành giá trị — bắt đầu mang lại lợi ích cho con người càng nhanh.
Ở hầu hết các công ty, code đi qua quá trình này trong vòng hai tuần, nhưng, có những công ty phát hành mỗi tuần, hoặc thậm chí mỗi ngày. Đặc biệt là vài lần trong ngày.
Code đã viết không có giá trị. Giá trị chỉ được mang lại bởi code đang chạy trên production.
GO TO FULL VERSION