Tại sao dev nên có pet project

Pet Project là những dự án nhỏ được thực hiện trong thời gian rảnh của các developers. Bản thân mình đã thực hiện khá nhiều Pet Projects. Một vài dự án trong số đó được ứng dụng vào thực tế, phục vụ chính nhu cầu của bản thân và đồng nghiệp có thể điểm qua như:

Poker Planning:

Site: https://flintersvn.github.io/poker/

Xuất phát trong đại dịch COVID-19 công ty cho phép nhân viên có thể làm việc tại nhà (Hiện tại công ty vẫn duy trì chính sách cho phép làm việc tại nhà 03 ngày/tuần). Các dự án trong công ty hoạt động theo mô hình Scrum, trong mô hình này có buổi planning, buổi này giúp các thành viên trong team lên kế hoạch cho một vòng lặp (Sprint) khoảng từ 01-02 tuần. Trong buổi Planning sẽ có một hoạt động gọi là đánh điểm cho các task nhằm xác định độ phức tạp của task, nguồn lực cần để hoàn thành task. Trong giai đoạn bình thường thì buổi này sẽ là buổi họp offline. Các thành viên trong team sẽ được phát mỗi người một vài quân bài, các quân bài này đại diện cho độ lớn hoặc độ phức tạp của task, các con số trên các quân bài được thể hiện theo dãy Fibonacci (1-2-3-5-8) hoặc theo size quần áo (S-M-L). Tuy nhiên trong giai đoạn Covid, các buổi họp này được chuyển qua hình thức Online, dẫn tới các team có nhu cầu sử dụng các công cụ tương tự để có thể vận hành buổi Planning hiệu quả. Thời điểm đó các team thấy có công cụ https://planningpokeronline.com/ đáp ứng rất tốt các nhu cầu của team, tuy nhiên nếu team sử dụng công cụ này thì cần phải sử dụng bản trả phí thì mới có thể đáp ứng được nhu cầu của mình. Lúc đầu chúng mình lên kế hoạch lập team để tạo ra một công cụ tương tự. Sau 2 tháng từ lúc nhen nhóm ý tưởng, vẫn không thể gom đủ người để đảm nhận vị trí Frontend.

Rồi một ngày mình thấy hơi nản với công việc thường ngày. Mình đã quyết định Prototype ra phiên bản đầu tiên của Poker Planning. Chỉ trong tầm 1-2 ngày đã có phiên bản đầu tiên có thể đưa vào sử dụng. Dự án này mình lâu lắm mới code lại Vue, ôn lại những gì lâu ngày không còn sử dụng. Đồng thời cũng tìm hiểu và sử dụng Vue 3 là một phiên bản mới tại thời điểm đó, thay đổi rất nhiều so với phiên bản trước đây.

Tạo image chúc mừng sinh nhật:

Site: Internal tool

Công ty có một Slack bot gửi lời chúc mừng sinh nhật tới thành viên lên channel chung của công ty. Mỗi lần tới sinh nhật mình đều nhìn thấy những bức ảnh nền được lặp đi, lặp lại, trông hơi boring. Mình đã dành ra 02 tiếng sửa lại dùng thư viện Imagick để giúp BOT tạo ra những bức ảnh unique hơn cho mỗi thành viên.

Thu Họ:

Site: https://qrbot.dotuan.dev/

Đây là tool có thể coi là mình được rèn luyện nhiều thứ nhất. Xuất phát từ nhu cầu cá nhân mong muốn có thể tạo ra những QR thanh toán thuận tiện. Mình đã phát triển ra tool này. Với tool này mình đã học một ngôn ngữ mới (Rust), hiểu hơn về cách tương tác với Slack App. Design UX làm sao cho dễ sử dụng. Ứng dụng lúc đầu có một số các slash command, shortcut. Như sau đó chúng được thay thế hoàn toàn bằng UI, và chính mình còn không sử dụng những tính năng được phát triển ngay từ ban đầu vì UX hạn chế của nó. Khi đã hoàn thành, mọi người quen sử dụng, mình đi thêm một bước tiến nữa là publish ra để những ai muốn dùng trên Slack của họ đều có thể sử dụng. Lúc này thì mình phải làm nhiều điều hơn. Mình đã phải học về sử dụng Figma để vẽ Landing Page (cuối cùng thì cũng sẽ xong nhưng vì xấu quá nên đi copy lại Landing Page của App khác 😄, trau dồi các kỹ năng về làm sản phẩm, quản lý dự án, ưu tiên tính năng với nguồn lực hạn chế, viết các lời giới thiệu cho App (các kỹ năng mà trước giờ mình ít khi cần tới).

Ngoài ra thì còn vài tool con con nữa, nhưng trên đây là những project mà mình thấy đáng nhớ nhất. Dưới đấy là một số lợi ích mình nhận thấy trong quá trình làm những projects này.

Học thêm những kỹ năng mới

Chúng ta sẽ có cơ hội học thêm hoặc áp dụng những công nghệ mới, ngôn ngữ mới, framework mới, mà ít được thực hiện trong các project mà chúng ta làm hàng ngày. Từ đó ta sẽ có cơ sở để nắm bắt được thế mạnh của những công nghệ này hoặc những tình huống mà các công nghệ này có thể phát huy thế mạnh.

Thêm phần thú vị trong công việc

Khi ta mới vào một dự án thì sẽ có nhiều điều có thể học được từ dự án. Ngay cả việc dự án đó được setup tệ ta cũng có thể học được vài điều. Học được hậu quả của những thiết kế chưa tốt. Học được cách tránh điều đó trong tương lai. Tuy nhiên khi đã vào dự án một thời gian, ta dần quen với các công việc của dự án, những điều ta học được cũng sẽ ngày một giảm đi. Lúc đó công việc sẽ dần trở nên quen thuộc, ít thử thách, ít những hôm phải thức khuya hơn. Lúc này PET Project sẽ như những làn gió giúp cho cuộc sống của chúng ta bớt đi sự tẻ nhạt. Nó giống như một đứa trẻ được ta nuôi dưỡng, ta chứng kiến nó dần dần thành hình hài.

Thử nghiệm những ý tưởng mới

Có một số ý tưởng trong công việc không phải lúc nào bạn cũng có thể áp dụng được. Ví dụ như viết tài liệu theo một format mới. Áp dụng một quy trình mới, một mô hình mới. Chúng ta cũng có thể áp dụng những nguyên lý về làm sản phầm có thể nghe được từ một podcast nào đó, đọc được từ một cuốn sách nào đó. Những thử nghiệm này cho phép ta đánh giá  được hiệu quả của những ý tưởng này.

Sử dụng thời gian

Với nguồn lực hữu hạn, ta sẽ cần phải ưu tiên các công việc, bố trí và sắp xếp thời gian hợp lý để có thể cân bằng được thú vui trong các PET Project, công việc hàng ngày và các mối quan hệ xã hội.

Xây dựng thêm các mối quan hệ

Nếu tự hào về một Project nào đó hay mạnh dạn để nó vào trong CV của bạn. Nhà tuyển dụng hoàn toàn có thể vào GitHub profile đọc những dòng code bạn viết trong các dự án này. Điều này là một bằng chứng cực kỳ thuyết phục đối với nhà tuyển dụng, thay vì chỉ là những lời nói suông không bằng không chứng. Nếu có thêm ai đó làm cùng bạn thì việc này ít nhất là bạn được học và rèn luyện tư duy làm việc nhóm. Nếu người đó giỏi hơn bạn thì chắc chắn bạn sẽ học được điều gì đó khác.

Tạo thói quen và tạo động lực

Tôi tin rằng việc chúng ta làm những việc bình thường, thường xuyên và lâu dài mới khiến cho những việc đó mới trở nên phi thường. Hãy khiến cho việc code hàng ngày trở thành những thói quen. Bạn sẽ cảm thấy tự hào khi hoàn thành một dự án và có sự thỏa mãn từ việc tạo ra một sản phẩm thực tế. Điều này có thể giúp bạn duy trì sự nhiệt huyết và sự đam mê với lập trình.

Tạo cơ hội kinh doanh

Cá nhân mình thì chưa có dự án nào đạt tới bước này. Nhưng mình cũng biết nhiều người có các sản phẩm xuất phát điểm chỉ là các PET Project nhưng sau đó lại trở thành những dự án lớn, mang về nguồn thu nhập tốt cho chính bản thân những người tạo ra sản phẩm. Flappy Bird, DevUtils, TablePlus, Proxyman là những ví dụ thành công của Developer Việt Nam.

Nghe hay đấy, vậy làm sao để tôi bắt đầu một PET Project.

Hãy bắt đầu từ chính các vấn đề mà bạn gặp phải trong cuộc sống, hoặc công việc hàng ngày. Việc tracking data quá khó khăn, hãy làm cho nó dễ dàng hơn. Bạn chưa tìm thấy một app quản lý chi tiêu nào mà mình yêu thích. Hãy tạo ra nó. Việc logtime Jira quá mệt mỏi, hãy tự động nó.

Add a Comment

Scroll Up