分享 我總結的提高程式設計師生產力的方法:
被「打斷」是破壞程式設計師生產力的罪魁禍首。程式設計師在被打斷後一般不能做到立刻重新開始程式設計。被打斷之後繼續程式設計通常程式設計師需要重新看一遍**,才能進入到程式設計的思維環境中,才能想起來被打斷之前的思維邏輯,再從被打斷的點重新開始。這個過程大概要花 30 分鐘以上。「打斷」越多,煩心越多,工作質量也會降低,bug 也會隨之增加—成為惡性迴圈。
如果從我剛開始程式設計,就這個事那個事不斷打斷我,那次數越多,我重新進入狀態耗時越長。如果你一直打斷我,就別怪我一天沒寫出來啥東西。
所以降低外界干擾,減少打斷能夠顯著提高程式設計師生產力。
「會議」和「打斷」的唯一區別在於會議是計畫好的打斷。程式設計師無法在被打斷的時候還能專心做其他任務。比如你跟程式設計師開 1-2 小時的會議,基本上不會有什麼進展,因為一般技術性的任務 1-2 小時以內是無法完成的。乙個下午如果被分成兩個小會議是最糟糕的情況,因為這兩個會議都太短了,什麼都做不了。
那麼,如何避免呢:工作會議可以安排在一天開始的時候或者午飯前,並盡量簡短,避免不必要的「打斷」。
有些公司會讓你些不懂程式設計的人來「管理」程式設計師的日常工作,在旁邊指手畫腳。而乙個好程式設計師只要知道目標需求是什麼,他會知道如何安排工作,如何達成目標。
如果某項功能要求很模糊,在這個情況下,開發人員只能靠自己的感覺來程式設計。最好是能夠把某項功能的要求細節化,再遞交給開發人員。
這些對非程式設計師來說可能比較奇怪,但對程式設計師工作的效率影響卻非常大。比如一些白噪音,像空調噪音,汽車卡車行駛的這些聲音,反而可以幫助他們更好的集中注意力。這就是為什麼程式設計師總是戴著耳機。同樣,如果工作空間的設計會有很多人走來走去,這也會讓程式設計師無法專心。或者他們坐的位置很容易被管理者看到等等,這些因素都會讓程式設計師壓力增大而無法專心。
比如,乙個簡單的功能:
版本 1(發布前):功能是在地圖中顯示乙個定位。
版本 2 (當版本 1 幾乎開發完畢時):功能變為「在 3d 地圖上展示乙個座標」。
版本 3 (當版本 2 幾乎開發完畢時):功能又變成「在 3d 地圖上展示乙個使用者能在上空飛過的座標」。
這種需求上的變數,和需求安排的不合理,會極大降低程式設計師工作效率。
如果乙個產品團隊在沒有仔細考察功能是否有需求就定義了產品優先順序(通過客戶反饋或者其他渠道),程式設計師很可能會開發出很多用不到的功能。這會讓他們覺得自己做的東西沒有利用價值,開發的熱情也會大大降低。所以我們要明確產品定義,做有意義的產品。
技術負債是為了更快上線產品而使用非最佳解決方案或編寫不是最好的**。這些決定有時候是不可避免的,因為可以在短期內提高軟體開發的速度。但是,長遠來看,這會讓系統複雜程度提高,並且會降低開發速度。
非程式設計師總是想盡快推進專案而低估了生產力的浪費,這就成了乙個問題。如果**重構永遠排不上優先順序,這不僅會影響效率,還會影響產品質量。
ssd!大顯示屏!高效能電腦!好用的軟體!
在開發人員的軟體工具和硬體上投資是肯定不會錯的!讓你的開發團隊選擇他們喜歡的工具和硬體(為單人買硬體,為整個團隊買軟體工具)。
規範的注釋可以避免很多不必要的麻煩,有些人只有被坑到的時候才感覺出規範注釋的重要性。
專案排期很重要,需要給出合理的排期,如果你給乙個完全無法完成的排期,那程式設計師可能就不做了,這會影響員工和諧。
其他的想到再補。
程式設計師的生產力
剛剛看到一篇文章,說是好的程式設計師生產力是普通程式設計師的幾倍,甚至上百倍。文章是乙個台灣人寫的 對裡面關於 工具 和 自動化 的描述,有了一些新的領悟,故記錄於此。公司總是在強調,完成本職工作,只是meet,如果想exceed some 或是 exceed most,一定要有創新思維或者積極主動...
程式設計師如何提高自己?
前段時間,不知在哪個 上看到大概是諸如 程式設計師如何提高自己?感觸頗深。在此處,貼出來以告誡自己,要努力做到下述內容中的若干點,尤其是1 總帶一本書,不失為一件又雅又益的事情,俗話說的好 滴水可以穿石 每天看幾頁書,沒準,我也能成為master。1 總帶一本書 無論你花一年或者一周去讀一本書,這都...
程式設計師如何提高抽象能力
之前寫過一篇文章,講合格程式設計師應該具備的能力,你是合格的程式設計師嗎?合格程式設計師應該具備的12種能力。裡面提到了抽象能力,就我看來,抽象能力是軟體從業人員最應該具備的能力。因為軟體開發領域涉及到的概念太多。正如brooks所說,為了獲得概念完整性,需要我們具備很強的抽象能力,需要我們運用抽象...