首先,明確一個觀點,程序員要解決的問題大多不是程序自己的問題,而是把時間花費在瞭解決非本質問題上。由此咱們提出兩個概念,本質複雜度和偶然複雜度。程序員
本質複雜度就是作一件事要解決的最基本的問題。好比,寫一個網頁,不管怎樣都要寫好這個網頁的骨架、樣式和行爲,這是必不可少的,無論怎麼省都省不下來的時間。框架
偶然複雜度就是作一件事除了解決本質複雜度以外多作的事。好比,用原聲js開發一個大型的網站,就要比用框架開發慢不少。這個例子中致使工做量加大的緣由是選用的方法和工具不當。其實,咱們的工做會由於不少問題致使效率下降,好比,需求分析不全面,項目流程不規範,程序設計不合理,人員溝通無反饋等等。工具
提升工做效率,就是要下降偶然複雜度,這裏有三個方法很是重要,他們分別是以終爲始、任務分解和溝通反饋。測試
以終爲始就是作一個項目要很清晰這個項目的現狀和目標,以目標爲終點去開始這個項目,並制定詳細的計劃和任務。網站
任務分解就是把項目中的每個任務再次細分紅一個個小任務,小任務再細分到小模塊,一個模塊一個模塊按時間有計劃地去完成。設計
溝通反饋就是作項目途中,必定要多和同事溝通,無論是項目經理、產品、交互、視覺仍是測試。有問題第一時間反饋並尋求解決方案,切忌本身一我的瞎幹。開發
即便咱們只負責研發,但一個項目從需求分析開始,咱們就要和項目經理、產品經理一塊兒思考。當產品向咱們提出需求時,咱們要考慮下面這些點:產品
1.爲何要作這個需求?它會給用戶帶來什麼價值?
2.什麼樣的用戶會用到這個需求,他們在什麼場景使用,他們又會怎麼使用?
3.達成這個目的是否是非這個需求不可,還有沒有其餘方法?爲何必定要開發一個系統呢?
4.這個需求上線後,是否能持續有效?
5...程序設計
咱們程序員不要只悶頭寫程序,要從各個角度多思考,這樣咱們寫的程序纔是好程序。class