không ai quan tâm đến code của bạn đâu
Bài này được dịch từ bài viết https://mortoray.com/2015/04/20/nobody-cares-about-your-code/ Không ai quan tâm đến code của bạn. Đây thực sự là một sự thực khó chấp nhận trong sự nghiệp làm lập trình của tôi. Tôi đã dành ra rất nhiều thời gian và công sức để code của mình hoàn thiện hơn, quy củ ...
Bài này được dịch từ bài viết https://mortoray.com/2015/04/20/nobody-cares-about-your-code/
Không ai quan tâm đến code của bạn. Đây thực sự là một sự thực khó chấp nhận trong sự nghiệp làm lập trình của tôi. Tôi đã dành ra rất nhiều thời gian và công sức để code của mình hoàn thiện hơn, quy củ hơn và tối ưu hơn nhưng rùi có 1 lúc tôi nhận ra rằng: thứ quan trọng nhất không phải là code nhiều hay ít, sạch đẹp hay không mà đó là sản phẩm, sản phẩm tối làm ra có phục vụ được cho mục đích ban đầu đưa ra của khách hàng hay của chính bản thân hay không. Nhờ nhận ra nó, tôi đã có nhưng góc nhìn tốt hơn để nâng cao hiệu suất làm việc, và sản phẩm tạo ra cũng được khách hàng hay các đồng nghiệp để ý hơn
Code chỉ là một công cụ
Quay lại với nghề lập trình của chúng ta, công việc của nghề lập trình không hẳn chỉ mỗi viết code mà chúng ta đang sử dụng code để tạo ra các chức năng cần thiết cho ai đó. do vậy, chúng ta có thể cảm nhận rõ, code chỉ là công cụ là nền tảng cơ bản để hướng tới tới các chức năng, để rồi các chức năng kết hợp với nhau tạo thành một hệ thống.
Tuy nhiên, một số quy trình trong ngành phần mềm có thể khiến ta lầm tưởng rằng code chính là sản phẩm. ví dụ như việc refactor code, đây là một quy trình làm cho code tốt hơn hay làm cho sản phẩm tốt hơn . Nhưng nhìn từ góc độ của khách hàng hoặc người quản lý, refactor code là một hành động vô bổ, và còn tiềm ẩn nguy cơ sinh bug, hơn nữa còn tốn thời gian và công sức.
Dù bất kể chúng ta làm tốt thế nào thì sản phẩm đều được đánh gái qua những gì người dùng nhìn thấy, nếu sản phẩm không chạy được hoặc nhìn quá chán thì người dùng cũng chẳng quan tâm đến những thứ đằng sau đâu.
Điều đó không có nghĩa là code của bạn hoàn toàn vô giá trị, có thể thoải mái thích code thế nào thì code. Những vấn đề như bảo mật, validation, khả năng chịu lỗi cần phải giải quyết bằng code đúng cách hay sử đụng dúng thư viện, đó cũng chính là công việc của lập trình viên. Code càng chất lượng, dễ hiểu thì người khác cũng sẽ dễ dàng review hơn.
Tập trung vào chức năng
Giờ hãy thử tưởng tượng, khi bạn trực tiếp nói chuyện với khách hàng hoặc product owner. Chúng ta sẽ nói gì với họ? Chúng ta có thể nói với họ rằng tuần này chúng ta tạo ra được bao nhiều class hay viết được vao nhiêu dòng code không? Hay chúng ta kể cho họ nghe về cách chúng ta vá những phần lỗi dứng dụng hay thiết kế tối ưu các database như thế nào. Nếu thực sự bạn kể chúng với khách hàng, bạn chắc chắn có thể cảm nhận được sự chán nản, củ bơ của họ ngay lúc này, và họ sẽ gật gù gật gù chờ hết chuyện. Khách hàng họ chỉ quan tâm đến chức năng, bạn có chức năng gì cho tôi, hay bạn nâng cấp giao diện cho tôi như thế nào, hay giờ bạn muốn chúng tôi thuê thêm dịch vụ ngoài như amazon S3, v.v.. vậy dịch vụ đó cần để làm gì, cước bao nhiêu, và nếu triển khai thì bao giờ chúng tôi có thể thấy được kết quả sơ bộ.
Mấy cái thư viện vô dụng
Một câu hỏi đặt ra ngay lúc này cho các bạn lập trình viên: Đã bao giờ các bạn chọn một library để sử dụng dựa trên source code của nó chưa? Mình thì chưa bao giờ, nếu chọn một lib hỗ trợ pagiante , mình sẽ tìm kiếm và chọn xem cái nào được nhiều người dùng sử dụng nhất, nó có dễ dùng hay không, có nhiều chức năng hay không. Thứ mà mình tập trung quan tâm là sản phẩm, là chức năng của thư viện đó chứ k phải code của nó. Nếu một thư viện code rất sạch, rất bài bản nhưng có ít chức năng, liệu bạn có chọn nó không? Tôi thì đương nhiên là không. Bạn thấy đó, đến cả những người lập trình như chúng ta còn không quan tâm đến code cua rlaapj trình viên khác thì làm sao bạn có thể hỏi khách hàng quan tâm đến code của mình được.
Đúng, Nhưng mà...
Vì không có ai quan tâm đến code không có nghĩa là chúng ta có quyền code ẩu, code cho xong. Việc này là không được, Code chất lượng sẽ cho ra một sản phẩm chất lượng. Mặc dù không ai quan tâm đến code, nhưng code vẫn là nền tảng để quyết định chất lượng sản phẩm của bạn đi xa được đến đâu. Chúng ta hãy đặt mình vào vị trí của người quản lý, vào vị trí của khách hàng và suy nghĩ, xem xét, chúng ta sẽ xem cái gì mới là giá trị, cái nào mới là cái mà khách hàng, người quản lý, hay công ty đặt niềm tin vào. Tôi tin rằng bất kể một người quản lý, một leader hay bất kể khách hàng nào cũng mong muốn: "Tôi tin bạn sẽ cho tôi một sản phẩm xứng đáng". Chức năng mới là thứ mang lại giá trị thực sự cho sản phẩm ta làm ra
Kết thúc:
Bài viết của mình có hơi sơ sài và có thêm vào một vài quan điểm cá nhân, rất mong nhận được sự góp ý và giúp đỡ của tất cả mọi người.