軟體開發這個行業無疑的是有快樂的,但這篇文章裡,我們先不關注他,而是要來看看那些讓人痛苦的地方。
有時候想想,人作為一種生物還是挺有意思的。
快樂的東西快樂過了,也就忘了,記的牢的的反倒是些讓人不快樂的東西。
佛家總講成住壞空,軟體亦莫能外。
唯一有點特別的是,軟體「住」的階段短,「壞」的階段來的快。
要想軟體保持不「腐敗」,其實要花的精力遠比想的多,這導致在商業利益比較強勢的世界裡,大多時候有的只是「能用就行」的軟體,而不是「好」的軟體。
「能用就行」的軟體裡,大多時候到處都是垃圾**。
如果說超過100
行的方法
/函式讓人痛苦的話,那麼時有出現的超過
200行的方法
/函式就是讓人絕望了。
不改不行,改了不知道對錯,一旦錯了很可能被抱怨。這就是垃圾**帶來的痛苦。
軟體行業已經存在超過30
幾年了,現存的軟體很多。所以軟體開發人員遇上垃圾**的可能性絕對高於
50%。
開源的世界要好很多,只可惜很多時候開源和飯碗的關聯有點艱難。
很多日程是把程式設計師的工作時間作為變數的。
簡單來講就是,要完成的工作是不確定的,但日程是確定的。
這樣一來,軟體開發人員必須加班。
但關鍵是乙個人每天能寫的既定質量水平的**大概就那麼多,一旦逼急了,只能放水,少想多做,進而貢獻更多的垃圾**。
因此說,這類加班很莫名其妙:目的可能是節約成本,縮短工期,但實際上垃圾**一出,大多時候是適得其反。
可以10
人月做完的專案,只計畫投入
5個人月,最終投入了
15個人月的例子其實不少。
專案越複雜,越容易出現這種情況。
沒什麼比,費了很大力氣完成一項功能,結果收到的反饋是「這不是我們想要的」或「這個功能不需要了」更讓人洩氣了。
需求變化是正常的,迭代也是正常的,可無用功太多一定是不正常的。
但軟體這個行業中,這事似乎沒法根絕。
這也許根本就不是個技術問題,或者說不只是技術問題。
人有偏好,偏好在變化。世界有走勢,走勢在變化。這些都會傳導到軟體裡來,進而使無用功成為一種宿命。
在很多任務程領域裡,確定性的東西比較多。但軟體開發裡恰恰相反,確定性較少,選擇太多。
這也許是好事,但有的時候確實也讓人痛苦。
假設說,我們要從頭開發一款軟體,那麼至少要做這些選擇:
每次面臨這類問題時,都讓人感覺,世界很大,自己不過是乙隻小小鳥。
所以痛苦的選擇題就總在那裡,不管你愛或不愛。
軟體開發人員的「七重苦」(2)
理想流 + 軟體 = 《完美軟體開發:方法與邏輯》
理想流 + 人生 = ??
理想流 + 管理 = ??
理想流 = 以概念和邏輯推演本質,追求真理。
軟體開發人員的出路
已經從事了一段時間的.net開發,目前在公司裡乙個人負責乙個系統,什麼都得自己去做,只能逼著自己去學啦。分析能力自我感覺還不錯,想以後轉行到系統分析師,請問各位有經驗的大俠,1.由開發人員走哪條路會比較順利的轉到系統分析師?2.目前系統分析師在軟體行業需求怎麼樣?3.系統分析師一般需要具備哪方面的知...
軟體開發人員的能力模型
不知覺做軟體開發已經有6年了,回看自己的經歷,可以說是相當有成就感,6年中通過不斷的學習的實踐,從乙個菜鳥成長為一名軟體架構師,這個過程可以說充 滿樂趣。通過學習各種理論 技術 方法,並有在實踐中應用,觀察它們的效果,思考它們之間的關係,再把不同事物融合在一起,形成乙個完整的能力體系,以此 來挑戰更...
軟體開發人員的最佳實踐
首先文章中提出,軟體開發人員需要不斷的練習,什麼是練習,為什麼要練習,練習意味著什麼?文章中給出了很好的解讀。練習是一種習慣,練習是乙個過程,練習並不意味著記住,練習需要不斷的實踐,練習需要專心致志的付出。射擊運動員需要不斷的練習才能射中更多的分數,開車也需要不斷的練習才能成為driver,寫字需要...