從程序員轉向項目經理


這個項目起初從需求分析到產品設計,最后到測試,發布都是自己完成,后來加了二個新成員,各司其職,分工更明細,進度也更快了。作為一個項目的總結,列出以下的觀點與各位分享。第一次從程序員技術轉向項目經理,做的不好請各位多指正。

起因

畢業后一直在做.NET方面的開發工作,這個一直被各位朋友看起來,最沒有前途的職業。從一開始封裝SQL語句,到后來的應用微軟企業庫(Enterprise Library),再到后來用Hibernate,Entity Framework,LLBL Gen,技術換了一個又一個,最終的初衷沒有改變:讀寫數據庫。一直被這樣的生活所折磨,痛苦不堪。於是想想找到一些突破口,能做一些MIS類型的項目的公共組件,以簡化每個項目的不同技術給自己帶來的痛苦。后來發展成為一套公共組件,給內部的項目試用,反饋的效率還可以,但拿到外面去給別人看,受過不少打擊。再后來,干脆直接在此框架做出一個產品,一方面把現在的技術完善,另一方面也可以校正技術上的偏差和錯誤,於是就誕生了這個ERP項目。

技術

C# 4.0 作為主要編程語言,完成95%的代碼,同時嵌入一個腳本編輯環境,用IronPython作腳本,作適當的擴展。
SQL Server 2008 R2作數據庫,不折騰Oracle,也考慮MySQL。曾經想把現有的系統移植到Oracle上來,但一想到有調用幾百個存儲過程的報表,就頭疼。
數據訪問用ORM,LLBL Gen Pro 3.1,EF, NHibernate不考慮。
界面用WinForm,不考慮WPF和ASP.NET,曾經想把一部分功能做成ASP.NET(比如供應商送貨,客戶發票),后來放棄。
通信用.NET Remoting,部分地方用WCF以開放接口給外面調用。

項目

先做成成一個進銷存,基本的采購銷售和倉庫三個模塊要有。再后來加入生產,工程,物料需求計划,財務,構成一個MRP系統,再加上人力資源,客戶,固定資產組成一個ERP系統,主界面的長的樣子如下:

image

曾經大量研究過金碟的主界面,用友ERP的主界面,還有其它很多第三方著名系統的主界面,最后定格成這個樣子。主界面中,業務導航圖,功能分類,功能的快捷方式都具備,提供了ListView,Context Menu,MenuStrip三種方式的導航。

團隊

這個項目由三個人完成,一個負責需求和測試,我和另一個朋友負責編程。首先要面對的是大量的基礎功能要先設計出來,比如菜單設計器,報表設計器,查詢設計器,有了這三個基礎功能,系統的可配置性相對比較高。其次就是增加基礎的進銷存的功能。比如先做入庫和出庫,再到做銷售送貨時,自動產生出庫單。借助於對象關系映射(ORM,LLBL Gen),代碼的可復用性大大提高。在需求方面,都是文檔話的需求,有自己的需求文檔管理系統。如下圖所示:

image

請各位不要疑問為什么不用TFS(Team Foudation System),TFS是功能強大,但對系統要求相對高,4G內存裝個TFS,再裝VS2013,工作起來有些吃力。需求管理,能實實在在把它用起來,就比較好。如果不是多人合作,用Word/Excel都可以管理需求,關鍵是要把它的價值發揮出來,遇到各種需求都錄入系統中,對需求的修改也錄入系統,以追蹤對系統的每一次改動。源代碼管理則是用老古董Visual SourceSafe 2005,簡單熟悉和方便,不折騰最新的Git,SVN之類的新的工具,把時間留給家人或是出去旅游更有價值。

方向

ERP是個競爭很激烈的領域,首先要面對的是金蝶和用友的壟斷式的市場格局,這就好比新生的電子表格軟件做好之后,首先要考慮導入和導出Microsoft Excel格式。但是ERP市場又有點特殊,它是依賴數據帶來的分析,從而為企業的制造產生價值,所有的生產計划,銷售資料,客戶資料都是企業的有價值的數據,這些數據依賴技術服務的支持才可以進行下去,所以盜版的企業管理軟件很少有公司用,這一點給我們的產品提供了突破口,找到客戶並且把它實施下去,就可以在金蝶和用友的陰影下生存,繼續發展。這也是珠三角仍然還有上千家ERP軟件公司的原因。目前實施的幾家客戶,效果還可以,因為創業團隊在深圳,立足點也定位在深圳,東莞,廣州和珠海四個城市。
金蝶和用友有一個問題,因為功能過於龐大復雜,這也給我們的產品帶來了機遇。有時候客戶只想要一個進銷存,但是你卻給它一個ERP,客戶反而覺得復雜不好用,還是我們的產品方便。

生存

期初沒有太多的定位,有單可做的項目都接下來,生存要緊。有些小程序或是小軟件之類的需求也把單接下來完成。有的是幫忙客戶導入導出數據,有的業務是幫忙客戶對接2個系統的數據,但是沒有源碼可參考,於是用查詢跟蹤器錄制數據變化,然后對比結果,從中發現系統邏輯進而完成需求。有的用.NET寫的軟件,可以反編譯它的代碼,直接把代碼中的SQL語句拷貝出來,完成客戶任務。豬八戒上面的任務500以下的都不考慮接,還有的50塊就寫個程序的直接拉黑名單不做。一天的人工費用加上其它的開支,最少也要500,而且一個價值僅僅是500的項目,通常都要幾個溝通來回才能搞定,有時候也是邊做邊明解需求。客戶說我沒有明白它的意思,我說你沒有寫下來的,溝通中沒有直接說明的,沒有記錄的都是新需求,要加價才能完成,這樣任務完成快,但也容易導致客戶流失。
另一個途徑則是賣組件,框架的源碼是對外出售的,有過來看一下,問一下價格就走人的朋友,有過來了解框架,了解每一層面的做法,然后說這不好再走人的朋友,還有要求增加功能然后再考慮買的朋友。如果當初你考慮用我的這個框架,是不是你現在就可以看到我的這個項目了。亦或是你現在還在考慮用Entity Framework或是Hibernate來做項目,對WCF的雙工特性還有點不熟悉,對如何實現服務器端異常中斷后,客戶端所有的界面都要禁用變灰還不能實現。
最后一個途徑是做實施,二次開發。金蝶K3二次開發,做一此插件或查詢。客戶遇到技術問題也幫忙客戶解決。對於從程序員出身的朋友,做這一行不難。自己寫的系統沒有多少人,可以考慮給別人的系統做查詢或插件,能增加收入就好,不應該在乎VB好不好用,也沒有智能提示。

 

轉做項目經理之后,一個很明顯的感覺是你心里總是要有方案,用鬼佬的話講叫Always has a plan。一個需求談下來,有幾種實現方案,自己要會對比權衡,要很快的找到技術的突破口或是放棄,不再是像程序員那樣,需求都做成文檔了,再給你編碼。不過回當想初的程序員時代,需求都是人家溝通,妥協好了,容不得自己半點修改,現在再回想過去,自己當初做的不夠好,只是完成任務(get the job done),而不是做的更好一點(good enough),沒有去想明白為什么不能按照自己的來修改。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM