Có một hiện tượng kỳ lạ đã nảy sinh ở các nhà xuất bản phần mềm. Dường như mọi người có xu hướng đảo ngược sự hiểu biết của họ về điều gì làm cho một sản phẩm có chất lượng tốt hơn, hoặc ít nhất điều này đúng đối với những người làm công việc tiếp thị.
Nó đại loại như: “Sản phẩm của họ có một triệu dòng mã, nhưng sản phẩm của chúng tôi có hai triệu dòng, vì vậy sản phẩm của chúng tôi phải tốt hơn”.
Không ai biết kiểu suy nghĩ “nhiều hơn là nhiều” này đến từ đâu, khi ngày xưa mọi người đều làm việc rất chăm chỉ để tạo ra triết lý “ít hơn là nhiều hơn”.
Có lẽ nó bắt đầu với nền báo chí dành cho người tiêu dùng, bởi vì nhiều nhà văn cố gắng gây ấn tượng với khán giả bằng cách trích dẫn những con số lớn. Đối với hầu hết mọi thứ, điều này hoạt động - ổ đĩa flash nhỏ bé này chứa 200 terabyte dữ liệu, CPU đó có thể xử lý 48 tỷ lệnh mỗi giây - và người viết không phải lúc nào cũng đủ hiểu biết về công nghệ để hiểu rằng điều tương tự không áp dụng cho mã nguồn.
Nhưng hiệu quả trong việc viết mã không chỉ là tạo ra các thuật toán chặt chẽ. Đó cũng là về khả năng giảm thiểu chất thải. Điều này có nghĩa là lãng phí về lượng thời gian bạn dành để khắc phục sự cố, lãng phí về việc tiêu thụ quá nhiều tài nguyên máy tính và thậm chí lãng phí về việc nhóm của bạn đã chất bao nhiêu hộp bánh pizza quanh văn phòng vào cuối tuần. Lý tưởng nhất là bạn muốn cắt giảm tất cả những thứ này.
Cách cải thiện hiệu quả mã hóa trong 8 bước đơn giản
Vì vậy, những gì chúng ta sẽ xem xét trong bài viết này sẽ là những điều bạn có thể làm để nâng cao hiệu quả và tăng năng suất.
1. Xây dựng môi trường làm việc thuận lợi
Mỗi lập trình viên đều làm việc trong những hoàn cảnh riêng biệt và độc giả của chúng tôi là một nhóm rất đa dạng, vì vậy một số bạn sẽ dễ dàng thực hiện những đề xuất này hơn những người khác.
Nếu bạn là một freelancer thì xin chúc mừng vì bạn đã làm chủ được môi trường làm việc của chính mình. Tất nhiên, điều đó sẽ thay đổi khi bạn đến thăm khách hàng và phải làm việc tại chỗ, nhưng đó vẫn là một vị trí tuyệt vời nếu bạn có thể đạt được thành công.
Nếu bạn là người quản lý nhóm phát triển, những đề xuất này cũng có thể giúp nhóm của bạn đạt được hiệu quả tối đa. Hoặc nếu bạn là nhân viên trong nhóm phát triển, bạn có thể muốn đề xuất một số ý tưởng này cho người quản lý của mình hoặc ít nhất là gửi cho họ một liên kết đến trang này và hy vọng điều tốt đẹp nhất.
Cân nhắc việc cho phép các thành viên trong nhóm làm việc từ xa
Lập trình một phần là một bài tập về logic, nhưng nó thậm chí còn là một thử thách sáng tạo hơn. Những lập trình viên giỏi nhất có thể sử dụng cả hai bên não của họ ở mức độ tương đương cho bất kỳ nhiệm vụ nào.
Khoa học từ lâu đã thừa nhận rằng những người sáng tạo làm việc hiệu quả nhất vào ban đêm và đó là điều mà tất cả chúng ta đều đã trải qua. Vậy tại sao hầu hết các nhà quản lý lại nhấn mạnh vào thói quen truyền thống từ 9 giờ sáng đến 5 giờ chiều?
Thực ra chúng ta đã biết câu trả lời rồi. Đó một phần là về việc kiểm soát và một phần là làm cho mọi việc trở nên thuận tiện hơn từ quan điểm kinh doanh (hoặc ít nhất là về mặt quản lý). Nhưng sự khăng khăng về thói quen và địa điểm đang làm tổn hại đến hiệu quả và năng suất của nhóm.
Điều bạn cần nhận ra là các lập trình viên của bạn có thể đã thức cả đêm để thử trò chơi mới nhất, hoặc có thể họ đã đi tiệc tùng, hoặc đơn giản là phải giao lưu với gia đình.
Điều đó có nghĩa là khi họ đến làm việc vào sáng thứ Hai, bạn không những không khiến họ đạt được mức năng suất cao nhất mà còn khiến họ kiệt sức và mệt mỏi.
Cho phép người lao động lựa chọn thời điểm họ làm việc—và lý tưởng nhất là ở đâu—là một cách tuyệt vời để cải thiện năng suất và tinh thần. Miễn là họ hoàn thành công việc và mang lại kết quả chất lượng xuất sắc, bạn không nên quan tâm đến việc họ đạt được điều đó khi nào, ở đâu hoặc bằng cách nào.
Ngoại lệ là khi bạn cần cộng tác chặt chẽ, nhưng trên thực tế, hầu hết các lập trình viên đều làm tốt hơn khi được phép làm mọi việc theo cách riêng của họ và nhu cầu cộng tác chặt chẽ là rất hiếm.
Tùy chọn vào văn phòng vẫn còn đó, nhưng không có lý do thực tế nào khiến nó phải được yêu cầu trừ khi bạn đang làm việc trong các dự án quân sự tuyệt mật.
Với tư cách là một freelancer, bạn cũng có thể thấy điểm mấu chốt ở đây là nếu bạn thực hiện hầu hết công việc viết mã thực tế của mình vào ban đêm, bạn có thể sẽ làm được nhiều việc hơn. Đêm khuya sẽ ít phiền nhiễu hơn, yên tĩnh hơn và bạn sẽ cảm thấy sáng tạo hơn.
Tránh âm nhạc
Tất cả chúng ta đều từng thấy những khuôn mẫu phim điên rồ trong đó một số hacker siêu hạng đeo tai nghe và chơi nhạc death-metal trong khi dễ dàng tạo ra các màn hình mã mà không hề ngừng thở. Và tất cả chúng ta, những người thực sự viết mã trong thế giới thực đều biết hình ảnh đó nực cười đến mức nào.
Nhưng nếu bạn nghe nhạc trong khi làm việc thì hãy cẩn thận. Bạn rất dễ thấy mình đang nghĩ về âm nhạc thay vì công việc và một số loại nhạc có thể gây buồn ngủ.
Khi bạn tập luyện tại phòng tập thể dục, loại âm nhạc phù hợp có thể truyền cảm hứng cho bạn để thực hiện thêm vài lần lặp lại. Nhưng chưa có ai có thể tạo ra âm nhạc truyền cảm hứng cho bạn để tìm ra dòng có dấu chấm phẩy bị thiếu hoặc đưa ra lựa chọn chính xác giữa việc sử dụng vòng lặp for hoặc vòng lặp while. Gần nhất chúng tôi từng đạt được điều đó là Electric Dreams.
Cố gắng giữ ngăn nắp
Sự bừa bộn có thể mang lại cảm giác thoải mái một cách kỳ lạ nhưng cũng có thể khiến bạn chậm lại. Bạn có thể dễ dàng mất 20 phút để tìm kiếm thứ gì đó bị thất lạc trong đống lộn xộn và sau đó quên mất lý do ban đầu bạn muốn nó.
Vì vậy, bất chấp tất cả những bất tiện mà nó gây ra, tại sao chúng ta - ít nhất là một số người trong chúng ta - lại nghiện sự bừa bộn đến vậy? Chuyên gia về tổ chức và tác giả, Julie Morgenstern, tuyên bố rằng đó là vì thứ này kết nối chúng ta với quá khứ và đóng vai trò xác định danh tính của chúng ta.
Marcus Geduld, một giáo viên và đạo diễn sân khấu tại thành phố New York, cho rằng lý do là vì sự lộn xộn được ưa chuộng hơn một môi trường "vô trùng", và ví sự hỗn loạn của sự lộn xộn như một sự khẳng định về tự do và sáng tạo.
Tuy nhiên, chắc chắn rằng việc giảm bớt sự lộn xộn sẽ giúp bạn tránh được sự mất tập trung và vô tổ chức. Như vậy, đó là một mục tiêu xứng đáng để hoàn thành.
Bằng mọi cách, hãy giữ lại một vài vật phẩm thiêng liêng giúp bạn cảm thấy tốt hơn và bớt căng thẳng hơn, nhưng đừng lạm dụng. Dọn dẹp là một trong những việc khó khăn nhất đối với hầu hết mọi người, và không chỉ máy tính để bàn vật lý của chúng ta cần được dọn dẹp, mà thường là cả máy tính để bàn của chúng ta nữa.
Nếu bạn thực sự gặp khó khăn với điều đó, bạn có thể thử sử dụng DTE tối giản như Fluxbox, điều này thực sự không cho phép bạn gặp bất kỳ sự lộn xộn nào.
Nhưng giữa tất cả việc dọn dẹp này, đừng quá nhiệt tình. Có rất nhiều khoa học tốt cho thấy một chút hỗn loạn trong môi trường thực sự có thể có lợi cho sự sáng tạo. Một trong những nghiên cứu được trích dẫn thường xuyên nhất về vấn đề này là một bài viết trên tạp chí Khoa học Tâm lý của Vohs, Redden & Rahinel cho Đại học Minnesota có tựa đề Trật tự vật lý tạo ra những lựa chọn lành mạnh, rộng lượng và truyền thống, trong khi sự hỗn loạn tạo ra sự sáng tạo. Có lẽ lý do khiến tờ báo này được các nhà báo bám vào là vì nó kết luận rõ ràng rằng: “…những người tham gia trong một căn phòng bừa bộn sáng tạo hơn những người tham gia trong một căn phòng ngăn nắp.”
Ít phổ biến hơn nhiều là những quan điểm bất đồng quan điểm, chẳng hạn như Rối loạn môi trường dẫn đến thất bại trong việc tự điều chỉnh (Chaye & Zhu, 2014), đăng trên Tạp chí Nghiên cứu Người tiêu dùng. Nghiên cứu này cho thấy những người làm việc trong môi trường mất trật tự bị suy giảm khả năng thực hiện nhiệm vụ.
Vậy điều này sẽ dẫn bạn đến đâu? Bạn nên làm việc trong sự hỗn loạn hay vô ích? Câu trả lời có vẻ là tìm ra sự cân bằng sao cho hỗn loạn vừa đủ để giúp bạn có cảm hứng, nhưng không đến mức khiến bạn mất tập trung hoặc gặp khó khăn khi tìm kiếm mọi thứ.
Để lại một khoảng trống phía sau bạn để điều chỉnh suy nghĩ của bạn
Bạn nên có nhiều không gian để dạo quanh khi đang cân nhắc. Nhiều đô đốc và tướng lĩnh giỏi nhất trong lịch sử đã nổi tiếng vì họ dành nhiều thời gian đi đi lại lại trên boong trong khi lập kế hoạch chiến lược chiến đấu.
Không chỉ những người đàn ông chiến đấu mới làm theo thực hành này. Nhiều tu sĩ Phật giáo cũng ủng hộ việc “đi thiền” và tin rằng nó giúp nâng cao tinh thần minh mẫn. Bất cứ khi nào bạn có một vấn đề lập trình đặc biệt phức tạp cần giải quyết, bạn có thể thấy việc duỗi chân một chút bằng cách đi bộ thiền định quanh boong tàu sẽ giúp ích. Rõ ràng ở đây một lần nữa, việc không lộn xộn sẽ giúp bạn làm được điều này mà không phải nhập viện.
Là một ông chủ, hãy thận trọng khi chỉ trích những nỗ lực sáng tạo
Không có gì sai với những lời chỉ trích mang tính xây dựng, nhưng bạn cần chọn đúng thời điểm và tiếp cận nó theo cách đúng đắn, nếu không nó có thể phản tác dụng bằng cách khiến nhân viên của bạn làm việc kém hiệu quả hơn trong tương lai. Thay vì truyền cảm hứng cho họ và cung cấp cái nhìn sâu sắc, bạn thực sự có thể khiến họ sợ chấp nhận rủi ro, đó là một cách tốt để giết chết sự sáng tạo. Marieke Roskes, trong Những hạn chế hỗ trợ hoặc cản trở hiệu suất sáng tạo: Một cách tiếp cận tạo động lực, cung cấp một khuôn khổ về cách giải quyết động lực của những người lao động sáng tạo và đặc biệt là cách tránh vô tình làm mất đi động lực của họ (Quản lý Sáng tạo & Đổi mới, Tập 24, Số 2, 2015).
2. Thiết lập một SOP tốt
Có rất nhiều xu hướng hấp dẫn trong quản lý kinh doanh và quy trình lập trình mà về mặt lý thuyết nghe có vẻ hợp lý hơn nhiều so với thực tế. Việc một cách tiếp cận cụ thể có hiệu quả với bạn hay không phụ thuộc vào mục tiêu của bạn và cá nhân bạn cho rằng kết quả thành công là gì.
Một ví dụ về phương pháp mà công ty tôi làm việc đã thử—và cũng nhanh chóng bị loại bỏ—là lập trình cặp (đừng nhầm với lập trình PEAR).
Trong khi một số người thực sự ngưỡng mộ phương pháp làm việc này và ca ngợi vị trí của nó trong mô hình phát triển linh hoạt, chúng tôi nhận thấy rằng nó cực kỳ kém hiệu quả.
Để bắt đầu, nó yêu cầu hai lập trình viên cho mỗi máy trạm, vì vậy bạn phải trả gấp đôi số tiền cho công việc phát triển thực tế ít hơn. Chúng tôi cũng nhận thấy rằng làm việc theo cách này chậm hơn nhiều do luồng dừng/bắt đầu thường xuyên và xu hướng có hộp thoại không cần thiết.
Ưu điểm của lập trình cặp là nó mang lại tài liệu tự nhiên hơn và tài liệu chặt chẽ hơn. Nó cũng cho phép phát hiện lỗi dễ dàng hơn và đưa ra các đề xuất về việc thắt chặt thuật toán. Tuy nhiên, đồng thời, những ưu điểm tương tự cũng tạo ra vấn đề vì đôi khi những tinh chỉnh, điều chỉnh không thực sự cần thiết.
Một rủi ro khác với cách tiếp cận này là bạn có thể nhận được hiệu ứng được Roskes xác định, trong đó các lập trình viên có thể do dự khi thử mọi thứ vì họ không muốn bị sửa chữa. Bạn có thể thấy những xung đột về tính cách bùng lên khi một nhà phát triển rất mô phạm và truyền thống, nhưng người kia lại sáng tạo và tự phát hơn.
Các lập trình viên thường nói rằng họ thích lập trình cặp hơn. Có thể điều này là do họ thích thú với sự tương tác xã hội mà nó mang lại, nhưng điều này không đóng góp gì vào hiệu quả sản xuất, ngoại trừ có lẽ như một động lực thúc đẩy tinh thần.
Vì vậy, những gì bạn cần thiết lập là điều gì thực sự hiệu quả với nhà phát triển của bạn và điều gì không. Đối với những thứ không hiệu quả, tốt hơn hết bạn nên loại bỏ chúng, ngay cả khi chúng là một xu hướng đang thịnh hành. Bất cứ điều gì giúp nhóm tiến bộ nhanh chóng đều là điều tốt. Nhưng nếu họ bị đè nặng bởi một phương pháp không phù hợp với phong cách của họ thì cuối cùng sẽ dẫn đến nhiều vấn đề.
3. Khuyến khích tài liệu dài dòng
Mặc dù có vẻ như tính dài dòng sẽ làm tăng tính kém hiệu quả, nhưng việc dành một khoảng thời gian ngắn để đưa ra nhiều chi tiết và chính xác hơn trong các nhận xét có thể giúp giảm bớt rất nhiều rắc rối khi dự án được triển khai hoặc trải qua các bản sửa đổi.
4. Không khuyến khích những tài liệu không cần thiết
Mã được viết tốt thường tự ghi lại. Nếu bạn hoàn toàn hiểu rõ chức năng của hàm từ tên bạn đặt cho nó (điều gần như luôn luôn như vậy), thì việc thêm mô tả là không cần thiết. Điều tương tự cũng xảy ra với việc đặt tên biến và trả về giá trị. Tên của họ phải rõ ràng về công việc của họ và trong những trường hợp không thể thực hiện được điều đó, bạn nên đưa mô tả về họ vào phần nhận xét.
5. Khoảng trắng là bạn của bạn
Việc sử dụng khoảng trắng một cách thích hợp trong mã của bạn có giá trị trong việc giúp làm cho mã dễ đọc, xem xét và dễ hiểu hơn. Nó đi đôi với việc ghi tài liệu tốt và viết mã tự ghi tài liệu. Bất kỳ lập trình viên có kinh nghiệm nào cũng có thể—hoặc thậm chí là người không phải lập trình viên—có thể lấy một bản sao mã nguồn của bạn và hiểu ngay mục đích của từng chức năng là gì cũng như cách thức hoạt động của nó. Lý tưởng nhất là ai đó có thể học lập trình mà không cần gì khác ngoài việc nghiên cứu đoạn mã được viết tốt của bạn.
6. Thích sự đơn giản hơn sự phức tạp
Bạn tạo mã càng phức tạp thì càng khó gỡ rối. Trớ trêu thay, điều này lại áp dụng cho các phím tắt trong lập trình, chẳng hạn như sử dụng các câu điều kiện viết tắt thay vì viết chúng ra đầy đủ. Nó tiết kiệm thời gian khi viết, nhưng một lập trình viên ít kinh nghiệm hơn đến xem mã của bạn sau này có thể không hiểu ý định của bạn.
7. Kiểm tra kỹ càng
Mã nên được kiểm tra tăng dần và thường xuyên. Trước khi triển khai bất kỳ thứ gì, bạn nên tiến hành thử nghiệm nội bộ nhiều nhất có thể, ngay cả khi bản phát hành đầu tiên của bạn sẽ được chỉ định là Alpha.
8. Sử dụng kiểm soát phiên bản
Bạn sẽ thật điên rồ khi không sử dụng tính năng kiểm soát phiên bản cho một dự án lớn. Nếu không có nó, bạn sẽ không được bảo vệ khỏi những lỗi nhỏ của chính mình và cũng rất dễ để một thành viên khác trong nhóm vô tình (hoặc cố ý) phá hoại mã của bạn bằng cách ghi đè lên mã đó bằng thứ gì đó không làm bạn hài lòng.
Kết luận
Bằng cách xem xét tám đề xuất chính này, bạn sẽ có thể phát triển chiến lược của riêng mình để đạt được hiệu quả cao nhất cho bạn và bất kỳ thành viên nào trong nhóm mà bạn làm việc cùng.
Bạn không nhất thiết phải áp dụng tất cả chúng và chắc chắn một số thậm chí có thể không thực tế đối với bạn, nhưng bất kỳ sự kết hợp nào của chúng đều có thể giúp bạn hoàn thành công việc của mình ít rắc rối hơn. Một quy trình làm việc hiệu quả hơn sẽ tự mang lại lợi ích theo thời gian, ngay cả khi nó chỉ giúp giảm căng thẳng và giúp bạn có nhiều thời gian hơn cho bản thân. Đó là một mục tiêu đáng để hướng tới.
Nhận xét Responses 0