工作到現在以來,從乙方公司到成為公司內部的乙方單位,工作的歷程比較傾向是用一個個專案堆疊而成。倒數第二天了,想分享一些心法類的東西,覺得是除了技術類的分享外,也很希望可以和大家互相交流的部分。畢竟心境態度都對了,工作起來也比較舒服吧XD
在一個個專案中,一定會遇到兩種類型的專案:
(1) 你是專案的開創者 - 新專案的開發
(2) 歷史的共業交給你承擔 - 就專案的維護和後續開發
新專案基本上好像不太會有什麼心情的影響,畢竟開發到後來如果出事,還不是自己寫的,沒得怪人,因此好像在心態上我覺得比較沒有什麼太大的狀況,但如果是舊專案我自己也是花了一段時間調整好心態。首先想談的就是接舊專案的心態。
不知道大家是不是都這樣的經歷,當接到一個別人經手的專案,通常都是深淵的開始。心裡會有無限的OS「為什麼他要這樣寫?」「他的code也太髒了吧....」等等各種嫌棄?XD (後來想想,自己的code要給別人接手可能別人也覺得這到底在寫什麼XDDD) 不過當這些想法總是一直圍繞在你周圍,每次做這個專案也會變得很心煩,code可能也只會越來越髒QQ 所以在接手別人的舊專案時,我自己覺得有幾點可以注意:
"專案的負責人"是什麼意思? 意思就是當你接手舊專案,就不能總是以「我不知道這是以前的人寫的,我沒辦法」這樣的理由做推託。當然也不是那麼可憐,你接手專案你就要立刻馬上就該懂所有的東西,上手都是需要一段時間,但你需要以這個專案你是負責人,最後你得要全部都懂的心態前進且了解。把這個專案變成自己的專案,越來越了解上手之後,掌握度提高,才不會永遠別人提到這個專案的時候,你都是滿滿的痛苦覺得是別人丟來給你的。
也許有一類的人,看到很混亂又滿是bug的程式,都會想突然心裡冒出一個想法,乾脆我直接重新寫一個!不,千萬不要衝動,打掉重練絕對不是想像中的這麼美好,有很多隱藏的邏輯可能根本不在文件也不在畫面,後面接手的人很難知道全貌,要打掉重練一個已經做到一定程度的專案,絕對不是一件簡單的事,因此不輕易地打掉重練。
遇到舊專案程式混亂的狀況,雖然不能打掉重練,但要抱著小重構是必然的,可以藉著每次修bug或是新增功能的時候,針對一小區一小區的區塊進行整個檢視和重構。有點像一次要掃整棟樓太多了會很累,也會掃不乾淨,但每天掃一間,一間間總有一天整棟樓就會變乾淨了~
有些程式寫法你也許看不下去,但我覺得很重要的一件事還有學著放下XD 因為你的時間其實是固定的,當有很多事情要做,也有事情的重要性和優先順序,若看不下去,以目前的現在可以執行順利的程式進行就先讓他這樣吧!(當然如果你有時間主管又不管你的話,或要花自己的時間精進調整看不下去的程式碼也OK啦,這邊說的是在當有很多事情要進行的時候,要學著放下XD)
還有一種心情是「程式已經很亂了,那我新加的很亂也沒差吧」,我也曾經有這種想法,不過因為這個專案已經交到你手上,更亂只會造成自己的困擾。改變從自己做起,就算前人的程式很亂,堅持對的改法,未來再做開發或修改的時候,都會感謝現在有堅持多花一點時間把程式改得比較乾淨的寫法的的自己 (什麼叫寫乾淨呢? Ex.該共用的要共用、該用enum要用enum...等等)
優先權通常主管、PM也許會告訴你,但我覺得自己也需要有判斷事情輕重,雖然別人會告訴你哪些東西比較趕或比較重要,但是最終是你自己決定要花多少力氣完成哪些事情。當有多個專案甚至非專案的研究型項目在進行,專案間的比重,專案的性質等等都應該考量。
什麼是專案性質?這個專案是短暫的活動頁面後續不會維護了?還是他是一個長期的開發維護案?如果是短暫的活動頁,也許開發的速度和程式的覆用性比起來,開發速度或許更重要,因為反正這個網站可能兩個月就下架了;如果是長期開發維護案,那要著重的就會是程式的彈性、覆用性、擴充性。
專案的比重,可能取決於公司對各專案覺得的重要程度。不過不是要說公司覺得重要的專案在認真做,不重要的隨便做就好XD 而是,你要在自己的心裡知道這些比重,再決定事情的時候才會有一個準則。
因為每個人的時間有限,以前剛工作的時候覺得每件事情都要花一百分的力氣去完成,才是對工作負責。但漸漸發現,這樣其實不是一個好的方式,你可能做得要死但其實別人根本沒有感受也看不出來,花的只是苦工。人的時間力氣都有限,該怎麼聰明的分配自己的時間跟精力,也是可以幫助自己工作上進步很重要的一環。
有些東西你的主管或老闆根本不在意,那你適合花這麼多時間在上面嗎?也許你覺得要,那如果真的要的話,你覺得對你自己的幫助是什麼?或你的堅持可能會有未來性?或你想為了什麼目的堅持?如果都沒有,就學著在這些事情少花一點力氣和去間,把時間精力分配給其他更重要的事情。
這些是我自己在專案中,獲得的一些小小心得和想法,今天就統整成兩個心法,有些心態調整了之後在工作的時候變得比較不會這麼痛苦,今天就跟大家分享~
當然自己還要成長的還很多,畢竟還是菜菜的工程師,還是努力朝著更成熟穩重