虚心请教项目开发的经验(想省钱,如果能更高效,咬牙也舍得)

我现在遇到的问题

因为公司实际需求,我们需要开发一个财税行业的CRM+智能做账与报税系统。市面上有参考对象,但我们的产品在借鉴的基础上,有较大的变化。
考虑到开发周期较长,以及后期较多的不确定性(要不断的花钱,所以前期能省就省),所以我们为了省钱采用的是将整个项目分成了两个模块(CRM、智能财务税务处理)外包给两个不同的团队。

我们现在遇到的问题是,我们现在缺乏架构师,仅有产品经理(而且还不是专业的产品经理,只是懂业务、懂需求、也略懂技术【十年前是VB程序员】的公司总经理来负责)。CRM系统开发方面倒没太大问题,智能财智系统这块采用Python,以及整个项目如何协调、如何更高效(如果能更高效可以咬牙多花钱)超出了公司经理的专业认知水平,这很可能导致整个项目进展滞后与底层架构、代码的不专业。

注:
1,关于产品开发,我们能提供比较细致,能精确到数据表字段的开发需求。整个项目的架构、逻辑我们也有相对清晰的认识,虽然现在和技术沟通没有太大障碍,但还是担心不专业而拖后进度,以及怕给开发团队带来困扰。
2,我们也考虑过招聘和搭建技术团队,但还是考虑到精力与成本而作罢。

我期待得到的解答
1,我们应该如何搭配团队?是不是必须寻找更专业的架构师或技术顾问?
2,如何最省钱的前期下,能更快的推进项目?现在负责项目开发的团队人很少,总共才4人。我们比较担心进展。
3,是不是可以继续寻找外包技术人员通过某些项目管理系统(譬如码云)等来充实项目开发团队?

给各位添麻烦了,期待您的灼见。

由衷的感谢!

处理过类似,成功经验没有太多,失败教训可不少。首先点明一点,省钱和系统又好又完善是冲突的。我只能在能省的省,不能省的不省前提下提供建议。
想到哪说到哪。
1、你们公司面临问题无非几个选项可供选择,一是购买成品,有后期定制和升级问题;二是自研,成本偏高;三是外包。现阶段只能选择外包。至少现在来说这是成本最低的一种方式。
2、外包,而且还是拆分了2个包2个团队。要想保质保量成本低,一要看团队,二要看你们甲方的把控。
3、团队方面,你们已经选择了,既成事实。如果是专职团队,建议提供办公场地,入住你们公司驻场开发。这样方便你们把控细节,降低沟通成本。
4、如果是兼职团队,就不好把控了,也没什么约束条件。只能多沟通,保证进度,验证质量。
5、不管什么团队,该多少钱就多少钱,该花的钱就花。要么你们很懂行,知道成本,要不然就人家报价,能讲价就讲讲,讲不下来就同意。千金难买我乐意,团队那边协调好了,不花钱也给你干的起劲,千万不要闹成一种僵局,你觉得你的钱花的冤枉,团队觉得干着亏钱,有断不开,只能应付了事。一个功能点,花心思设计开发和应付开发,出来的功能面子一个样,里子就不一样了,这都是实话,这一点和后期维护也挂钩。
6、第5点的补充,外包团队关系维护好了,省很多事,要维持一个良好的合作关系,后期维护就很轻松。重点是,人家外包接活是为了挣钱的,钱到位,服务不会太差。
7、两个团队的两个项目交互问题。可以做单点登录,也可以共用一套数据库。共用数据库开发,两个团队都会不乐意,这个可以排除。可以共用一套数据源,但是要区分库和表。如果两个项目需要交互,让每个团队提供标准的对外接口,通过接口调用,跨平台,和开发语言无关。
8、合作关系维护的好,事情就好商量,后期维护啥的可以考虑继续合作。成本看谈的怎么样。
9、你说的你们的需求做的很详细,验收标准以及合同,如果都很详细,那么质量也很好验证。可能需要找个测试,把系统验收一下。
10、交给各自团队继续维护,这个成本可能是挺高的,毕竟一个项目的生命周期最长的就是在维护。还是那句话,关系维护好了,加功能改功能都好说,否则就是算工期计成本,交维护费。
11、维护方面需要谈一下前提然后再谈组建团队。合同签订的时候有没有要求提供开发文档和源码。如果没有源码的话,维护只能是开发团队负责维护。
12、有源码的情况,系统后期维护,最好是招一个全职的开发人员,两个系统两种开发语言,招一个都会的最好,也可以招一个能学习的。不建议招兼职,因为兼职人员的时间不好把控,你要紧急修复问题了,时间上冲突。鱼和熊掌不可兼得。
13、以上几条,也解答了你问题的1、2点。验收的时候可以找一个专家辅助进行验收。外包团队内部的效率无法把控,只能多关注进度,多沟通。
14、问题的第3点,不建议你们自己再加外包技术人员。有时候1+1不一定会得到累加效果。要加人手,也需要团队各自加他们的人。否则增加沟通协调成本。
15、最后一点,共赢才是最好的结果。
PS:你们需要的更多是项目管理的一些内容,建议结合你们的实际情况,尽量严格按照项目管理的流程去管理项目,因为作为开发团队,也喜欢按照标准流程去开发。结合实际情况,有些流程改裁剪的就裁剪,不该省的不能省。

要想省钱又想系统完美,完善,这个是不太现实的,如果前期实在出不了太多钱,可能把系统分段进行研发,把前期必须有的(别说所有模块都必须有的话,如果是这样,那你只能多出钱了)开发出来即可,这里主要考虑好扩展即可,让研发团队不要写死,你外包给别人,很多外包团队往往都会给你写死的,不容易扩展的!所以这一块你要把控好,然后你要外包,一定要选择好语言,因为到后期你们肯定要有自己的技术团队来做后期的模块扩展研发,不可能总是要外包的。
至于你说的进度这个,在你把前期研发文档写出来以后,可以给研发团队给你报工期,已达到你可控的程度,不至于啥都不知道,当然如果要是有可能自己找团队来研发最好,因为这样你更能把控项目的进度。也能在研发过程中做一些调整

我自己也独立写过几套大系统,有一些经验总结,希望对你有帮助!

开发系统其实最重要的是需求的整理,敲代码都是很简单的事情,只要需求整理的好,敲代码就很快了。

对于你们需要开发的系统,不管是两个还是三个都一样,首先需要有一个知道所有需求的人,你们可以定一个人,然后其他人都全力辅助他,让他了解你们开发这个系统的背景以及用途,然后这个人需要根据自己了解到的需求写一个文档,画出简单的页面图形,文档中从注册、登录到各个功能的实现以及用途,特别是这个用途一定要标注清楚,还有就是各个功能的流程,比如商城系统中点击加入购物车功能,从点击到前端方法执行按钮变色页面跳转到后台数据改变添加和验证,再到最后的弹出提示,这些都写详细,文档写好之后一定要所有人一起过几遍查看有无遗漏或者歧义的地方。

开发的问题,有两种方案,第一是自己组建开发团队,第二就是外包;两种各有好坏,这需要看你们自己后期的规范发展;个人建议使用自己的研发团队,第一,自己的研发团队会完全按照自己的想法研发,有什么异常可以及时处理,后期延伸开发和维护很方便。外包的话,可能前期是投入很少,但是后期都是拿钱去补坑的。只要你需求文档做的好,开发就是傻瓜式的敲代码,非常之快。

个人之见,希望对你有帮助!

问题1:
需求,架构,进度,质量必须把住,
否则任何一项控制不好的话会导致你后期花费成倍。

举例来说,外包给别人的话,代码往往会写的很差,一个原因因为不是自己的项目,缺乏责任心,再一个是故意写的很差。
这样你后期就离不开外包团队,任人摆布了。

所以,你需要一个稳定的(不要中途跳槽),务实的(不要整花架子把项目搞死),能把握住需求,架构,进度,质量的项目经理。

建议你找两个合格的项目经理,分别负责两个外包团队,互相做备份,向你汇报进度。

问题2,问题3:
找到合适的项目经理后交给这个项目经理来回答。