今天是2014年11月28日星期五,本人谨为庆祝个人博客6周年而写此文。
软件外包在软件项目业界早已是家常便饭的事情了。很多公司都将一些项目外包给其它软件公司来做;或者专门接一些其它外包项目来给其它软件公司来做。
这里说说软件外包的好处。我们知道,在软件业界,最繁琐的软件编码方式,就是重复编码。虽然现在有不少公司已经开始重视起软件重复编码的事情,但是仍然无法在短期内解决这种事情。软件的重复编码也是程序员们的诟病。其实整个团队都讨厌软件的重复编码问题(其实很多时候编码就是CRUD)。所以这时候代码生成器出现了,它解决了我们重复编码的上一层问题,但是它的作用也仅仅是将一些类似的代码进行了封装和简单处理,基本上很多时候程序员对代码生成器的作用就是复制、粘贴的作用。很多时候软件的重复编码就是复制和粘贴,所以这就是繁琐的所在。然后,到了高一个层次,我们就把代码抽象出来,将它们提升出去,变成代码模块,以代码模块的方式解决软件重复编码的问题,就象控件一样,很多时候都用到它,所以就抽象出来形成一个代码模块,以便重复使用。
为什么我们这么讨厌软件重复编码呢,其实就是软件的耦合性太高了,导致了一些代码无可避免的要进行编写。我们以前一直强调代码要高内聚,低耦合,为的就是让我们的代码能够比较松散,不被其它代码模块所左右,而是专心做好自己的本职内容。软件外包的作用,就是专心做自己的事情,其它的都外包出去。
我喜欢的一句话是:做自己感兴趣的事情,其它的都随风飘散吧。这句话用在软件外包里,那就是:做自己喜欢做的软件项目,其它都外包出去。我们知道,做自己喜欢做的事情是一件多么愉快的事,所以即使是该事情很复杂、很繁琐,我们也仍然乐此不彼。让自己的团队专心做公司自己核心的内容,提高团队以及公司的核心竞争力,那才是我们主要做的事情。而不是一味的要做软件项目,什么都做,做到最后连自己的关注点,自己的专业,自己最强大的一面给抛弃了。
外包的好处上面已经描述得比较清楚了。其实外包的作用不仅仅是将一些复杂的、自己本身无法实现的功能模块外包出去;同样的,外包还能够节省公司和团队自己的时间,让公司和团队能够做自己的核心产品类的项目。这里再提到产品的问题。软件产品不是一个项目做完就完了,也不是短期内能够搞定的。它需要整个项目团队,产品运营团队的支持,通过长期的努力和经验的积累沉淀而形成。
这里再说说笔者本地的软件外包公司的问题。笔者对本地外包公司不是非常了解,但是从人员招聘上可见一斑。本地这里有不少公司都是做软件外包的,一部分是针对本地市场,一部分是针对国内市场,一部分是针对日本,美国的国外市场的都有,可谓是跟大城市如北京上海等地的外包公司一样,基本的外包模式都齐全了。而且,本地也成立了软件园,对小公司的软件项目提供软件孵化等提高本地软件水平化的工作,这方面政府也是下了很大的力气。笔者的第一家公司也是外包公司,到现在仍然在做外包,把自己一些相对中、小型的项目外包出去,然后开发公司自己的产品进行销售,这个也是典型的外包公司的模式。
软件外包给我们的是便利的软件开发模式,笔者以前想过开公司的念头,也曾想过做软件外包项目,这个在本地已经很成熟了,但是由于资金和团队未到位,而且商业模式没完全成熟的情况下,笔者暂时搁置了该内容。其实,这里笔者也将软件外包归结为商业模式的一种,就是开软件公司的一种盈利模式吧。有兴趣的朋友不妨也从软件开发外包开始做起。
最后,仍然引用那句名言,做自己核心的软件产品,其它的都外包出去吧。软件外包给我们带来的不仅仅是利润上的提升,更是一种成熟商业模式的标志。
Ps.今天是星期五,也是本人博客在博客园的6周年庆,谨以此文致以祝贺吧。同时也祝大家周末快乐。