有一種相當流行的軟體方法學要求對乙個專案分配35種不同的角色,包括架構師、設計人員、編碼人員、文件管理者等。敏捷方法卻背道而馳,只需乙個角色:軟體開發者,也就是你。專案需要什麼你就做什麼,你的任務就是與客戶緊密協作,一起開發軟體。敏捷依賴人,而不是依賴於專案的甘特圖和里程表。
這大概是全棧工程師吧,哈哈哈~
惡魔:「出了問題,第一重要的是確定元凶。找到那個白痴!一旦證實了是他的錯誤,就可以保證這樣的問題永遠不會再發生了。」在敏捷的團隊中,大家的重點是做事。你應該把重點放到解決問題上,而不是指責犯錯者上面糾纏。
你可以從自己先做起。如果乙個開發者帶著抱怨或問題來找你,你要了解具體的問題,詢問他你能提供什麼樣的幫助。這樣簡單的乙個行為就清晰地表明你的目的是解決問題,而不是追究責任,這樣就會消除他的顧慮。你是給他們幫忙的。這樣,他們會知道每次走近你的時候,你會真心幫助他們解決。他們可以來找你把問題解決了,當然還可以繼續去別處求助。
如果你找人幫忙,卻沒有人積極響應,那麼你應該主動引導對話。解釋清楚你想要什麼,並清晰地表明你的目的是解決問題,而不是指責他人或者進行爭辯。
天使:把矛頭對準解決問題的辦法,而不是人。這是真正由用處的正面效應。
惡魔:「你不需要真正地理解那塊**,它只要能夠工作就可以了。哦,它需要乙個小小的調整。只要再結果中再加上幾行**,它就可以工作了。開工吧!就把那幾行**加進去,它應該可以工作。」我們經常會遇到這種情況,出現乙個bug並且時間緊迫。快速修復確實可以解決它——只要新加一行**或者忽略那個列表上的最後乙個條目,它就可以工作了。拙劣的**工人會不假思索地改完**,然後快速轉向下乙個問題。優秀的程式設計師會挖掘更深一層,盡力去理解為什麼這裡必須要加一,更重要的是,他會想明白會產生什麼其他影響。
beware of land mines在工作壓力之下,不去深入了解真正的問題以及可能的後果,就快速修改**,這樣只是解決表面問題,最終會引發大問題。短期看,它似乎是有效的。但從長遠來看,通過幾年的積累,**裡有著成千上萬的補丁修復,在這樣髒亂的**中新增新的功能或修復bug,會讓開發者難逃脫髮的噩運。
don't code in isolation孤立非常危險,不要讓開發人員完全孤立地編寫**。如果團隊成員花些時間閱讀其他同事寫的**,他們就能確保**是可讀和可理解的,並且不會隨意打補丁的**。實行**評審,不僅有助於**更好理解,而且是發現bug最有效的方法之一。
use unit tests另一種防止**難懂的重要技術就是單元測試。單元測試幫助你很自然地把**分層,分成很多可管理的小塊,這樣就會得到設計更好、更清晰的**。更深入專案的時候,你可以直接閱讀單元測試——它們是一種可執行的文件。有了單元測試,你會看到更小、更易於理解的**模組,執行和使用**,能夠幫助你徹底理解這些**。
天使:「不要墜入快速的簡單修復之中。要投入時間和精力保持**的整潔、敞亮。」
惡魔:「你在這個設計上投入了很多精力,為它付出很多心血。你堅信它比其他任何人的設計都棒。別聽他們的,他們只會把問題變得更糟糕。」你很可能見過,對方案設計的討論失控變成了情緒化的指責——做決定是基於誰提出了這個觀點,而不是權衡觀點本身的利弊。我們來看看對乙個明顯的錯誤有哪些常見的反應。
第一種方法是不可能成功的。你那樣指出問題根本不會對他的水平有任何提高,反而會導致他以後再也不會提出自己的任何想法了。第二種方法至少觀點明確,但也不會給多少幫助,甚至遭來反駁導致被打臉。而第三種方法,沒有譴責,沒有評判,只是簡單地表達自己的觀點。
在乙個需要緊密合作的開發團隊中,如果能稍加注意禮貌對待他人,將會有益於整個團隊關注真正有價值的問題,而不是勾心鬥角,誤入歧途。我們每個人都能有一些極好的創新想法,同樣也會萌生一些很愚蠢的想法。
negativity kills innovation
你不需要很出色才能起步,但是你必須起步才能變得很出色。集體決策確實非常有效,但也有一些最好的創新源於很有見地的個人的獨立思考。如果你是乙個有遠見的人,就一定要特別尊重別人的意見。我們並不是建議你限制會議決策,只是你不應該成為一意孤行的首席架構師的傀儡。
能欣賞自己並不接受的想法,表明你的頭腦足夠有學識。下面是一些有效的特殊技術:
天使:「對事不對人。讓我們驕傲的應該是解決了問題,而不是比較誰的主意更好。」
惡魔:「如果你發現其他人的**有問題,只要你自己心裡知道就可以了。畢竟,你不想傷害它們,或者惹來麻煩。如果他說你的老闆,更要格外謹慎,只要按照他的命令執行就可以了。」假如要你修復其他人編寫的**,而**很難理解也不好使用。你說應該繼續修復工作,保留這些髒亂的**呢,還是應該告訴你的老闆,這些**太爛了,應該統統扔掉呢?
也許你會跳起來告訴周圍的人,那些**說多麼糟糕,但那只是抱怨和發洩,並不能解決問題。相反,你應該重寫這些**,並比較重寫前後的優缺點。動手證明(不要只是嚷嚷)最有效的方式,是把糟糕的**放到一邊,立刻重寫。列出重寫的理解,會有助於你的老闆(以及同事)認清當前形勢,幫助他們得到正確的解決方案。
天使:「做正確的事。要誠實,要有勇氣去說出實情。有時,這樣做很困難,所以我們要求足夠的勇氣。」
我的世界觀
我的世界觀 阿爾伯特 愛因斯坦 我們這些總有一死的人的命運多麼奇特!我們每個人在這個世界上都只作乙個短暫的逗留 目的何在,卻無從知道,儘管有時自以為對此若有所感。但是,不必深思,只要從日常生活就可以明白 人是為別人而生存的 首先是為那樣一些人,我們的幸福全部依賴於他們的喜悅和健康 其次是為許多我們所...
佛教的世界觀
所有的哲學首當其衝的命題就是宇宙觀與世界觀。我們身處何地,我們從 來?要到 去?佛教的宇宙觀和世界觀或許不是完全正確的,但卻是開放的 佛教中的乙個世界 就是以日月系統作為乙個世界的單位。1000個這樣的世界是乙個小千世界 1000個小千世界,就是乙個中千世界,1000個中千世界,就是乙個大千世界。佛...
人生觀 世界觀?!
這是乙個大得能把牛嚇死的話題。上週公司為我們進行企業核心價值 core value 的培訓,讓我們每人寫出3條個人價值觀。對於這個問題,我之前還真沒有人證思考過 到底我的人生信條是什麼呢?想了半天,寫出了以下三條 我經常說一句話 當今中國是乙個無法無天的社會 天,上天,神也。中國沒有宗教,中國人不敬...