我覺得能否接私活的判斷標準有三點。但接私活不一樣,私活發包方通常并不懂技術,大部分只是有一些模糊的想法,那這時我們就要有良好的溝通能力,幫助并引導發包方梳理清楚他們到底想做什么,題外話做為程序員,其實我們都知道,自己在積累了一項目經驗以后,其實自己就積累了很多源代碼,很多程序員并不重視這些源代碼,也沒有很好的進行管理。
1、程序員接私活時,軟件如何定價?
通常來說,做這種外包訂單的定價方式有兩種,但無論哪一種,我們都需要對需求先行進行了解并且明確下來,才知道如何定價。1.按功能定價對于一個系統來說,我們了解了用戶的具體需求以后,可以將系統分為若干的功能點,按照每個功能點的復雜程度,按照一定的價格來收取費用,例如:我們要做一個新聞的模塊,新聞模塊非常簡單,對于后來來說,有四個功能點,新聞列表、添加新聞、修改新聞、刪除新聞,對于前臺來說,就是查看新聞列表和詳情兩個功能點。
其中查看新聞列表這個功能點對于前后臺都一樣,可以合并在一起,假如我們按照一個功能點100塊來收費,其實這個模塊我們就收費500塊就可以了。那可能還有復雜的,類似OA的工作流,自定義工作流表單和可視化流程設計其實就是一個非常復雜功能,如果我們將工作流視為一個模塊,那么簡單的分一下的話,至少有表單可視化設計、表單的創建、表單的修改、表單的刪除、流程的可視化設計、流程的創建、流程的修改、流程的刪除、流程的查看、流程節點的創建、流程節點的修改等等等等非常多的功能點,
按照正常情況,一個這樣可視化的工作流引擎,大概你都可以報價超過2萬塊,還不用去算OA系統中的其他部分功能。要值得注意的就是,如果按照功能報價,你需要有將需求分解到功能點的經驗,不然到時候分解時漏掉幾個功能點,可能你的收益和你的付出就不成正比了,2.按照時間定價按照時間定價,可能是很多外包公司的定價方式,對于獨立接單的程序員,很多現在也在使用這種方式來計價了。
一般來說,我們在接到一個外包的項目時,先對這個項目的大概功能進行一個分析,然后估算一個時間,一般我們需要估算三個時間,一個是最快我們什么時候能夠完成,也就是樂觀計劃;一個是一般情況下,我們什么時候能夠完成,算是普通計劃;一個是最差我們什么時候能夠完成,這個算是悲觀計劃。然后我們用(樂觀計劃 普通計劃*3 悲觀計劃)/5,最后得到的這個時間就是比較合理的時間,
當然,這個是比較書面的一種計算方法。我們可以用一個比較簡單的方法來計算,就是你算出自己的普通計劃耗時的時候,乘以1.3就可以了,然后,我們就可以按照天來計算時間了。對于價格,一般來說,有400/天的,也有700/天的,這個就看自己來評估了,題外話做為程序員,其實我們都知道,自己在積累了一項目經驗以后,其實自己就積累了很多源代碼,很多程序員并不重視這些源代碼,也沒有很好的進行管理。
其實,我們可以將我們的源代碼進行模塊化,插件化的管理,這樣的話,我們在接到新項目的時候,可能就有很多可以復用的代碼了,例如:權限模塊、通訊授權模塊、訂單模塊、圖文內容模塊等等。我們可以在做的時候,就將它插件化,以后我們要使用的時候,一個引用就搞定了,減少了很多的代碼量,然后我們又可以收到足夠的錢,何樂而不為呢?。
2、Java達到什么程度可以接私活?前端也會一點?
我覺得能否接私活的判斷標準有三點:技術能力、溝通能力以及需求分析能力,據我的經驗,私活項目一般具有技術要求簡單、需求不明、需求改動頻繁等特點。技術能力作為一名程序員,技術就是吃飯的家伙,也是我們的立身之本,怎么判斷技術是否合格呢?一個簡單的標準就是能從前端頁面寫到后端接口、能從開發到運維,整個項目每個部分最好都會點,俗稱全干工程師。
溝通能力有人可能不明白,程序員寫代碼要什么溝通能力???其實不然,正常我們工作有項目經理、產品經理在前面替我們程序員對接業務需求,等到我們真正開發時拿到的已經是非常詳細的功能點了,但接私活不一樣,私活發包方通常并不懂技術,大部分只是有一些模糊的想法,那這時我們就要有良好的溝通能力,幫助并引導發包方梳理清楚他們到底想做什么。