雜談:人與軟體

來源:互聯網
上載者:User
    播下一種思想,收穫一種行為;播下一種行為,收穫一種習慣;播下一種習慣,收穫一種性恪;播下一種性格,收穫一種命運。
-- 引自<水煮三國>

    長期以來,程式員被看作是沉默寡言的典型。他們能夠長時間獨自坐下來,不跟別人討論,面對紙張及電腦螢幕來工作的人。現在,這種現象早已經不盡然了,新的尤其是敏捷方法論更強調的是人們之間的有效溝通,而最有效溝通便是面對面的交流,這也是結對程式設計取得巨大成功之所在。正如水晶方法論創始人Alistair Cockburn對軟體開發活動的總結:“軟體開發是一場資源有限的建立與交流的協作性遊戲。遊戲的主要目標是交付有用的可工作的軟體,次要目標,是為下一場遊戲做準備,既知識的累積。下一場遊戲可以是改變或者替代當前的系統,或是建立另一個相關的系統。”一個軟體Team Dev的成功依賴於合作、交流及協調,而這些因素卻都以人為核心,恰恰是人這個大的因素左右了項目的成敗,而不是所選擇的任何過程與技術,而這個因素卻常常被人們所忽視。當技術與人們的認識和文化價值觀相抵觸時,技術就不會再產生效力。一個擁有充足人員且具有良好機能的團隊往往能更好地完成項目,而不在乎讓他們使用什麼樣的過程及技術。然而,人的能力卻是不可預測的,他們善於尋找、學習並有主動性,特別是善於進行非正式面對面交流,但同時,人們也具有會犯錯誤、墨守成規、只想創新、積習難改與變化無常等缺點。正因為人是變化無常的,我們不能指望人會成為可預料的或每個人都會變成一個樣子。正如你不能希望給一個人雙倍的酬勞,制定雙倍的懲罰制度,並付出雙倍工作時間,就希望能夠得到雙倍的成果輸出一樣。這是因為,人不是機器,而是複雜的情感生物,輸出的成果最終取決於當時的思考品質、思考速度、主動性、身體狀況、情緒等諸多因素。但是,人的內在潛力卻是非常巨大的,只要用紀律和寬容來應付人們的共同弱點,便可以去其短,揚其長,來激發人們的內在潛力。當人們有了工作自豪感和公民感,再加上善於尋找和主動性後,我們會發現人們每天都會積極地完成工作,這將使項目長期處於最佳狀態。在這方面,XP(極限編程)採用豐富的、短的、非正式交流途徑,同時強調技能、紀律、個人理解水平,將中介軟體需求降到最低的方法,來獲得儘可能高的品質和生產力。

變化總是在發生
他們總是不斷地拿走你的乳酪。
預見變化
隨時做好乳酪被拿走的準備。
追蹤變化
經常聞一聞你的乳酪,以便知道它產什麼時候開始變質。
儘快適應變化
越早放棄舊的乳酪,你就會越早享用新的乳酪。
改變
隨著乳酪的變化而變化
享受變化
嘗試冒險,去享受新乳酪的美味!
做好迅速變化的準備,不斷地去享受變化
記住:他們仍會不斷的拿走你的乳酪,如果你不改變,你就會被淘汰。
-- 引自<誰動了我的乳酪>

面對市場經營的特殊挑戰,只有那些具有高度靈活機制的企業才能立於不敗之地。不能適應變化,變化就會把你變得面目全非。再完美的計劃也時常遭遇不測。軟體中的所有東西都在變化。需求在變、設計在變、業務在變、技術在變、團隊在變、團隊成員在變。問題不在於變化,因為變化總在發生,問題在於在發生變化時沒有能力應付。只有變化是不變的,時刻準備著這樣調整一點,那樣調整一點。通過許多小的調整,而不是幾次大的調整來控制軟體的開發,也就是說我們需要利用及時反饋來知道我們何時出現了錯誤,我們需要很多機會來糾正這些錯誤,而且,我們必須能夠以比較合理的成本完成這樣的糾正,即使你不得不朝完全不同的方向前進,這就是作為一名程式員的生活。敏捷就是快速、輕鬆和靈活,迅速行動的能力,以最少的開銷完成工作的能力,適應不斷變化條件的能力。這就像XP方法論創始人Kent Beck對XP所做的比喻:“XP團隊應該是智慧的遊牧人,隨時準備迅速收合帳篷,跟隨牧群到處流浪。這裡的牧群可能是與預期不同方向的設計、與預期不同方向的客戶、離開團隊的成員、突然升溫的技術或者是不斷變換的商業環境。”敏捷式軟體開發 (Agile Software Development)的根本是相信在我們混亂的業務環境中有不可預測性,相信人們或團隊在面對這種不可預測性時,有能成功交付軟體能力的可預測性,而這些,這是由於開發人員之間的有效溝通、與客戶和管理者之間的有效溝通,才使得這種被稱為富於創造與交流的協作性軟體開發遊戲取得成功。

再富裕的國家,也會因為浪費人才而變得貧窮。與之類似,企業生存的最大課題就是培養人才,有了好員工,不愁沒有好顧客。企業的發達,乃人才的發達;人才的繁榮,既事業的繁榮。把人放在第一位,其他事情就會少發愁。
-- 引自<管理智典>

    <資本論>指出:一切剩餘價值皆是由人創造的,而不是其它任何機器。在軟體開發中的任何分析和設計工具不管有多先進,都不可能自動產生設計及代碼,而真正產生設計及代碼的,恰恰是操作它們的人,過分信賴過程與工具以及低估人的智力和經驗都是一切災難的源泉。與此同時,<設計模式>一書也指出:在軟體開發和維護中,從長遠來看,真正引起軟體低效的原因,是人,人的低效才是最主要的。這看起來有點自相矛盾,其實為一體,既:成也在人,敗也在人!軟體開發和維護中的低效,初看起來,使人聯想到的首先可能會是:開發及維護人員技術水平不夠了、軟體文檔支援不足了、軟體人員偷懶了、開發或維護團隊內部個人關係不好了等等。但深究起來,一般卻和一個企業的內部組織文化有很大的關係。目前,國內很多國企、私企普遍存在的內部現象是:一馬在前,萬馬齊拍;前面的馬向後看到的是後面馬的笑臉,後面馬向前看到的是前面馬的屁股。故才會有後面群馬齊拍,前面馬飄飄不知所以然的壯麗情境。在這種企業文化中,人人只會以乾隆年間的和珅和大人為偶像,以“厚而無形,黑而無色”的厚黑精神為人生最高境界。試想在這種企業組織文化中,真正老實實乾的人只能忍氣吞聲、本著不求有功、但求無過之心,整天提心掉膽,人人皆自衛。而奸滑的人卻會善於濫竽充數、邀功請賞、見風駛舵,只要嘴巴甜、馬屁拍的好、拍的妙,定會陞官發財,內部則猜疑、譴責、以及微妙和間接的勾心鬥角與明掙暗鬥隨處可見。這種企業最終是不會留下真正的人才的,留下的只會是一些馬屁精。如果一個企業文化如此,開發及維護團隊會如何,內部員工又會怎麼做,可想而知!如果你所處的環境不是這樣,恭喜你。最好的環境應該是互相信任,彼此互相尊重,彼此之間都相信對方會把自己的最高利益和整個團體的利益放在心中,彼此都願意切磋技巧、經驗及看法。而要成為一個有效團隊成員,首先需要認識到自己的無知,每個人都要向別人學習,應該相信直覺,並且開放和誠實的交流環境常常是保證有效團隊合作的最好策略。作為一個組織,核心就在於對人的信賴,在於一個適應性強的文化氛圍,這能夠將人捆在一起,獲得有效協作關係。一個企業做的是否成功,關鍵是看它有多強,而不是有多大。把人放在第一位,管理層次少,內部資訊溝通及時、各職能部門協作意識強的企業才更容易成功。

    在激勵一個人按某種特定方式工作時,報酬比懲罰更有效,懲罰要盡量避免。你若能在他人心中激起一種急切的需求,並能引導這種需求,你便能無往不勝。渴望得到別人的認可和讚賞,是人類隱藏最深的本性。
-- 引自<管理智典>

<孫子兵法-作戰篇>中指出:“殺敵者,怒也;取敵之利者,貨也。車戰,得車十乘以上,賞其先得者。”意思是說,要使軍隊勇敢殺敵,就要激發士兵對敵人的仇恨;要使軍隊奪取敵人的物資,就要以財貨獎賞士兵。所以在車戰中,凡繳獲戰車十輛以上的,要獎最先奪得戰車的人。同理,<素書六章>中也指出:小功不賞,則大功不立;小怨不赦,則大怨必生。這和前面是一樣的道理,然而,國內很多軟體企業領導者,滿腦子想的仍是:中國人,多的是,有什麼用,走一個,馬上還能來一群,怕什麼!殊不知,你就再是鐵打的營盤,也架不住流水的兵,不注重人,必會留不住人。冰凍三尺,非一日之寒,做軟體的,少則數月,多則幾年。三天兩頭換人,每天看到的都是新面孔,那還象是做軟體的,就象是在選秀。這樣的軟體能成功嗎?既使僥倖成功,也定不會長久,因為他們不可能織起一個強而穩定的團隊,組織起來的只能是臨時應戰的僱傭兵而已。有上面這種想法的領導大多通常是以指令性過程方法和產品為中心,把做作軟體的人看做是“隨插即用”的機器,這些高層管理者往往抱著一種“菜譜哲學”的思想,認為如果組織機構有了明確定義的軟體過程方法,詳細地規定了每個開發活動的步驟,那麼所有問題都將被解決。如果“正確”的過程已經開發好,他們就可以僱用任何人(當然,最好不用人全部由機器自動產生最好, ^_^ ),只要遵循制定好的過程,完美的軟體就將準時且不超預算地大量產出,這種信條是建立在把軟體開發當成是一門科學的基礎之上的,然而,殘酷的現實卻向他們證明,軟體開發更多的是一門藝術而非科學,是一門需要技能、手藝精巧的人互相協作的藝術。如果公司領導成天跟員工斤斤計較,抓住員工小辮子不放,動不動就大聲呵斥、擺臉色看、給小鞋穿,還要經常免費加班、扣工資、罰資金。試想,在這種環境下,員工會怎麼做,大部分會直接走人,留下的人卻學會了磨洋工。工作時看著忙忙碌碌,實則作秀也。老闆可能還會納悶,怎麼員工這麼買力,產品品質還日漸下降。殊不知,這就和菜場買菜一樣,你越和賣菜的討價還價,賣菜的給你菜時越會和你斤斤計較(既缺斤少兩)是一個道理,只有這樣兩方心理才能夠平衡。雖然,聰明一些的高層領導者總是宣稱員工是組織機構中最重要的方面,但骨子裡仍把員工看作隨意可替換的資產,這也正是人類的一大缺點:嘴上說的和實際做的往往是兩回事。所謂“道”,就是讓部屬與領導者的價值觀相一致,這樣部屬就會與領導者同生共死,不會畏懼什麼困難和危險,表現出崇高的獻身精神。如何讓部屬與領導者的價值觀相一致,其實很簡單,將員工利益看作第一位,以人為本,重視他們、信任他們、支援他們。其實,員工們對公司的要求其實很低,一般如下:
第一、    按時發工資(基本保證)。
第二、    得到辦公室配送的飲料或食品。
第三、    得到領導賞識。
第四、    獲得特別授權去完成某艱巨任務。
第五、    多發獎金(不吃大鍋飯)。
第六、    職位上的提升。
第七、    加薪。
以上幾條,對於每一個有遠見的公司領導都是不難做到的。那怕能做一半,員工們也會心存感激之情了。

協助他人,可說是一種最直接有效、可以激發自身價值與責任感的方法。在全神貫注協助他人解決問題的過程中,在悉心呵護照顧他人的過程裡,不但我們的無限潛力會因此而充分發揮出來。而且,相對而來的成就感,也會讓人覺得自己任重而道遠,並能更積極地來面對人生了。
-- 引自<好習慣、好人生>

    近兩年,書面上流行的狼系列叢書<狼文化>、<狼圖騰>等。也同樣給中國軟體業發展以極大的啟示,強調擁用像狼群般的高度緊密協作的團隊意識、敏銳的嗅覺(既可以察覺到細小或即將來到的變化)、始終保持野性(既持續的積極進取的態度和精神)等。中國人喜歡窩裡鬥這是出了名的,就是軟體人員內部也經常在彼此攻擊、無休無止。要知道,在一個有效團隊中是沒有“我”這個字的,只有“我們”。這裡借用曹植曹帥哥一句話:“本是同根生,相煎何太急!” 來真心希望中國軟體業能真正團結一致,齊心合力,建立自己的狼群文化,早日走出低穀,向全世界宣布:我們是狼,不是羊! 建立一個有效團隊是一項艱苦的任務,它對項目的成功是必不可少的。首先是通過招募好的開發人員,從好的材料開始,他們可能不具備所有需要的技能,但至少應該願意去學習。其次是在團隊內培養正確的態度,既他們只有團結一心才能走向成功,每個人都應該積极參与系統開發。建設和培養一個有效團隊需要時間,但這樣做是組織機構能做的最好的投資之一。

若是你在一年中不曾有過失敗的記錄,你就未曾勇於嘗試各種應該把握的機會。害怕失敗,就等於拒絕了成功。那些盼望並且追求成功的人,要比那些成天擔心而且接受失敗的人要快樂得多,其成就也會高的多。
-- 引自<管理智典>

    假如軟體的第一版就做得很好,那麼人們就會再次使用該軟體。由於世界上所有的事情都在迅速變化著,因此,軟體也需要不斷更新、擴充、改變及修改。而想要得到穩定不變軟體的唯一方法就是讓產品壞到沒有人再想用它,穩定意味著無知覺的產品。要明白,穩定的要求是敵人而不是朋友。改變要求是生活中嚴酷的現實,明智的軟體人員應事先預想並處理它而不是抱怨它。而使軟體建立更加快速與健壯的,是軟體複用。有關軟體複用的問題從表面上看是技術上的,實則真正的問題還是來自人。開發人員需要擺脫不相信也不想理解別人成果或只想重頭做來增加個人經驗的看法,如果不解決人的問題,那麼技術問題也就變得無關緊要了。開明的領導和合適的獎賞制度有時能克服這些問題,假如企業文化把重複使用擱置起來,不與重視,那麼在實現重複使用方面的投資、開發以及努力都將沒有多大的成果。克服人的問題最主要的還是有效溝通的問題,雖然我們已經學會把感情生活與工作分開,但是如果隊員間不能持續進行有效溝通、沒人承認自己的錯誤、怨氣得不到平息、歡樂沒有人共用,那麼整個團隊就無法高效率地工作。如果我們每個人都能夠放下生活中所帶的虛假面具,說出自己真實的感覺,也認真傾聽別人的想法,那麼任何工作的進展都會順利的多。

    一個人並不是生來就要被打敗的,你盡可以消滅他,卻不能打敗他。
-- 引自<老人與海>

    生命原本脆弱,我們只能堅強地活著,並努力尋找歡樂,就這樣。這裡有一點我想告訴大家,大家在積極進取、努力拚搏的同時,一定要多加註意自己的身體。要知道,留著青山在,不怕沒柴燒,身體乃革命的本錢也。千萬不要有這樣思想:三十歲前我用命換錢,三十歲後我用錢換命。要好好想想,沒有了好的身體,我們還能做什麼!所以,請記住:努力工作,從珍惜生命做起!

    生活並不是筆直通暢的走廊,讓我們輕鬆自在地在其中旅行。生活是一座迷宮,我們必須從中找到自己的出路。我們時常會陷入迷茫,在死胡同中搜尋。但如果我們始終深信不疑,有一扇門就會向我們開啟,它或許不是我們曾經想到的那扇門,但我們最終將會發現,它是一扇有益之門。
-- 引自<誰動了我的乳酪>

    最後,讓我引用<WINDOWS遊戲編程大師技巧>書中一句話來結束本文:“當你看到眼前有列過山車,請坐上去,不要猶豫。張開你的臂膀,盡情體驗箇中滋味,一直堅持到遊戲的最後,這就象生活一樣。你的生活將不會留下太多回憶,除非你曾經反抗過、呐喊過,並用堅持不懈的努力向著完美伸出雙臂。世上沒有不可能實現的事情,只要你相信能做到,你就能做到!”

參考文獻:
C++經典問答(第二版)    --    周遠成譯
WINDOWS遊戲編程大師技巧(第二版)        --    沙鷹譯
設計模式-可複用物件導向軟體的基礎    --    李英軍等譯
解析極限編程—擁抱變化    --    唐東銘譯
敏捷式軟體開發 (Agile Software Development)    --    俞涓譯
敏捷式軟體開發 (Agile Software Development)生態系統    --    姚旺生等譯
敏捷建模-極限編程和統一過程的有效實踐    --    張嘉路譯

連絡方式:
地址:陝西省西安市勞動路90號院(台板廠家屬院)六單元
郵編:710082
未來工作室(Future Studio)
EMAIL:jingzhou_xu@163.net
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.