Hôm nay là ngày thứ hai sau cuộc thi SheCodes Hackathon 2019 tổ chức tại Hà Nội. Mình về nhà và rất vui vì cuối cùng cũng đã được nghỉ (và ngủ bù) nhưng trong đầu vẫn còn suy nghĩ mãi về nó. Đây là Hackathon đầu tiên mà mình tham gia, mình chân ướt chân ráo đăng kí với mong ước được trải nghiệm quá trình xây dựng một ý tưởng phần mềm nó như thế nào. Hackathon chỉ diễn ra trong vỏn vẹn chưa đầy hai ngày — từ sáng thứ bảy đến chiều ngày chủ nhật — nhưng mình đã có rất nhiều kỉ niệm quý giá và biết thêm được nhiều điều mới.
Nhóm mình có năm người, mỗi người có một mảng chuyên khác nhau. Tất cả đã cùng nỗ lực để cho ra sản phẩm cuối cùng, có điều những nỗ lực ấy không đủ để cho ý tưởng của chúng mình được tiến vào vòng 2 nơi các ý tưởng tốt nhất được chọn. Buồn thì cũng có buồn, nhưng mình viết bài này là để rút kinh nghiệm cho bản thân vào lần sau, cũng như là chia sẻ cho những bạn đang có ý định tham gia một Hackathon nào đó.
1. Hãy trang bị cho mình một chút kiến thức cơ bản
Đầu tiên phải nói là mình là một người gần như là không biết gì, cứ đến rồi học dần, học dần từ những người đi trước. Mình chỉ biết sơ qua mỗi thứ một tí gọi là, biết một ít HTML5 này, biết một ít thiết kế đồ họa 2D này, biết một ít về mạng máy tính này, và chỉ … biết chém gió là giỏi. Cái “một ít” của mình thực sự là rất ít và chỉ đủ cho bạn hiểu là cái khái niệm đó là gì, chứ không đủ để bạn có thể xây dựng nên một thứ gì đó từ nó cả. Mình chỉ vừa đủ độ tuổi sàn để tham gia (đúng ra nếu xét ngày sinh mình còn thiếu một tuổi cơ) nên cũng là thành viên “trẻ trâu” nhất trong nhóm. Mình chỉ “trẻ” thôi chứ không “trâu”, bao nhiêu phần code là xin nhường cho chị coder trong nhóm.
Chính vì thế mà đến khi bắt tay vào làm việc mình mới nhận ra mình không giúp được gì nhiều. Mình chỉ có thể làm được các ảnh về giao diện và brainstorming ý tưởng với chị BA (Business Analyst) của nhóm, không thể góp công vào làm web demo cùng với các chị coder. Việc code demo riêng không thôi cũng đã rất nhiều và do nguồn lực có hạn, đội mình đã chỉ có thể trưng ra cái demo xuềnh xoàng không thể bấm hay tương tác một chút nào.
2. Hãy tìm teammate thích hợp
Chuyện tìm đồng đội phù hợp là rất quan trọng nhưng thường bị xem nhẹ. Trong Hackathon mình thấy rất nhiều những đội là những bạn chơi thân với nhau, học cùng trường rủ nhau đi tham gia. Cái này thì không có gì xấu, tuy nhiên bạn cần phải xem xét lại năng lực chung của tất cả mọi người. Nếu như tất cả đều trong ngành công nghệ hoặc ít nhiều có kinh nghiệm thì ok, nhưng nếu như tất cả đều không biết gì và trông cậy vào nhau thì thực sự các bạn nên xác định là tham gia Hackathon cho vui, chứ không có nhiều hi vọng đạt giải. Bên cạnh đó, ở bên cạnh những người quen thân nhiều khi làm cho chúng ta trì trệ hơn rất nhiều. Chúng ta mải mê vào vui chơi với nhau là chính, có nhóm mình thấy chẳng làm mấy, code được cái demo xong châu đầu vào xem YouTube giải trí, không để ý tới việc chuẩn bị thuyết trình hay phân tích thị trường cho ý tưởng, dẫn tới việc bị loại một cách nhanh chóng.
Lại nói về câu chuyện năng lực. Nhóm mình có năm người, có hai designer, hai BA và một coder. Tuy nhiên (lại tuy nhiên), những thứ mà từng người biết lại chưa đủ để cho ra một sản phẩm đủ tiêu chuẩn. Hai designer chủ yếu làm poster cho các dự án, câu lạc bộ chứ không có nhiều hiểu biết về UX/UI chuyên. Có mỗi một coder thì chị lại chuyên về back-end, thứ kĩ năng mà chị không thể dùng trong Hackathon lần này. Tất cả việc làm demo web vẫn bị đùn cho chị, và kết cục là cật lực lắm chị mới có thể làm xong mỗi một cái home page cho ý tưởng của đội. Vì vậy điều mình muốn rút ra ở đây là hãy cân nhắc về năng lực của đồng đội mình, liệu chúng có phù hợp cho việc phát triển ý tưởng hay không.
3. Hãy phân bổ thời gian hợp lý
Ngoài chuyện nguồn lực có hạn, team mình còn có một vấn đề nữa: Thiếu quá nhiều thời gian để có thể bắt tay vào làm trực tiếp dự án. Chúng mình là những người mới gặp nhau lần đầu, nhắn tin với nhau tìm đồng đội trên nhóm Facebook kín của Hackathon nên chưa có thời gian để thảo luận về ý tưởng khi đã có đề bài hai ngày trước kì thi. Khi Hackathon bắt đầu, ai nấy đều sung sức đóng góp ý tưởng, thảo luận rộn ràng cả hội trường. Rất nhiều ý tưởng hay được đưa ra, nào là làm chatbot này, nào là làm forum hỏi đáp, nào là trở thành cầu nối giữa cung và cầu… Định bụng là ban đầu chỉ bàn bạc xem nên làm gì, cuối cùng lại biến thành nơi tranh cãi xem ý tưởng của ai hay hơn. Kết cục là đến tận chiều ngày thứ nhất, tất cả đều đã quá mệt để có thể tranh cãi thêm, đành quyết định vote theo số đông và làm theo ý tưởng được nhiều người đồng ý hơn. Trong khi đó các đội khác đã bắt tay vào phát triển sản phẩm từ trưa.
4. Luôn biết rõ những gì mình đang làm
Mình cảm thấy may mắn vì được ở trong một đội nơi mà tất cả mọi người đều rất tận tụy và hăng say với dự án. Ai cũng làm rất nhiều thứ và làm đến tận đêm, khi hầu hết ban tổ chức đã đi ngủ. Có điều mình nhận thấy phần lớn công sức chúng mình làm lại không được sử dụng đến, những phần đấy không được trình ra để cho ban giám khảo thấy được và họ cũng không cần xem những phần đó.
Điển hình là chị đảm nhận lập trình của nhóm mải làm form signin/ signup cho người dùng đăng nhập tài khoản, nhưng đó không phải là phần chính của một trang web vốn được chấm theo ý tưởng và nội dung. Chị BA và mình thì lại mải nghiên cứu con chatbot, tìm cách đưa những nội dung mà chatbot sẽ đem đến với người dùng nhưng một lần nữa, ban giám khảo không xem tới nó bởi không hề có ai code demo cho chatbot. Chatbot là thứ đội mình tập làm lần đầu và nó chưa đi đến đâu thì đã đến hạn nộp bài. Theo mình đánh giá thì đội chúng mình giành ra nhiều công sức hơn các đội khác nhưng lại không nhận được những gì xứng đáng với công sức ấy. Căn bản là bởi công sức ấy đã đổ đi làm những thứ không quan trọng, trong khi những đội nhàn hạ hơn thì chỉ làm những phần cần thiết, những phần người đánh giá muốn biết, và dành thời gian còn lại cho việc tham gia các workshop và học hỏi thêm cái mới xuyên suốt sự kiện.
Đôi khi cách làm “trâu bò” chưa chắc đã là tốt — Bạn cần phải xác định lại điều gì là chìa khóa của một dự án và dành một khoảng thời gian nhất định cho việc xây dựng những thứ thực sự cần thiết. Chỉ những thứ thực sự quan trọng. Không hơn, không kém.
5. Tận dụng sự trợ giúp của mentor
Từ đầu bài đến giờ mình đã nói nhiều về việc chị back-end developer của team mình lại bị giao một công việc quá khó là đi làm trang web cho toàn đội, kết cục làm vừa thừa vừa thiếu. Nhưng không phải là chỉ có mỗi nhóm mình vấp phải khó khăn ấy. Có những nhóm khác không hoàn toàn thạo lập trình, và họ nhờ đến sự trợ giúp đắc lực của các anh mentor — những người phụ trách giúp đỡ thí sinh trong toàn bộ Hackathon. Chúng mình đã không nắm lấy cơ hội ấy mà lại nghĩ rằng nếu chúng ta tự làm từ đầu đến cuối thì đây mới là sản phẩm thực của đội, nhỡ đâu ban giám khảo lại không tính những phần đã được hỗ trợ làm.
Nghĩ lại thì đây là một suy nghĩ khá sai lầm. Đương nhiên một đội cần phải làm việc và không nhờ vả các anh mentor làm hộ từ đầu đến cuối, nhưng tự thân gồng gánh một thứ khó khăn một mình cũng không phải là một ý kiến hay. Lúc gặp khó khăn thì ta nên nhờ đến những sự trợ giúp có thể có, chứ không nên để bản thân vật lộn với đống code và component lằng nhằng ấy 🙂 Suy cho cùng thì đây cũng là ý nghĩa sự hiện diện của những người mentor — họ đến đây là để giúp đỡ bạn chứ không phải gây khó khăn cho bạn.
6. Hãy tận hưởng thời gian bên đồng đội và chính sự kiện đó
Mình để ý thấy có nhiều bạn có ý chí quyết thắng sục sôi và lao đầu vào làm, thêm thắt rồi chỉnh sửa để có một sản phẩn đẹp hoàn chỉnh. Nhưng cũng vì dành quá nhiều thời gian làm mà các bạn không thể tham gia vào những workshop xuyên suốt Hackathon. Những workshop này giúp chúng ta trang bị thêm những kiến thức mới, biết thêm những khái niệm lạ mà trước giờ chỉ nghe thoáng qua khi người ta nói về công nghệ: blockchain, Amazon Web Service, AI… Bên cạnh đó những bạn này cũng không có nhiều những giây phút trò chuyện và thư giãn cùng với đồng đội của mình. Hackathon ngoài một cuộc thi xây dựng ý tưởng còn là nơi để chúng ta gặp gỡ những con người mới, những tư tưởng mới để nhìn lại mình và tiếp tục phát triển. Không phải ai trong những người cùng đội cũng có cơ hội gặp lại nhau lần thứ hai, vì thế khoảng thời gian này vô cùng quý báu và bạn sẽ không thể trải nghiệm nó thêm một lần nào nữa.
Mình và những người đồng đội đã có rất nhiều thời gian đáng nhớ cùng với nhau. Trong team có chị designer vừa mới niềng răng và không thể ăn bất cứ thứ gì của sự kiện. Thế là mình và chị back-end dev tranh nhau xâu xé phần của chị ấy (có thực mới vực được đạo nha). Có chị BA thì lại tâm huyết với dự án đến mức tranh thủ trình bày trong giờ ăn trưa. Chị vừa nhai nhồm nhoàm cái bánh mì kẹp giò, vừa khua tay khua chân thuyết phục mình, nhiều khi suýt nghẹn, nhìn tội tội mà mình lại thấy buồn cười. Rồi lại còn cả lúc tham gia workshop học về VueJS, lúc đó đã là 11 giờ tối mà vẫn còn đang học, mình với bà back-end nghe mãi không hiểu bèn lén lút xách laptop lẻn ra khỏi phòng. Hai chị em lòng đầy tội lỗi với anh mentor đang giảng bài trong đó, nhưng vẫn quyết định chọn ngủ thay vì học.
Đó là tất cả những gì mình học được sau hai ngày thứ Bảy và Chủ Nhật vừa qua. Đó là những kỉ niệm đáng trân trọng và sẽ còn đi theo mình mãi trong chặng đường khám phá lĩnh vực công nghệ sau này. Mình mong những điều mình rút ra sẽ phần nào giúp đỡ được các bạn có những trải nghiệm tuyệt vời nhất ở một Hackathon.
Đây là project nhóm mình đã làm: https://devpost.com/software/elision
Nếu như bài viết này có cơ hội được đọc bởi người của ban tổ chức SheCodes Hackathon 2019 thì mình chỉ muốn nói rằng mình cảm ơn các bạn rất nhiều. Các bạn đã cho mình một trải nghiệm đáng nhớ với những người đồng đội và sự kiện này đã dạy cho mình biết nhiều điều, không chỉ là những kiến thức chuyên môn. Một lần nữa xin cảm ơn các bạn.