自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

軟件開發(fā)人員的“七重苦”

開發(fā) 后端 項(xiàng)目管理
軟件開發(fā)這個(gè)行業(yè)無(wú)疑的是有快樂(lè)的,但這篇文章里,我們先不關(guān)注他,而是要來(lái)看看那些讓人痛苦的地方?,F(xiàn)在就讓我們來(lái)了解一下軟件開發(fā)人員的“七重苦”是什么吧。

軟件開發(fā)這個(gè)行業(yè)無(wú)疑的是有快樂(lè)的,但這篇文章里,我們先不關(guān)注他,而是要來(lái)看看那些讓人痛苦的地方。

有時(shí)候想想,人作為一種生物還是挺有意思的。

快樂(lè)的東西快樂(lè)過(guò)了,也就忘了,記的牢的的反倒是些讓人不快樂(lè)的東西。

第一重:垃圾代碼

佛家總講成住壞空,軟件亦莫能外。

唯一有點(diǎn)特別的是,軟件“住”的階段短,“壞”的階段來(lái)的快。

要想軟件保持不“腐敗”,其實(shí)要花的精力遠(yuǎn)比想的多,這導(dǎo)致在商業(yè)利益比較強(qiáng)勢(shì)的世界里,大多時(shí)候有的只是“能用就行”的軟件,而不是“好”的軟件。

“能用就行”的軟件里,大多時(shí)候到處都是垃圾代碼。

如果說(shuō)超過(guò)100行的方法/函數(shù)讓人痛苦的話,那么時(shí)有出現(xiàn)的超過(guò)200行的方法/函數(shù)就是讓人絕望了。

不改不行,改了不知道對(duì)錯(cuò),一旦錯(cuò)了很可能被抱怨。這就是垃圾代碼帶來(lái)的痛苦。

軟件行業(yè)已經(jīng)存在超過(guò)30幾年了,現(xiàn)存的軟件很多。所以軟件開發(fā)人員遇上垃圾代碼的可能性絕對(duì)高于50%。

 

開源的世界要好很多,只可惜很多時(shí)候開源和飯碗的關(guān)聯(lián)有點(diǎn)艱難。

第二重:莫名其妙的加班

很多日程是把程序員的工作時(shí)間作為變量的。

簡(jiǎn)單來(lái)講就是,要完成的工作是不確定的,但日程是確定的。

這樣一來(lái),軟件開發(fā)人員必須加班。

但關(guān)鍵是一個(gè)人每天能寫的既定質(zhì)量水平的代碼大概就那么多,一旦逼急了,只能放水,少想多做,進(jìn)而貢獻(xiàn)更多的垃圾代碼。

因此說(shuō),這類加班很莫名其妙:目的可能是節(jié)約成本,縮短工期,但實(shí)際上垃圾代碼一出,大多時(shí)候是適得其反。

可以10人月做完的項(xiàng)目,只計(jì)劃投入5個(gè)人月,最終投入了15個(gè)人月的例子其實(shí)不少。

項(xiàng)目越復(fù)雜,越容易出現(xiàn)這種情況。

 

第三重:需求變化下的無(wú)用功

沒(méi)什么比,費(fèi)了很大力氣完成一項(xiàng)功能,結(jié)果收到的反饋是“這不是我們想要的”或“這個(gè)功能不需要了”更讓人泄氣了。

需求變化是正常的,迭代也是正常的,可無(wú)用功太多一定是不正常的。

但軟件這個(gè)行業(yè)中,這事似乎沒(méi)法根絕。

這也許根本就不是個(gè)技術(shù)問(wèn)題,或者說(shuō)不只是技術(shù)問(wèn)題。

人有偏好,偏好在變化。世界有走勢(shì),走勢(shì)在變化。這些都會(huì)傳導(dǎo)到軟件里來(lái),進(jìn)而使無(wú)用功成為一種宿命。

第四重:選擇太多

在很多工程領(lǐng)域里,確定性的東西比較多。但軟件開發(fā)里恰恰相反,確定性較少,選擇太多。

這也許是好事,但有的時(shí)候確實(shí)也讓人痛苦。

假設(shè)說(shuō),我們要從頭開發(fā)一款軟件,那么至少要做這些選擇:

  • 用什么語(yǔ)言?這好像很簡(jiǎn)單,但如果真要很理智的去分析和選擇,其實(shí)很難,C++,C#,Java那個(gè)沒(méi)有自己的優(yōu)勢(shì)呢。
  • 用什么框架?選新技術(shù),可能支持不到位,也可能很快被淘汰;選老技術(shù),可能會(huì)有些已知的限制。
  • 是買還是自己造?買的話省時(shí)間,但一旦出問(wèn)題,很可能導(dǎo)致項(xiàng)目卡殼。自己造的話,有可能時(shí)間上來(lái)不及。
  • ... ...

每次面臨這類問(wèn)題時(shí),都讓人感覺(jué),世界很大,自己不過(guò)是一只小小鳥。

其實(shí)選擇讓人難受的主要原因是自身知識(shí)與未知世界間的矛盾,但軟件的世界真的很大,一個(gè)人要想了解所有事情完全不可能。

所以痛苦的選擇題就總在那里,不管你愛(ài)或不愛(ài)。

 第五重:技術(shù)變化快,積累上不去

設(shè)想一下,一個(gè)10年前的高手,這10年他什么也不學(xué),那他今天會(huì)是什么樣的一個(gè)狀況。

我個(gè)人估計(jì)是快被淘汰了。

這是個(gè)極端的例子,但回顧一下軟件的發(fā)展歷程你會(huì)發(fā)現(xiàn),新技術(shù)的出現(xiàn)是爆炸式的。

在DOS的時(shí)代里,軟硬件的距離非常近,你只要會(huì)一種語(yǔ)言,了解基本算法和數(shù)據(jù)結(jié)構(gòu),再了解計(jì)算機(jī)硬件的知識(shí),你就可以寫大部分的程序。

接下來(lái)軟件和硬件間的層次越來(lái)越多,Windows加上一層,Java虛擬機(jī)加上一層,瀏覽器加上一層,F(xiàn)lash等再加上一層,諸如此類。

每多一層技術(shù)的種類就增加一些。這就導(dǎo)致軟件開發(fā)人員同時(shí)面對(duì)兩類壓力:一是項(xiàng)目上的時(shí)間壓力,一是技術(shù)更迭上的學(xué)習(xí)壓力。但偏偏一個(gè)的時(shí)間是有限的。

很多時(shí)候特定工作崗位會(huì)限定關(guān)聯(lián)技術(shù)的范疇,如果自身不做點(diǎn)安排,那就真成吃“青春飯”的了。

第六重:究竟誰(shuí)干的好,誰(shuí)干的不好

大多時(shí)候,考評(píng)不能每個(gè)人都打A,否則就成了吃大鍋飯的。

可在軟件的世界里,一旦要分個(gè)你好他差,難度就出來(lái)了。

根據(jù)實(shí)績(jī)判斷,一個(gè)人很難全面理解很多人的工作。如果團(tuán)隊(duì)規(guī)模少于10人,這類的判斷還存在可能性;如果超過(guò)10人,那么誤判的幾率會(huì)直線上升,除非是天才。

根據(jù)數(shù)據(jù),大多數(shù)據(jù)真的不能用來(lái)評(píng)價(jià)軟件開發(fā)人員。生產(chǎn)率、Bug率這些是一定不行的,圈復(fù)雜度這類歧義性很小的指標(biāo)勉強(qiáng)可用,但說(shuō)明的問(wèn)題會(huì)比較片面。

根據(jù)感覺(jué)和印象的話,多少有些草菅人命的感覺(jué)。

于是考評(píng)大多時(shí)候總是天怒人怨的考評(píng),而天怒人怨的程度很多時(shí)候取決于當(dāng)事人的在意程度。

第七重:弟兄們意見(jiàn)很多,統(tǒng)一很難

軟件很重要的一個(gè)特質(zhì)就是仁者見(jiàn)仁,智者見(jiàn)智。

觀點(diǎn)的差異有的時(shí)候是是非問(wèn)題,但大多時(shí)候是視角問(wèn)題,是橫看成嶺側(cè)成峰式的。

而軟件團(tuán)隊(duì)大多時(shí)候在兩個(gè)極端間徘徊:要么沒(méi)意見(jiàn),要么很多意見(jiàn)。

很少有團(tuán)隊(duì)會(huì)是在合適的時(shí)候有合適的意見(jiàn)---這是政治家干的事,程序員不大做的來(lái)。

沒(méi)意見(jiàn)的團(tuán)隊(duì)實(shí)是兵無(wú)戰(zhàn)心的團(tuán)隊(duì),其實(shí)更差,這里不去說(shuō)他。

有意見(jiàn)的團(tuán)隊(duì)協(xié)調(diào)起來(lái)比較很辛苦。

程序員群體里大致上是越優(yōu)秀的越容易固執(zhí)己見(jiàn),所以大致上越優(yōu)秀的團(tuán)隊(duì)吵得越多,越兇。

但不管怎么樣,最終的選擇只有一個(gè)。這時(shí)候,不能只靠行政力量去拍,要在理解各種想法后,結(jié)合外部需求,時(shí)間壓力,人員狀況去協(xié)調(diào)。

這事其實(shí)很不容易。

小 節(jié)

一定程度上講,這七重苦很難根絕。

好多即將做軟件的或做的時(shí)間不長(zhǎng)的同仁大多時(shí)候關(guān)注的是新技術(shù),是創(chuàng)造性;但就和陽(yáng)光下總有陰影一樣,不管方法如何更迭,總有些東西無(wú)法徹底改善。

所以想做軟件的,并想堅(jiān)持做軟件的,要有點(diǎn)心理準(zhǔn)備,不能夢(mèng)想的太美,那樣回頭會(huì)比較失落。

風(fēng)光的活是有的,臟活累活也很多,有了這樣的心理預(yù)期,才能在做軟件中找到快樂(lè)。

說(shuō)了這么多,倒不是悲觀。

有些問(wèn)題即使沒(méi)法徹底解決,但程度上還是不一樣的。

痛苦在那種程度上是事在人為的主戰(zhàn)場(chǎng),這點(diǎn)上做和不做差別很大。

假如一個(gè)人不把眼光只局限于某個(gè)項(xiàng)目,而是把視野擴(kuò)展到整個(gè)軟件開發(fā)所對(duì)應(yīng)的方法論,那么關(guān)注現(xiàn)實(shí)中的痛苦,則是有所得得前提。

原文鏈接:http://blog.csdn.net/leezy_2000/article/details/7235699

【編輯推薦】

  1. 為什么軟件開發(fā)工期預(yù)估都不靠譜
  2. 2012最受企業(yè)歡迎的開發(fā)技能Top10
  3. 提高軟件開發(fā)團(tuán)隊(duì)編程水平
  4. 2012年,看看開發(fā)者們都想干什么
  5. 開發(fā)者視角論述HTML 5平臺(tái)的7大特點(diǎn)
責(zé)任編輯:林師授 來(lái)源: leezy_2000的博客
相關(guān)推薦

2022-07-12 18:36:52

軟件開發(fā)企業(yè)開發(fā)人員

2012-02-15 09:17:02

Python編程

2017-03-23 15:09:13

軟件開發(fā)人員

2022-09-11 08:21:15

LinuxUbuntu軟件開發(fā)

2017-04-12 09:24:45

開發(fā)編程Java

2022-07-11 10:04:37

軟件開發(fā)編碼

2015-04-14 09:38:35

軟件開發(fā)人員便利工具

2023-12-21 16:45:27

軟件開發(fā)人員CIOGenAI

2020-12-16 15:53:59

開發(fā)編程語(yǔ)言技術(shù)

2020-11-11 09:42:34

軟件開發(fā) 技術(shù)

2022-01-13 23:15:29

Docker開發(fā)嵌入式

2009-05-04 09:42:51

IBM軟件開發(fā)社交網(wǎng)站

2019-08-26 11:05:51

數(shù)據(jù)軟件程序員

2021-03-27 12:56:36

軟件開發(fā)人員軟件開發(fā)

2024-08-09 13:44:06

2024-01-15 15:09:16

ChatGPT軟件開發(fā)

2009-04-30 16:44:08

IBMSNS社交網(wǎng)站

2010-05-28 15:28:47

ibmdw軟件開發(fā)

2019-12-03 08:00:00

軟件開發(fā)產(chǎn)品路線圖路線圖工具

2022-07-15 15:22:51

區(qū)塊鏈開發(fā)語(yǔ)言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)