抢先与客户联系上以后,怎么才能争取拿下项目来呢?一般的程序员都会说,第一步先了
解客户的需求啊。我看了很多网上的说法,也是这样说的,都是说第一步是要想方设法去了解客户
的需求。但是我要说,这是大错特错的。与客户联系上后的第一步,不是
去谈什么需求,而是先要展示你们团队的实力。
1、准备必要的框架
接过项目的程序员都知道,一般的客户都是极不耐烦的那一类,对工期的要求都是比较紧,恨不得3天就能拿到一个大型的ERP软件或一个行业门户网站。经常是你这边忙着打代码,那边还要忙着应付客户催命一样的电话。所以在接项目之前,团队就必须提前准备好一些统一的快速开发框架或工具,也就是建立一个统一的基础开发平台。这样不但能满足客户的工期要求,也可以最大程度上节约开发成本和时间。时间就是金钱,缩减成本和节约时间都是赚钱。
在这种开发环境下,我们务必要使用更快速的开发框架。尽管实际接项目时可能客户的需求不尽相同,代码实现也千差万别,但毋庸置疑的是,其中存在的共性也非常多,比如,数据表的增、删、改、查询,报表,权限,流程等都能够凭直觉感觉到大量的相似性。如果我们一旦能用有效的方法,把这些共性提取出来,构建一套快速开发框架,就能够灵活应对各种不同的需求变化,这样就会使项目的开发效率大大提高。要是每个项目都要从基础代码开始开发的话,那你就得做好每天通宵打代码的准备,时间一长不累得吐血才怪。而即使吐血了客户还要骂你,说你耽误了工期而不给任何费用。
这种开发框架的要求是,首先如果不是特别有技术要求的项目,任何一个初级的程序员只要套用这个框架都可以“按时”完成任务。其次,要有自由的代码,条条大路通罗马,不要求就是简单,自由就是快速。再次,所谓快,目前仅仅局限于开发速度快,至于运行效率快否并不是首要考虑因素。
使用应用框架有五大优点:模块化,可重用性,可扩展性,简单性,可维护性。模块化就是把应用分割成多个组件或模块。这样,团队成员就可以采用各个模块互不影响的方式使用应用框架。希望使用应用框架某个组件的开发者,不会受到框架其他组件潜在变化的影响。代码的可重用性是应用开发中最重要和最令人期待的目标。应用框架能为基于其上构建的应用提供这种可重用性;而且,不仅应用框架的类和代码被重用了,其设计也被重用了。有了应用框架,我们就能将大量重复代码和通用的解决方案从应用层移到框架层。这样一来,程序员编写和维护的重复代码的数量减杀了,开发效率也大幅度的提高了。
可扩展性是往现有的框架中增加自定义功能的能力,它使开发者不仅能够“即拆即用”地使用框架组件,还能够改变组件,以适应特定业务场景的需要。可扩展性是框架的重要特征。每一个业务应用都有独一无二的业务需求,架构和实现。虽然框架本身容纳所有这些具体情况是不可能的,但是,框架采取了支持客户化的思路;这样,不同的业务应用依然能够使用框架的通用功能。
简单性的含义不仅仅是“简单”。简单性指的是一种方法:框架通过封装处理流程的控制逻辑,使它对开发者透明,来简化开发工作。可维护性是业务需求改变之后,其应用便于修改的能力,它是代码重用带来的一个受欢迎的效用。框架组件通常会被多个应用或单个应用中的不同部分共享。因此,让框架的不同层包含不同级别的业务知识,能够减少因改变业务需求和业务规则所带来的连锁反应。这也使得维护成本减低,因为只需维护因业务规则改变所影响到的代码。
至于要准备好哪些必要的框架,就要根据你的业务范围来定。所以说接外包项目要有重点,要根据你们团队的长处来确定接一些什么样的项目,不能不管三七二十一有项目就接下来,那样只能把自己搞得焦头烂额。比如你准备接ASP.NET项目,那么就可以准备好 ASP.NET的三层架构,就是数据访问层,业务逻辑层和表示层。其中数据访问层是用来访问数据的,业务逻辑层是用来处理一些系统的业务逻辑的,表示层就是把内容呈现出来给用户,与用户进行交互的。
划 分三层的好处就是每一层都是独立的,修改其中一层一般不会影响其他层的代码,这样就大大的方便了日后的维护和升级。有了这么一个框架,接到项目后,只需要根据客户的要求修改三层中的相关部分就行了,极大地提高了编程的效率。所有团队成员都使用这个统一的开发框架,这样就可以高度代码重用,避免重复工作,统一编程思想。至于怎么才能拿到这些框架,那就发挥你们团队中所有成员的能动性吧,把他们以前学习中、工作中所能得到的所有有用的源代码,都拿出来整理一下,应该可以总结出一些好用的框架作为团队接项目的基础。总之平常要特别注意框架的积累
2、准备一些案例
在正式接项目前还要做好的一个准备是,要整理好一些给客户展示的案例。作为一个客户,最担心的事情是:我的项目你有没有能力承接啊?你是否有这方面的技术能力啊?做出的东西能不能达到我的要求啊?你能不能按时完成我的项目啊?这其实是最正常不过的想法,换了你是客户,也同样会考虑这样问题。我们作为承接者,就是要千方百计打消客户的这种疑虑。而打消客户顾虑的最好的办法,就是给他看你以前做过的类似项目的案例。
俗话说,事实胜于雄辩,把你以前做过的类似的项目的案例给他看,好过你一遍遍空口的承诺。因为软件开发的过程中谁也不能保证一点问题不出,相比较而言,一个有经验的开发团队会更容易得到客户的信任。因为你已经有和客户的项目功能接近的案例,无疑会缩短开发周期,技术上有更好的保障,因此客户也更乐于把项目交给你。 所以,作为一个团队,在接项目之前就必须花点时间和精力,搜集整理以前自己做过的项目案例,并把它们分门别类地整理出来,遇到同类项目的客户,就可以给客户进行演示,这样客户就会放心把项目交给你了。另外,把团队组成人员、技术能力、经验等客户看重的东西整理出来并给客户看,也能够对争取到项目起很大的作用。
这里大家会问一个问题,既然团队还没有开始承接项目,哪里来的案例啊?这个就只能从你打工的公司入手了。既然团队的成员都是公司的程序员,就肯定会干过不少的项目,可以先用这些案例来证明自己的实力。当然,有人会问,那是以别人公司名义开发的项目,不敢假冒是我们团队开发的。这个是自然,你可以向客户说明是你在以前公司做过的作品,你曾经亲自参与过就好了,反正只要证明你有这个能力可以承接客户的项目就可以了。
俗话说,“万事开头难”,在团队创业的最初阶段,接项目确实是比较难的,但是随着团队承接的项目越来越多,作为团队领头人的你,平常就应该多花点时间和精力,搜集整理以前自己团队做过的项目案例,并把它们分门别类地整理出来,遇到同类项目的客户,就可以给客户进行演示,这样客户就会放心把项目交给你了。能让客户完全信任你,这才是运用案例的目的。 因此,所选案例一定要要具有启发性、鼓动性。项目到底好不好,在对方看了你的案例之后,能够实实在在,清清楚楚地了解到你们团队的能力。因此,你搜集的每一个案例,都要本着能够打消客户忧虑、为客户放心把项目交给你找到更多的理由、促使客户做出正确决定的原则去选。
网友评论