本以为“就差一个程序员了”,结果怎么都找不到合适的,我们怀揣着梦想去加入“大众创业,万众创新”的洪流,万万没想到技术成了最大的绊脚石。10x 开发者已被尽数抢光,培养技术团队如此费时费力,于是外包给山东软件开发公司就成了貌似不错的选择。
近几年软件众包百花齐放,临时救急还算可以应对,开源众包是其中不错的一个,背后的开源中国是国内最大的开源交流社区。
大一点的软件开发公司百度搜搜,中小型的可以问问熟人,比如孵化器的老板、活动的主办方之类,另外知乎上也可以悉心发现。
劣质软件开发公司带来的问题
曾经有个 10 年经验的粉刷匠,我觉得平淡无奇,就问他与那些年轻工匠比有什么不同,他指了指在用的乳胶漆、刷具、美工胶讲了许多门道,然后聊了聊大型的墙面要怎么刷才能平整,这让我意识到自己之前的发问是多么的失礼。
回到软件行业,一名优秀开发者可以爆发出 10 倍于平凡开发者的价值,他们被称为 10x 开发者。一个由优秀开发者组成的企业也会爆发出 10 倍于平凡企业的价值,就像 Supercell。
那么劣质软件开发公司到底会带来哪些问题呢?
1、无法攻克的技术难题
如果一个客户经理跟自己承诺什么都能做的时候,就应该竖起警觉了,当今社会分工是极度细化的,什么都能做这一现象本身就不自然。举个栗子,办宽带找电信,如果不小心办了移动宽带,高延时和峰值期低速真的令人很苦恼。
甚至有些不守信的商家因为技术难题终止履行服务时,还要按照已经完成部分进行收费,这样就赔了时间又赔了钱。
开发软件系统的背后是解决纷繁复杂的工程问题,任何关键细节的可行性都应该在项目初期确定,投入资金千万不是为了让软件开发公司去做研究。
2、遥遥无期的交付时间
Deadline 对于软件开发是必不可少的,几乎没有一个软件项目是不延期的。如果软件开发公司不提供 Deadline,或者有意回避 Deadline,这就是一个非常危险的信号。
软件开发确实存在一些不确定性,但不确定性是可以通过流程设计规避和缓解的。
3、失去控制的软件需求
在软件工程中最难确定的就是需求,由于沟通的双方所在的知识背景是如此的不同,有时同一个词在彼此看来完全就是两个意思,与软件开发公司的沟通不该只是一次需求文档的输入。
软件开发公司需要做到随时与客户沟通并产出无歧义的中间产物进行需求锁定,而不是由我们自己不断输入需求,一遍一遍改需求,最后双方都失去了合作耐心。
4、相去甚远的交付产物
见到最终成品的那一刻,对未来的规划彻底破碎了,这根本就不是想要的系统啊!
如何鉴别优质的山东软件开发公司
在数字产业中,相比渠道、基建、管理费用,软件开发费用其实是非常有限的,各大厂财报中研发投入几乎都在 10% 以下,请务必先量力留出可用的预算。
现在,我们就可以用一些试金石进行摸底了:
1、留意对方的关注点
需求是软件过程中最难确定的,比起成交,软件开发公司更应该关注需求,需求更应该是被“吸进去”。如果需求只能被我们“推进去”,这可能意味着供应商经验有限或者不重视客户需求,那么交付产物自然很难成为自己期望的样子。
2、输入需求后的动作
需求输入之后,软件开发公司应该提供一些无歧义的中间产物,比如设计稿或者需求单,重新对客户的需求进行确认与锁定。或者至少应该有类似的步骤保证开发成品会是客户所想。当一个软件开发公司直接就投入开发,可以想象自己能做的事情是多么有限或者多么被动。有效率地控制与忙得一团糟之间相差了一整个服务体系。
3、开发过程中的沟通
即使服务开始履行,需求也不应该只有一次确认机会,软件开发公司应该在恰当的时间安排与接受对需求一定程度上的调整。随着客户对业务和技术的认识在不断加深,软件开发公司应该具备配合变化发生的意识与能力。
4、测试技术团队水平
尽管我们可能不懂技术,但是依然有简单的方法测试对方技术团队水平。在合适的场合请对方可能参与本次开发的技术人员随机做几道 LeetCode 测试题。一般来讲,合格的开发者应该是无压力解决“简单”题的,可以以此作为参考。
5、其他
再有就是听一听熟人的口碑、看一看对方的案例,但一般软件开发公司都会粉饰一下公众形象,实在难以从这些侧面洞见到什么,了解就好。
最后,做企业、无小事,但是水到则渠成,希望每一位创业人都能找到合适的软件技术伙伴,如果觉得说得在理,还请点赞、收藏、或分享。