《深入核心的敏捷開發》讀書筆記(2)

Derek土豆發表於2020-12-27

 

上一章節我學習到了一整個敏捷開發的框架,需要運用到哪些方法,敏捷開發的基本理解是什麼,接下來的章節會從敏捷開發的基本原則說起,然後介紹核心的實踐,從基於統一迭代的全功能團隊的概念入手,將一整個敏捷開發流程細分為幾個步驟。

 

首先我們需要知道敏捷開發的宣言是什麼:

個體互動>流程工具

工作軟體>詳盡文件

客戶合作>合同談判

響應變化>遵循計劃

在本文中強調,大於不代表完全不參照右側的流程。舉例,在產品給開發講需求的時候並不是直接想到什麼說什麼,而是要基於最基本的Story。

 

開發人員需要擁有客戶思維,也就是說在擁有較強解決問題能力的同時,也要能夠理解該需求在商業上的考量。其實所謂的客戶思維,我認為更多的是在強調開發本身為服務方,不管是你的老闆還是你的產品經歷都是你的客戶,你需要的不僅僅是拿到需求解決需求,更多的情況你需要去溝通,去弄清楚客戶真正的需求是什麼,同時也需要去學會分析做該決策的價值。其實我本人在實習的時候也遇到過差不多的問題,在那個時候我不敢多溝通,導致白白浪費了一天的時間在錯誤的需求上面,這就是很無效的溝通。回到最初的根本價值驅動這四個字上面,解決方案不一定是技術最先進的,而是多方面權衡以後的價值驅動最優解。在程式設計的時候一定要記住並且時刻提醒自己。

 

到了核心實踐部分,對於基於統一迭代的節奏的全功能團隊,作者運用了汽車貼膜專業團隊這個例子,其中我覺得比較有價值的點是:1.所有的工作高度並行2.每個人的角色不唯一(全棧工程師)。騷窩口號“把專案成功交付看作能力建設的副產品”。他們認為軟體開發中的一切問題基本都是個人能力不足的問題。這也體現出了敏捷開發宣言中的個體與互動>流程和工具。

接下來的一個章節在講述使用者需求和範圍實時管理,其中提到了估算。估算取決於個人,取決於專案的重要程度,估算會議可以提高成員之間的交流。講完估算後作者提到了需求風險的“壞味道”---客戶過多的插入服務方的工作。其中解決的辦法是接近客戶決策者;努力將自己的價值輸出,能夠做決策;不要給選擇,讓客戶相信我們提供的方案就是最優解;管理結果,對於該需求的討論重點放在其會產生的結果上而不是具體的實現方式;建立遊戲規則“我很高貴,服務收費”。其實我覺得這就是諮詢類公司和其餘科技大廠之間的不同吧,價值驅動所帶來的影響註定是如何利益最大化,用最小的付出獲得最大的收益,這也是敏捷開發能夠體現到的東西。需求分析其實最為重要,是在開發以前一定要跟客戶溝通好的,但是這也不僅僅是BA和客戶之前的關係,也同時是BA和整個團隊的溝通,其中涉及痛點分析,業務邏輯等。更是需要持續的瞭解使用者,所謂的“迭代更新”,使用者的需求也是不停的在改變的,我更願意稱之為“想到一出,是一出”“別人有的,我也要”。而後談到的軟體專案規模估計我認為跟前期的估算差不多。

 

第五章所講的內容是持續整合和測試前置,先是講述了什麼是Gitflow,主分支master上的程式碼可以隨時部署到生產環境,develop作為每日構建的整合分支,穩定時可,merge回master,feature分支使用者開發新特性,結束後回develop分支。這樣不同的分支之間的互動規劃形成了一套整合部署開發的工作流。但是這樣的方法並不是被推薦的方法!就是因為feature這個分支阻礙了頻繁合併,總的來說就是feature這個分支不好,與敏捷開發相矛盾。於是提出了新的Trunk-Based Development,這個書中沒有細說,等以後真正開始上班後自然會了解。單元測試的兩個動機,一個是驅動和驗證功能是否實現,第二個是保護已經有的功能不被破壞。接下來就是大名鼎鼎的程式碼回顧,該過程我聽說在騷窩中每天下班前都會做,側重於識別程式設計的喜歡而不是找bug。TDD是什麼? 是單元驅動測試開發,其中又分為UTDD和ATDD,ATDD面向業務:我們是在構建正確的系統嗎?UTDD面向技術與程式碼:我們是在以正確的方式構建系統嗎?我覺得這兩個疑問句就能夠很好的解釋那兩個名詞。

 

結對程式設計,我最害怕也最好奇的程式設計方式,是隸屬於極限程式設計裡的方式,對於我這種小白來說真的還是蠻害怕的。特別是這一句話“如果程式碼審查很好,那麼我們就一直程式碼審查”,聽起來是一個壓力巨大的場景。書中講述了部分結對程式設計的方法,現在的我看著比較害怕,希望到時候到了真正的生產環境會有新的體驗。

 

以上就是今天的讀書筆記,首先對敏捷宣言做了最基本的解釋,然後通過對實際的需求分析再到持續整合,測試驅動等實踐方式的介紹,進一步加深了我對敏捷的理解,我認為敏捷建立在良好搞笑的溝通,一切的所謂“方法”最終的目的都是為了提高工作效率,提高個人能力,也就是價值驅動。還是不得不感慨一下,曾經看到過一篇文章,上面曾經說過程式設計師的發展,不僅僅要在技術,更需要知曉業務。這也是我喜歡騷窩的原因,在技術卓越的基礎上強調有效溝通和團隊合作,這樣的能力是走到哪裡都不會被埋沒的!希望接下來的幾個月培訓自己能夠加油,技術上不能輸。

 

相關文章