避免被開發人員劫為人質

人質100107這個週末,我開始與一位本地藝術家進行對話,這位藝術家一直在協助她的老闆管理老闆擁有的幾個Web應用程序。

對話轉了轉,關於每週支付開發費用的事情還有些洩氣,但沒有看到與他們合作的開發人員有任何進展。 現在,開發人員希望向他們收取另一筆一次性費用,以完成該項目,以及每週的維護費用,以滿足其他要求。 情況變得更糟。

開發人員轉移了域名,以便他可以管理它們。 開發人員還將應用程序託管在其託管帳戶中。 簡而言之,開發商現在將他們扣為人質。

值得慶幸的是,我與之共事的那個女人過去曾要求管理訪問權限來編輯該站點的一些模板文件。 開發人員本可以為她提供有限的訪問權限,但他沒有。 他(懶洋洋地)向她提供了該站點的管理登錄信息。 今晚,我使用該訪問權限來備份該站點的所有代碼。 我還弄清楚了他在使用什麼管理軟件,並進入了數據庫管理,可以導出應用程序的數據和表結構。 ew。

所有者計劃在開發完成後將網站移至新域名。 這是巨大的,因為這意味著如果開發人員與公司之間形成憤怒的分離,則當前域可能會過期。 我以前見過這種情況。

如果您要獲得外包開發團隊,請注意以下幾點:

  1. 域名註冊

    用公司名稱註冊您的域名。 讓您的開發人員成為該帳戶的技術聯繫人也不錯,但是 決不 將域的所有權轉讓給公司以外的任何人。

  2. 託管您的應用程序或網站

    您的開發人員可能擁有託管公司並可以為您託管您的網站,這是很好的,但不要這樣做。 取而代之的是,向他的建議詢問在哪里托管應用程序。 開發人員確實了解管理軟件,版本和資源位置,這可以幫助您更快地完成產品。 也就是說,儘管擁有託管帳戶,並使用自己的登錄名和訪問權來添加開發人員。 這樣,您可以在需要時拔出插頭。

  3. 擁有密碼

    不要以為您擁有代碼,而是以書面形式編寫。 如果您不希望開發人員使用您付給他/她的解決方案在其他地方進行開發,則必須在簽訂合同時做出決定。 我以這種方式開發了解決方案,但在我保留了代碼權利的地方也開發了它們。 在後一種情況下,我通過協商降低了申請成本,從而激勵公司給我權利。 如果您不介意開發人員在其他地方使用代碼,那麼您不應該為此付出高昂的代價!

  4. 獲得第二意見!

    當人們告訴我他們在競標或與其他專業人士諮詢時,這並沒有傷害我的感覺。 實際上,我推薦它!

最重要的是,您要為開發人員的才能付費,但是您必須保留對該創意的控制權和所有權。 是你的。 是您對它進行了投資,您為此冒險了您的業務和盈利能力……並且應該保持它。 可以替換開發人員,這決不應該使您的應用程序或更糟糕的是對您的業務造成風險。

6 個評論

  1. 1

    我是網絡應用程序開發人員,我同意您的大部分觀點(也許都是如此),但我想對#3進行澄清。

    將網站或應用程序批發出售給另一家公司(或更糟的是競爭對手)是不道德的,應始終在合同中規定為不可接受。 但是,我在與客戶的業務無關的客戶項目中開發了針對常見問題的創新解決方案,它也不代表整個解決方案的重要部分。

    示例:
    客戶想要與用戶角色綁定的頁面級別和字段級別控制。 ASP.Net的“開箱即用”功能具有文件夾級別的權限。 因此,我擴展了.Net的本機權限,並將該解決方案作為整個Web應用程序的一部分提供。

    我相信他們有權使用整個代碼庫(按合同規定),但是我覺得使用相同的方法論和代碼塊在將來的項目中完成此擴展是合理的。

    另一個皺紋:
    我是在被一家諮詢公司耕種的時候這樣做的。 您認為諮詢公司是否有權返回並複制該解決方案,並將其作為自己的產品進行營銷?

    • 2

      並不是的,

      我認為我們同意。 我的目的是確保您擁有代碼,並可以使用它出門。 如果您的開發人員正在為您編譯代碼並將其發佈到您的網站,則您沒有代碼。 我已經看到這種情況發生在圖形,Flash,.NET,Java等所有東西上,任何需要源文件並輸出的東西。

      道格

  2. 3

    我知道您來自何處,儘管我不同意100%的一切(我有警告),但公司應該始終牢記這一點。

    1.絕對。 不能足夠強調。 我曾經在一家小型公司工作過,但我因為參與其中而感到內crush。 我很高興能夠走出那裡。 客戶應絕對保留對其域的控制權。 如果他們有足夠的才幹,請不要授予開發人員訪問權限。 如果沒有,請確保開發人員至少可以通過某種經銷商界面來更改信息/轉讓域。

    2.我部分同意這一點,但是這取決於情況。 如果您要部署一個簡單的PHP應用程序並且需要低成本的託管,則一定要獲取LunarPages或DreamHost帳戶或其他內容並將其轉儲到那裡。 授予開發人員訪問權限。 但是,低成本的共享託管無疑有其弊端……尤其是對於更大的事情。 但是,如果您足夠大而擔心,您應該聘請可以處理此問題的技術人員。 顯然其中很多與信任有關。 如果可以,您肯定會在合同中放一些東西(限制等)。 如果開發人員不需要做任何花哨的事情,則第三方託管非常有用。 我承認我很痛苦,因為這確實是一種情況。 它還取決於站點的大小,所使用的技術陣列。 如果規模很大,可以考慮僱用一個員工。 並非始終是一種選擇,但是對於大件事情來說更安全。

    3.這也是我以前的公司所做的。 您可以離開,他們會給您HTML,圖像等…。 但沒有代碼。 該代碼基本上是一項租賃服務。 話雖如此,這裡有擁有和擁有。 我一直做非獨家銷售。 基本上,我需要能夠重用我的組件。 我對擁有它的客戶,做他們想做的事情以及讓其他人繼續研究它沒有問題……但是我不會抵押自己,每次都必須重新發明輪子。

    4.總是。 總是。 總是。

  3. 4

    不錯的帖子……做得很好,儘管我不同意一項(第2條):

    “很高興您的開發人員可以擁有託管公司,並可以為您託管網站,但不要這樣做。”

    儘管我理解其背後的邏輯,但在某些情況下強制將您的項目託管在其他地方可能會適得其反。 如果開發您的網站或應用程序的公司擁有他們更喜歡使用的託管平台,則他們使用它可能會更高效,更有效率。

    此外,從哲學的角度來看,如果您因為不想被“綁架為人質”而拒絕使用開發人員的託管平台,那麼這從一開始就樹立了不信任的基調。 如果您真的不信任開發人員來託管他們,那麼您真的想與他們合作嗎?

    我知道關於這種情況確實有很多恐怖的故事,但總的來說,我建議您專注於找到您信任的開發人員。 您可以利用開發人員的託管,並通過請求管理訪問權限和進行自己的備份來保護自己。

    同樣,好的帖子和非常有用的信息。

    謝謝!
    邁克爾雷諾茲

    • 5

      嗨邁克爾,

      這聽起來像是一個信任問題,但我不認為這是一個真正的控制和責任問題。 如果要在網站開發上投入大量資金,則必須確保可以控制其環境。

      在企業中發生的事情打破了關係,它們不必消極。 也許您的開發人員/公司獲得了很大的客戶,卻花不起時間。 也許他們改變了業務目標。 有時,他們的託管公司可能會遇到問題。

      我提倡您控制並負責託管,因此您可以依靠開發人員來完成他的擅長–開發!

      邁克爾,我非常感謝您的支持。

  4. 6

    我也是網絡應用程序開發人員,並且我認為您已經觸手可及。 一些想法:

    我認為大多數人都會同意(並基於以下評論)#1是絕對的。 永遠不要做。 曾經在任何情況下。

    我對#2的看法與其他開發人員的看法不同:我們拒絕為客戶託管最終產品(當然,我們為客戶託管測試服務器,以便在開發過程中對產品進行驅動測試)。 我們很樂意幫助客戶自行設置託管服務或尋找託管服務提供商。 我們根本不想從事託管業務。 如果那意味著放棄工作,那就這樣吧。 那裡有很多很棒的託管公司或基礎設施公司,它們可以以便宜得多的價格提供這項服務。 我們鼓勵工作的可移植性,即使客戶在未來數年內轉換託管提供商,我們也會盡一切努力來幫助託管它。

    對於#3,我們的客戶需要一言以蔽之地獲得最終產品的所有源代碼:對於解決方案中使用的第三方產品(例如Telerik或Component One的Web控件),我們可以為客戶提供編譯後的dll。第三方控件(例如網格)。 我們與第三方公司(我們提供給客戶)的許可協議禁止我們重新分發此類控件的源代碼,因為它是第三方的知識產權,而不是我們的知識產權。 使用這些類型的產品可以節省客戶端的開發時間,並且比從頭開始構建相同的功能要便宜得多。 在完成任何工作之前,我們先行執行此政策。 當然,如果客戶希望為自定義控件的開發付費(而不是使用第三方提供的預製產品),我們將提供該自定義控件的源代碼以及其他所有內容。

    當涉及到代碼重用時,我們事先就可以重用部分代碼這一事實,除非在完成任何工作之前明確地專門為客戶使用而開發(例如專有業務流程)。 如果客戶當然希望開發專用代碼,則可以使用它們。

    正如其他人所說,始終建議使用#4。 總是!

    問候,
    蒂姆·楊(Tim Young)

你覺得呢?

本網站使用Akismet來減少垃圾郵件。 了解您的評論如何處理.