Ba bài học về Software Engineering học được qua một buổi hái xoài (bonus thêm 2 trái xoài siêu to khổng lồ)

Đợt trước, vừa hết thời hạn thử việc, mình có vài ngày phép nên về quê chơi, thăm nhà, thăm bố mẹ. Vốn định về nghỉ ngơi, mình chỉ lo sáng ăn uống đi chơi, tối về lại ngủ chứ không viết blog bờ liếc gì.

Thế nhưng, nhờ một buổi đi chơi với ba mình (hồi xưa, ba mình còn chưa học xong Đại Học), mình chợt ngộ ra vài bài học hay ho về ngành Software Engineer mà trong trường chưa bao giờ dạy. (còn được bonus thêm 2 trái xoài siêu to không lồ nữa).

Do vậy, mình viết bài này để … khoe xoài, nhầm, để chia sẻ 3 bài học hay ho mà mình đã học được cho các bạn nhen.

Chuyện cây xoài trĩu quả nhưng bị kiến vàng ăn sạch

Hôm đó, mình chở ba đi qua thăm nhà ông bác nọ. Nhà bác có một cái vườn nho nhỏ, chỉ trồng mỗi cây xoài khá bự.

Ngồi nói chuyện 1 hồi, ba mới hỏi là: Ủa sao nhà nhiều xoài bự vậy mà không hái.

  • Bác mới kể: Cây xoài nhà dạo này đang chín, cứ sắp chín là bị kiến vào đục rỗng ruột, rụng lạch bạch, không ăn được gì.
  • Ba mình hỏi lại: Ủa sao anh không hái xuống trước khi nó chín
  • Bác bảo: Nhà đâu có mấy đứa nhỏ đâu, có mấy trái cũng đâu thuê ai hái làm gì

Nghe vậy, ba mình ra sân, tìm vài cây gỗ dài dài, vài miếng dây thép, đinh búa v…v rồi bảo: Để tui làm cho anh cái cây hái xoài cho tiện.

Giới thiệu với các bạn đây là bố mình, cùng ít chiến lợi phẩm của buổi hái xoài luôn

Đó, bài học thứ nhất mà mình rút ra được: Một người engineer giỏi phải biết nhìn ra nhu cầu của khách hàng, dùng khả năng của mình + những thứ sẵn có để giải quyết nhu cầu đó.

Ở đây, ba mình đã nhìn ra được nhu cầu hái xoài của khách hàng, cũng như tận dụng những vật liệu linh tinh trong vườn để làm cây hái xoài, nhằm giải quyết nhu cầu đó.

HaiXoai v0.1 – Cây khều + chai nước = Xoài rơi lạch bạch

Nói ra làm, ba bắt tay vào đóng đóng, gõ gõ. Ba mình gắn chai nước vào đầu cây, cắt 1 khoản nhỏ để quả xoài chui vào được, sau đó đóng đinh cho chặt để không rớt.

Công cụ HaiXoai phiên bản 0.1 ra đời từ đó!

HaiXoai phiên bản 0.1 (bên phải), chế tạo trong 5 phút

Không chần chừ, ba mình bắt đầu cho HaiXoai 0.1 chạy thử nghiệm ngay. Ban đầu, lỗ khá nhỏ, xoài chui không lọt, cây thì quá ngắn không với tới. Thế là ba khoét lỗ cho dài hơn, nối thêm cây khều, HaiXoai 0.2 đã ra mắt.

Kết quả ban đầu cũng khá ok, qua xoài chui tọt vào trong chai, chỉ cần giựt mạnh là xoài sẽ rớt vào chai, nhẹ tay hạ cây xuống là được.

HaiXoai v0.2 chạy bằng cơm trên Production

 

Bài học thứ hai: Với những vấn đề phức tạp, thay vì bỏ quá nhiều thời gian nghiên cứu, đôi khi ta cần tạo ra một phiên bản MVP để chạy thử nghiệm là được.

Sau khi phiên bản này hoàn thành, ta có thể dần dần cải tiến, nâng cấp nó lên để giải quyết vấn đề. (Các công ty startup theo mô hình lean startup cũng như thế mà, chắc bắt chước ba mình chứ đâu)

Xót xoài bầm dập – HaiXoai 1.0 ra đời

Thế nhưng, sau khi hái được vài trái, mình và ba lại thấy một vấn đề nho nhỏ nhưng khá nghiêm trọng:

  • Lâu lâu, có những trái xoài bự chà bá không lọt vừa vô chai
  • Đôi khi giật mạnh quà thì xoài sẽ rớt ra ngoài chai, rụng cái bạch xuống đất, dập luôn nửa quả xoài
Xoài rớt dập lạch bạch bên cạnh HaiXoai v0.2

 

Cái khó ló cái khôn, ba mình kiên nhẫn không bỏ cuộc. Ba kiếm một cây khác, quấn dây thép xung quanh cái bịch, rồi cột dây thép và đầu cây. Thế là phiên bản HaiXoai 1.0 đã ra đời!

HaiXoai 1.0, có bịch để chống xoài dập, có dây thép để kéo xoài

Ở phiên bản này, nhờ có dây thép để kéo vào có bịch để hứng nên kéo xoài dễ hơn, xoài không còn rớt dập nữa. Mình chỉ cần nhẹ nhàng kéo xoài rớt vào bịch, rồi lấy xoài ra thôi.

HaiXoai v1.0 chạy vô cùng tốt trên Production

 

Bài học thứ ba: Người engineer sẽ không tự thỏa mãn với giải pháp của mình; mà sẽ biết dựa theo feedback để cải tiến nó, mang lại kết quả tốt nhất cho khách hàng!

Bonus: Bài học thứ 4 – Hay chuyện tội đã bị lừa như thế nào

Thế rồi, chiều hôm sau, khi đi thăm vườn nhà, mình bỗng thấy hóa ra bố đã làm sẵn một cây hái xoài từ thuở nào, chứ không phải tự suy nghĩ rồi chế ra như hôm trước. Đúng là cuộc đời méo thể nào biết trước được!

Cây hái xoài bản v2.x, vừa dài vừa chắc khỏe lại có túi vải chắc để đựng

Bài học cuối cùng: Nếu đã có solution hiệu quả, chạy tốt thì cứ thế mà dùng thôi, đừng tự suy nghĩ độ chế để reinvent the wheel làm gì!

Cũng giống như developer chúng mình, nếu đã có thư viện/framework để hổ trợ công việc thì cứ lấy ra mà dùng chứ không cần cắm đầu tự code lại nha!

Tạm kết

Đó, sau 1 buổi hái xoài, mình chợt ngộ ra vài điều mà hồi xưa đi học mình không bao giờ nghĩ đến.

Đây là mình bênh cạnh quả xoài chiến lợi phầm

Hồi xưa, ba mình làm thợ chuyên sửa đồng hồ, đòi hỏi nhanh tay lẹ mắt, rành về cơ khí. Thời đó ba là thợ sửa có tiếng, đủ tiền xây nhà. Giờ tuy hơi già rồi, mắt kém chân run nhưng nhà có gì hư ba cũng tự sửa được hết.

Ngẫm lại, thời đó mà có ngành dev có khi giờ ba còn giỏi và nổi hơn mình hơn mình. Có khi nào mình nên về dụ ba làm series ông Dũng Vê Lốc để kiếm quỹ đen không các bạn nhỉ :))

10 thoughts on “Ba bài học về Software Engineering học được qua một buổi hái xoài (bonus thêm 2 trái xoài siêu to khổng lồ)”

    1. HI anh Hoàng, em đang là sinh viên năm 3 chuẩn bị lên năm 4. E đang có tí băn khoăn trên con đường này.

      Vài tháng trước em có xin thực tập Android tại một công ty, công ty này chuyên outsource web, không có ai cứng về Android cả. Chỉ có mình em tự học và làm. Tuy văn hóa ở công ty rất tốt, leader cũng muốn cho em học hỏi nhiều thứ…nhưng em cũng muốn học cho giỏi hẳn một cái rồi mới nghĩ đến việc đá sang những mảng khác, nên em quyết định sẽ kiếm một công ty có mảng chuyên làm về Android để học hỏi quy trình và kinh nghiệm của họ.

      Tuần trước em phỏng vấn và làm Fresher của một công ty outsource khác, công ty này quy mô cũng to (1k members), lúc phỏng vấn em cũng có chia sẻ lí do tại sao nhảy việc, các ông cũng nói bên này thì không thiếu việc cho em làm. Hôm đầu nhận việc, em kí hợp đồng các kiểu xong ra chào mọi người, rồi anh leader ra nói với em là chú phải tìm hiểu một mảng mới của Android, không phải Java hay Kotlin mà là React Native. Nghe đến đây em hơi choáng vì chưa có tí base nào về web cũng như JS. Mọi người vẫn thường nói là ngôn ngữ chỉ là công cụ, đúng. Nhưng em nghĩ là để sử dụng tốt một công cụ nào đó thì cũng mất kha khá thời gian, giờ bắt đầu học RN thì gần như em là một thằng newbie, no JS, no Web, vậy thì biết bao giờ mình mới lên level được. Thay vì tiếp tục Android native, thì có thể sau vài tháng em có thể lên Junior thì có thể lại một năm sau em mới lên được Junior cho RN.
      Việc training thì cũng không có gì quá bài bản, vì hầu hết mọi người team này cũng là dân Android nhảy sang, nên chủ yếu là mình tự học.

      Anh nghĩ như thế nào về vụ này ạ, hiện tại em không biết chọn lối đi nào. Bút sa gà chết, giờ bỏ việc cũng không được mà học thì em thấy nó mông lung quá. Mong lời khuyên của anh, em cảm ơn.

      Liked by 2 people

      1. Làm việc khác với thực tế lắm bác à. Mình đã và cũng đang vướng vào hoàn cảnh gần giống bạn. Bạn hãy nghĩ kỹ về những thứ mình sẽ nhận được khi tiếp tục công việc này nhé(1 là tiền, 2 là kiến thức, 3 là những thứ khác).
        Nếu tiền ở chỗ bạn làm đang nhiều hơn với khả năng mong đợi thì ráng ở lại thôi.
        Còn nếu do hợp đồng ràng buộc thì ráng mà xong hợp đồng thì nhảy việc tiếp.
        Còn nếu muốn vì kiến thức thì bác có thể nghĩ cái gì hay ho để cho vào project hiện tại, nếu không có khả năng thì hỏi dần dần hoặc hỏi người khác. Nếu bác nghĩ tính năng hay ho gì mà áp dụng được vào project thì sẽ tăng level + được ae ngưỡng mộ thôi.
        Dù sao vẫn còn trẻ mà, cả thèm chóng chán là đúng. Làm hết sức thôi, suy nghĩ để tăng trình bản thân, đừng để môi trường tác động đến nhiều quá.

        Liked by 2 people

  1. Rất hay và dễ hiểu anh, đề xuất anh làm thêm về chủ đề “System Integration” rất mong nhận được ý tưởng từ anh.

    Liked by 2 people

Leave a comment