iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 27
0
自我挑戰組

那些敏捷開發裡的小事系列 第 27

Day 27 重構是否要排進待辦清單裡

  • 分享至 

  • xImage
  •  

重構是否要排進待辦清單裡

Imgur

說到重構,我想只要是軟體工程師應該都做過這件事情,只是小時候我們用的術語叫做「我再把我的程式碼整理一下」。長大以後我們學了一點知識,所以知道這個專有術語叫做「重構」。

在對重構這個名詞有基本瞭解以後,我們來談談重構是否要排進待辦清單裡。情況大概是有位朋友問我,你們都什麼時候作重構阿,如果 PO/PM 不排 Item 你們要怎麼做阿?

重構的定義

我個人覺得這是很有趣的問題。我們先來看看重構的定義

不改變軟體外在行為的前提之下改善程式碼內部結構

PO/PM 關心的是 End to End 的行為

PO/PM 所開的 Item 通常我們希望是 End to End。簡單的來說就是使用者做了動作,然後系統有反應,假設使用者按了按鈕然後我們的系統會顯示 Hello。

那如果針對這個行為開一個重構的 Item 他會是怎麼描述?我想應該還是「使用者按了按鈕然後我們的系統會顯示 Hello」,因為重構並不改變外在行為。所以 PO/PM 怎麼知道你做了沒?要怎麼寫驗收條件?難道我們要跟 PO/PM 展示我們重構前後的程式碼嗎?我想這不是他關心的地方。

重構是誰該關心的

那程式碼寫的好或壞是誰該關心的呢?當然是身為軟體工程師的我們該關心的事情。有人會說 PO/PM 並沒有排時間給我們重構,所以我們沒有時間重構。

我好奇的反而是, PO/PM 都坐在你的旁邊看你寫程式嗎?然後你功能一寫完他們馬上就拿刀架著你說「不准重構,馬上寫下一個功能」不然重構應該是我們自己的責任,而不是拿別人沒有給我們時間當藉口。

不重構,就等於是在挖坑給明天的我們跳,不是嗎?


上一篇
Day 26 你有在吃自己的狗食嗎?
下一篇
Day 28 重構也是需要時間的不是嗎?
系列文
那些敏捷開發裡的小事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言