交流很重要,沟通无极限
现在想想开发软件都有整整12年以上了人生最美好的时光都用在这个上了,在这期间有不少酸甜苦辣,有时候真不好意思说自己是35岁的老程序员了,有尝到过创业失败的滋味,有过人生的困难时期,多少遇到了很多贵人相助,日子就一天比一天好起来了。其实每天怀着感恩的心里,生活就一天比一天好,心态也会越来越健康了。
以前都是亲自去项目现场开发程序,例如承接了苏州、合肥、宁波的软件项目,那就需要在3个地方轮留奔波,到处是救火的状态下进行软件项目,稍微时间长了人就会很累,而且几个城市之间跑来跑去路上时间也浪费很多,差旅费用也不会少。
现在年纪大了都是2个孩子的爸爸了,老婆大人也不允许成天在外面跑了,入行十来年了,总需要各方面得到提高提高了。现在就从如何不去现场也能控制好软件项目的进展,小结一下自己的经验体会。
1:首选需要有良好的朋友圈子,这个朋友圈子不只是你好我好,大家吃吃饭、喝喝酒那么简单。这样的酒肉朋友虽然也需要,但是这些朋友大多事业上帮助的意义不太大。我们需要在事业上有互补性的,可以组成一个利益链的朋友关系。例如有些人有行业知识,没软件技术能力。有些人能承接项目但是没开发能力,跟这样的人能形成一个稳定的生态利益链的朋友圈子。而且有比较长期的交往会有一定的信任关系。不是别人便宜几万就能选择别人合作,只要不贵上几十万都会跟你合作的朋友,而且每个人都知道自己出处于利益链的什么位置上。
2:你是再厉害的程序员,也没有三头六臂,很多事情都需要有人去做才可以,你不大可能把不同性质的,不同地域的6个软件项目能同时完成了,再牛的人,思维也不是神仙,一般同一时刻能管控好2个软件项目都是很牛的人了,一般人在同一段时间里专心能做好一事情是靠谱的。否则很容易疲于奔命状态了,不容易深入到每个项目的细节里去,所以你需要有很多同行朋友帮忙才可以,基数非常大后,才会有合适的人选出现,否则大家都在忙自己的事情,项目紧急需要人员时很难抽出合适的人,所这几年积累了上千个同行的朋友资源,有良好的庞大的同行朋友圈子就是做软件开发项目的必要准备条件。
3:其实你在网上来个兴趣爱好群什么的,很快可能有1000个人加入,但是这1000人是根本就毫无意义的人,可能真正有价值的人10个都没,很多人是兴趣爱好者,很多人是想学习技术来的,或者有些人纯粹是无聊加入这个群的,你需要的平时有空的,有专业技能能的朋友圈子,这些朋友能独立干事情,有想法,有思路,有能力的,而不是饭桶一大堆,本来工作都找不到的一大堆朋友,他们在很短的时间里能协助你开发项目是很难的。
4:一天开发好用户管理,一天开发好角色管理,再一天开发好模块管理,然后7天开发好业务功能,10天开发好一个软件项目,基本上是不现实的,软件开发都需要有很长的开发周期,这些通用的模块都会稳定好用,所以很多急急忙忙开的软件公司大多结果就是倒闭,因为很多时间都耗费在一些基础性的功能维护完善上了,所以我们开发任何一个软件项目时,都需要有一个稳定成熟的工具,通用的部分都是兼容的,不需要任何开发时间,开发成本了才可以得到有效控制,有要一个稳定的成熟的开发平台。例如上海出差一天,住宿费接近300元以上,在客户这里多开发一天就是一天的成本,若多出差15天,光住宿费4500元就没了,这些直接能看到的,还有很多其他费用也会多很多。
5:需要组织很多人员,能对你这个稳定的平台都有比较深入的了解,了解其中的分层思路、代码生成器的思路、设计表的思路、整个业务系统是怎么搭建的、逻辑先后顺序是什么、主要注意哪些东东、编码风格是什么、标准的例子程序在哪里的等等,若这些工作都把人员召集好了,再做一次统一的技术培训,那可能需要培训1个月时间才能培训好,若这些培训工作都提前做好了,那需要人手的时候,就不需要再耗费1个月的培训指导了,直接到现场的第2天就可以顺利开工了。若项目组有3个人,给3个人培训1个月,这1个月的工资成本,还有培训耗费的精力也是不少。所以需要有对统一的开发平台有非常深入了解的开发队伍。从5年前就推广统一开发平台的思维所以有接近500多个付费客户,随时想找5个开发人员,总不是什么太难的事情,大家心里也都知道哪些人是能干活的、哪些人是技术过硬的、哪些人是靠谱的、哪些人是有精力的、哪些人只是水上漂的、嘴巴能说但是不能干活的,需要能深入了解虚拟队伍的人员的情况才可以快速组建一个团队。
6:项目的开发过程中,很多细节都可以不用去抓了,一些基础性的东西都不用去耗费精力了,就可以有精力抓项目的重点了,例如架构是否合理,数据库设计是否合理、客户还有哪些需求没明确、各个模块的进展如何、测试进展如何、费用支付情况、客户的反馈情况如何等等。其他项目中遇到的细节都可以交给项目经理去负责了。
7:同一套代码,经常会需要遇到不同的数据库的场景,公司里很可能是用sqlserver,上海的客户用mysql,苏州的客户用oracle,所以有一套能灵活支持多数据库的架构,开发各种软件项目会顺利很多,只测试完善一套代码就可以了,否则,测试3套代码,同时改进维护多套系统,那会耗费非常多的精力,这可能是超出一个人的维护能力了。所以若想靠各种软件项目生存发展的团队,必须有一套代码灵活支持多种数据库的组件,又简单又好用的处理多数据库问题的解决方案。
8:一个团队往往会有很多决策问题,有的决策可能是致命的,有错误的决策很容易时整个团队耗费N多曲折的力气,但是收获可能很少,有10多年的软件开发经验了,相对容易能了解客户真正需要的是,客户的重点关注的是什么,我们能做到什么程度,哪些是重点,哪些是次要的,特别是技术上的花拳绣腿通通拒绝,各种各样玩技术的浪费时间的都拒绝,以达到客户想要的效果为最终目标,顺畅的沟通,及时的指导,准确的决策,这个也是项目成败的关键。
9:不现场去管控的,就需要有靠得住的人,信任的朋友一起干活,这些信任靠得住不是一天两天能培养出来的,特别是负责商务的人,也是完全靠得住才可以,否则总会有一些小动作,要么想挖你的人,要么想偷你的技术,总谁会遇到各种不顺利,只有一些讲信用的朋友在一起,才能事情做得比较顺利。
10:临时性组织的软件项目,往往开发周期也就1个月左右,绝对不允许陌生人去做项目的,这个没办法按试用期来用人,只能用熟练的开发人员,菜鸟找过来干活,安装配置开发环境1周耗费进去了,了解项目的技术路线等1周耗费进去了,再熟悉数据库,技术规范,例子程序,又1-2周耗费进去了,再做一个超级简单的程序也要反复讲个10遍8遍的客户需求注意事项,好不容易做好,再检查一下就是到处错误,修正这些错误又一周进去了。等项目都快结束了,就那么几个简单的页面也没弄好,气死人不偿命,而且还要发1个月的工资才可以,还不如自己动手写了,项目开发用菜鸟是最耗费的精力、成本也是最高昂的。
11:我们是专业从事销售软件开发平台的,给同行的第一个印象就是来赚人家的钱了,都很排斥,很反感。所以需要改变形象,赚了别人的钱也要让让别人赚钱,今天我赚了你的钱,明天让你有机会赚我的钱,例如我们的平台每次有人有改进、有贡献、有付出,我们就支付辛苦费,经过几年的良性运转,开发平台越来越稳定了,Money也开始流动起来了,赚了的一部分收入又投入到产品的改进上,谁有能力改进组件就给谁支付辛苦费,当然首先考虑的就是购买组件的开发人员。最早一批500元购买的开发人员,若稍微对系统用心了,仔细认真改进了,都赚走了上万元的辛苦费,虽然赚1万元的辛苦费也不算多,但是总比没的赚好,闲着也闲着。当然现在也没500元的这个价位了都涨价了。这次去上海开发此项目的2位兄弟一个是湖南长沙的,另一个是广东惠州来的,我们的网也撒向全国了。
12:其实做什么事情,拿出多一些诚信,拿出多一些真诚,坦诚交流,广交朋友,心态好了路就更宽了,更容易进入人生的良性循环了。
13:做软件项目需要多找牛人,跟菜鸟是可以大谈学习交流、如何提高等等,而不适合指派开发软件项目,开发软件项目还是需要找熟练的高手合作,不想折磨自己不想让自己的生活质量严重下降还是需要找高手开发软件项目,省心省事,没什么太多可操心的,稍微指点几下就可以了,否则找菜鸟就是找死。