專案微管理1 孤軍

2021-09-07 16:35:51 字數 2498 閱讀 7558

四代去fx入職的時候恰好是8月的最後一天,秋老虎正猙獰的向世人展示著她那鋒利的獠牙。雖然明知是「兔子的尾巴-長不了了」,但是此時魔都炎熱的天氣還是深深的折磨了一把四代,來到公司的時候,四代的後背已經完全濕透了。

光桿司令

到了公司,四代剛好趕上技術部的全體會議。從會議上四代了解了技術部的構成,以及自己所處的團隊:pc團隊,組員只有乙個,那就是他自己。

四代入職後的第一天就是在了解前年和去年的開發計畫中度過的。最近幾年,pc軟體已經成了不折不扣的大忽悠,很多的功能都是年年計畫年年晃點。如何在現有的狀況下開始四代回來的第乙個版本,還真是個麻煩的事,每個功能都是催了那麼久,每個功能似乎都很重要,千頭萬緒,猶如一團亂麻,如何才能找到那個關鍵的線頭呢?四代陷入了深深的沉思中。

在經過一番思考之後,四代還是兩眼一抹黑。沒有辦法,四代只能從最基本的做起,那就是通讀軟體的核心**,然後再思考如何開始。

契機

在閱讀**的過程中,四代想起了會議上提到的因為效能原因,需要公升級底層資料庫的事,他突然眼前一亮,那可不就是苦苦尋找的線頭嗎?從公升級底層資料庫開始,再向上重構資料庫訪問技術,然後再向上更新上層的業務邏輯和介面,這不是很好的開始嗎?這個作為軟體接下來第乙個版本的重點,不是非常合適嗎?從更長遠的角度來說,

重構就是修改現有**使其更合理,為以後做好新功能的開發提供技術上的準備

說幹就幹!為了避免把已有的**搞亂,四代迅速的配置好了源**管理工具,從裡面複製出乙個專門的pc**分支,然後在裡面開始進行公升級資料庫的操作。事後想想,在後來大範圍重構中,**幾近崩潰的時候,四代還能從容進行修改,心裡想著大不了重新再來,這個另立分支做法還真的給四代提供了非常強大的底氣。確實,不僅僅是**重構,

任何事情,有時候確實需要提供乙個在失敗後還能重來的機制

公升級資料庫的版本看起來似乎比較簡單,實際操作起來卻非常繁瑣,在這個過程中,需要進行大量的相容測試,這幾乎是覆蓋了軟體的所有功能。

軟體工程就是這樣,每乙個新版本的研發,都必須要考慮和老版本的功能和資料相容

一切似乎很順利,不過很快四代就發現了乙個嚴重的問題,那就是上層的資料訪問技術已經過時了,必需也要在這一次進行相應的公升級,不能像四代最初的打算那樣,完成了底層資料庫的公升級以後再更新資料庫訪問技術。沒有辦法了,資料訪問層也要隨著資料庫一起公升級!也好,反正對比原計畫,也就是下一步的重構目標稍微提前了一些,既然撞上了,那就一起搞定吧,

狹路相逢勇者勝嘛!

中心結構通訊

乙個月以後,資料庫和底層的訪問技術公升級結束,效果還不錯,新版本就是新版本,效率和併發性提高了不少。接下來就是上層物件了,上層物件要略微麻煩一點。

頂層的物件之間依賴太複雜了,而且估計一直也沒想過要拆分,每次新增新的功能的時候,都是一直就往同乙個工程中不斷新增新物件,而這些物件的加入,又使得原本就相當複雜的物件關係變得越加複雜,簡直稱得上雪上加霜,惡性迴圈。這樣的結果是這個核心的工程越來越大,每改動一行**就要重新編譯,公升級的時候也得加入公升級包中,導致公升級包比正常大很多。

這樣,拆掉這個超級大工程就是迫在眉睫的乙個工作了,好在四代也不是第一次幹這個事了。在oj的時候,他就試過把一群依賴複雜的物件組成的網狀結構重構成以乙個事件物件為唯一中心的星狀結構,這一次只不過涉及的物件比較多,範圍比較廣而已,四代步履輕快的倒了杯咖啡,開始了這次實際上一點都不簡單的重構。

四代無論如何也沒想到,這次的重構幾乎折磨的他看到事件就想吐,大量的頂層物件和業務邏輯層物件相繼湧入到這次操作中,隨著修改的物件的不斷增多,四代提交**的壓力越來越大。在長達幾周的修改中,四代一度曾想中止剩下的重構,不過在考慮即將出現的擴充套件性的時候,四代還是咬了咬牙,堅持著完成了這次艱難的通訊機制的公升級。直到幾個月以後,當另一位兄弟加入團隊,需要在兩個物件之間互動的時候,他說了一句:「師兄,這個事件系統這麼好用,兩個物件不用互相引用,只要通過這個事件系統,可以很方便的互動。」啊哈,是啊,只是這樣一句話,四代覺得內心一下子充滿了暖暖的感覺,那次艱難的重構是值得的。

自己扛

當這些重構工作都結束以後,剩下來的事都比較簡單了,就是發布新版本,公升級使用者機器上的軟體了,雖然過程中也冒出了一些新問題,不過大多都順利的解決了。

還是在這個版本的開發過程中,pc的招聘計畫已經啟動了,四代已經不間斷的接觸了許多的面試者,不過無一例外的是,這一階段的面試者都折在了基礎知識這一環,四代實在想不明白,到底是自己要求太高了,還是面試者的水平太低了,難道一直要這樣,「所有的事都自己扛」,這可不是一名合格專案經理幹的事哈,四代不禁搖了搖頭,輕輕發出一聲嘆息,繼續著手上的工作。

專案微管理24 橫向

在團隊合作中,團隊內的夥伴就如同一條繩上的螞蚱,是相當緊密的合作關係,而團隊外的夥伴則是比較鬆散的合作關係。橫向溝通 在管理方式上,團隊內的管理要做的事很多,比如要建立信任關係,比如要建立各種流程,比如說隨時搞個團隊活動,這些都是四代容易把控的。但是對於 橫向管理 來說,如果更高階的管理者沒有發揮出...

專案微管理30 績效

績效考核對於任何人都是非常重要的一件事,不過它同樣也是最讓人詬病的一件事,甚至很多激進的程式設計師會說 什麼狗屁績效考核,只要是搞考核的公司,老子一律不去!話糙理不糙,這個現象至少說明績效考核已經惹得 人怨,甚至索尼的某高管都放言 索尼之所以垮掉,都是績效考核惹的禍 績效考核是把雙刃劍 不過即使是這...

專案微管理19 單挑

四代曾經記得有一篇這樣的文章是這樣說的 所謂管理,就是溝通,溝通,再溝通!四代覺得非常的有道理,這是在團隊對話中,四代說過的最多的一句話,沒有之一。目前,四代碰到過的團隊問題,不管是任務分配不明確 功能實現不清晰 產品發布不順利,還是隊員之間互相不理解 團隊之間協作不順暢 利益之間分配不公平,基本都...