(给程序员的那些事加星标)
原创:程序员的那些事(id:iProgrammer)
如果你接的项目,程序都做好了,
但客户最后却不付钱了,你会怎么办?
最近一个程序员小哥 Jason Werner 就遇到这样的烦心事。他接了一个活,但客户最后不付钱了。于是他决定,把项目在 GitHub 上开源了,遵循 MIT 许可。
链接:https://github.com/TrillCyborg/fullstack
6 月 9 日 和 10 日两天,Jason 的项目都是 GitHub 热榜头条,目前 Star 数已经有 3100+。
(2019-06-09 截图)
(2019-06-10 截图,已修改 repo 的名称)
Jason 小哥在 Readme 文件开头写得很清楚:
「这是我给一个客户做的平台。在和他签约后,我开始干活,然而他决定变卦不付钱。虽然有时候在生意上搞砸了,但至少我现在有一个很酷的样板。」
这个项目原本是做一个应用程序,用户通过这个平台支付租金,不需要通过支票或银行转账。
这个全栈项目,用到了哪些技术?
根据 Jason 的描述,
1、客户端:React Native;
2、服务端:NodeJS,GraphQL 和 apollo-server 在服务端和客户端之间传数据,typegoose 和 Mongo 做交互,账户系统则用到了 accounts.js 库;
3、动画用了纯 CSS 和 react-spring;
悲催遭遇,引发热议
Jason 还在程序员聚集的 Hacker News 和 Reddit/programming 子站发帖,引发热议。
「程序员的那些事」挑选摘编如下:
c0cky_ 的观点:
很抱歉你遇到这种事了,这是个教训。这种事经常发生。记得永远都要有合同,即便是几百美元的项目。网上有很多免费的合同模板。
另外,让客户提前预付一部分款项。
sacado 的观点:
我认为最好的解决办法是签订一份合同,写明:
项目款 50% 须预付,这部分不退(客户没有支付,我不会开工)
剩下 50%,项目交付后再结付;
在付清全部款项之前,知识产权属于开发者,因此在软件全部付清之前使用该软件是侵犯版权的行为;
如果客户不同意这些条款,我会感到非常不舒服。
fabricator:
干得漂亮!我之前也做过类似的事情。我是一个搞金属制造的,为一个客户做了一扇门,但她认为预付的定金就足够了。和她扯皮了几个星期后,她直截了当地说她不会付我钱。所以我就把门用车拖回来了。
cyancynic:
我已经有点像律师那样办事了,我需要有聘用定金(retainer)才开始干活。我从聘用定金给自己发报酬,如果聘用定金减少了,我就给客户发账单。如果聘用定金空了,我就不干活。 概不赊账!
GotenXiao:
想要拿到属于自己的报酬,无论是做自由职业者,还是开一个工作室,都推荐看看 Mike Montero 的演讲《Fuck You, Pay Me | 你特么的给我付钱》。
verisimilitudes:
我有点好奇,Json 的开源项目采用了 MIT 许可。这不就意味着他那个客户可以免费用么?如果用像 AGPLv3 这样的许可,即便他客户想继续用开源后的项目,Json 也能拿到钱的。
Jason 小哥回复了 verisimilitudes:
我用 MIT 许可,是因为我以后不会用到了。我一直在做这样的项目。如果你把这个作为你下次创业的样板,然后变富了,请记得告诉我。如果能帮助别人,我很高兴。
「程序员的那些事」特别提醒:
虽然 Jason 小哥在 readme 中提到了「签约」,但没有特别说明作品所有权的归属。故而有很多网友在讨论这一点。
vzaliva:
有点疑问,即使你没有拿到报酬,也并不意味着作品自动属于你。如果你是承包商,那就需要在合同中明确规定这一点,这样做才是明智的。
nostrademons:
我的理解是,如果没有「对价」(有价值的东西)易手,合同就是无效的。这就是为什么有些人以 1 美元的价格出售商品,而不是免费赠送,或者为什么有些高管们拿 1 美元的薪水,而不是免费工作。
因此,如果他真的没有从作品中获得任何有价值的东西,就好像合同从来没有发生过一样,知识产权的所有权仍然属于创作者。
最好在合同中明确这一点,以避免误解或旷日持久的法律纠纷。
「程序员的那些事」补充:
从 Jason 小哥发的帖子来看,他的接单经验似乎不多(要不然连定金或预付金都没有)。在 Jason 和客户签的合同中,没收到钱作品版权还归属客户,只要 Jason 不是昏过了头,应该不会同意这样的条款。
不管是否有相应条款,还好 Jason 的帖子中说了,他没有收到钱。因为如果 Jason 收到了部分款项,那他的开源行为,就是另外一种情况了。
除了有支持和赞赏 Jason 行为的人,也有些人质疑他的做法,比如:
xwdv :
我不明白,为什么有人会抛弃正直而这样做。如果客户拒绝支付报酬,标准程序是将他们告上法庭,然后让他们支付欠款+律师费。
相反,这个开发者这样做,就已经把自己列入了行业黑名单。不可能把敏感的项目交给他了。不要这样做。
当然了,网友 finkin1 就反驳了 xwdv :
抛弃他们的正直?我不太明白。如果开发者没有得到报酬,那么他们就拥有工作的产品,并且可以自由地使用它做任何他们想做的事情。这难道不是所有权的含义吗?上法庭是一个繁琐的过程,并不是每个人都愿意那样处理。
那些没有给开发者付费的客户,才应该列入黑名单。
往期热文(点击图片即可阅读)
关注「程序员的那些事」加星标,不错过圈内事
圈内事,我在看❤️