我們到底在干什么
==============
編寫代碼, 讓機器替人們完成某些**工作**!!! 如果不能很好地完成**工作**,再炫酷的代碼,都毫無價值.
我們要做的,就是這件事,并且讓它簡單. 為了達到這個目的,你會見到各種技巧: 隨處可見的復用思想, 單一職責等…
性格
==============
***溝通***
- “不要浪費別人的時間”:盡可能簡短的話描述出問題及觀點;
- “想法”:我們喜歡聽到不一般的想法,見解;
- “就事論事”:不要將情緒帶入討論,尊重他人的想法,即使你覺得很可笑,但也有可能是你錯了.
***簡單***
KEEP IT SIMPLE & STUPID
***反饋***
“過度自信是編程的職業(yè)病织堂,反饋則是其處方∷剑” -- Kent Beck
通過圖表來交流你的想法慨丐,你可以快速獲得反饋枯途,并能夠按照建議行事
***謙遜***
最優(yōu)秀的開發(fā)人員都擁有謙遜的美德,他們總能認識到自己并不是無所不知的唉侄。事實上,無論是開發(fā)人員還是客戶,都有他們自己的專業(yè)領域,都能夠為項目做出貢獻老翘。一個有效的做法是假設參與項目的每一個人都有相同的價值缅叠,都應該被尊重.
主張
================
***主張簡單***
如果你現在不需要這樣的功能, 那么現在就不必實現它. (注意:是現在,實現;并不意味著永遠)
***擁抱變化***
因為變化所以美麗卢鹦。你會面對很多變化,要學會從心里喜歡上它. 這樣會讓你每天都會期待明天的到來臀脏。但是如果你沒有對應變化的能力,它會讓你討厭.
***可持續(xù)性***
軟件和自然界很多動植物一樣,都是在不斷的”進化”; 當你在寫當前版本的代碼時,時不時地想一想:”這個以后可能會變化么?,會怎么變呢”.
***遞增變化***
你不用在一開始就準備好一切。實際上,你就算想這么做也不太可能冀自。而且,你不用在模型中包容所有的細節(jié),你只要足夠的細節(jié)就夠了.
***記住目的***
為了展現你高超的技藝, 再去寫一遍代碼是錯誤的. 回頭看再看一眼我們的目的就知道了. 時刻盯準我們的目標, 先用最少的成本去讓它 work.
***高質量的工作***
沒有人喜歡爛糟糟的工作揉稚。做這項工作的人不喜歡,是因為沒有成就感熬粗;日后負責重構這項工作(因為某些原因)的人不喜歡搀玖,是因為它難以理解,難以更新驻呐;最終用戶不喜歡灌诅,是因為它太脆弱,容易出錯含末,也不符合他們的期望.
***快速反饋***
從開始采取行動猜拾,到獲得行動的反饋,二者之間的時間至關緊要佣盒。和其他人一共開發(fā)模型挎袜,你的想法可以立刻獲得反饋,特別是你的工作采用了共享建模技術的時候肥惭,例如白板盯仪、CRC卡片或即時貼之類的基本建模材料。和你的客戶緊密工作蜜葱,去了解他們的的需求全景,去分析這些需求,或是去開發(fā)滿足他們需求的用戶界面牵囤,這樣爸黄,你就提供了快速反饋的機會滞伟。
***團隊協(xié)作***
當你在用別人的一個API時,口中不斷的:”fuck,為了調用它的接口,老子要多些20行臃腫的代碼,你換種方式不就完了嘛”。 換位思考,當你在為別人編寫API時, 換過來, “如果別人給我提供這樣的接口參數時,我用起來爽么?”
EP 價值觀
===========
時刻記住,只有你的代碼被用戶運行起來的時候,才體現出了它們的價值:
- 最重要的是通過盡早和不斷交付有價值的軟件滿足客戶需要;
- 我們歡迎需求的變化馆纳,即使在開發(fā)后期诗良。敏捷過程能夠駕馭變化汹桦,保持競爭優(yōu)勢;
- 經常交付可以工作的軟件鲁驶,從幾星期到幾個月,時間尺度越短越好;
- 開發(fā)者應該在整個項目過程中始終朝夕在一起工作;
- 圍繞斗志高昂的人進行軟件開發(fā)舞骆,給開發(fā)者提供適宜的環(huán)境钥弯,滿足他們的需要;
- 在開發(fā)小組中最有效率也最有效果的信息傳達方式是面對面的交談;
- 可以工作的軟件是進度的主要度量標準;
- 對卓越技術與良好設計的不斷追求將有助于提高敏捷性;
- 簡單——盡可能減少工作量的藝術至關重要;
- 最好的架構、需求和設計都源自自我組織的團隊;
- 每隔一定時間督禽,團隊都要總結如何更有效率脆霎,然后相應地調整自己的行為;