Bàn về Mindset và Toolset trong phát triển phần mềm
Bạn đã bao giờ biết tới khái niệm Mindset chưa? Người ta hay dịch nó là "Tư duy", nhưng theo tôi thì không hoàn toàn đúng. Theo như định nghĩa của Tâm lý học thì Tư duy - Thinking là một "Quá trình thao tác thông tin thông qua việc hình thành khái niệm, giải quyết vấn đề, ra quyết định và phản tư ...
Bạn đã bao giờ biết tới khái niệm Mindset chưa? Người ta hay dịch nó là "Tư duy", nhưng theo tôi thì không hoàn toàn đúng. Theo như định nghĩa của Tâm lý học thì Tư duy - Thinking là một "Quá trình thao tác thông tin thông qua việc hình thành khái niệm, giải quyết vấn đề, ra quyết định và phản tư duy (phản tỉnh) hoặc suy nghĩ sáng tạo". Còn Mindset là một tập hợp của "thái độ, quan điểm, giả định, thói quen". Vậy Mindset có phải là 1 phần của Thinkking không? Tôi nghĩ là có, nó là Output của quá trình Thinkking. Như vậy, quá trình tư duy sẽ ảnh hưởng trực tiếp tới Mindset của mỗi người.
Vậy còn Toolset thì sao? Nó đơn giản hơn, chỉ là tập hợp của các công cụ giúp ích trong quá trình làm việc. Ví dụ Ba Con Sói hoặc Toy. Nó giúp chúng ta thoả mãn nhu cầu, nhưng lại làm ta suy giảm đi "năng lực" nếu lạm dụng chúng trong thời gian dài.
Mindset thì liên quan gì tới Toolset? Lâu nay tôi vẫn hay gặp những lời than vãn, những bài viết và cả những lời khuyên trong giới công nghệ, đại thể như: Nên học căn bản trước khi dùng Framework, thư viện. Vậy gốc rễ vấn đề khi chúng ta lạm dụng Framework là từ đâu mà ra? Có phải vì tính người Việt thích ăn xổi? Tôi nghĩ hoàn toàn là không, các Framework ta dùng đa số là do đám Tây lông viết ra. Cái khác là khác ở Mindset của người Việt và người Tây mà thôi.
Bất cứ Toolset nào được sinh ra đều mang trong mình 1 Mindset, hay đại thể là mục đích cao thượng gì đó. Không có Toolset nào là toàn năng, ngôn ngữ, công cụ, Framework chỉ giải quyết được một phần của bài toán chúng ta gặp. Điều khiến chúng ta thường lạm dụng Toolset là do ta không hiểu Mindset của Toolset, và nghiêm trọng hơn là Mindset của ta có vấn đề.
- Khi áp dụng Agile vào dự án, ta phải hiểu Agile Mindset.
- Khi chuyển từ Procedure sang OOP, ta phải thay đổi Mindset.
- Khi chuyển từ Monothetic sang Microservice, ta phải thay đổi Mindset.
May thay, Mindset khó thay đổi nhưng vẫn có khả năng thay đổi được. Tôi từng gặp nhiều trường hợp, khi thay đổi Toolset (tức là thay đổi Mindset), nhiều bạn gặp khó khăn. Giải pháp là phải tìm ra cho Mindset của Toolset đó, đọc cho thật kỹ, hiểu cho thật tinh tường. Còn cứ lao đầu vào sử dụng ngay, sẽ có ngày gặp hoạ.
Để giải quyết từ gốc rễ, ta phải tìm hiểu xem loại Mindset nào gây ảnh hưởng tới quá trình tư duy của những Mindset khác. Theo như Carol Dweck, tác giả cuốn "Mindset: The New Psychology of Success" thì con người được chia làm 2 loại là Fixed Mindset (cố định) và Growth Mindset (phát triển). Vậy cố định thì sao mà phát triển thì sao? Tôi xin trích lược nội dung cuốn sách về Mindset trong việc học.
- Những người có Mindset cố định: Luôn tin rằng tài năng là do bẩm sinh và không thể thay đổi được, cố lắm, cố mãi thì cũng chỉ vậy thôi. Nếu ai thất bại, thì có nghĩa là người đó sẽ luôn thất bại. Nếu ai đó nói họ thông minh thì họ luôn tỏ vẻ ra mình là người thông minh, bằng cách lảng tránh việc học tập, rèn luyện.
- Những người có Mindset phát triển: Luôn tin rằng tài năng là có thể rèn luyện được, thử thách trong học tập, công việc là cơ hội để rèn luyện bản thân ngày một phát triển hơn. Họ không cho rằng mọi người giống nhau, cũng không cho rằng bất cứ ai cũng có thể trở thành Einstein, nhưng họ tin là ai cũng có thể trở nên thông minh hơn nhờ việc học và làm.
Như vậy, Mindset về việc học sẽ quyết định về khả năng tư duy ra những Mindset khác, được hình thành thông qua quá trình học và thực hành. Tôi sẽ chỉ ra một vài ví dụ về Mindset không tốt trong việc học thực tế mà tôi gặp phải.
- Không giỏi toán thì không thể làm Developer được.
- Người làm ngôn ngữ A thì thường giỏi hơn ngôn ngữ B.
- Con gái thì Code kém hơn con trai.
- Cứ Code thật giỏi thì sẽ có công việc tốt.
- Sinh viên tốt nghiệp trường TOP thì làm việc tốt hơn trường bình thường.
- Chỉ cần học thế là đủ.
- Tự học thì sẽ tốt hơn là được người khác chỉ dạy.
Khi đi làm, có thể đôi lúc chúng ta nghe thấy những thứ như System Thinkking, Product Mindset, Agile Mindset, Project Mindset, Leadership Mindset... vậy cụ thể bọn chúng là gì? Thực ra, ở mỗi vị trí làm việc Mindset của mỗi người là khác nhau. Ví dụ người làm sản phẩm cần có Product Mindset, người quản lý cần có Project Mindset và người lãnh đạo thì cần Leadership Mindset. Khi làm việc, chúng ta có thể đã áp dụng các loại Mindset này mà không biết. Việc áp đặt Mindset của mình lên Mindset của người khác sẽ rất dễ gây ra mâu thuẫn trong công việc, nhưng nếu thử tư duy theo vị trí công việc, ta sẽ dễ thông cảm hơn với người khác.