外包项目承接的 2 个教训~经验分享

2020-06-28 19:31:19 +08:00
 BeiTianSoftware

做了几年的外包技术提供商,和正在通过外包谋生的朋友分享 2 个经验教训:

###教训 1:

项目尾款结清前,除非是 双方合作很久并且相互信任了 。此时甲方提出将源码提交至他们的代码仓库,如果使用的是 Git,那么请注意下面的提交指令:

 “git push -u origin_JiaFang master” 

其中的 -u 参数 不能加,否则后续有新需求、改动,你如果在提交的时候图省事,直接用:

 "git push master"

那么代码会被默认推送到甲方的代码仓库,而不是你的

得到这个教训,是某一次的项目合作中,本来和甲方说好了尾款结清再推送所有源码。后来临近交付,甲方一直催,说大家都是自己人,不用这么担心,可以先把代码提交过来。这边也就同意了,但由于不清楚怎么添加多个远程 Git 仓库并执行推送,所以就问甲方负责人怎么搞,之后甲方给出了下面的指令步骤:

git remote add origin_JiaFang http://git.xxx.cn/2019/proj.code.git    
git add .
git commit
git push -u origin_JiaFang master

大部分人可能和这边当时一样,没多想就直接照着做了。 然后最近在做个项目,需要将项目代码迁移到另一个代码托管平台,不知道怎么弄,忽然想起来之前有个甲方提供的方法好像可以试试,这边试的时候发现好像 push 指令不加 -u 参数也可以,即像下面这样:

git push origin_anotherPlatform master

这边就好奇,这个 -u 参数到底是啥意思,为啥好像不加也可以,于是去网上搜了下,得到如下的解释:

-u 表示将本地的 master 分支推送到 origin 主机,同时指定 origin 为默认主机,后面就可以不加任何参数使用 git push 了。

卧槽,好在这边有个习惯: 即每次 push 代码到远程仓库的时候,都会指定远程仓库名,即下面的形式:

git push origin_mine local_dev develop

如果这边图省事,直接

git push local_dev develop

代码就直接到甲方主机了,并且可能此时甲方还未付预付款!

###教训 2: 如果有同行或者合作伙伴说要给你介绍个项目,你为了感谢他,也为了尽快拿下这个项目,于是就允诺项目完结之后给他一笔好处费,那这里要注意的是:

  1. 适度给好处费,送礼品是 OK 的,做一个知道感恩的人挺好
  2. 接上一条,重点是“适度”。如过一个总预算 11 万的项目,你允诺给他: 首先免除之前的欠款 4k,另外在项目完结之后再支付 1.5w ,总计 1.9w 好处费

上面的第 2 条中的例子,是一个 极其错误的做法。此举直接导致该介绍人决心直接自己招 App 开发,吃掉这个项目的后续单子,而这个介绍人,他们的团队之前是只做 Web 和 Server 端的。

你以为,他会因为你大手笔的好处费而认为你是个很厚道的人?

---- Too young too naive !

有句话叫做“食骨知味”,百度下就知道了。
尤其是,你们做的东西质量体验比他们好得多,利润也稍微比他们高的情况下,越要注意这点。

所以正确的做法是,可以给好处费,但不要太傻,像 11w 给个将近 2w 的好处费。最多最多,给个 2k 就可以(送等值购物卡也行)。

别问这边怎么知道的,照着做肯定没坏处。

1930 次点击
所在节点    外包
25 条回复
darksky
2020-06-28 19:49:39 +08:00
挺不错的
dioxide
2020-06-28 22:19:28 +08:00
期待分享更多经历.
cocoismywife
2020-06-28 22:33:31 +08:00
-u 不就是 up-steam 吗
deppwxq
2020-06-28 22:37:11 +08:00
支持一下
konakona
2020-06-28 23:19:41 +08:00
我感觉第一个例子,你想表达的应该是“只给当前已完成的”(一次)而非“后续每次提交都推送”(静默每次 push 都去了那个绑定本地 master 的远端仓库),对么……
kmdd33
2020-06-29 00:00:34 +08:00
upwork 推出了一个 contract 功能,类似于支付宝的担保交易功能,北美这边很流行的。
HolyBible777
2020-06-29 02:15:46 +08:00
谢谢楼主分享, 使我们避免入坑
BeiTianSoftware
2020-06-29 08:34:38 +08:00
@konakona 是的,就是钱货两清这个原则,我们做技术外包,货物==我们的技术产出,源码之类的
BeiTianSoftware
2020-06-29 08:35:42 +08:00
@cocoismywife 会顺带指定后续的静默推送远程仓库地址
hantsy
2020-06-29 08:42:39 +08:00
Git 这骚操作,还真少见。

一般我也就 origin ( Fork 到自己的账号下), upstream 两个源,其它特性什么开发都是自己 origin master 基础建立分支完成,比较 origin branch 和 upstream master 发送 PR 。
hantsy
2020-06-29 08:45:56 +08:00
@kmdd33 守规矩的国家 Contract 才有用。中国作外包基本都是靠关系,后面扯皮,我参与过国内的一些项目,基本尾款都收不到。
ivslyyy
2020-06-29 09:32:53 +08:00
很久以前我也参与过接活,做完了后,不断提新要求,语气也很粗鲁,感觉我是讨饭呢?然后说我做不到就不给剩下的钱了,好在也不多,我做的几百块前后端服务器数据库都包了
meathill
2020-06-29 10:05:34 +08:00
第一条太贱了……
BeiTianSoftware
2020-06-29 11:47:58 +08:00
@ivslyyy 这种后续直接不要做了
BeiTianSoftware
2020-06-29 11:49:57 +08:00
@meathill 也可能是甲方直接复制粘贴其他地方的命令步骤,但还是说明要谨慎一点
BeiTianSoftware
2020-06-29 11:50:54 +08:00
@hantsy 一般靠关系趟出来的业务(不是刚性需求),很容易这样
hantsy
2020-06-29 12:05:57 +08:00
@BeiTianSoftware 说实在中国做项目,关键看对方人品怎么样。

不要去去看他们公司装修怎么样,很多大城市的一些公司,表面都是做得很好,老板实际都是流氓一样。
foo123
2020-06-29 14:10:38 +08:00
针对教训 1,我觉得把甲方 master clone 下来,然后你们 merge 、commit 一次不就好了么,如果甲方不让 clone master 那么配置下 set-upstream 也行,push 完后重新配置下 set-upstream
BeiTianSoftware
2020-06-29 15:11:19 +08:00
@hantsy 所以靠谱的客户很重要
BeiTianSoftware
2020-06-29 15:12:35 +08:00
@foo123 当时没考虑这些东西的,只是甲方那边给过来的操作步骤提示,这边原封不动地就执行,这一点太草率了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/685409

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX