朝得銀彈,夕死可矣(續)

2021-09-05 13:20:04 字數 1701 閱讀 7233

[前言]:今天是7月30日,離開公司也正好乙個星期。而今天也是我呆在深圳的最後一天,再過不到24小時就要踏上北上的征途了。離職之後,在深圳的窩裡呆了幾天,對於軟體開發,尤其是專案的管理,有了一些新的想法,遂延續前篇[1],將專案中的不足之處記於此,以作日後警醒之用。

1、需求不明確;專案進行到現在,也有一年有餘了,而進行需求分析和概要設計的時間也有近一年了。雖然我們有很多的文件,文件也是洋洋灑灑數千字,上萬字,然而我們對於使用者需求把握的程度還是很糟糕的。最明顯的一點,由於我們所要做的系統第四版了,在此之前的第三版是十年前開發的。那麼我們是對原有的系統進行公升級呢?還是重新設計乙個系統呢?我們的sa一開始都號稱著要做乙個全新的系統,然後都去跟客戶做interview,去收集需求,可惜的是能力有限,時間又急迫,使得需求分析的結果還不足以指導進行概要設計。結果在開始做概要設計的時候,業務邏輯不清楚也沒有採取進一步的措施。也不知道是誰提出了由舊系統的源**去提煉業務邏輯,接下來公司就組織了很多sa,乃至ap去讀源**,然後根據這些源**去寫概要設計文件。說實在的,我覺得很不可思議,大家也許會說,讀舊系統的**沒有問題啊。沒錯,以舊系統的**作為參考是沒有問題,可是如果是將舊系統的源**直接轉換成概要設計文件,我們前期做的業務需求分析不就一點用處都沒有了嗎?況且這樣做,是不是也正好違背了做乙個全新系統的想法呢?在我看來,根據源**去提煉需求,並且做概要設計,無異於盲人摸象。缺少了整體考慮的需求分析,恐怕就是頭痛醫頭,腳痛醫腳,而人還是照樣over了;

2、缺少乙個完善的training和學習的體系;我覺得這是乙個很糟糕的問題。雖然大家會覺得乙個小型公司要建立乙個完善的training體系幾乎是不可思議的,可是我想說,我們必須需要這樣的乙個體系,即使這個體系僅僅是針對現有的專案的。因為會隨著專案的進行,有人會離開,也有新人會進來,如果沒有乙個完善的體系的話,人員流動對於專案的影響將是非常的大。而且在促進大家去學習的過程也可以提高大家的學習能力,也能夠篩選出人才來;

3、缺少激勵機制;在專案當中,公司會有很多的懲罰措施,譬如會有乙個所謂的紅黑榜,然後只有人受罰,卻沒有人得到獎勵。我曾多次表示反對這樣的方式,因為我覺得人性總是本善的,應該通過激勵的方式去促動大家努力工作。因此,我會想,如果有乙個expert排行榜,會不會更好呢?上榜人員是通過全體程式設計師投票選舉出來的,公司將會對他們給予獎勵。給予expert稱號的最大好處就是樹立了在開發過程中的權威與榜樣。如果有問題,可以找相應的expert解決,正所謂,聞道有先後,術業有專攻,他們既然是專家,就會對在解決相應問題的效率上和結果上都會有過人之處;同時也可以激勵其他員工向他們學習,起到了模範作用;

4、sa與**脫離,與技術脫離;這是我最百思不得其解的問題。sa是什麼的縮寫呢?是system analyist。那什麼是系統?我沒有辦法給出準確的定義,但是我想乙個系統必須是為實現某個既定任務而存在的,業務需求就是「任務」,確實是最重要的。那麼,如何「實現」是不是也很重要呢?沒有了可行的實現手段,所有的「美麗任務」都變成了mission impossible了。我覺得兩者都是具有相同的分量的,sa要關注需求,更要關注實現。然而我們的sa更多時候是充當著行業專家的角色,可是他們並不是行業專家。結果這個角色耗費著專案的大部分資源,卻鮮有貢獻。既做不了設計,又做不了coding,到了我將要離開的時候,他們充其量只是乙個工頭了,問程式設計師,「什麼時候能夠做完啊?」,「我只要結果」。這多麼的可笑啊!sa是可以不直接參加做coding ,但是他們不能夠對技術幾乎一無所知,否則,他們如何做分析呢?system的組成不僅僅是業務邏輯,而且業務需求最後也轉化為一行行的**,乙個個能夠執行的模組啊。為什麼就只有sa給大家培訓業務邏輯,卻沒有人為sa培訓技術呢?可笑!

體悟朝聞道,夕死可以

朝聞道,夕死可以 是指如果你體悟到了乙個更好的觀念或找到了乙個更好的方法,那麼以前相對於現在不正確的東西就可以丟掉了。道理很簡單,但在現實生活中我們卻因各種雜念阻礙這種理念的實施,看看以下場景你有沒有遇見過。場景一,你辛辛苦苦產出了乙份方案但在大家一起檢討你的方案時,其他同事卻輕輕鬆鬆的提出了一條更...

人比人得死,貨比貨得扔

古人說的話常常讓我佩服的是五體投地!當突然發現身邊的人,已經跨越式發展,而你還在原地踏步時,難免會有一種壓抑的氣氛籠罩著你,難免會想到這句被重複了無數次的話。性格決定命運。人從一出生,由於先天的因素以及後天的影響,漸漸會形成自己的性格。三歲看老,絕不是宿命論,而正是因為其性格特徵,會決定其價值取向,...

朝Code夕拾 Java三元運算子的用法

三元運算子,是軟體程式設計中的乙個固定格式。三元運算子需要三個運算元,語法為 條件表示式?條件為true表示式 條件為false表示式。說明 問號前面的位置是判斷的條件,判斷結果為boolean型,為true時呼叫true表示式,為false時呼叫false表示式。簡單理解為 如果為真執行第乙個,否...