iT邦幫忙

2

如何在剛開發階段應對大量的系統要求更改?

  • 分享至 

  • xImage

當我為公司內部開發新的系統需求時,上級給予的設計要求相當模糊,原因是老闆是那種先做再說的類型,他自己也不清楚也不能分析出細節,而且也涉及一些公司的工作流程問題,這情況當然依現有資訊硬寫出來,在經過Demo Stage 後大約有40%的修改及新增開發,而新需求也有很多時全面更改原來的Work flow。但在開發的時候,由於不能掌握全貌跟時間壓力,系統寫得很Hardcode而且沒有結構可言,也導致我後續的修正變得很困難而且費時。

所以我想請問一下各位,我需要學習什麼樣的東西,能讓我在剛開始階段可以建立一個更有結構的基礎,讓我在後續的修改上更容易。因為我不太清楚是系統設計還是編程技術的問題(原因是如果是有經驗及或有全貌的系統,我可以寫出結構來),還請各位幫忙,謝謝。

(可以的話,還請提供一些書或是領域,讓我可以自己去學習一下。)

canrong iT邦新手 2 級 ‧ 2022-06-20 07:51:27 檢舉
技術債的累積是很恐怖的,尤其是維護的系統本身架構就差的情況,我是認同海綿寶寶的,你說市面上有沒有教這些的?答案是有很多案例相關的書籍可以當作參考,但是他們通常講述原因與解決方案,很少有教中間是怎麼過渡的,這也導致所講的內容大多也都只適合開發前、初期的參照。
決定調整方向後的過渡方案,通常還是需要經驗的積累或者你是一個很適合做SA/SD的很有天賦的人。
但及早接觸這些是對"未來"有幫助的。
Ruei iT邦研究生 1 級 ‧ 2022-06-24 14:23:23 檢舉
其實這個很吃經驗了,像是開發過購物車你對這個結構上就會有先有的概念而不是慢慢摸,突然間又打算做客流追蹤,假使你有摸過 GA 之類的也能擬一個大概出來,總之就很吃曾經做過的東西,假使不存在那麼可能就是當下了,因為我第二份工作開始有類似的感受,還好前一分是大公司很多結構其實都跑過,所以有個先行的見解先給需求方
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
2
海綿寶寶
iT邦大神 1 級 ‧ 2022-06-19 11:55:28
最佳解答

直接回答:這是屬於「系統分析/設計」的領域
間接回答:「經驗」比「理論」重要,就算讀完市面上所有的書,也不會立刻解決你的問題

在經過Demo Stage 後大約有40%的修改及新增開發,...,系統寫得很Hardcode而且沒有結構可言,...。

不知道這是你開發的第幾個系統
等你開發幾個以上的系統之後
我相信你一定可以寫出更有彈性的結構

另外
如果貴公司負責程式開發的人員不超過 10 個人的話
你也不必太期待有多好的系統結構/程式碼

dscwferp iT邦高手 1 級 ‧ 2022-06-19 11:57:39 檢舉

幾個以上+1

ngng2306 iT邦新手 5 級 ‧ 2022-06-19 14:04:19 檢舉

先回應一下,這是我第4個系統,而公司的開發人員是6個,而這個系統只有我一個在開發,這也是現實不多說。

而有這樣的問題是我發現越後期的修改成本越高,時間用多了,上司也有意見,壓力也大了,而在系統設計上的原則概念上沒有很會,一直也是依靠經驗來走,所以才想知道有沒有像Programming SOLID 這樣的理論來參考一下,好讓我未來走的順一點,算是還未來投資一下。

ngng2306 iT邦新手 5 級 ‧ 2022-06-19 14:04:19 檢舉

先回應一下,這是我第4個系統,而公司的開發人員是6個,而這個系統只有我一個在開發,這也是現實不多說。

而有這樣的問題是我發現越後期的修改成本越高,時間用多了,上司也有意見,壓力也大了,而在系統設計上的原則概念上沒有很會,一直也是依靠經驗來走,所以才想知道有沒有像Programming SOLID 這樣的理論來參考一下,好讓我未來走的順一點,算是還未來投資一下。

1
I code so I am
iT邦高手 1 級 ‧ 2022-06-20 08:18:59

這個問題很複雜,涉及系統分析/設計、架構規劃及作業流程...,面對需求變更過多的狀況可以做以下的確認:

  1. 開始coding之前,需求是否明確? 通常長官都說不清楚,這時可以跟使用者確認,或者上網蒐集資料,再將需求整理為文件,與長官確認清楚再動工(Active Listening),寧可挨罵,也不要糊里糊塗的冤死,筆者遇過太多專案,完成後長官才說『這不是我要的』(很像肯德基廣告?)。
  2. 架構規劃:不管是framework或architecture,應針對需求選擇最有彈性的架構,而不是最流行、最新的架構,例如,筆者通常會開發一些工具,讓使用者自行設計,如儀表板、會計報表產生器,這樣使用者有需求,自行搞定,不要來煩我。
  3. 作業流程:如果直屬主管支持你,你就可以設計『需求變更申請單』,需求變更一律要填申請單,經過需求影響評估、人力資源/成本估計、雙方部門經理同意,經過一連串的簽核,把一些討厭鬼嚇死。

總而言之,『謀定而後動』是最高指導原則,『先做再說』就好比俄國新兵上戰場,下場可想而知。

看更多先前的回應...收起先前的回應...
Arslucas iT邦新手 5 級 ‧ 2022-06-20 12:59:44 檢舉

我是做一個[開發系統]的extender, 可以用來管理[開發系統],配合user需要改參數就可以,[開發系統]隨參數自動調

Arslucas iT邦新手 5 級 ‧ 2022-06-20 13:04:11 檢舉

將來換到[開法系統2]也是改參數就可以運作,只是過渡期要改的參數會比較多

讚 !!

obarisk iT邦研究生 1 級 ‧ 2022-06-20 23:08:30 檢舉

meta programming 需要經驗啊

0
前端野人
iT邦新手 3 級 ‧ 2022-06-20 23:55:34

砍掉重寫,大破大立

0
fowei
iT邦新手 5 級 ‧ 2022-06-23 18:06:28

很正常. 當專案需求不明確. 自然容易大改.

以下是"不求薪水多少. 但求問心無愧. 跟做的開心" 的做法.
如果你心中已經有"這又不是我該做. 我也沒領那麼多" .. 那我想無解.

  1. 列出有關係的人. 拿到上面有打算做的授權. 最後是要執行的人
    1. 有關係的人都要列席: 不列席也要丟會議紀錄.然後信內寫:若無異議則以此決議.(每次開會對都要再三確認.以免有人不認帳)
    2. 上面有打算做的授權: 拿著雞毛當令箭. 因為很多人不想改變. 沒上級授權. 真的很難
    3. 最後要執行的人: 就算只是作業員. 也要面對面確認. 理解其不悅. 因為最後都會回一句不好用.
  2. 再來就是自己包山包海. 這裡不是指都你做. 而是在規劃階段要全包. 全串. 也含設計. 撰寫程式倒不必全包. 壓日期就好. 最好是開會前列出WBS. 然後大家壓期程.
  3. 每週進度回報.

大概這樣. 我很習慣同事都是公務員心態. 大家大多只是應付了事. 所以以前常遇到跟自己領一樣. 或領比我多. 卻做不好. 後來秉持. 心存善念盡力而為. 專案我來負責. 規劃. 設計. 但分包下去大家押日期. 拿到主管授權很重要.

最後. 在設計.撰寫階段被大改. 代表你不熟那個領域. 無法主導. 這時最好是該領域的人一起規劃. 而且畫面. 流程都要模擬. ..
規劃+設計 : 撰寫 : 上線, 每個階段沒做好. 對後面工時影響是1:10:100.
規劃+設計沒做好.花1小時改就好
規劃+設計沒做好.都開始寫程式了. 大概要花10小時改
規劃+設計沒做好.都上線了. 大概要花100小時改

簡單心得分享. 我也沒有加班. 每天8小時做我想做. 多做也只是後面我可以不用生氣.
而談需求.引導需求.甚至改善流程... 真的就是經驗了... 加油

我要發表回答

立即登入回答