[转]软件工程师的创业陷阱-接私活

本文转自:http://developer.51cto.com/art/201506/478484.htm

我本身是 Java 出身,写代码至今已超过 15 年,创业也超过 10 年,曾经外包过很多项目给别人,也接过很多外包的项目,现在不接了,只经营电子报发送平台,在二年内累积超过 5000 家企业用户使用。身处在创业圈,只要有创业朋友主动问过我的,我都会和他说如果你能不接就不要接 ( 当然我也知道,如果不是为了活下去,谁愿意接 ? ),因为这其中有太多陷阱,我分享如下给大家作个参考:

因为你写代码很快

通常会出来接私活的工程师大多是有些年资,也会有自己擅常的工具及 library,所以往往可以很快完成主管交代的工作,会认为客户的需求只要能在很短的时间内完成,这个项目就赚钱了。

【BUT】项目完成的快慢取决于客户的心情,只要他心情不好,就慢慢拖吧。你以为你的 Code 可以 reuse,最后你才发现真正被 reuse 的是你的肝。

因为你写代码很快,所以只要客户比价、杀价、压你结案时间,你就会心里想一下:嗯,只要我努力赶一下,应该没问题。

【BUT】,无形中你就牺牲了你的利润空间,只有赚到微利,你知道工程师估完成时间的准确率有多少吗 ? 准确率有多高,赚到微利的机率就有多高。

因为你可以赚每年的维护费

接私活是这样,只要你接了,之后的维护客户也很难不找你维护,只要慢慢的累积,每年都会有可观的维护费可以赚。

【BUT】,你知道大部份台湾公司有个不成文规定,同一套系统的维护费预算是每年递减的,客户会想:系统每年调整也该稳定了吧,都稳定了你也没作什么事为什么还要拿这么多钱 ? 接下来,你可能会想说如果客户想加新功能第一个一定先找你,试想一下,叫你照着三年前自己写的代码架构来新增功能,如果没有吐血,大概代表这三年你也没什么长进。不接总行吧 ? 偏偏你就这么有责任感,你不接客户也只能打掉重来请别人重新作一套,你忍心吗 ? 所以你觉得这维护费好赚吗 ?

因为你很能为客户着想

你因为很为公司着想,常常在开发过程中发现缺了什么或是主管规划错了,你会主动的加班把这些缺的部份补上调好,公司对你赞誉有加,如果接私活的时候以这样的态度来对待自己的客户,那双方合作的感觉一定很好。

【BUT】,你的客户当然好啊,因为你主动帮他加功能把系统调的更好,都不用再花钱啊。加钱 ? 合约当初就签好了,如何告诉客户要加钱 ? 况且这是你自己主动要加功能的。可以不加吗 ? 可以啊,但你可以忍受你的作品明明可以更好的而不让它更好吗 ? 如果是当初规划就错了,不调整能验收吗 ?

因为你知道客户要什么

因为在公司时主管常常也语无伦次,但你总是能分析出主管要的是什么,你也都能完成它,所以接私活时就算对方不懂技术,你也能完成他需要的功能。

【BUT】,你知道客户要的是什么吗 ? 不,你不知道,因为绝大部份客户自己要什么都不知道,而且你知道客户的上面还有老板吗 ? 你知道客户的老板要的是什么吗 ? 不,你不会知道,因为连他老板自己都不知道,这是最可怕的吗 ? 不,还有更可怕的,他们会告诉你他们知道想要的功能是什么,但你就是无法作出他们想要的。

因为你很能规划

你是个逻辑观念很好的人,只要主管告诉你他的需求,你可以很快画出系统架构图、代码架构图甚至是资料库架构图,准确率非常高,所以接私活的时候只要客户告诉你需求,你很快脑中就会出现各种架构图雏形。

【BUT】,你知道规格是谁开的吗 ? 对,是客户开的,因为他不开你就无法报价,如果他要你开,你也怕开完后报价他不接受就等于作白工了。那你觉得客户的逻辑会有你好吗 ? 所以通常你要作的是先了解客户的逻辑,然后找出矛盾的地方,然后提出更好的解决方桉,这一段来来回回就要花不少时间了,喔对,这一段通常是收不到钱的,客户会觉得你要接我的项目,你本来就要先来了解我的需求。

因为你有团队

因为你在业界有一定的人脉了,自己会写代码,再找个业务高手、美编高手,这样最小单位就好,大家可以分工,这样接私活的问题就变少、进行更顺利。

【BUT】,因为你有三个人,所以你只能接可以养活 >= 3 个人的项目,这种项目通常会稍大一点,因为以上所述种种原因会造成结案很慢,如果不结案人卡在这个项目拿不到钱,新的项目接不了,怎么办 ? 对,加人,所以你的团队变成了 4 个人,接下来你只能接可以养活 >= 4 个人的项目,这个时候如果来了个大项目呢 ? 对,你会陷入无限迴圈,直到你再也接不到更大的项目。

因为你想用客户的项目来练兵

正如阿甘说的:人生就像一盒巧克力,你永远不知道下一个会是什么口味。所以你永远不知道下一个项目在那里,但当你开始有了团队,每个月都要付薪水时,这时来一个不大不小的项目,反正也不知道下一个项目何时进来,这个刚好可以付团队薪水又可以拿来练兵,这也蛮好的。

【BUT】,接私活有个特性是你接了这个项目就会降低接下个项目的能力,因为人力及时间总是有限,如果你因为接了一个小项目造成大项目没人力接,你说大家气不气 ? 不幸这个小项目的业主特别麻烦 (基于上述原因,你知道这机率还不小),那你磨练团队的可不是他们的技术,你磨练的可是大家的身心灵啊,慢慢的就会有一股将相无能,累死三军的声音传出来了 … 你为何不自己开发个小产品来练兵呢 ?

因为你应对客户有一套

你的个性很好,以前在公司的时候都可以和厂商或客户相处很好,可以接的接,不可以接的也会挡,如果出来接私活和客户应对对不会有问题。

【BUT】,客户百百款,你对客户有一套,客户对你可是有好几套,他可以议价、杀价、压时间、加功能、拖验收、会计不见、老板出国 …..,最后怪你为何拖这么久再扣你一笔钱,说了一句:你们不是专业的吗 ? 开发阶段你们是朋友,验收阶段你们就变甲乙双方。

因为你从来不缺客户

你从来不需要自己去陌生开发,客户都是透过朋友介绍或是客户转介绍来的,这比一般公司好太多了,别人想要客户都还没有呢。

【BUT】,你有没有想过,你有上面所述种种优点,重点是你还比别人便宜,别人不找你,我都想找你了。所以你赚到钱了吗 ?

因为你都有签合约

为了避免以上不必要的问题,每个项目你一定都会签合约保护双方,凡事照合约走就没问题了。

【BUT】,对方有法务你有吗 ? 对方有钱你有吗 ? 真正要打官司你打的起吗 ? 你真的有把握合作过程中你完全没错 ? 合约里有办法规范到所有的功能细节、操作流程 ? 合约订了一大本,你客户会和你签 ? 所以,你真的能照合约走吗 ?

你最近一次开心写代码是什么时候

在我和你有一样能力的时候,我曾经说过一句话:我希望我死前的最后一个动作是按下 【Enter】,我写代码的动力不是赚钱 ( 当然赚钱很重要,但如果只是赚钱,我大可去作直销、卖保险、到大公司上班 … ),精准来说不只是赚钱,我的动力来源来自于我写出来的代码可以让非常多人使用,真正帮助到很多人,而且很多人都说好。( 相信我,如果你真的作到这一点,其实你也赚到钱了 )

但自从我接私活之后,我最多只能帮助到我有限的客户,说精准一点也许就只有真正使用系统的某些人,也只有这些人会说我好,其它人也只会认为那是你该作的,但只要最后验收时他离职了、他生气了、一切努力就没了。所以那时我只有二个时候点是开心的,一个是收到订金、另一个是收到尾款,中间一大段时间是痛苦的,当同时多个项目进行,其实所有时间都是痛苦的。我还记得我那时常说的一句话:收到你冷冷的支票,我的心就觉得暖暖的。

当然一定有人接私活接的很好,只是别人的成功很难複制,但别人的失败可以避免,如果你能避掉我以上所说的陷阱也无法保证你能成功,因为这也只是冰山一角,我已经离开接私活的状态很久,很多事忘了也不想去想,只是希望你在决定接私活前,仔细想一下,你真的只有接私活这个选项吗 ? 如果可以,我会建议你应该要开发自己的产品及服务。

时间: 2024-10-20 11:18:57

[转]软件工程师的创业陷阱-接私活的相关文章

软件是青春饭老了就死路一条?(职场新人的职业发展路线/如何做职业规划?/软件工程师的成长路线/)

软件是青春饭老了就死路一条? 当你工作三五年,工资达到一万五之后,就会遇到一个瓶颈期.再往后工资想要再涨就不那么容易了,自己也会考虑自己要怎么办,就会有一个转型的改变.职场只有最开始三五年看技术,后面的更多不是看技术,是看心性,看机缘,看眼界,看前几年的积累. 有人说,软件是吃青春饭的,是不是老了以后就做不了了?其实任何行业都跟年龄有关.你能找出一个是跟年龄无关的行业吗?年龄轻年龄老都能做的你能找到一个吗?不可能的.去工地搬砖也是吃青春饭的,你见过八十岁还在工地搬砖的吗?搬得动吗?你愿意去搬老板

软件工程师需要了解的网络知识:从铜线到HTTP(一)—— 前言

转自:https://lvwenhan.com/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/485.html?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io 写作目标 本文面向中国互联网届众多的"应用软件工程师",确切地说,面向 web 后端工程师(Java.PHP),web 前端工程师,移动开发工程师(iOS.Android).本文将从铜线讲起,一路讲到 HTTP,为

《构建之法》学习(3)——软件工程师的成长

<构建之法>学习(3)--软件工程师的成长 1.1个人能力的衡量与发展 积累软件开发相关的知识,提升技术技能 积累问题领域的知识和经验 对通用的软件设计思想和软件工程思想的理解 提升职业技能 实际成果      衡量软件开发的工作量和质量 项目/任务有多大? 花了多少时间? 质量如何? 是否按时交付? 1.2软件工程师的职业发展 职业发展--考级之路 职业成长--Steve McConnell版本 职业成长--大公司版本 职业成长--自我评估 1.3技能的反面 通过玩魔方的例子说明了技能提升的

如何成为合格的软件工程师

一个成功的软件开发团队里,首先要确保团队里的成员是合格的软件工程师.那么该如何成为一名合格的软件工程师呢?这是我们要考虑和学习的.为此,我们需要先了解一些基本概念和技术. 既然是一个开发团队,那么绝大部分的软件都是由多人合作完成的,大家的工作相互有依赖关系.所以需要单元测试来保证整个开发过程各个模块的正确性,单元测试可以保证自己负责的模块功能定义尽量正确,模块内部的改变不会影响其他模块,而且模块的质量能够得到稳定的.量化的保证.书上介绍了一种用VSTS写单元测试的代码: [TestMethod(

《构建之法》---软件工程师的成长&amp;两人合作

本周学习了<构建之法>第三.四章的内容. PSP对软件开发的工作质量的衡量简单指标为:项目/任务有多大.花多少时间.质量如何.是否按时交付共4个因素.而要成为一名合格的软件工程师,要对上述4个因素尽量在用户需求上做到尽善尽美. 软件工程师的职业发展有: 职业发展---考级之路 计算机等级考试 (http://sk.neea.edu.cn/jsjdj/index.jsp) 全国计算机技术与软件专业技术资格考试 (http://www.rkb.gov.cn/  ) 职业成长---Steve McC

JAVA软件工程师笔试试题

JAVA软件工程师笔试试题 (考试时间:120分钟 试卷分值:150分 ) 一. 逻辑推理题[10分] 1.甲.乙.丙.丁四位同学中有一位同学为海啸灾区捐款1000元,当老师询问时,他们分别这样回答: 甲:这1000元不是我捐的 乙:这1000元是丁捐的 丙:这1000元是乙捐的 丁:这1000元不是我捐的 这四人中只有一个人说了真话,由此可见这1000元是谁捐的( ).[2分] A.甲 B.乙 C.丙 D.丁 2. 甲.乙.丙三人是同一家公司的员工,他们的未婚妻A.B.C也都是这家公司的职员.

一位软件工程师的6年总结

一位软件工程师的6年总结 一位软件工程师的6年总结http://www.jsjbbs.cn/thread-3001-1-1.html(出处: http://www.jsjbbs.cn/) “又是一年毕业时”,看到一批批学子离开人生的象牙塔,走上各自的工作岗位:想想自己也曾经意气风发.踌躇满志,不觉感叹万千……本文是自己工作6年的经历沉淀或者经验提炼,希望对所有的软件工程师们有所帮助,早日实现自己的人生目标.本文主要是关于软件开发人员如何提高自己的软件专业技术方面的具体建议,前面几点旨在确定大的方

推特公司对软件工程师高效工作的建议-转载

“我们很难测量软件工程生产力,”推特公司工程效率部的技术总监彼得.塞贝尔说,“但是我们肯定能破坏它.” 在一场脸谱网举办的大会上,塞贝尔这样说道.这场大会集结了1800名来自约400家不同公司的软件工程师,他们开发的应用软件可能会被数百万甚至数十亿人使用.它讲述了一个关于推特公司软件进化升级的故事:一个有许多不同程序语言的babel,像Ruby, Java, and Scala,因为需要各类工程师一起协作,所以很难完成,但最后(大体上)完成了. “作为一个知道如何去升级软件的行业,我们也知道如何

vc++视频教程 软件工程师培训课程 VC知识库大讲堂

下载地址: http://www.enginedx.com/78/m299/ <C/C++软件工程师实战能力集训大纲>的现实意义在哪里?]         1.作为一个C/C++软件工程师,需要掌握的东西真是挺多的:        2.纵观目前中国的C/C++ 人才队伍,能满足以上能力要求的,只在少数.很多用人企业感叹,社招的人员能力参差不齐.普遍现象是他们只对其中的某一小部分内容有一个熟练的掌握,而对大部分的内容一知半解,甚至一无所知.这也是直接导致国内软件业开发实力普遍不强的最重要的原因.