LeSS in Action - 後記

閱讀時間約 1 分鐘
這系列大概花了快兩個月的時間快速的把學到的一些知識記錄下來,然而還是有許多內容很難用文章簡單的說明。
裡面有許多知識是需要靠著實踐才能夠學會的,因此在課程中我們需要先理解概念、實踐,最後在課後不斷的練習這些技巧內化成自己的技能。

重新思考開發

我認為自己屬於那種相當 Geek 的類型,也因此大多數時候都是在關注「怎麼做」跟「能使用怎樣的技術」這樣的問題上,卻很少思考「為何這樣做」的問題。
然而,每一個軟體被設計出來都是要解決問題。如果在實現軟體的時候只關注技術的部分,就會陷入使用的技巧非常華麗卻一點也不實用的狀況,甚至在未來要進行修改的時候變得非常困難。
這是一個非常值得反思的問題,也就是在探索技術之外,我們所設計的程式是否是真的實用的。

剛剛好的實現

假設我們關注在功能來開發,就能夠開始朝向「恰當」的實作前進。在過去我們會想要完整的考量所有東西、把架構規劃設計完善。然而,很多時候並不符合真實的狀況。
之前有寫過一篇軟體是一種生物的文章來描述軟體開發世界的多變,如果做了過多的設計我們面對「改變」是很脆弱的,因為所有設計都必須要大量的調整跟修改。
然而我們使用驗收測試驅動開發(A-TDD)的想法去看,假設第一個規格是顯示文字,我們只需要實現顯示文字即可。接下來是勇敢的面對改變,跟使用者確認這樣的功能是否符合,不符合就再繼續增加規格(新增測試)擴充,直到所有功能都符合使用者的期望為止。
搭配上測試驅動開發(TDD)的「小步前進」在對應變化的能力就會大幅的提升,這樣一來也能慢慢掌握「剛好」的實現來減少耗費額外的力氣。

總結

這門課程主要不是在學習某種技能,而是去重新了解被我們沒有完整理解的「敏捷開發」並且搭配實踐來更新思考的方式,唯一的缺點大概是會在工作上有些不習慣吧!
目前 LeSS in Action: Developer Practices 這門課程還有在台灣開設下一期的課程,大概是在九月的時候,想要完整學習的話還是推薦大家盡快報名。雖然費用不便宜,然而可以學到的知識很可能會改變未來工作的機會。

封面圖片使用 UnsplashAngelina Litvin 的作品,這系列的文章只是課程的一小部分,因此並無法完整涵蓋所有概念以及精神,看關於技術的主題可以到弦而時習之找找靈感。
為什麼會看到廣告
avatar-img
55會員
40內容數
軟體工程師逐漸變成一個熱門的職業,當我們進入這個職業之後應該要具備怎樣的技能才會在工作上更加順利呢?這系列的專欄會分享日常工作中的經驗以及一些案例分析,讓我們一起努力成為一位更優秀的軟體工程師吧!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
蒼時弦也的沙龍 的其他內容
雖然這系列的課程是設計給工程師的,然而在學習敏捷開發(Scrum 為主)的過程中,我們是從如何做「產品」的角度去做切入,也因此在課程接近尾聲的時候我們再次討論了產品跟專案的差異,也是這一週課程中各種安排的理由所在。
我們已經了解到了驗收驅動開發、持續整合以及壞味道這幾個概念,要減少技術債的方式就是重構,然而在實踐重構的時候並非我們所想像的必須「安排時間」重構,而是在開發的過程中不斷的進行。
當我們使用主幹開發(Trunk-based Development)、以及驗收測試驅動開發(A-TDD)之後,所撰寫的程式碼會逐漸的變多,也因此我們會開始注意到程式碼有壞味道(Code Smell)的出現。
不同於我們大多數討論持續整合(Continuous Integration)是以工具為主的議題,在敏捷開發中持續整合更接近於團隊之間協作的議題。這是因為我們希望能夠快速迭代,也因此必須持續的將團隊的產出整合在一起。
當我們能夠通過一個驗收測試後,就是時候將程式碼推送到遠端的服務中。跟基於分支的開發方式不同,我們是以 Trunk-based Development(主幹開發)的方式進行,也就是只有 main 一條分支,並且所有人都會提交進去。
完成對功能的了解之後,我們就要開始進入實現功能的開發階段。跟以往的開發流程不同的是,我們在敏捷開發中注重的是製作有價值的東西。也就是在計畫中,我們獲取的資訊都是對使用者有用、可以被看見以及操作和跨團隊協作的性質。
雖然這系列的課程是設計給工程師的,然而在學習敏捷開發(Scrum 為主)的過程中,我們是從如何做「產品」的角度去做切入,也因此在課程接近尾聲的時候我們再次討論了產品跟專案的差異,也是這一週課程中各種安排的理由所在。
我們已經了解到了驗收驅動開發、持續整合以及壞味道這幾個概念,要減少技術債的方式就是重構,然而在實踐重構的時候並非我們所想像的必須「安排時間」重構,而是在開發的過程中不斷的進行。
當我們使用主幹開發(Trunk-based Development)、以及驗收測試驅動開發(A-TDD)之後,所撰寫的程式碼會逐漸的變多,也因此我們會開始注意到程式碼有壞味道(Code Smell)的出現。
不同於我們大多數討論持續整合(Continuous Integration)是以工具為主的議題,在敏捷開發中持續整合更接近於團隊之間協作的議題。這是因為我們希望能夠快速迭代,也因此必須持續的將團隊的產出整合在一起。
當我們能夠通過一個驗收測試後,就是時候將程式碼推送到遠端的服務中。跟基於分支的開發方式不同,我們是以 Trunk-based Development(主幹開發)的方式進行,也就是只有 main 一條分支,並且所有人都會提交進去。
完成對功能的了解之後,我們就要開始進入實現功能的開發階段。跟以往的開發流程不同的是,我們在敏捷開發中注重的是製作有價值的東西。也就是在計畫中,我們獲取的資訊都是對使用者有用、可以被看見以及操作和跨團隊協作的性質。
你可能也想看
Google News 追蹤
我們都讀過不少書, 看過不少知識型影片, 成長過程中受到不少科學訓練 我們腦袋裡面其實裝了很多「知識」、「觀念」 包括:如何做筆記、 如何摘要書本重點精華、 如何學好一門知識、 如何讀出文章作者的言外之意、 如何探索自己的情緒與想法、 如何分析當下情況的優劣、 如何做好計畫時
Thumbnail
這篇文章描述了作者從兼職開發轉為全職開發的過程,並分享了從混進學界指日可待的積極態度。作者也提及自己在專案製作與個人生活上的矛盾與感想,最後分享了專案管理和敏捷開發相關的文章與影片。
Thumbnail
實際就業後,會發現收集與分析需求,通常都不是工程師在做,會有另一群人,以非工程的角度收集及分析需求,然後在開發過程中蹦出不同的火花,於是很好奇另一群人的想法是什麼?我不敢說這本書能完全代表另一群人的想法,但確實能夠得到很多有用的思維。推薦給所有的軟體工程師。
Thumbnail
在設計有四年快五年的時間,大部分都是從實戰經驗中去不斷摸索產品開發的流程。從視覺傳達的背景出來,在用戶體驗的經驗都是在實際開發中去摸索出來的。不是理論派,只是根據我本人的經驗摸索出來的設計方法,也不會用太多高深的詞彙說明。 以前搜尋怎麼做產品設計?究竟是要從什麼步驟開始的這件事情,大部分看到的
Thumbnail
學習程式語言是一個不容易的過程,但有效的學習方法可以幫助你克服挫折,這篇文章分享了一個程式設計師的學習心得以及一些建議,包括課後實作、短期學習、跟別人比較等注意事項,同時提供了一些相關的教學資源。
Thumbnail
在我剛開始寫程式的時候,深切地感受到要學的東西實在太多了,尤其在課堂上學的東西跟在公司要打造產品的技能非常的不一樣,有非常多需要自學的地方。 在我剛開始實習的時候,除了看書、看文章、用線上網站練習新語言的語法,我覺得幫助我最多的就是直接練習寫一個 Side project 了。
上一篇主要在說如何做決定的,這篇就來寫寫面試前該做什麼準備。
Thumbnail
前文提到我按照某公司培訓營的指示自學了Scratch,並完成了一個不太理想的「半成品」程式。幾個月後,我參加了另一個課程,不同的是這次是使用PHP,為期三天(週三至週五),每天上課四小時,總計約12小時。課程內容包括基礎語法與環境架設、網路爬蟲、實際構建購物車並與資料庫進行串接。
我們都讀過不少書, 看過不少知識型影片, 成長過程中受到不少科學訓練 我們腦袋裡面其實裝了很多「知識」、「觀念」 包括:如何做筆記、 如何摘要書本重點精華、 如何學好一門知識、 如何讀出文章作者的言外之意、 如何探索自己的情緒與想法、 如何分析當下情況的優劣、 如何做好計畫時
Thumbnail
這篇文章描述了作者從兼職開發轉為全職開發的過程,並分享了從混進學界指日可待的積極態度。作者也提及自己在專案製作與個人生活上的矛盾與感想,最後分享了專案管理和敏捷開發相關的文章與影片。
Thumbnail
實際就業後,會發現收集與分析需求,通常都不是工程師在做,會有另一群人,以非工程的角度收集及分析需求,然後在開發過程中蹦出不同的火花,於是很好奇另一群人的想法是什麼?我不敢說這本書能完全代表另一群人的想法,但確實能夠得到很多有用的思維。推薦給所有的軟體工程師。
Thumbnail
在設計有四年快五年的時間,大部分都是從實戰經驗中去不斷摸索產品開發的流程。從視覺傳達的背景出來,在用戶體驗的經驗都是在實際開發中去摸索出來的。不是理論派,只是根據我本人的經驗摸索出來的設計方法,也不會用太多高深的詞彙說明。 以前搜尋怎麼做產品設計?究竟是要從什麼步驟開始的這件事情,大部分看到的
Thumbnail
學習程式語言是一個不容易的過程,但有效的學習方法可以幫助你克服挫折,這篇文章分享了一個程式設計師的學習心得以及一些建議,包括課後實作、短期學習、跟別人比較等注意事項,同時提供了一些相關的教學資源。
Thumbnail
在我剛開始寫程式的時候,深切地感受到要學的東西實在太多了,尤其在課堂上學的東西跟在公司要打造產品的技能非常的不一樣,有非常多需要自學的地方。 在我剛開始實習的時候,除了看書、看文章、用線上網站練習新語言的語法,我覺得幫助我最多的就是直接練習寫一個 Side project 了。
上一篇主要在說如何做決定的,這篇就來寫寫面試前該做什麼準備。
Thumbnail
前文提到我按照某公司培訓營的指示自學了Scratch,並完成了一個不太理想的「半成品」程式。幾個月後,我參加了另一個課程,不同的是這次是使用PHP,為期三天(週三至週五),每天上課四小時,總計約12小時。課程內容包括基礎語法與環境架設、網路爬蟲、實際構建購物車並與資料庫進行串接。