亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Thoughtworks

系統(tǒng) 1930 0

與一群國外的Dev一起工作是我從未有過的經(jīng)歷,在陌生的國度,陌生的團隊,陌生的客戶,做著陌生的項目,對我而言,Everything is new。我們在客戶這里,仍然采用典型的敏捷方式:故事墻、站會、用戶故事、結(jié)對編程、持續(xù)集成、TDD甚至BDD……幾乎所有的敏捷實踐我們都會運用。在加入這個項目時,已經(jīng)進行到第7個迭代,整個項目的框架已經(jīng)比較成熟。我們的任務(wù)是盡快熟悉業(yè)務(wù)和整個技術(shù)框架,并為新的項目做好充分準備。在接近3周的時間內(nèi),我們都會和客戶以及美國Thoughtworks的同事們進行Pair,通過實際的開發(fā)來熟悉和了解業(yè)務(wù)與技術(shù)。然后,在剩下的兩周內(nèi)為新項目做Inception。

項目是基于.NET Framework 4.0進行開發(fā)的,采用的技術(shù)包括C#, VB.NET, Ext Js, SQL Server 2008。IoC容器為Structure Map,NUnit作為單元測試框架,Moq作為Mock測試框架。我們使用了Jenkins(即Hudson)作為持續(xù)集成工具,使用了Thoughtworks的產(chǎn)品Twist作為回歸測試和集成測試工具,并使用了Powershell作為構(gòu)建腳本,Git作為源代碼控制工具。

來到LA的第一周。除了第一天參加了幾次Meeting,了解了整個項目的情況尤其是業(yè)務(wù)邏輯之外,第二天就迅速進入團隊,開始結(jié)對編程。整個第一周,我完成了2個Bug Fix,同時,對Regression Test出現(xiàn)的問題進行了修復,并參與了一個Story的開發(fā)。在這一周,我并沒有Switch Pair,一直是和客戶這邊的一位Dev(名叫Andrew)進行合作。

回顧這一周的工作,我的感受如下:

1)業(yè)務(wù)邏輯的了解比技術(shù)更重要

作為一名Dev,可能首先會想到項目會使用什么技術(shù),我對這些技術(shù)了解嗎?總之,會首先關(guān)注一切與技術(shù)有關(guān)的東西。在進入項目之前,我特別關(guān)注了這些內(nèi)容,并抓緊一切時間為這些技術(shù)做儲備。當然,我們也希望了解業(yè)務(wù)邏輯,但由于前期準備時缺乏這方面的條件,我們所能了解的就是項目與Healthcare有關(guān),項目內(nèi)容有些接近CMS。然而,到了項目之后,我們才發(fā)現(xiàn),技術(shù)并非決定你能否快速進入團隊,并開始開發(fā)和實現(xiàn)的關(guān)鍵。如果不了解業(yè)務(wù)邏輯,不明確領(lǐng)域術(shù)語,我們將很難進行溝通和交流。尤其對于現(xiàn)在這個項目,由于項目已經(jīng)做了一部分。對領(lǐng)域的了解就更加重要了。對于一名有著多年經(jīng)驗的Dev來講,其實技術(shù)并不會成為制約你進行項目開發(fā)的主要瓶頸。在這個項目中,有很多技術(shù)都不是我掌握的,但我們?nèi)匀豢梢钥焖龠M入開發(fā)活動。這是因為Pair Programming可以很好地完成知識共享和傳遞,我的Pair可以像Mentor一樣來帶領(lǐng)我迅速進入狀態(tài)。

2)交流是項目開發(fā)的根本

在國內(nèi)做項目,交流或許也會成為障礙,但因為語言相同的緣故,我們往往將交流活動忽略了,似乎覺得這是順乎自然的事情。在這一周的工作中,我仿佛進入了另一個世界,耳邊充斥地都是自己難以理解的語言。雖然我有一定的英語基礎(chǔ),但真正和這些母語為英語的Dev合作時,才發(fā)現(xiàn)我所掌握的英語單詞和語法都變得不夠用了。我的舌頭似乎也打結(jié)了,我很難理解Pair所要表達的意思,自己也很難向Pair表達我的意見。這就導致開發(fā)效率受到很大影響。即使任務(wù)已經(jīng)完成,整個實現(xiàn)對我而言,仍然似是而非,還需要自己下來看Story的描述,看源代碼。例如,在我們項目中已經(jīng)實現(xiàn)了比較好的Validation機制,但為了實現(xiàn)一個相對較小的Story,由于交流的問題,我們的實現(xiàn)被嚴重阻礙了。

此外,在我們項目中完全具備現(xiàn)場客戶的條件,因而交流更是成為重中之重。我們的BA團隊既有TW的,也有客戶的。他們都寫了很不錯的User Story。在我們實現(xiàn)這些User Story時,如有不明白之處,都需要盡快咨詢BA,通過交流消除歧義。而在實現(xiàn)之后,必須和BA做Show Case,以盡快獲得反饋。這一點非常重要,也是敏捷的核心價值觀體現(xiàn)。

3)好的習慣很重要

第一周,和我Pair的Andrew是來自客戶的一位實習生。他剛從大學畢業(yè),進入項目大約三個月時間。在大學期間,他只學習了C++,對.NET、Javascript以及CI等內(nèi)容都不熟悉。換言之,他現(xiàn)在所掌握的所有技術(shù),都是在項目中學到的。雖然是這樣一個Intern,但我發(fā)現(xiàn)他已經(jīng)具備了非常良好的編碼素質(zhì)。在開始一個Story時,他會首先在Twist編寫Regrssion Test Sceinario。而在實現(xiàn)代碼時,也會嘗試著通過Unit Test來驅(qū)動實現(xiàn)。在提交代碼時,會合理地運用Git命令。例如在開發(fā)前,會通過Git Status檢查當前狀態(tài),看是否有變更。在Commit時,如果發(fā)現(xiàn)提交的內(nèi)容有沖突,他會非常慎重地處理Merge。編寫代碼時,會嚴格遵循我們制定的編碼規(guī)范。雖然,他在開發(fā)方面的經(jīng)驗還有很多欠缺,但無疑已經(jīng)有了一個好的開始。我想,通過這個項目的鍛煉,在Thoughtworkers的言傳身教下,只要他愿意繼續(xù)努力,應(yīng)該會有一個很好的發(fā)展前景。

同時,對于團隊而言,這樣良好的編碼習慣,就像所謂的“童子軍軍規(guī)”一般影響這團隊的每個人,我們欠下的Technical Debt就會少很多,這對于后期的維護、修改以及將來后續(xù)的開發(fā),都有非常大的幫助。

4)學會尋求幫助

每個人所掌握的知識總是有限的。或許你的能力足夠讓你解決任何問題,但考慮成本問題,若能適當?shù)貙で髱椭慵饶軌蚩焖偻瓿扇蝿?wù),同樣能夠?qū)W到你希望學到的知識。即使尋求幫助后,沒有得到你所期望的結(jié)果,至少說明,我們可以拒絕某些選項,這同樣可以節(jié)約時間成本。最關(guān)鍵的一點需要時刻記住,我們是一個Team。

在第一周的Story開發(fā)中,由于我和Andrew都對Validation的機制不太熟悉。我們嘗試了多種方法,希望解決問題,但都不奏效,這樣反復的嘗試已經(jīng)耽擱了大約一天的時間。后來,我們主動找到另一位Thoughtworker-Eric,他已經(jīng)在項目呆了較長時間。了解我們的問題后,Eric僅用了不到10分鐘的時間就解決了這個問題。事實上,這個問題的解決方案需要一個小技巧,在Label中設(shè)定我們事先指定的CSSClass,就可以顯示那些Validation Message。

5)知識分享

毫無疑問,只有充分的知識分享,才能有效發(fā)揮團隊的作用。尤其對于新加入團隊的成員,如果沒有足夠好的知識分享,或者團隊的老成員不具備這方面的意識,將自己擁有的知識傳遞給新成員,新成員就很難融入團隊,也很難快速地貢獻自己的Effort。在知識分享的過程中,通過Meeting和Session,或者閱讀文檔的方式當然是有效的。但事實上,即使你參加一天的Session,或閱讀一天的文檔,都不如和你的Pair實際做一個Story,對知識的分享來得更好。根據(jù)我自己的經(jīng)驗,所謂Session或文檔的方式,更適合介紹一些領(lǐng)域背景知識,或宏觀的系統(tǒng)架構(gòu)。細節(jié)知識必須在實踐過程中獲得。這時,Pair Programming就顯得非常重要了。

在選擇自己的Pair時,也需要針對實際情況做出調(diào)整。例如與新手Pair的必須是相對有經(jīng)驗的Dev(當然也可以和QA或BA結(jié)對)。另外,也需要適當?shù)豐witch Pair。在這個項目中,我就體會到這一點的重要性。第一周的3天時間,和我Pair的都是Andrew。雖然他已經(jīng)進入項目三個多月,但畢竟還缺乏一定的經(jīng)驗。而我作為項目新人,更是很多內(nèi)容都不了解。這樣的Pair組合,效果可想而知。在這個過程中,本來我們應(yīng)該進行Switch,但因為Story的關(guān)系,其他Pair也有自己的任務(wù),這個Switch活動就被推遲到了第二周。事實上,在第二周的第一天,我和Eric合作,效果就非常好。整個Velocity得到了較大的提高。

Thoughtworks


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 中文字幕在线观看亚洲日韩 | 久久成人免费大片 | 免费播放美女一级毛片 | 国内精自线一二区 | 在线一级视频 | 色综合久久加勒比高清88 | 狠狠涩 | 精品国产品香蕉在线观看75 | 天海翼精品久久中文字幕 | 日本久久网 | 四虎影院免费在线播放 | 国内精品久久影院 | 四虎最新免费观看网址 | 最新99国产成人精品视频免费 | 香蕉视频看片 | 美女69xxxxxxxx| 亚洲午夜久久久久中文字幕久 | 一级成人毛片免费观看 | 久久99热久久精品91 | 久久福利免费视频 | 久热这里只精品热在线观看 | 亚洲精品动漫一区二区三区在线 | 国产色视频一区二区三区 | 中文字幕亚洲综合久久菠萝蜜 | 国产一级视频 | 欧美成人综合视频 | 四虎影视免费看 | 日韩欧美色视频在线观看 | 久久的精品99精品66 | 色一情一乱一乱91av | 5388国产亚洲欧美在线观看 | 亚洲精品一区二区三区香蕉在线看 | 国产免费一区二区三区香蕉精 | 国产精品天天干 | 国内精品久久久久影院蜜芽 | 国产视频一二 | 国产区综合 | 亚洲欧美综合国产精品一区 | 亚洲国产精品综合久久 | 精品一区二区久久久久久久网站 | 久久视频免费观看 |