软件外包的启示 - 项目管理系列文章

简介:   今天是2014年11月28日星期五,本人谨为庆祝个人博客6周年而写此文。   软件外包在软件项目业界早已是家常便饭的事情了。很多公司都将一些项目外包给其它软件公司来做;或者专门接一些其它外包项目来给其它软件公司来做。

  今天是2014年11月28日星期五,本人谨为庆祝个人博客6周年而写此文。

  软件外包在软件项目业界早已是家常便饭的事情了。很多公司都将一些项目外包给其它软件公司来做;或者专门接一些其它外包项目来给其它软件公司来做。

  这里说说软件外包的好处。我们知道,在软件业界,最繁琐的软件编码方式,就是重复编码。虽然现在有不少公司已经开始重视起软件重复编码的事情,但是仍然无法在短期内解决这种事情。软件的重复编码也是程序员们的诟病。其实整个团队都讨厌软件的重复编码问题(其实很多时候编码就是CRUD)。所以这时候代码生成器出现了,它解决了我们重复编码的上一层问题,但是它的作用也仅仅是将一些类似的代码进行了封装和简单处理,基本上很多时候程序员对代码生成器的作用就是复制、粘贴的作用。很多时候软件的重复编码就是复制和粘贴,所以这就是繁琐的所在。然后,到了高一个层次,我们就把代码抽象出来,将它们提升出去,变成代码模块,以代码模块的方式解决软件重复编码的问题,就象控件一样,很多时候都用到它,所以就抽象出来形成一个代码模块,以便重复使用。

  为什么我们这么讨厌软件重复编码呢,其实就是软件的耦合性太高了,导致了一些代码无可避免的要进行编写。我们以前一直强调代码要高内聚,低耦合,为的就是让我们的代码能够比较松散,不被其它代码模块所左右,而是专心做好自己的本职内容。软件外包的作用,就是专心做自己的事情,其它的都外包出去。

  我喜欢的一句话是:做自己感兴趣的事情,其它的都随风飘散吧。这句话用在软件外包里,那就是:做自己喜欢做的软件项目,其它都外包出去。我们知道,做自己喜欢做的事情是一件多么愉快的事,所以即使是该事情很复杂、很繁琐,我们也仍然乐此不彼。让自己的团队专心做公司自己核心的内容,提高团队以及公司的核心竞争力,那才是我们主要做的事情。而不是一味的要做软件项目,什么都做,做到最后连自己的关注点,自己的专业,自己最强大的一面给抛弃了。

  外包的好处上面已经描述得比较清楚了。其实外包的作用不仅仅是将一些复杂的、自己本身无法实现的功能模块外包出去;同样的,外包还能够节省公司和团队自己的时间,让公司和团队能够做自己的核心产品类的项目。这里再提到产品的问题。软件产品不是一个项目做完就完了,也不是短期内能够搞定的。它需要整个项目团队,产品运营团队的支持,通过长期的努力和经验的积累沉淀而形成。

  这里再说说笔者本地的软件外包公司的问题。笔者对本地外包公司不是非常了解,但是从人员招聘上可见一斑。本地这里有不少公司都是做软件外包的,一部分是针对本地市场,一部分是针对国内市场,一部分是针对日本,美国的国外市场的都有,可谓是跟大城市如北京上海等地的外包公司一样,基本的外包模式都齐全了。而且,本地也成立了软件园,对小公司的软件项目提供软件孵化等提高本地软件水平化的工作,这方面政府也是下了很大的力气。笔者的第一家公司也是外包公司,到现在仍然在做外包,把自己一些相对中、小型的项目外包出去,然后开发公司自己的产品进行销售,这个也是典型的外包公司的模式。

  软件外包给我们的是便利的软件开发模式,笔者以前想过开公司的念头,也曾想过做软件外包项目,这个在本地已经很成熟了,但是由于资金和团队未到位,而且商业模式没完全成熟的情况下,笔者暂时搁置了该内容。其实,这里笔者也将软件外包归结为商业模式的一种,就是开软件公司的一种盈利模式吧。有兴趣的朋友不妨也从软件开发外包开始做起。

  最后,仍然引用那句名言,做自己核心的软件产品,其它的都外包出去吧。软件外包给我们带来的不仅仅是利润上的提升,更是一种成熟商业模式的标志。

 

 

Ps.今天是星期五,也是本人博客在博客园的6周年庆,谨以此文致以祝贺吧。同时也祝大家周末快乐。

目录
相关文章
|
存储 Cloud Native Linux
C++Qt 获取互联网时间
C++Qt 获取互联网时间
|
12月前
|
分布式计算 大数据 Linux
大数据体系知识学习(二):WordCount案例实现及错误总结
这篇文章介绍了如何使用PySpark进行WordCount操作,包括环境配置、代码实现、运行结果和遇到的错误。作者在运行过程中遇到了Py4JJavaError和JAVA_HOME未设置的问题,并通过导入findspark初始化和设置环境变量解决了这些问题。文章还讨论了groupByKey和reduceByKey的区别。
191 1
|
Ubuntu Linux
内核实验(六):使用misc框架,实现简单字符设备驱动
本文介绍了如何使用Linux的misc框架来实现一个简单的字符设备驱动程序,包括编写驱动源码、编译、部署以及在Qemu虚拟机中测试驱动程序,展示了如何动态分配次设备号并手动创建设备文件以进行测试。
287 0
内核实验(六):使用misc框架,实现简单字符设备驱动
|
存储 关系型数据库 MySQL
索引的威力--记一次MySQL存储过程优化
在MySQL存储过程中,一个`INSERT INTO SELECT`语句起初执行超过130秒,优化后,执行时间降低到1秒内,实现了100倍的性能提升。问题在于`NOT IN`子查询导致的慢查询,最终通过创建单列索引获得了最佳效果。文章还介绍了索引创建的基本语法,并讨论了单列索引与组合索引的优缺点。作者强调,随着数据量增加,索引对于查询性能的重要性,计划未来采用读写分离来进一步优化处理大量插入和查询的场景。
374 0
|
监控 安全 数据挖掘
【HW前知识库储备】2020HW攻防演练总结:安全数据分析
【HW前知识库储备】2020HW攻防演练总结:安全数据分析
1431 0
|
数据可视化 Python
python+Django+Mysql+Echarts数据可视化实战教程(1):Django环境部署
python+Django+Mysql+Echarts数据可视化实战教程(1):Django环境部署
735 0
|
机器学习/深度学习 数据建模 数据挖掘
python机器学习数据建模与分析——pandas中常用函数总结
本文主要对数据建模与分析中常使用到的pandas内置函数进行总结分析,以此来熟悉数据建模与分析的流程。
534 0
python机器学习数据建模与分析——pandas中常用函数总结
|
SQL 存储 监控
MySQL数据库安全性考虑:预防SQL注入漏洞
随着互联网的快速发展,数据库成为了现代应用程序中的重要组成部分。而在数据库的使用过程中,安全性一直是一个重要的关注点。SQL注入漏洞(SQL Injection)是一种常见的数据库安全漏洞,攻击者可以通过在应用程序的用户输入参数中注入恶意的SQL代码,从而获得对数据库的未授权访问权限。为了保护MySQL数据库免受SQL注入漏洞的威胁,以下是一些预防SQL注入漏洞的安全性考虑。
|
弹性计算
阿里云服务器公网带宽价格收费标准(按固定带宽/使用流量)
阿里云服务器公网带宽价格收费标准(按固定带宽/使用流量),阿里云服务器ECS公网带宽1M价格23元/月,按流量计费价格为0.8元/GB
955 0
阿里云服务器公网带宽价格收费标准(按固定带宽/使用流量)