其实我们每个程序员都有一个梦想,那就是打造一个完美的软件开发框架,只可惜这个梦想太难实现了,并不是我们不努力而是只能责怪时代发展太快了。
C#快速开发架构推销过程中遇到的各种困难小结:
1:我们的思维、对业务的深入理解程度、对专业知识的深入程度往往没老外那么深,分工明确、职责明确、定位明确都难做到,容易思维混乱,开发框架经不起推敲的更多一些。
2:软件技术发展实在太快了,你刚掌握好一个技术,另外一个更新更牛更先进的开发技术又出来了,一个人真的很难一直能保持技术领先,而且是全方面的领先,不可能比专业技术公司做得更强大,例如比微软更强大、比IBM更强大、苹果更强大,人家是几百几千的全球精英团队,我们只是普通老百姓一个人。
3:软件的开发周期相对较长,系统又要稳定、又要好用、又要性能高,需要一个很长的成熟期,在这期间难抵挡各种社会的诱惑一直埋头精心完善维护软件系统,也容易闭门造车。
4:技术人员往往谁都不服谁,全领域做得都比任何人强大太难了,每个人都有自己的侧重点、自己的优势,自己的独门绝招,所以都看不上别人的系统的整体优势,往往更看自己精通的局部功能对比。
5:一个良好的系统架构与一个能将就过得去的架构,从公司管理层领导的角度看起来效果并不明显,因为修修补补照样可以用用,性价比差距不大,我们的业务也不是多如毛,很多时候无所事事的时候也很多,修修补补反而还有事情可干了。
6:软件架构太复杂了,菜鸟都无法上手,甚至高手也难理解,真正的高手又不需要什么框架等,自己都有能力打造起来,所以销售的市场很有局限性,只能销售给经济良好,又不想耗费时间自己研究琢磨的软件类或者接近有软件业务的公司推销。
以上几个比较重要的问题导致专门销售软件系统架构的公司都很难生存发展,但是已经投入了很多精力了就难放弃这个领域了,坚持了好多年的宣传推广后,知名度是越来越高了,也有些潜在的客户一直在关注,就像苏州工业园区的这个客户,也是关注了很长一段时间才能给领导推荐决策。
客户购买C#软件开发架构的原因小结:
2012年年底,有幸被苏州工业区的某家公司看重,采购了通用权限管理系统组件。他们采购我们软件的原因主要有以下几点,也给同行们参考一下。
1:公司本身研究地理信息系统为主的,所以信息化系统的开发相对是属于公司的辅助领域,没有过多的在这方面有投入,这部分靠外包系统架构为主,也没打算在系统架构的研究上加大投资,非核心业务外包的思路,这个其实是一点儿没错。
2:公司需要快速开发一个WEB系统,以前是主要是以C\S系统为主,需要开发一套相对兼容性高的B\S系统,这样又能满足B\S,又能满足C\S架构的,那就是我们的组件的特点被看中了。
3:其实软件公司人员的变动都很大,就算是比较成熟的软件公司,甚至是待遇还不错的软件公司,人员的变动照样很大,有去考研究生的,有去出国的,有去当公务员的,而且软件公司招人也越来越难了,高端的虎口打开,否则不跳槽,甚至有些低端的人也不是非常好找,就是找来了也干不来大事情,对新项目的推动力不高,甚至有可能成为累赘。
4:希望新系统又能支持Oracle,又能支持sqlServer,有多数据库的要求,那我们的又一个优点被看中了。
5:当然客户也需要一个轻量级的个性化定制的审批流程组件,当然也需要提供源码,需要提供技术支持。
6:需要把其他几个地理信息系统相关的子系统也都实现好单点登录,需要提供技术支持,提供解决方案,用户的权限、登录授权等可以实现集中管理。
快速开发架构实施过程中遇到的困难小结:
特别是给软件公司推销开发架构是最头疼的事情,所以我把实施过程总遇到的问题也简单整理一下给大家参考一下:
1:任何开发人员都会习惯性排斥外来的东西,所以解决这个问题的方法就跟对方成为好朋友,首先从心里上搞定,当对方成为你的好朋友了,他就不会对反对你,不会有太多排斥心里,慢慢的就会从当初的反对你变成支持你,这个只要拿出诚心诚意,开发人员还是相对单纯,好沟通的,把心掏出来给对方看看就可以了。
2:从内心尊重别人,每个人都有每个人的优点,多看别人的优点,多学会尊重别人,这样很多时候更容易沟通协调,更容易合作,更容易得到别人的支持,从内心发出善良的诚意,这样别人也愿意指点,愿意协助,所以跟其他外包人员也需要有良好的沟通协调,把大家都看成自己的兄弟姐妹一样,这样办事情就顺利很多了。
3:需要说服客户,不是1-2周就能见效,甚至是需要1-2个月或者更长的时间才能见效,需要得到客户的长期的支持,是大家一起完善维护这个系统,而不是看我的笑话,大家一起把这个事情做好的心态,才能把系统改进得更好、更成熟、更好用,有时候支持甚至是需要3-4年或者更长久,毕竟我们有共同的目标,就是把这个基础数据管理功能做得好用、稳定、强大。
4:需要能听得进客户的意见建议,在最短的时间里修正好错误,并给客户一个满意的答复。虽然这个说说简单,但是真正做好很难,一直坚持更难。
5:在客户不断深入使用软件后会发现很多问题,有需要改进的、有需要沟通理解确认的、有需要更新错误的等等很多细节,每次更新又会容易引起一些新的问题,编译不通过,函数有变化等等,遇到各种不愉快时双方需要压一压火气,有时甚至需要冷静一下,否则很容易擦抢走火、失去一个好朋友,因为遇到这类问题是很懊恼的事情,但是毕竟有问题需要解决,有明确的目标了,解决一个问题就是向胜利迈进了一步,虽然我们是希望一帆风顺但是由于能力、水平、业务能力等等各方面的制约,总是难进行得与想象的那么顺利。毕竟人家技术强大的公司您也请不起,人家也未必愿意给你提供服务,例如你让微软、IBM等等技术顶尖公司的人来给你提供服务绝对会好很多,但是人家没千万级别的合作也未必肯派顶尖高手来服务了。
软件架构成功的原因
软件架构的成功实施相对都不容易,很容易失败。
1:公司的领导层支持,首先公司的一把手支持这个工作100%,其次是开发部的主管是绝对90%支持这个事情,开发主力至少需要支持80%,没有大家比较大力的支持很容易项目失败,其实大家想明白了,都是开心的事情,对公司领导来说新产品可以至少提前2-3个月可以出来,甚至可以更短时间能开发出来,见到效果,降低了软件项目开发的风险,当然我们也不鼓吹是整体费用降低了,至少是项目失败的风险价低了。对部门经理来说也减少了一些头痛的架构技术问题,对开发人员来说,需要开发的部分更少了,难题困难也有别人协助分担了,而且还可以跟其他开发高手切磋一下,还可以参考一下别人的做法,可以适当自己也得到提高,也多了几个同行的朋友,开拓了人脉。
客户的选型也很关键,需要什么层次的架构,什么功能的产品,自己是否有驾驭的能力、修改的能力,对方是否可靠?2:开发费用支付得及时,甚至刚签订好了合同,费用马上就打过来了,搞得我们做开发的都不好意思不卖力,人家连测试,验收都没进行,甚至你连一行代码都没交付,人家把合同额度全款都打给你了,人家第你如此信任,你还不给人家做好,你能好意思吗?所以对方一反馈问题错误,都给第一时间解决了,能不拖延的一天都不给拖延,这么多年遇到的难得的好客户啊。
3:对方的开发人员性格脾气超级好,一般不发火,也不推托,更不狡辩,也不抱怨,运气好遇上了一个脾气性格超级好的家伙,大家都知道软件开发不是光动嘴就可以了,有时候需要很多头痛的程序优化,bug调试,难免提供给客户的程序有不少问题,但是发牢骚抱怨不是解决问题的方法,有一个问题就解决一个问题少一个问题,明确一个功能就是离成功近了一步,所以遇上了一个性格这么好的项目经理,也是合作成功的必然因素,甚至是不可缺少的关键因素之一。
4:杭州苏州距离近,交通方便一路都高速畅通,想过去沟通一下2个小时就到了,网络也畅通,远程调试远程协助都比较顺利,这也是项目成功的必要因素之一,前后跑了3-4次现场提供面对面的交流,技术支持,本着沟通交流,互相提高的谦虚态度,得到了客户开发人员的支持与理解,这也是项目成功的核心之一。
5:外包人员分工定位明确,由于这个项目经理性格比较好,在这几年的工作期间有很好的人脉,开发类的、美工类的、架构类的都与相应的以前的同事好友协助,所以我这边主要负责架构类的、流程审批类的问题就可以了,其他各种美工问题、业务开发问题不需要我接入了,我可以安心把自己负责的部分开发好。所以一个人的性格脾气很重要,将来你的好友是否多,也看这个,有需要别人帮忙时,就看人脉有多少好,自己开发项目需要有10的能力来比喻,控制管理好异地甚至是多地的外包团队,有效降低项目失败的风险可能需要50-100的能力,而且是管控从来不认识的陌生人队伍。
6:天时地利人和,合适的时候遇到了合适的人,客户没折腾太多,几下就确认了软件的功能、售价、服务期限、分工。这个不能天天指望能有正好需求对口的客户,可遇不可求,平时注意了积累,也积极努力推广了,总会遇到有需求的客户,毕竟我们的国家很大,有各种各样的需求,各种发展阶段的客户,各种规模的客户,好的软件就不用愁销售不出去。