原文作者Greg Jorgensen是一位典型的程序員,他從1974年開(kāi)始編程。曾在耐克和蘋(píng)果等公司任職。他專(zhuān)攻修復和完善受損、被遺棄和"半生不熟"的Web應用程序,尤其是后臺語(yǔ)言是PHP的網(wǎng)站。我從事自由職業(yè)已有十余年了,有時(shí)候在我有全職工作時(shí)我把它當做副業(yè),有時(shí)候我只做自由職業(yè)。關(guān)于自由職業(yè)中如何成功地編程,我也學(xué)到了一些經(jīng)驗。 1. 做你會(huì )做的事情 客戶(hù)付錢(qián)請你解決問(wèn)題。他們對Haskell語(yǔ)言有多炫根本不感興趣,而且他們也不想付錢(qián)讓你去學(xué)習新的工具和編程語(yǔ)言。因為上一個(gè)程序員力不能及而退出或者被解雇,我接手這一類(lèi)的項目,多的數不勝數。你應當拓展自己的技能以保持競爭力,而且不要因為其自身價(jià)值而過(guò)分喜愛(ài)時(shí)下流行的程序語(yǔ)言。(注:Haskell是一種純函數式編程語(yǔ)言。) 2. 不要獨樹(shù)一幟 如果你掌握了一種新奇的、炙手可熱的技術(shù),那你當然可以使用它。但是,如果僅僅是因為看到會(huì )Lisp的自由職業(yè)者賺錢(qián)多就去學(xué)習Lisp,那你得仔細考慮一下自己如何跟他們競爭。當然,現今有很多PHP程序員,但大部分都是業(yè)余愛(ài)好者,你能輕易地跟他們競爭,并且有的是PHP工作去做。跟技術(shù)嫻熟的、有經(jīng)驗的專(zhuān)家競爭少數工作更困難。別人能賺錢(qián)的工作你都想去做,但不打算做的更好,所以你在與一支六年級的隊伍打籃球,而不是試圖去加入NBA。 3. 不要試圖做所有事情 注意不要忙于做技術(shù)支持、硬件安裝、設計、藝術(shù)創(chuàng )作等工作。要堅持做自己擅長(cháng)的。把那些你不擅長(cháng)的工作發(fā)送給其它擅長(cháng)的自由職業(yè)者,遇到同樣的情況,他們也會(huì )發(fā)送給你。 4. 不要接規模太大的工作 如果很難用一張紙把項目描述清楚,或者整個(gè)開(kāi)發(fā)進(jìn)度要持續幾個(gè)月甚至幾年,那么你得注意了。通常,規模較大的項目對一個(gè)人來(lái)說(shuō)工作量太大。如果你非常想接一個(gè)大規模的項目,那么,試著(zhù)把它分成若干個(gè)小的子項目,每個(gè)子項目可以短期完成并有一個(gè)可交付的成果,這樣你和客戶(hù)就可以看到項目的進(jìn)度和成果。 5. 避開(kāi)行為惡劣的客戶(hù) 如果客戶(hù)看起來(lái)狂暴、專(zhuān)橫、吝嗇、貪婪、粗魯、苛刻、霸道等,那么遠離他們。去找其他客戶(hù)。如果你很難想象與客戶(hù)能夠保持一種專(zhuān)業(yè)的、有報酬的工作關(guān)系,或者你感覺(jué)客戶(hù)做的任何事情都很惡劣,那么拒絕他們。 6. 大多數業(yè)務(wù)都是通過(guò)推薦得到的 好好干,讓你的客戶(hù)滿(mǎn)意,與其他自由職業(yè)者合作,構建能夠推薦你并給你帶來(lái)工作的人際關(guān)系網(wǎng)。 7. 不要試圖讓它看起來(lái)像個(gè)“真正的”交易 很多企業(yè)家過(guò)分注重積累公司的外在形象。你不需要花哨的網(wǎng)站、信頭、辦公室等。你可能甚至都不需要創(chuàng )建一個(gè)企業(yè)或者有限責任公司。除非你有員工或者一天能給客戶(hù)開(kāi)出72小時(shí)的賬單,否則你不會(huì )賺到足夠的錢(qián)來(lái)證明一切都制作精良或者能被認定為“專(zhuān)業(yè)”。你的客戶(hù)不會(huì )在乎你在家工作,也不會(huì )在乎你沒(méi)有排場(chǎng)。 8. 采用源碼控制和問(wèn)題跟蹤 學(xué)會(huì )如何使用源碼控制和基于網(wǎng)絡(luò )的問(wèn)題(bug)跟蹤。在Wiki上記錄每一個(gè)項目的需求、問(wèn)題及決策。運用工具,讓客戶(hù)通過(guò)系統向你匯報bug。我使用ProjectLocker,現如今還有其他便宜的托管方案。不要浪費時(shí)間在你的服務(wù)器上搭建它。 9. 追蹤工作時(shí)間并定期開(kāi)賬單 獲取報酬最好的方式就是準確地記錄工作時(shí)間,并定期向客戶(hù)開(kāi)賬單。我喜歡按小時(shí)記錄工作,每?jì)芍芟蚩蛻?hù)寄發(fā)票。你不需要一個(gè)成熟的記賬系統,現在有很多時(shí)間跟蹤托管軟件以及像BlinkSale這樣的在線(xiàn)開(kāi)發(fā)票方案,它們能幫你完成大部分工作。(編注:選用何種追蹤工作時(shí)間的工具,請參閱伯樂(lè )在線(xiàn)編譯的這篇文章《追蹤時(shí)間的10個(gè)給力應用程序》。) 10. 不要轉包 我提倡與其他自由職業(yè)者合作,但我不喜歡將工作轉包出去。很可能給別人講解項目并審核其工作完成情況所花費的時(shí)間,與你親自完成這項工作所花費的時(shí)間一樣長(cháng)。不管怎樣,任何跟你水平相當的程序員花費的時(shí)間都是差不多的。如果你認為在Craigslist找到了一個(gè)每小時(shí)收費12美元的程序員是撿到了大便宜,那祝你好運。如果你承擔的工作多到你處理不了,那么試著(zhù)將它轉交給另一個(gè)懂得回報的自由職業(yè)者。 11. 使用敏捷開(kāi)發(fā)技術(shù) 客戶(hù)都想了解工作進(jìn)度。對需求的錯誤理解,可能是你犯的錯誤中代價(jià)最高的。采用短期可交付成果和反復審核的敏捷開(kāi)發(fā)技術(shù),會(huì )讓你的客戶(hù)滿(mǎn)意,也會(huì )讓你遠離繁雜的任務(wù)。你不需要向用戶(hù)講解敏捷開(kāi)發(fā),他們根本不在乎。只是告訴他們你如何做以及你需要從他們那里得到什么。 12. 讓客戶(hù)及時(shí)了解項目情況 在線(xiàn)發(fā)布工作進(jìn)度,讓客戶(hù)了解你在做什么。對大部分人來(lái)說(shuō),編程很神秘,所以讓你的工作進(jìn)度清晰可見(jiàn)會(huì )使客戶(hù)感覺(jué)跟你合作很舒服。我發(fā)現敏捷透明的開(kāi)發(fā)過(guò)程可以防止賬單糾紛,而且一旦客戶(hù)習慣了你的高標準服務(wù),他們便很少會(huì )把工作再交給其他自由職業(yè)者來(lái)做。 |