独立开发对于软件开发者来说是一次解放性的经历,很多人都渴望创业,做自己的老板。选择独立开发之后,工作内容发生了很大的变化,不再是单纯的编码,写文档、寻找合作伙伴等等都成为工作内容的一部分,而且随着负担的加重,困难会越来越多。
一个小小的失误当然不会立刻弄垮你公司,但是随着失误的次数越来越多,代码量越写越大,会突然冒出来一堆莫名其妙的问题,使你以前做的工作变得一文不值。
这里列出了独立开发者在创业过程中经常会犯的14个错误,以及如何能够有效的避免这些错误,祝你好运!
独立开发误区1:只关心写代码忽视其它
高质量的代码固然重要,但是编码是一项工作而不是一份生意,所以你一方面要着眼于提供最好的代码,另一方面也要在完成代码之后做些其他的工作。
程序员在写代码的时候是很容易专注于眼前的工作的。相较于不停的在市场,销售,设计,管理等工作之间切换,编码的效率非常高,但是这些工作却是你成功的基础,完成工作你会得到报酬,但是找到更多的工作机会能使你的公司得到好的发展。
独立开发误区2:忽视品牌的塑造
你可能还没有意识要塑造品牌,但是即使你现在只是以外部承包商的身份为唯一的一个顾客工作,你已经有了一个品牌,而且这个品牌就是你自己。一定要记住:品牌是识别标志,是品质优异的保证,品牌能代表一切开发者认为重要的东西,但是一定要有一个准确的定位。
怎么呈现你自己,你的工作,你的团队,甚至你的开发理念是一个品牌概念的基础,从你使用的网站到递出去的明信片,甚至于在休息日与某人讨论工作,都不要忘记塑造自己的品牌,如果你还是对自己的品牌概念模糊不清,你的公司迟早会遭遇挫折。
产品越特别,越容易把你和其他人区别开,你也越容易识别和定位潜在的客户,更重要的是一个清晰的品牌能够使顾客更容易识别和定位到你。
独立开发误区3:试图满足每个人的需求
顾客满意度是独立开发者成功的关键,但是试图满足每个人的需求却是不可能的,这样做的结果就是任何人的需求都无法满足。但是这并不意味着尽最大努力为顾客服务是不对的,而是不要过度许诺能力范围以外的工作,即使那是顾客的需求。努力做工作记录,在有特殊需求的时候能够准确评估自己的能力,这才是一个正确的选择。
要涉猎不同的领域,而不是在一个领域专注,使你时刻具备快速学习新工具的能力,记住:你经营的是一个公司,在编码的时间之外,需要花费更多的时间培养一个科技品牌。
独立开发误区4:错误的市场定位
渴望走出手工操作的小企业应该是独立软件开发者最理想的客户,因为你毕竟羽翼未丰,没有足够能力完成大客户的需求,小客户可以从自动化中获取最大的利益。但是,小客户又是最不信任高科技的人,他们的资金也不充足。所以正确的市场定位更像一门艺术而不是科学。寻找一个最适合你公司的市场的过程是复杂的和不稳定的。野心,问题,需求,技术差距,利益以及时间这些东西从外部是看不出来的,所以你必须与不同行业的人交谈以获取这些信息,在这个过程中,你还要评估企业的资金实力,如果它无法为你的服务买单,那么整个过程都是毫无意义的。
衡量无畏更多的是一种直觉。软件系统能够改变业务操作的流程,你确定你选择的目标市场真的能接受这样的改变吗?对于许多行业和组织来说,改变是非常可怕的。
独立开发误区5:没有一个有能力的公司带头人
每一个软件项目都应该有一个权威人物,,他不仅能够支付项目进行中的各种费用,而且有能力纠正你的错误,拥有这样一个人,并且和他打好关系是至关重要的。但这样的人通常不会出现在项目会议中,甚至不会被与会者提到,部门经理或者高级管理人员都认为自己有足够的权威,足够的预算把项目完成,实际上并非如此。
谁有权签发支票,谁就是项目的领头带头人,在一些公司里,部门经理有支配预算的权利,所以他们就是整个项目的负责人,而有些公司里面,隐藏在幕后的高管们才是真正的项目负责人,所有的项目支出都要经过他们的审批。这样的情况并不罕见,尤其在一些小的私有企业里面,公司总裁才是真正的项目负责人,而财务或者老板才有支配预算的权利。
独立开发误区6:无法建立或者维护一个销售渠道
定制软件的销售是一个缓慢,顾问式的过程,客户心里可能有问题,但是他们不确定问题要不要解决,然而一个新的决定可能会改变整个项目的方向,而且项目越大,做决定和调整需要花费的时间就会越多,即使这些客户的素质足够高,沟通能力足够强,做这样的一次调整也要花费几个月的时间。这意味着你必须时刻添加新客户到销售渠道里,并且评估项目需要的时间和最终的结果,这些数字对销售管道的流通至关重要。假设你需要一个客户来支持项目半年,并且在6个月时间里每600个客户结束一次销售,在这个简化的例子里面,如果每个月的客户不足100个你的销售就会出现问题。在现实里,这个数字更加复杂,但是项目架构是一样的:客户进入,时间花费,产品销售。要时刻追踪时间限制,截止期限,平均交易量以及完成的百分比,用这些数字来计算未来的资金水平,综合这些数字减去成本和项目终止的风险,能够得出一个结果分析的指标,如果这个数字是负的,在不增加新的客户的情况下,你将必然会面临资金流不足的风险。
独立开发误区7 未能分散客户
大多数独立的软件开发者都只服务于一个主要的顾客,这是发挥自己本领的好办法,但是却不是经营一个公司的好方式,因为一旦这个唯一的顾客出现任何状况,都可能给你带来失业的危险。另外,如果只有一个客户,这个客户会把你当作自己公司招聘的另一个员工,而不会当作一个有价值的合作伙伴,所以有3个中等客户,或者20个小客户会比一个大客户要好,因为20个客户同时终止合同的事情一般不会发生,为一个人服务是份工作,为多个人做不同的事情,获得多份收入就变成一份事业了。
独立开发误区8: 没有考虑税收和开销
美国的大多数软件独立开发商都是法定公司或者有限责任公司,并且是直通公司,这就意味着你必须考虑到税收,而且在年底的时候要交的税会更多。即使你的公司只有一个人,你的财务状况仍然会变得很复杂,尤其在年底的时候,所以需要一个会计来帮助你,但是这样做的前提是你要制定一个严格的财务纪律。
独立开发误区9:资金回收不及时和现金流过少
大多数独立开发商都储备很少的现金流,这样会使本来很小的一个支付问题转变成一个大的公司危机。
事实上,客户并不按时付钱的事情经常发生,这会使你与客户之间的关系变得非常有弹性。但是如果你总是遇到不明原因的延误,行政误放发票,等签支票的人等等这样的事情,说明你的客户公司内部出现了问题,而且没有告诉你,这时就需要格外注意了。这可能只是客户临时遇到的问题,但是如果你的公司之前没做好准备,你就会一直处于被动,所以一定要努力做好资金储备,关注融资,熟悉客户的支付流程,都涉及到谁,支付时间需要多久,如果这个流程出现变动立刻做出响应。
独立开发误区10:过早的雇佣员工
创业之后面临的一个主要问题就是什么时候雇佣员工。很多人都容易过高估计新项目的规模和确定性,以至于踌躇满志,雇佣很多廉价的人才来帮忙,因为他们确信,增长的唯一方式就是增加。但是这样做在时间和预算上的开销会明显增加,而且会带来很多问题。你必须改变流程来培训新员工,管理他们的工作,你的销售额因此也要增加,才能达到盈利的目标,更重要的是你交付给客户的产品质量也会受到影响,所以雇佣新员工还是要慎重。
独立开发误区11:认为营销有捷径可走
大多数的独立软件开发者都有能力解决项目上的问题,也能够编写代码,交付产品,但是他们中的大多数都不喜欢营销方面的事情,所以很多人会将这些事情外包出去,我的建议是外包可以,但是在公司起步阶段,最好不要外包所有的事情。
没有一种营销方式可以保证你的项目一定会有客户买单,因为每一种开发技术和平台都对应着不同的流程,当开始一个新项目的时候,把它当作远期目标来处理,集中精力做有把握获取利益的工作。
在评估营销策略的时候,就像选择一种新的编程语言一样,需要一种批判性的态度,通过测试,设定一定的基准,然后判断它会带来怎样的影响。切忌频繁的更换营销策略,因为即使被证明是最可靠的销售技巧也需要时间和调整,所以设定一个现实的目标和合理的时间表,避免理解新策略之前放弃现有策略。试想如果每个月你都在为最流行的产品编写代码,到最后哪个产品都无法完成,然后公司面临的结果就是倒闭,这样的逻辑同样适用于营销策略。
总之,不论你是否喜欢,都要从最基本的营销学习开始,按照学习曲线努力,除此之外再没有好的学习方式。
独立开发误区12:不重视文档,总结,自动化的过程和系统
在软件开发过程中,大家都觉得流程和文档非常浪费时间,甚至有人因此而辞职,但是对于独立软件开发项目来说,遵循流程和写文档是至关重要的。很多人可能已经遵循一个流程工作多年,还将这些流程直接或者间接的教给他人,那么现在最好的做法就是把这些流程记录下来,与有经验的人讨论并且改进它们,最终实现流程的自动化。你可能整天都在向客户鼓吹自动化的好处,但是自己公司内部的系统都还没有实现自动化,以至于项目的结果都很难预期,浪费很多时间。对于一个真正的企业家而言,时间是最重要的不可再生资源。
纯手工的系统很好启动,但是去除繁琐和重复性工作的自动化系统却会减少所有流程之间的摩擦。针对非生产性时间的推移实现自动化,从这种意义上来说,自动化承担了所有的事情,包括全自动化软件系统,虚拟助理,私人助理,外包专家,也可以是这些功能的结合。
独立开发误区13:不重视售后支持
售后支持不好是很多客户更换服务提供者的一个重要原因。当然对公司来说,需要的售后支持越少越好,但是具备一个好的售后支持不仅可以在销售和交付之后为你维护一个好的客户关系,而且客户会成为你的布道者。
出色的售后支持不仅是随时为客户解决问题,还要让他们了解系统,教他们如何使用并且修复遇到的问题,告诉他们一切他们想知道的信息,使他们相信选择这个系统是为他们公司的业务做出了正确的选择,因为你为客户建立的就是他们的未来。可能你不会一直做一个项目,但是你的客户却一直要使用你提供的软件,所以要支持他们的决定,认可他们做事的方法,把他们的事情当作自己的事情。
独立开发误区14:遇到成功的瓶颈
作为一个独立的软件开发者来说,每一个决定都是非常重要的,因为业务是属于你一个人的,所以你的每一个决定都要做的慎重。随着公司的发展,需要决定的事情越来越多,哪个项目值得做,怎样平衡工作负载,去哪里做新的调研,这些决定如果做不好的话,会随时搞垮公司。
如果有一个明确的指导方针,职责和流程,合作伙伴会帮你分担很多,即使你是一个事事都要亲历亲为的人也会得到减负