今天在和领导讨论产品交付的时候,大家最终把话题转移到了目前比较流行的软件众包平台,应该说从早期大家都熟知的freelancer、�威客、猪八戒到后来主流的IT技术服务平台都开放了相应的外包频道(比如CSDN),那时大部分的名称都叫软件外包或项目外包平台,这些年“众包”这个词很火,所以大家都纷纷和众包挂上了勾,以此同时也有很多公司投身这个领域,在某度一搜索,那是出来好几页啊!包括我的老东家也花巨资打造了一个IT服务众包平台,刚开始的时候还有老同事打电话给我发出过注册邀请。
那么是什么原因成就了今天的“软件众包”盛宴呢?(可能目前还算不上“盛宴”,台子是搭好了,宾客未至),我个人认为可能包括以下一些主要的因素。
人力成本剧增
这些年,互联网的高速发展,导致人才紧缺,人力成本剧增,前段时间一直在面视IOS开发工程师、产品经理、运营总监、美工,给我最大的感受是人很多,但是有料的真不多,薪水要求都很高,一年工作经验,开口就10K以上,一般的企业怎么能消化得了呢?
软件开发模型的不断变革
上面这个图应该都还很熟悉吧?传说中的瀑布模型,这样的模型在以项目交付为主的软件公司大行其道,但是在今天,当互联网+提升到国家战略,有无数的传统软件公司正在向互联网转型,更有无数的创业大军投身互联网,在这样竞争激烈的互联网时代,敏捷开发模式(如下图)得到了大部分人的认可,产品能早一天投向市场就有可能获得巨大的成功。
有人会问敏捷开发和软件众包有毛关系?从目前我们的产品研发来看,由于采用了敏捷开发,迭代周期相当短,时间长的是2周一个迭代,正常情况下是一周一个迭代,采用scrum的套路,最终到开发人员手里的任务一般都是很明确的功能点,如果以这个粒度从众包平台上包出去,做好相应的周期约束,采用比较可靠的开发协作模式控制代码质量,并做好验收环节的工作,理论上是完全可行的,当然这仅是我个人观点,您怎么看呢?
全球化的软件开发协作
还记得10年前的sourceforge.net,您有多久没有上sourceforge.net了?可能还有的人根本就不知道sourceforge。我把它理解成那是当年程序员通往世界的一扇窗。
code.google.com应该也用过吧?当年在没有被墙之前应该也算是比较火的了。
github的异军突起,再一次改写了历史,还记得12306抢票插件让github宕机的事件吗?今天,我们可以说github已经成为全球程序员的主要工作场所,上面有太多的开源项目,每一个程序员都在上面贡献自己的智慧,不分种族、不分国籍、不曾相识,但大家都能通过github共同完成一个又一个的牛B项目,github的出现,极快的加速了全球化的软件开发协作,中国的很多程序员也积极的投入其中,并有望成为主力军。
git也受益于github,今天大部分公司应该都逐步采用了git作为代码版本管理的主要工具。
越来越多的程序员崇尚自由
我应该算是出生在一个普通的职工家庭,那些年,在父母眼里所谓能入眼的工作就是公务员、国企,只有这样的工作他们才认为是安稳的工作、体面的工作。
然而,大家毕业后,我没有如父母所愿回到家乡考个公务员,朝9晚5,看看报、喝喝荼。我放弃了我所学的专业,选择来到北京发展,并成了今天的“码农”,虽然工作有的时候很苦很累,但我还是觉得目前我每天都过得还算充实,也在做一些自己觉得有意义的事,有了孩子……
时至今日,父母的观点也发生了一些变化,也不再像那些年一样整天想让我回家考什么公务员之类的了……
这些年随着人们生活水平的提高,越来越多的人开始了自己的自由职业,当然程序员也不例外,我个人认为随着软件开发协作方式的不断改进,整个生态的完善,会有越来越多的程序员会在家里办公,会从事真正的自由职业。
渴望自由应该是人的一种基本需求,难道您不想有一份这样的工作吗?
我理想中的软件产品交付团队
回到正题“互联网+时代的全新软件(产品)交付模式”到底是什么样呢?也许每个人都有不同的看法。我就随便喷喷啊,不对之处大家可以接着喷回来。
如果现在让我建一个产品研发团队,或许我真的就全部通过网络招募的方式,大家都在家里办公,拿到产品需求后,组织团队(包括UI/UE)在线通过视频会议等方式一起把需求理解透彻,然后UI/UE将相关的原型、UI设计稿搞定,采用scrum的方式将任务分解,最后大家每天都在统一的项目管理平台上领取相应的任务,通过IM与团队成员随时保持沟通,完成相关的模块开发,直接提交代码到在线的git,自动进行CI,通过后再由其他程序员对代码进行评审,达到一定的要求后再合并到主线分支。通过这样不断的模块集成,不断的迭代完成软件产品的交付。
依托现在的开源工具,完成这样的软件产品交付流程管理应该是比较成熟的。
如果我想有这样的一个软件产品交付队团,您愿意加盟吗?
看完文章有收获的话记得打赏、关注、点赞哦!
CJ推荐:
使用GitLab来实现IOS项目的持续集成CI
程序员的编辑器-VIM(爱就是爱)
向开源社区贡献您的代码
在github上写博客
DevOps是什么东东?
js依赖管理工具bower
JS模块化编程-requirejs