Ký sự BrSE

Những nẻo đường kỹ sư cầu nối

Tư duy phần mềm

Một trong những bài viết mà mình trăn trở nhất vì mỗi lần ngồi vào định viết thì lại thôi vì con khóc. Giỡn chứ cứ chần chừ do không biết phải cắt nghĩa thế nào, và bằng cách nào có thể đơn giản hoá những từ ngữ đao búa kiểu “tư duy”. Đây là điều chúng ta phải cùng nhau ngồi lại nghiêm túc nhìn nhận để đưa ra cho được câu trả lời.

Có những thứ trước giờ ta đã nghe nhưng không nhận được một sự giải thích rõ ràng vì nó quá trừu tượng. Ví dụ vì sao những công ty chỉ với 1 vài thành viên ban đầu, qua một thời gian ngắn vài năm có thể vươn tầm thành thế lực lớn trong bản đồ công nghệ như Facebook – Google. Vì sao những ông kẹ như Yahoo, NOKIA lại rơi rụng dần giờ chỉ còn lại ký ức một thời. Hay như các tập đoàn cỡ lớn của Nhật như Hitachi – Sony mãi không thể chen chân vào top 1 nhưng vẫn giữ được sự ổn định trong thời buổi các anh cả khác rụng như sung.

Hay như xu hướng Outsource từ đâu mà có, nở rộ từ bao giờ và tương lai sẽ đi về đâu … tất cả đều đã có những nhà chuyên gia phân tích, nhưng liệu rằng những đáp án đó đúng hay sai, đằng sau có uẩn khúc gì … mỗi người đều phải tự tìm. Dù đúng hay sai, chính mỗi cá nhân phải có cho mình đáp án riêng, không phụ thuộc.

Khái niệm

Đầu tiên để hiểu được ta tách tiêu đề thành 2 phần “tư duy” và “phần mềm”. Đầu tiên tư duy là gì. Theo Wiki :

Tư duy là phạm trù triết học dùng để chỉ những hoạt động của tinh thần, đem những cảm giác của người ta sửa đổi và cải tạo thế giới thông qua hoạt động vật chất, làm cho người ta có nhận thức đúng đắn về sự vật và ứng xử tích cực với nó.

Ok, bắt đầu tim đập nhanh, chau mày và vò đầu bứt tai rồi :))))) Tóm lại bỏ qua những câu chữ loằng ngoằng, chúng ta sẽ định nghĩa lại một cách đơn giản mộc mạc nhất có thể.

Tư duy là suy nghĩ, là việc đặt các câu hỏi xoay quanh vấn đề (ở đây là phần mềm) và tự đi tìm câu trả lời.

Càng tự hỏi, tự trả lời sẽ càng ngu ra… nhầm, sẽ càng gần hơn với sự thật, cái chân lý mà ta muốn hướng tới.

Vế thứ 2, “phần mềm” là gì. Trong hệ thống công nghệ thông tin ta sẽ gặp rất rất … (rất) mũ n … khái niệm, nhưng tựu chung lại nó được cấu thành và vận hành bởi 3 yếu tố chính : Phần cứng, phần mềm và mạng. Có thể thời buổi bây giờ đã có nhiều đổi khác, như phần cứng nó không đơn thuần là bo mạch, là ổ cứng, ram như thời đồ đá mà sẽ có phần cứng được ảo hoá nằm trên mây (cloud), hoặc mạng thì có vô số loại mạng như LAN – WAN – PRIVATE – PUBLIC – INTERNET … còn phần mềm thì cũng đầy thứ, ta gom lại hết cột vào 3 cái bao tải, vứt đấy rồi xử từng thứ một. Vậy phần mềm có từ bao giờ và sẽ tồn tại bao lâu, trong tương lai liệu có cần code mới tạo ra được phần mềm hay không, nếu có thì việc có có cần con người làm không hay robot + AI có thể đảm nhận, việc AI đảm nhận sẽ tốt hay xấu, lập trình viên lúc đó sẽ làm gì để tồn tại ? Vô số thứ …

Vậy tư duy phần mềm đơn giản là ta sẽ đặt các câu hỏi liên quan đến phần mềm và tự tìm, hoặc khó quá thì … cùng nhau tìm lời giải.

Quay trở lại một chút, Outsource nằm đâu trong bản đồ phần mềm, vì sao nó được sinh ra, có bao nhiêu hình thức outsource, những ai đang đóng góp vào, tương lai nó ra sao, vì sao Nhật chọn Việt Nam là hướng đi chính trong quá trình thoát Trung (bài toán Outsource Trung Quốc + 1), và BrSE nằm ở đâu trong cái map này, chúng ta giúp được gì cho giới công nghệ, hoặc đơn giản hơn cho dù ko giúp được thì làm sao cố gắng không trở nên ăn hại :)))

Mấy bạn tự trả lời đi nhé, mình không biết đâu :)))

Thế nào là tư duy sai

Vâng, tư duy không có đúng tuyệt đối vậy nên khó mà đánh giá được cái nào đúng, nhưng sai thì dễ nhìn ra. Giống thầy bói xem voi, nói con voi như cái cột đình (chân), như cái quạt (tai) … thì sai là chắc rồi, nhưng thế nào mới đúng chính xác là voi thì phải có cái nhìn toàn cục mới rõ được.

Có một bài giảng mình đã xem trên youtube cách đây cũng hơn 5 năm, nó ám ảnh tới mức đến giờ vẫn còn nhớ rõ nội dung mà ông giáo sư đặt ra cho sinh viên. Có 2 ví dụ mà thầy đã đưa ra để luận bàn về tính nhân bản cũng như tính đúng – sai của hành động.

Chuyện thứ nhất là tình huống giả định được đặt ra để thử thách mức độ tư duy của sinh viên, ông đưa ra trường hợp như sau : “Có đoàn tàu đang chạy trên đường ray thì gặp sự cố, nếu đi thẳng khả năng tất cả những người đang đi trên tàu sẽ gặp nạn, cạnh đó có đường ray phụ, 5 công nhân đang làm việc. Nếu người lái tàu bẻ lái vào đường ray phụ, 5 anh công nhân này chắc chắn thiệt mạng, nhưng các toa tàu sẽ được an toàn. Vậy nếu là người lái tàu bạn sẽ chọn phương án nào : đi thẳng hay bẻ lái? hoặc thêm vào một tình tiết mới, trước khi tới khúc rẽ tàu chạy dưới cây cầu, bạn thấy một anh béo sát thành cầu, nếu xô anh ta xuống khả năng lớn là đoàn tàu sẽ bình an và 5 anh công nhân không hề hấn gì, nhưng kết cục khá bi quan với anh béo. Bạn sẽ làm gì với tình huống đó ?”.

Chuyện thứ 2 : “2 người bạn bị lạc trôi trên biển sau khi bị tai nạn tàu thuỷ, chỉ một người còn sống, sau này khi trở về anh ta bị kiện, có 2 luồng quan điểm : 1 là đồng cảm – đáng được tha thứ, 2 là có tội thì phải xử theo luật, vậy bên nào đúng bên nào sai ? “. Nội dung vì sao a bị kiện các bạn có thể google thêm, vì nó hơi ghê rợn nên mình xin được phép không nói ra ở đây. Mục đích mình kể lại chuyện này để mong các bạn hiểu rằng : có những thứ không có đáp án hoàn toàn đúng.

Mình cũng đã từng nói chuyện với nhiều bạn trẻ, và cách nghĩ của các bạn cũng y chang mình hồi xưa. Vì sao phải suy nghĩ nhiều cho mệt, code thì cứ code thôi, code for food or code for fun, sao phải làm khó nhau chi. Rồi thì phần mềm nó được tạo ra bởi tư duy thuật toán này nọ, chỉ cần code ngon là tạo ra được soft ngon – triệu người dùng, ờ … uhm … thì cho là vậy. Rồi sao phải design này nọ, tham khảo ý kiến khách các thứ làm j cho mệt người, cứ nhảy thẳng vào code thôi cho đỡ tốn time … ah …uhm …

Không những các bạn trẻ mà ngay cả những anh chị lớn tuổi, đặc biệt là những người làm 1 vị trí – bộ phận, công việc không thay đổi cả chục năm trời cũng khó tránh khỏi suy nghĩ lối mòn, định kiến và đặc biệt rất hay áp đặt cứ nghĩ mình lớn tuổi thì nói gì cũng đúng, mấy sap nhỏ phải nghe. Ũa đâu ra vậy, tuổi đời vs tuổi nghề khác nhau mà, với lại tuổi nghề ít chưa chắc tư duy hẹp, có nhiều bạn mới ra trường vài năm nhưng cách nghĩ cực kì phóng khoáng mà không kém phần sâu sắc.

Tác dụng của tư duy

Bỏ qua việc đúng sai tốt xấu sang một bên, đầu tiên phải nghĩ thật – thật nhiều bằng tất cả sự tò mò. Ai cũng đã từng là một đứa trẻ, mỗi đứa trẻ là một thiên tài vì chỉ có thiên tài mới sở hữu trí tưởng tượng phong phú và nó còn quan trọng hơn cả kiến thức. Ngay cả nhà bác học EINSTEIN cũng đã khẳng định. Vậy nên ai nói gì cứ kệ, hãy cứ tò mò, ngây ngô như đứa trẻ, đặt ra cho mình vô vàn những câu hỏi, đôi khi cũng chưa cần phải vội vàng trả lời. Những khúc mắc sẽ khơi mở nhiều thứ mới mẻ hay ho.

Quay lại chuyện phần mềm, nếu ta nghĩ rộng ra – sâu hơn một chút thì sẽ mang lại cho mình 3 thứ :

  • Overview – hiểu mọi thứ theo cách tổng quan và không bị bó buộc. Kiểu như sẽ nhìn được toàn bộ con voi chứ ko phải 1 phần. Còn trong phần mềm việc coding không phải toàn bộ mà chỉ 30%, phần còn lại là sale – preSale, quản lý – phân bổ resource, lên plan, xử lý risk, test, fixbug, deploy, bảo hành sản phẩm …
  • Xử lý vấn đề : mọi vấn đề phát sinh đều có nguyên nhân góc rễ, việc tìm ra gốc rễ chính là việc tìm hiểu sâu dần – cụ thể dần để tới đúng cái nguyên bản. Lúc đó việc xử lý không còn khó nữa (dễ hay ko còn tuỳ việc, nhưng không khó nghĩa là có khả năng giải quyết được). Ví dụ Dev vs Tester cãi nhau vì người nói đúng – đứa bảo sai. Nếu là người đứng giữa bạn sẽ phải phân tích và xâu chuỗi làm sao cho vấn đề sáng tỏ dựa trên tinh thần công việc (không nên dựa trên tình cảm yêu ghét). Đầu tiên sẽ phải lục lại tất cả tài liệu liên quan, nếu không có thì mới confirm các bên liên quan tới khi xong mới thôi, đừng để mọi người ấm ức, khóc lóc tội nghiệp.
  • Ra quyết định : Cái khó của những lần ra quyết định đó là sợ rủi ro vì không biết nên yes or no. Ví dụ khách giao cho mình một project có giới hạn về tiền + deadline, nhận thì a em sấp mặt, mà không nhận thì đói. Vậy làm sao ? cứ đơn giản hoá mọi thứ ra thành các con số rồi cùng thương lượng, nên nhớ một điều có nhiều thứ tưởng là fix nhưng thực tế chưa hẳn vậy. Còn bắt buộc phải lựa chọn thì phải đứng về phía anh em chiến hữu, đừng vì cái lợi trước mắt mà đánh mất đồng đội. Dự án dễ kiếm, anh em tốt khó tìm.

Kết

Một bài viết mất cả tháng để nghĩ, hơn 1 tuần để viết. Sẽ còn nhiều khúc mắt và thiếu sót nhưng đó là hầu hết những gì mình muốn gửi gắm. Làm cái gì cũng nên nghĩ trước nghĩ sau, rộng và sâu thì mới tránh được nhiều thứ phát sinh không đáng có. Ngoài ra tư duy tốt giúp cho mình định hướng được tương lai, sẽ có một chút chệch choạc ban đầu nhưng về lâu về dài chắc chắn tới đích.

4.3/5 - (15 votes)
Nếu thấy hay thì đừng ngại