`
sandy_leen
  • 浏览: 73386 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

程序员如何承接软件外包项目

阅读更多

     现在外包的软件项目不断增长,但随之而来的,承接外包的软件公司、软件团队也越来越多,包括很多个人SOHO一族也加入到承接软件的竞争行列中来了,因此现在对于软件项目的争夺也很激烈。有很多人不知道上哪里去争取项目,总是抱怨没有项目做;也有的人虽然编程技术不错,但是对于与客户谈项目却是一窍不通,结果应该拿到的项目也拿不到手;也有的虽然已经接到了项目,却发现在实施开发的时候遇到好多从来没有遇到过的问题。作为一个多年从事外包项目接单的软件开发人士,我想从以下几方面谈谈我的经验,希望对大家会有所帮助。

 

第一点, 到哪里接项目

     软件团队或SOHO最为关心的一点是在哪里可以找到项目做,也就是到哪里可以找到有外包需求的客户。对于一般人来说,广交朋友然后通过熟人介绍还是接项目的第一途径,但这要求你的朋友或熟人要在企业或公司里有比效重要的管理位置,对于像那些每天只能是埋头写代码的程序员这显然是不太现实的。所以大家不能等着项目来找你,而是要主动的出击去找项目。
     现在网上有很多软件外包网站,在这里你可以找到不少的软件外包信息。比如软件商务网(bizsofts.com)上就有大量的软件外包信息。不过这里每天外包的项目虽然很多,但竞争也很激烈。一般一个外包信息发出后一天内就会有无数个竞争者,所以能第一时间与客户取得联系是非常关键的。因为客户一般都是先入为主的,一般来说,如果第一个谈项目的人他觉得满意了,就会对其他的竞争者不再予以考虑,所以你要经常上网站上看看有什么最新的项目,并立即与项目的发包方取得直接的联系。其他比如软件外包网、维客网、中国软件网,还有CSDN的外包频道上也有很多外包的信息,大家可以自己上去看看。

 

第二点, 如何与客户谈需求

     接项目最重要的一步是与客户谈需求。客户对软件的需求是项目规划和实施的根本,所以在与客户谈需求时,一定要让用户将所有的想法尽可能的阐述清楚,并把所有的要求罗列出来。这时候不应该害怕“勾引”起客户的潜在需求而增加设计开发的工作量。而应该直接明白地要客户把项目的要求一条条地列出来。这时先把条理、归纳、分析先都扔到一边去,用纸笔将用户最原始、最完整的要求准确地记录下来。假如项目在你对客户的需求没有完全了解清楚的情况下就匆匆上马,那么就会随时发生意想不到的变更,轻则使项目延期或超出预算,重则使得原来已经做好的软件要彻底推倒重来。
   所以我们在实施项目之前应该深入了解和挖掘客户需求,对某些不明确的需求要与发包方反复进行讨论,对于项目实施过程中的需求变更要规定处理办法,并形成项目的最终需求。在需求分析阶段,接包方首先对发包方的需求认真分析,然后通过业务建模、会谈、问卷、需求会议等方式收集客户完整需求,形成文档,然后经过客户讨论、客户审查、文档修订等多次反复的过程。有一点需要注意,即使双方谈的很投缘,在讨论需求时也一定要详细周到,精确到每一条不能再划分的软件功能为止。

 

第三点, 如何合理地报价

     在完全了解客户的需求后,下一步就是要确定一个合理的报价。接包方要从跟客户的交谈中尽量地了解出客户的准确意思,思考客户想要的是怎样的一个软件,项目复杂的程度多大,客户的要求有多高,客户的性格如何,能够接受的价格范围等等,这些因素对于软件项目的报价都是密切相关的。如果客户要的是一个小型的软件系统,不太苛求有多全面的功能,只要满足某一方面的需要,并且客户又是一个比较随和的人,那么项目可以报一个接近成本的价格;相反如果客户要求的是一个面面俱到的管理系统,需要有各方面的功能,缺一不可,并且客户又是那种对项目要求严格苛刻,绝不变通的人,那就要充分考虑各种不稳定的因素,报一个比较高的价格。 
    在很多的情况下,客户在跟接包方谈项目之前,心理都已经有一个价格底线。如果要投入的费用超过了客户的预算范围,客户将不再与你谈该项目,他会转而找其它软件团队商谈。所以跟客户谈项目的过程中要迅速地思考客户需求的真正含义,能够通过某种转换和变通,把客户对于技术的要求与自己团队的技术力量可以接受的价格相对比,从而得出一个双方都能接受的报价。在与客户的谈判当中,灵活变通是成功的关键之一。当然并不是所有的客户都可以通过变通而满足,遇到客户不认同项目费用的情况一定要处之泰然,真诚地为客户解释,把客户的需求细化为技术上的要求给他分析,让他同意你的报价的合理性。即使客户对编程技术不是很了解,但经过你的细致的分析后也会对你的报价表示认同的。

 

第四点, 如何组织团队

     由于客户的需求是不同的,因而项目也是各种各样的。有网站设计项目、也有软件设计项目,要求使用的编程语言也是多种多样的。即使是在一个项目中,比如说网站制作的项目中,也有着前台的美工设计和后台程序的编写的分工。这些工作如果全部交给一个人去作那是绝对完成不了的。即使是一个小的团队,也不能保证所有的人才都齐备。因此最好就是自己把项目初步设计好,然后找合作伙伴共同开发,自己总体掌握整个项目的全部进度。如果在身边没有好的合作伙伴的话,网上也能找到不少可以合作的伙伴。
这里推荐各地的软件技术QQ群,大家可以在群里找到各方面的编程高手来分工做项目。(北京39027867 上海22267033 深圳43353614 广州43275229珠海43275805 杭州43276029 福州43309190 南京43319646 武汉 43319996 成都42961245 重庆43320370 沈阳42408057 大连43321811南昌 43321932 长沙43323026 济南43353895 天津43353727 西安43353817 兰州 43966886 海口43967437 昆明41193579 石家庄17940180 合肥41418679 南宁 16537410 哈尔滨43965078 苏州43965528 长春43965640 宁波43966041 太原 43966123 青岛3630711 贵阳43966364)

 

第五点, 如何能收到项目款

     这是整个项目中最后也是最难的一个环节。即使你的项目做得再好,如果没有收到款,那你前面的一切努力都等于是零。要想项目能顺利地收到款项,那么从项目未开始之前的谈判阶段就要对这一点加以注意。首先要判断对方是否是真心外包项目。这里有几点经验拿来给大家分享一下:如果你看到项目中说 “请提供完整的解决方案和成功案例发到某某邮箱”,这应该只是想套取设计方案而已,发几张你们公司或团队的推介广告和报价单给他即可。还有的客户张口就要源码要设计文档设计方案的,这种人目的性太强了,如果你真给了他就再也不理你啦。还有的外包方死活不肯介绍自己,不肯告诉自己是谁、怎么称呼、怎么联系、是什么公司、做什么业务的,与这种连最基本的诚信都没有的客户就根本没有必要谈下去。其次是判断对方是否有充足的资金和实力,项目要求是否合理(技术、周期等各方面)。这个可以在需求的谈判中可以有意识地来加以探明,如果对方的项目很大却老是强调项目非常简单,这应该是不想付足项目款;有的发包方坚持不肯给预付款,老是要求项目完成后再交全部款项,这应该是没有诚心付款。还有的项目要30天才能完成却只给几天的开发时间,这种项目外包方也是很值得怀疑的。

对于软件团队或个人SOHO族来说,由于不是公司,对方对于我们的信任度不会很高,所以对于大的项目一定要采用合同方式,这样出现问题才好解决。在合同中,最好订清楚分阶段来付款,这样有利于分散风险。比如,一般要求合同订好后先交30%的定金,项目进行到一半后待客户验证后交50%的项目款,全部项目完成并交付后再交清全部款项。这样做对于客户来说也比较好控制项目的进度,因此对方也比较容易认同并接受。

 

     以上谈了软件团队或个人在承接软件项目时应该注意的几个关键问题,其实还有很多问题由于文章的篇幅所限没有涉及。比如对于项目的选择,有的人大的项目做不来,小的项目又不愿做。结果到头来什么项目都承接不到。因此一开始要把自己的期望值放低一些,先从一些几百元的小项目做起,有了一定经验后再接一些大项目,这样循序见进才能不断进步。
 

分享到:
评论

相关推荐

    程序员如何承接软件外包项目.doc

    程序员如何承接软件外包项目.doc

    软件开发项目全系列文件

    在软件开发过程中,项目管理是确保项目成功的关键因素。这个名为“软件开发项目全系列文件”的压缩包包含了一系列文档,旨在全面介绍软件项目管理的知识点。以下是对这些关键概念的详细解析: 1. **项目启动**:...

    程序员接单宝典PDF文档

    长为一个带领十几人的团队承接大型软件项目的领头人。在这 些年中,作者经历了被人骗包、被人甩单、被人拖欠尾款等等 各种磨练,从这些经验教训中总结出了一套行之有效的接单技 巧,并成功地承接了总价值达上千万的...

    基于小生境粒子群算法的配电网有功-无功协调优化MATLAB实现及光伏波动应对

    内容概要:本文介绍了一种基于小生境粒子群算法的配电网有功-无功协调优化方法,旨在解决传统粒子群算法易陷入局部最优的问题。文中详细展示了MATLAB代码实现,重点介绍了小生境机制的应用,如动态调整小生境半径、自适应变异概率以及跨小生境信息交换等策略。此外,针对光伏出力波动,提出了滑动时间窗和平滑因子的方法来优化储能调度,确保电压稳定并降低网损。实验结果显示,在33节点测试系统上,网损降低12.7%,电压合格率提高8.3%,收敛速度快且稳定。 适合人群:电力系统研究人员、智能电网开发者、MATLAB编程爱好者。 使用场景及目标:适用于配电网优化调度,特别是含有大量分布式能源接入的场景。主要目标是提高电网运行效率,降低网损,保持电压稳定,优化储能调度。 其他说明:文中提供了详细的代码实现和参数配置建议,便于读者复现实验结果。同时,作者还分享了一些调试经验和技巧,帮助读者更好地理解和应用该算法。

    Matlab实现K-Means聚类算法:从数据处理到结果可视化的全流程指南

    内容概要:本文详细介绍了如何使用Matlab实现K-Means聚类算法,涵盖从数据加载、标准化、聚类执行到结果保存和可视化的完整流程。文中提供了具体的Matlab代码示例,解释了关键参数如聚类个数K的选择方法,以及如何通过肘部法则确定最佳K值。同时,强调了数据标准化的重要性,并给出了处理高维数据和保存结果的最佳实践。此外,还讨论了一些常见的错误及其解决方案,如数据未标准化导致的距离计算偏差等问题。 适合人群:具有一定编程基础并希望通过Matlab实现K-Means聚类算法的研究人员、学生和工程师。 使用场景及目标:适用于需要对数据进行无监督分类的场景,如市场细分、图像压缩、异常检测等。通过学习本文,读者能够掌握K-Means聚类的基本原理和实现方法,从而应用于实际数据分析任务。 其他说明:本文不仅提供完整的代码实现,还附带了许多实用的小技巧,如如何避免局部最优解、如何选择合适的K值、如何处理高维数据等。对于初学者来说,是一份非常有价值的参考资料。

    MATLAB中使用CNN进行单变量时间序列预测的技术实现与优化

    内容概要:本文详细介绍了如何利用MATLAB及其内置的深度学习工具箱,采用一维卷积神经网络(CNN)构建单变量时间序列预测模型的方法。主要内容涵盖数据预处理(如标准化、滑动窗口构造)、模型架构设计(包括卷积层、池化层的选择)、训练参数设定以及结果可视化和性能评估等方面。文中特别强调了针对时间序列特性的优化措施,如调整卷积核大小、引入层标准化等,并提供了具体的代码示例。 适用人群:适用于具有一定MATLAB编程基础和技术背景的数据科学家、机器学习工程师或研究人员,尤其是那些希望探索除LSTM之外的时间序列预测方法的人群。 使用场景及目标:该方法可用于各种具有周期性特点的时间序列数据分析任务,如气象预报、能源消耗预测等领域。主要目标是提供一种高效、易实现的替代方案,在保证预测精度的同时提高模型训练效率。 其他说明:作者指出,虽然CNN在处理长时间依赖方面不如LSTM,但对于某些特定类型的短期时间序列预测任务,CNN能够取得令人满意的结果。此外,文中还分享了一些实践经验,如如何应对常见的预测误差问题,以及进一步提升模型性能的建议。

    集体招聘总结.xls

    集体招聘总结.xls

    基于SMIC 0.18μm工艺的简易锁相环电路设计与实现

    内容概要:本文详细介绍了基于SMIC 0.18μm工艺的简单锁相环(PLL)电路的设计与实现。作者通过搭建一个由五个核心模块组成的PLL结构,帮助新手理解锁相环的工作原理。文中具体讲解了环形VCO、电荷泵、环路滤波器和分频器的设计细节及其优化技巧。例如,环形VCO采用7级电流饥饿型反相器串联,电荷泵使用最小尺寸开关管,环路滤波器为简单的RC网络,分频器则采用了经典÷32结构。此外,文章还分享了一些实用的调试经验和常见问题解决方案,如温度补偿、锁定时间和相位噪声的优化。 适用人群:初学者和有一定模拟电路基础的研发人员。 使用场景及目标:适用于希望深入了解锁相环工作原理和技术细节的学习者。通过动手实践,掌握PLL的基本设计流程和调试技巧,能够独立完成类似项目的初步设计。 其他说明:本文不仅提供了理论指导,还结合了大量的实战经验和具体的代码示例,使读者能够在实践中更好地理解和应用所学知识。

    员工离职面谈记录表.doc

    员工离职面谈记录表.doc

    tesseract-langpack-chi-tra-4.0.0-6.el8.x64-86.rpm.tar.gz

    1、文件说明: Centos8操作系统tesseract-langpack-chi_tra-4.0.0-6.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf tesseract-langpack-chi_tra-4.0.0-6.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm

    海洋工程技术中AHC主动海浪补偿器的控制算法与程序实现

    内容概要:本文详细介绍了AHC主动海浪补偿器在海洋平台及其相关装备中的应用。AHC作为一种智能‘稳定器’,通过实时监测海浪运动,利用先进的控制算法(如PID控制算法)和机械装置,主动调整平台或装备的位置,以抵消海浪的影响,确保相对稳定的作业环境。文中不仅探讨了控制算法的核心原理,还展示了具体的应用实例,如波浪补偿舷梯的设计与实现。此外,文章还涉及了传感器数据处理、执行机构控制等方面的内容,强调了AHC在保障海上作业安全和提高工作效率方面的重要作用。 适合人群:从事海洋工程、自动化控制领域的研究人员和技术人员,以及对智能控制系统感兴趣的读者。 使用场景及目标:适用于需要在复杂海洋环境中保持稳定性的各种海洋平台和装备。目标是通过理解和应用AHC技术,提高海上作业的安全性和效率。 其他说明:文章提供了多个代码示例,帮助读者更好地理解控制算法的具体实现。同时,文中提到了一些实际应用中的挑战和解决方案,如传感器数据同步、执行机构的响应速度等问题。

    981ac-main.zip

    981ac-main.zip

    微电网领域中基于下垂控制和动态事件触发的孤岛微电网二次控制技术创新

    内容概要:本文探讨了孤岛微电网二次控制领域的创新技术,重点介绍了下垂控制和动态事件触发机制的应用。下垂控制通过模拟传统同步发电机的外特性,依据功率-频率、电压-无功的下垂关系,实现分布式电源(DG)间的有功和无功功率分配。然而,单纯依靠下垂控制可能导致频率和电压偏差,因此引入了二次控制来消除这些偏差并提高电能质量。文中还提出了一种基于动态事件触发的二次控制策略,该策略只在系统状态变化达到一定程度时进行通信和控制动作,从而减少通信负担,提升系统效率。此外,文章展示了如何通过动态事件触发机制实现有功功率均分以及处理异步通信一致性问题,确保微电网系统的稳定运行。 适用人群:从事微电网研究和技术开发的专业人士,尤其是关注分布式能源系统优化的研究人员和工程师。 使用场景及目标:适用于希望优化孤岛微电网性能的研究项目,旨在通过创新的二次控制技术提高系统的频率和电压稳定性、功率分配均匀性和通信效率。 其他说明:文中提到的相关研究成果已在多篇学术文献中得到验证,感兴趣的读者可以通过参考文献进一步了解技术细节。

    【制度】员工档案管理制度 (1).doc

    【制度】员工档案管理制度 (1).doc

    电镀生产线中西门子S7-300 PLC控制程序详解及其应用

    内容概要:本文详细介绍了应用于电镀生产线的西门子S7-300 PLC控制系统的程序设计、硬件配置以及调试过程中积累的实际经验。主要内容涵盖温度控制、条码记录、行车定位、故障排查等方面的技术细节。文中展示了多个关键功能模块的具体实现方法,如PID温度控制、条码数据处理、行车定位判断等,并分享了一些实用的调试技巧和注意事项。此外,还讨论了硬件配置中的重要细节,如模块地址分配、网络拓扑设计等。 适合人群:从事自动化控制领域的工程师和技术人员,尤其是对PLC编程有一定基础的人群。 使用场景及目标:适用于需要深入了解和掌握电镀生产线自动化控制技术的专业人士。目标是帮助读者理解S7-300 PLC在电镀生产线中的具体应用,提高实际项目的开发效率和可靠性。 其他说明:文章不仅提供了详细的程序代码示例,还分享了许多来自一线的真实案例和实践经验,对于解决实际工程中的问题具有很高的参考价值。

    员工生日关怀方案.doc

    员工生日关怀方案

    工业自动化中基于Python的智能水泵控制系统设计与实现

    内容概要:本文详细介绍了如何利用Python实现一个智能水泵控制系统,涵盖模式切换、故障自动投入、定时轮换和压力调节四大核心功能。首先,通过设置不同模式(如先停后启或先启后停)来满足特定应用场景的需求。其次,在故障自动投入方面,系统能够检测到水泵故障并迅速切换到备用泵,确保连续供水。再次,为了均衡水泵的工作负荷,系统定期进行定时轮换操作。最后,根据管道内的实时压力情况,系统可以自动调整工作的水泵数量,保持恒定的压力水平。此外,文中还讨论了如何通过配置文件灵活调整系统参数,以及采用PID简化版算法进行压力控制的方法。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对水泵控制有一定了解并希望深入研究的人士。 使用场景及目标:适用于需要精确控制多台水泵协同工作的工业环境,旨在提高系统的可靠性和效率,延长设备使用寿命,节约能源成本。 其他说明:文中提供了详细的代码示例,帮助读者更好地理解和实施所介绍的技术方案。同时强调了实际应用中的注意事项,如压力传感器的正确安装和预防措施等。

    基于51单片机protues仿真的多功能万用表设计(仿真图、源代码、AD原理图、流程图)

    基于51单片机protues仿真的多功能万用表设计(仿真图、源代码、AD原理图、流程图) 数字多用表既可以测量电压,也可以测量电流、电阻,功能齐全,使用便捷。 本选题采用8位8路A/D转换器ADC0808和8051单片机设计一台数字多用表,能进行电压、电流和电阻的测量,测量结果通过LED数码管显示,通过安检进行测量功能转换。电压测量范围0~5V,测量误差约为±0.02V,电流测量范围为1~100mA,测量误差约为±0.5mA,电阻测量范围0~1000Ω,测量误差约为±2Ω。 1、通过按键设置测量模式; 2、电压采用直接测量方式;电流使用差压放大测量;电阻使用恒流源把阻值转换成电压。 预计难易程度:难度适中预计工作量大小:8周 1.熟练掌握单片机设计基本原理;熟悉8051单片机的工作原理; 2.熟练掌握Proteus软件的使用方法; 3.利用Proteus软件仿真实现数字多用表的测量功能。

    员工关怀服务建议方案.doc

    员工关怀服务建议方案.doc

Global site tag (gtag.js) - Google Analytics