2021.01.19

Năng suất và Giá Trị

Ở MEVN việc tạo ra giá trị là điều kiện tiền đề cho việc triển khai phát triển hệ thống Reuse của chúng tôi. Để thực hiện việc này một cách có hiệu quả chúng tôi áp dụng phương pháp Lean Startup (Khởi nghiệp tinh gọn).

   “Tăng năng suất sẽ giúp chúng ta tạo ra được nhiều Giá trị hơn“

   Bạn nghĩ sao về ý kiến trên? Tôi cũng từng nghĩ như vậy, nhưng không phải trong mọi trường hợp hai yếu tố “Năng suất” và “Giá trị“ cũng đi song hành với nhau. 

   Trong bài viết chúng ta sẽ cùng nhau nhìn nhận lại về các khái niệm “Năng suất, Giá trị” và cùng thảo luận về cách tạo ra nhiều giá trị hơn cho công việc của mình.

  1. Năng suất

  Chúng ta bắt đầu với “Năng suất”.

  Năng suất (Productivity) là khái niệm phản ánh lượng hàng hóa hay dịch vụ một người nhân công có thể sản xuất ra trong mỗi giờ lao động. Năng suất là nhân tố chủ chốt quyết định tốc độ tăng trưởng sản xuất.

  Trong ngành công nghiệp phần mềm, cách đánh giá phổ biến nhất cho năng suất của một lập trình viên là việc đếm số lượng dòng code (LoC) mà người đó viết trong mỗi giờ làm việc. Số dòng code (LoC) ở đây là số lượng dòng code thực sự, phần xử lý cho một thao tác hay chức năng nào đó khi hệ thống vận hành. Như vậy những phần như comment (giải thích nội dung coding) sẽ không được tính vào năng suất của một lập trình viên. 

  Với ý nghĩa như vậy việc tăng năng suất đồng nghĩa với việc tăng số dòng code làm ra trong một ngày. Hãy tưởng tượng khi mỗi nhân viên đều tăng được năng suất của mình thì sẽ có thêm bao nhiêu phần chức năng được gia tăng thêm? Một cách đơn giản nhất mà ta có thể dễ dàng hình dung được là sản lượng toàn toàn công ty sẽ tăng theo cấp số cộng (tỷ lệ với số nhân công). Vậy nên nếu công ty có càng nhiều nhân viên thì lượng gia tăng đó càng lớn hơn. Chính điều này là động lực để các công ty, đặc biệt là những công ty lớn đầu tư tiền của, cũng như công sức để cải thiện quy trình nhằm tăng năng suất. 

  Có một vài phương pháp chúng ta có thể tham khảo khi bắt đầu quá trình cải thiện để tăng năng suất. 

  • Nâng cấp phần cứng tăng tốc độ xử lý máy tính giúp lập trình viên tăng tốc độ xử lý công việc. 

  • Cải thiện quy trình giúp tối ưu cách tiến hành công việc, nâng cao hiệu quả công việc. Và nếu muốn tham khảo một phương pháp nào đó bạn có thể tham khảo phương pháp cải thiện theo chu trình cải tiến liên tục PDCA (Plan-Do-Check-Act).

 

 

  • Sắp xếp nơi làm việc gọn gàng, loại bỏ những thứ không cần thiết từ đó giúp tiến trình làm việc trôi chảy, không bị tắc nghẽn hay chậm trễ từ đó làm tăng năng suất. Và phương pháp 5S mà Toyota áp dụng và phổ biến ra thế giới là đại diện tiêu biểu cho cách làm này.

   Áp dụng một phương pháp phù hợp có thể giúp bạn tăng năng suất, nhưng hãy lưu ý những rủi ro đi kèm khi bạn bỏ ra chi phí, công sức cho những cải thiện này. Nếu những output bạn làm ra tạo ra giá trị thì những công sức bạn bỏ ra thực sự có ý nghĩa nhưng ngược lại thì những công sức đó sẽ trở nên vô nghĩa. Để hiểu rõ hơn chúng ta sẽ cùng thảo luận về giá trị ở phần tiếp theo. 

  2. Giá trị

  Khái niệm “Giá trị” bao gồm hai khái niệm chính là “Giá trị hàng hoá” và “Giá trị sử dụng”. Các khái niệm này được định nghĩa như sau.

  Giá trị của hàng hoá: là một thuộc tính của hàng hoá, đó chính là lượng lao động tiêu hao để sản xuất ra hàng hoá đó và tính bằng thời gian lao động cần thiết. Ba nhân tố cơ bản ảnh hưởng đến của giá trị hàng hoá là năng suất, cường độ và độ phức tạp của lao động.

  Giá trị sử dụng: của một vật phẩm là tính chất có ích, công dụng của vật thể đó có thoả mãn một nhu cầu nào đó cho việc sản xuất hoặc cho sự tiêu dùng cá nhân. Giá trị sử dụng được quyết định bởi những thuộc tính tự nhiên và những thuộc tính mà con người hoạt động tạo ra cho nó.

  Vậy đối với một sản phẩm thì giá trị hàng hoá hay giá trị sử dụng mới quyết định giá trị thực sự sản phẩm đó. Hãy cùng phân tích một ví dụ cụ thể để làm rõ vấn đề này.

・ Bối cảnh: 

  Bạn là thành viên của một team phát triển gồm 5 thành viên. Team bạn phụ trách việc phát triển một trang web bán hàng. Mọi công việc trong dự án đều được quản lý và chỉ thị từ PM (Project Manager). Và bạn một lập trình viên với kinh nghiệm Java 3 năm được PM giao phụ trách phần Backend của dự án.  

 ・Vấn đề: 

  Dự án của bạn nhận được feedback về việc User phải chờ đợi quá lâu cho những xử lý trên trang web. Team bạn được yêu cầu giải quyết vấn đề này nhanh nhất có thể để tránh ảnh hưởng đến User. 

・Cách giải quyết: 

  Sau khi nhận được yêu cầu, PM đã làm việc cùng những người liên quan để phân tích tình tình, điều tra các nguyên nhân dẫn tới việc xử lý bị chậm. Sau quá trình này PM đưa ra kết luận rằng nguyên nhân xuất phát từ việc liên kết với cơ sở dữ liệu chưa được tối ưu dẫn đến việc chậm trễ trong việc lấy và lưu trữ dữ liệu. 

  Một ticket cải thiện hiệu suất của cơ sở dữ liệu được PM tạo ra và chuyển cho bạn xử lý. Kể cả việc điều tra nguyên nhân và sửa lỗi bạn dự trù cần 3 ngày nhưng do mức độ ảnh hưởng của task PM mong muốn bạn đối ứng gấp và PM cũng đưa những chỉ thị chi tiết cho những phần cần xử lý. Bạn có gặp 1 chút khó khăn nhưng với 3 tiếng làm thêm ngoài giờ bạn đã hoàn thành task theo đúng mong muốn của PM. Và PM thực sự hài lòng với phần source code mà bạn bàn giao.

・Kết quả:

  Đối ứng nhanh chóng đúng theo yêu cầu của PM, mọi chuyện nghe có vẻ ổn cho tới khi team của bạn nhận được feedback từ khách hàng. Tốc độ xử lý của trang web công ty chỉ được cải thiện 1 phần nhỏ nhưng nó không giải quyết được vấn đề mà User phản ánh. Vậy là những công sức của bạn và PM để cải thiện hiệu suất của cơ sở dữ liệu không thực sự mang lại giá trị gì, khi mà những lời phàn nàn của User vẫn chưa được giải quyết.

  Từ ví dụ trên chúng ta có thể thấy rõ rằng giá trị sử dụng là yếu tố quyết định đến giá trị cuối cùng của sản phẩm. Việc tăng năng suất có thể giúp chúng ta gia tăng giá trị hàng hoá, nhưng nếu sản phẩm làm ra không có giá trị sử dụng thì sản phẩm đó vẫn bị đào thải và công sức chúng ta bỏ ra để làm ra nó cũng trở nên vô giá trị. 

  3. Quá trình tạo ra giá trị 

  Một quá trình sản xuất chỉ thực sự có giá trị khi chúng ta tạo ra một sản phẩm đáp ứng được nhu cầu nào đó của User, hay giúp User giải quyết một vấn đề nào đó của họ. Như ví dụ ở trên output của chúng ta chỉ có giá trị khi nó giúp User không còn phải chờ đợi khi thao tác trên trang web. 

  Điều quan trọng là phải thấu hiểu những vấn đề thực sự của User để tìm cách giải quyết nó một phù hợp nhất, nhưng việc này lại không hề dễ dàng trên thực tế. Theo thống kê thì lý do khiến các Startup thất bại thì “No Market Need” là nguyên nhân nhiều nhất chiếm tới hơn 40%. Hầu hết họ đều ý tưởng tốt, có quy trình phát triển sản phẩm tối ưu nhưng kết quả là họ vẫn thất bại bởi sản phẩm không được thị trường chấp nhận, không được người dùng đón nhận. 

  Top 10 Reasons Why Startup Fails – Copyright: CB Insights

  Cùng quay lại với ví dụ trên để cùng xem xét các nguyên nhân dẫn tới việc output cuối cùng không mang lại giá trị. Thứ nhất ta có thể dễ dàng nhận thấy rằng việc phân tích và tìm giải pháp để giải quyết vấn đề ở đây hoàn toàn phụ thuộc vào PM. Nếu PM đưa ra nhận định chính xác chúng ta có thể tạo ra giá trị cho output của mình, nhưng ngược lại nếu PM phán đoán của không chính xác thì thực sự là ác mộng. 

  Thứ hai với cách vận hành như trên này các member hầu như không tham gia vào quá trình nhận tiếp nhận hay phân tích yêu cầu mà chỉ đơn thuần thực hiện các chỉ thị từ PM. Vậy nên rất khó để các member có thể nhận thức đúng đắn vấn đề thực sự của User, đồng nghĩa với việc gần như họ không biết được công việc họ đang làm sẽ tạo ra giá trị gì. Và khi đó trách nhiệm của họ là thực hiện chỉ thị và làm hài lòng PM, chứ không phải trách nhiệm với chính công việc của mình là tạo ra giá trị đích thực.

  4. Tư duy làm việc dựa trên “Giá trị“ 

  Ở MEVN việc tạo ra giá trị là điều kiện tiền đề cho việc triển khai phát triển hệ thống Reuse của chúng tôi. Để thực hiện việc này một cách có hiệu quả chúng tôi áp dụng phương pháp Lean Startup (Startup tinh gọn). Lean Startup của tác giả Eric Ries là framework cung cấp cách thức quản lý quá trình khởi nghiệp một cách gọn nhẹ và hiệu quả. Lean Startup được áp dụng ở hầu hết các Startup công nghệ ở thung lũng Silicon.

  Lean Startup Methodology – Copyright: Eric Ries

  Phương pháp này không chỉ giúp các Startup trong việc đi đúng hướng cho quá trình bắt đầu triển khai một business nào đó, nó còn hướng dẫn chúng ta cách thức để nhận biết đúng đắn những vấn đề của User, để đưa ra những giải pháp phù hợp nhất, dựa trên quá trình tiếp nhận feedback liên tục và nhanh nhất User. Vì vậy mà quá trình cải thiện sản phẩm sau đó tạo ra được những giá trị thực sự cho User.

  Các đội phát triển dự án của MEVN thông thường sẽ gồm 5 thành viên và được hoạt động dựa trên mô hình Agile. 

  Việc áp dụng Agile Team đảm bảo việc mọi thành viên trong dự án cùng chịu trách nhiệm cho những công việc mà team phụ trách. Điều đó có nghĩa là mọi thành viên sẽ cùng tham gia vào tất cả các công đoạn từ tiếp nhận, phân tích yêu cầu đến việc thực hiện các giải pháp. Các thành viên sẽ ý thức được giá trị của những công việc đang thực hiện và sẽ có trách nhiệm tối đa cho quá trình tạo ra giá trị.

  Trong mô hình này PM chỉ đóng vai trò là người điều phối giúp các thành viên tiến hành công việc 1 cách thuận lợi và thông suốt hơn chứ không giữ vai trò là người chịu toàn bộ trách nhiệm về dự án như mô hình trong ví dụ trên. Việc không phụ thuộc và 1 cá nhân mà mọi thành viên trong dự án đều nhận thức được trách nhiệm trong quá trình tạo ra giá trị giúp team có cách nhìn đầy đủ hơn. Nó đảm bảo cho Team đi đúng hướng và tạo ra được giá trị nhiều nhất có thể.

  Ngoài ra ở MEVN chúng tôi còn áp dụng Pair Programming và Mod Programming. 

  Việc chia sẻ cùng một không gian làm việc, cùng một thời gian, giao tiếp trực diện (face to face communication) giúp các vấn đề được làm nhìn nhận và giải quyết đầy đủ hơn, chính xác hơn. Giảm đáng kể việc hiểu sai làm sai yêu cầu từ đó bảo được giá trị các sản phẩm làm việc nhóm. Không những vậy nhiều bộ não cùng làm chung 1 công việc, giúp nâng cao chất lượng code, hạn chế bug từ đó giảm thời gian test, fix bug là 1 cách hiệu quả giúp ta tăng năng suất công việc và đảm bảo chất lượng.

  5. Kết luận : 

   Như đã thảo luận trong bài viết dù bạn đang là một lập trình viên, hay một nhân viên kinh doanh thậm chí bạn đang nung nấu triển khai một Startup thì hãy luôn đặt cho mình câu hỏi liệu công việc mình đang làm có đưa ra được giá trị thực sự không. Nó sẽ là kim chỉ năng cho bạn đi đúng hướng không chỉ trong công việc hiện tại mà còn giúp bạn tạo ra được nhiều giá trị cho các công việc của bạn. 

Tham khảo : 

Measuring Developer Productivity

https://viblo.asia/p/measuring-developer-productivity-bWrZnB7YZxw

Năng suất (Productivity) là gì? Các nhân tố quyết định năng suất

https://vietnambiz.vn/nang-suat-productivity-la-gi-cac-nhan-to-quyet-dinh-nang-suat-20190812154850496.htm

KHÁI NIỆM CƠ BẢN VỀ GIÁ TRỊ, GIÁ TRỊ SỬ DỤNG, GIÁ TRỊ TRAO ĐỔI VÀ GIÁ CẢ CỦA HÀNG HÓA

https://thongtinphapluatdansu.edu.vn/2009/09/21/3835/

Giới thiệu sách The Lean Startup

https://www.marketenterprise.vn/blog/gioi-thieu-sach-the-lean-startup.html

Series LEAN Startup – Customer Problem Fit

https://www.marketenterprise.vn/blog/series-lean-startup-customer-problem-fit.html

Series LEAN Startup – Minimum Viable Product

https://www.marketenterprise.vn/blog/series-lean-startup-minimum-viable-product.html

Pair programing và mob programing

https://www.marketenterprise.vn/blog/pair-programing-va-mob-programing.html