close

在台灣,一間公司如果能有專職的系統分析師(SA,非管理職)是件很好但又很難得的事情
要是能有專職的系統設計師(SD)而且還不是程式設計師(PG)兼任SD,這可更是難得一見
這篇我想談論為什麼要有系統設計師

如果一間公司的在軟體開發的結構是PM、SA、PG、QC,那麼SA在跟PG溝通的時候,技術上很可能會有問題
可能SA希望系統實現的一個行為,對系統的負擔會很大或很難做
好的情況是PG去跟SA溝通,換種做法
糟的情況是舊照做,然後一邊說怎麼效能那麼爛,另一邊說這SA都亂開這種難以實現的需求,搞得系統很爛(雖然溝通就能解決,但就沒溝通)
畢竟一般來說SA要面對很多不懂技術的人,就算是技術出身的,平常也很難去研究技術,更別提深入了解系統的實現了,而不懂技術的SA更不用說了。

對PG來說,一般責任就只是把要的功能給弄出來
但是系統架構與未來是否好維護,則完全是看開發的PG是否想當好人
當時程被拼命壓迫,逼得得拼命免費加班,自己也都覺得自己做不久了
系統一定是能執行就好
所以需要有個角色去規劃與設計系統的實作,像是系統架構師或系統設計師。

因為系統設計師並不需要一直面對搞不清自己到底要甚麼的需求提出者
他可以有更多時間了解系統架構與技術的東西
進而控制整個系統架構,讓程式不會太過混亂

台灣一般來說對系統設計的責任歸屬通常是以下幾種狀況:
1.系統分析師兼系統設計
這種比較少,比較常見的會是系統分析師寫系統分析與設計的文件
但系統設計的文件也只是參考或做樣子
以前我還遇過主管說他寫了系統分析與設計文件,結果邏輯根本不通,最後我找到下一份工作就跑
2.程式設計師兼系統設計師
這種很容易見到,我之前面試有幾次是遇到說希望我能系統設計兼寫程式,有次的職稱說是叫主任工程師
(就像乞丐中的霸主還是乞丐一樣,我想這也還是工程師)
我的理解是要把開發分兩種人:「出張嘴」和「負責實作」,而負責實做的還要能自己考慮到架構的好維護性那些
這樣可以讓系統分析師不用懂技術也沒關係
3.系統分析師和程式設計師一起承擔
這個會比較看雙方自己如何分配責任了,但我覺得這不是種穩定的方式
可能每次專案的分配都不同,那系統設計沒做好到底算誰的?(慣老闆思維:誰好凹算誰的)

雖然台灣老闆思維可能是:「沒有的話呢,反正就程式設計師多辛苦點囉,做不完就免費加班啊,但因為是責任制,所以沒加班費唷(或者說者不是加班,只是做完沒做完的事情罷了)」
奴性重或真的很願意犧牲的可能乖乖做,奴性不夠重的可能就想「誰甩你啊,又不甘我的事情,我才不要做,不爽的話就找別人做啊」

最後想說,就像我一直以來的態度,專職的系統設計師對軟體開發是能帶來好處的,是否有對公司有用要看需求(如果公司的思維只是只要能在dead line前有出來能跑的專案就好的話,我想系統設計師是沒有價值的)。
是否要用別的角色來兼任是公司管理者的自由,反正後果自負,不要不想找系統設計師,但是看到沒系統設計師的缺點時就在那邊抱怨
(要是我沒買對應的保險,發生意外能怪保險公司不賠我錢嗎)

arrow
arrow
    全站熱搜

    tomwangkniht 發表在 痞客邦 留言(0) 人氣()