從生產線到生產島 理解敏捷開發中的設計與測試活動

2021-05-24 22:54:40 字數 915 閱讀 2360

出處:blog.csdn.net/cheny_com

所謂生產線,就是大家各司其責,在乙個線性的過程中配合工作。生產線嘗試借助專業分工來提公升效率,但也導致了問題:在傳統生產線中,下游獲得的中間產品是不太需要理解就可以在其上繼續工作的,比如裝配了一半的汽車,加工了一半的食品等等。

但在軟體開發中就不一樣了:人們需要深度理解上游產品,才能繼續自己的工作,而這種「深度」最終導致了中間產品的膨脹,而中間產品大多數屬於那種「沒有它軟體造不出來,等軟體造出來它也沒用了」的那類。另外乙個嚴重問題是:各個產品線互相需要替對方解決問題,比如設計組設計不到位,開發組就要在開發中替其思考設計問題,而開發組質量不到位,測試組就要加班測試幫助其找缺陷。這種代勞而非協助的工作方式起因於分工,而最終會導致各個部門之家推諉打架。

生產島則截然不同。假想乙個人或一小群人失落荒島,人們本非農民漁夫獵人,但卻都有職責完成這些工作,而不能互相推諉。發生問題時主要工作不是弄清楚誰的責任,而是弄清楚如何解決,這樣就解決了生產線上的打架問題。敏捷團隊就是乙個生產島團隊。

由於倡導故事負責制,敏捷開發人員更多地縱向分工,即乙個人要跨越需求/設計/編碼/測試這些工作。在139團隊(另有博文描述)和「松結對程式設計」(另有博文描述,尚未寫)中我們曾經提到過,為了解決並非每個人都能勝任需求/設計工作的問題,我們會安排類似1+3的松結對模式,即由乙個高手帶領三個新手結為一組完成一組工作,前者除了自己承擔開發任務外,還以共同參與的方式幫助後者完成需求/設計工作。

那麼類似測試這種人人都能勝任但卻沒人願意幹的活動怎麼辦呢?那就是以前曾寫博文提到的敏捷測試。在「持續整合/自動測試」中,發現缺陷的不是測試人員而是提交**的開發人員,這就把測試人員替別人發現缺陷變為幫別人發現缺陷。更進一步,如果開發人員自己開發測試程式(至少是可回歸的功能測試程式),那麼開發人員就在自己幫助自己了。如果有一天缺陷纏身,需要反省和行動的是整個開發團隊,而不是測試團隊指責缺陷太多,而開發團隊指責設計不明確。

pc構件生產線及裝置 PC構件生產線全套裝置清單

江蘇廣億信科技 擬投資33000萬元,新徵土地29.42畝,新建廠房約16000平方公尺,利用自有廠房17000多平方公尺,及租賃勝達機械廠房約8100平方公尺進行生產,購置pc構件自動化生產線裝置 鋼筋加工裝置 攪拌站裝置等生產及輔助裝置1582台套,專案建成後形成年產pc構件10萬立方公尺的生產...

軟體生產線技術介紹

所謂生產線是指在特定的市場或乙個特別任務所對應的一系列軟體產品的集合,在製造業中生產線並不陌生,比如波音公司就有乙個,同樣福特 戴爾,甚至還包括麥當勞,這些公司都通過各種方法來利用產品 之間的公共特性。比如波音公司,陸續推出了757和767客機,而這兩種差別很大的產品之間有60 的零部件是相同的,無...

程式設計練習 動態規劃(生產線問題)

line a cost是生產線a的代價 line b cost是生產線b的代價 ab cost是從生產線a轉到生產線b的代價 ba cost是從生產線b轉到生產線a的代價 如下 include include void productionline std vector line a cost,st...