打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
软件开发是一个人能完成的吗?

在准备实施或者已经实施GJB5000的组织中,大多数软件配置项的开发都是由一个人来完成的,可是这却与GJB5000按照项目来管理软件开发相违背——GJB5000要求一个软件项目的开发应由一个团队完成,有人负责项目管理,有人负责需求分析,有人负责设计,有人负责编码,有人负责测试,有专职的QA,有版本控制的配管……软件开发怎么能由一个人完成呢?

即便不提GJB5000的要求,软件开发也不应由一个人完成。这是因为:

  1. 能力不允许

软件开发千头万绪,没有人能够做所有的事情。

软件开发不仅仅是编写代码,它还需要开发人员与利益相关方进行沟通,平衡利益相关方的期望,确认需求;需要编制预算制定计划并进行监控。

所以,开发软件需要具备熟练使用所需开发语言及其IDE环境能力,使用测试工具完成白盒测试、黑盒测试的能力,与人沟通的能力,项目管理能力,配置管理能力等等。

这其中有技术能力、有管理能力,有沟通能力;有的看智商,有的看情商。

不是每个人都是全能,实际上大多数人只是擅长其中的一种或几种能力。

所以,如果只有一个人开发软件是不可能在限定的期限和预算内交付满足用户需求的软件的。即便他技术强悍,但不善于与人沟通,就可能没有获取正确的需求,开发出来的软件也并非用户想要的软件;或者他不会控制进度和成本,他也可能不能按期交付,或者超出预算。

  1. 团队的力量是巨大的

子曰:三人行,必有我师焉。

如果你有一个团队,即便别人的水平不如你,也可能会给你带来一些新的想法;但如果你一直都是单打独斗的话,设计方案是否正确只有你自己负责,没有他人的帮助,这只会增加了你失败的风险,而且浪费了自己成长的可能性。

假设你是一名狂热的自行车设计师,你想设计出一个具有颠覆性的换挡装置。你订购了零件,然后在车库里花费了好几个星期来制作原型。当你的邻居——他也是自行车爱好者——问你最近在忙什么的时候,你没有告诉他实情,因为在这个设计完善之前,你不想任何人知道它的存在。几个月以后,你遇到了难题,仍然无法让原型正常工作。可是有一天,你的邻居从他的车库里推出一辆自行车,上面有一个全新的和你的设计类似的换挡装置。这时你一定非常窝火吧。如果你把自己的东西拿给他看,他可能立刻就指出了你在设计上存在的缺陷,你的设计可能早就实现了。

单打独斗往往带来不好的结果——有可能你是在重新发明轮子,而且你也丧失了合作的好处。实际上,开发一个新的产品,一开始就出错的概率总是很高的,越早征求意见和反馈,就越能把风险降低。

虽然一个人进行软件开发,可以借助网络这个观点和信息的大熔炉,但是它永远替代不了人与人之间真正的交流。遇到问题通过网络查找解决方案,哪有与人交流来得快捷方便?

埃里克·雷蒙说过:“只要有足够多双眼睛,就能发现所有的bug”。

实际上,在软件领域里,真正的独行侠是很罕见的。比尔盖茨尽管自己编写了BASIC解释器,但他更大的贡献是围绕MS-DOS创办了一家成功的软件公司;Linux之父莱纳斯只是写了一个类UNIX核的初级版本,然后他领导并协调了几百名程序员的工作,才开发出来如此耀眼的Linux。

软件开发,团队才是王道。

这正是:

软件开发靠团队,单打独斗不可取

团队开发是王道,况且能力不允许

参考书目:
程序员之禅,作者:Christian Grobmeier,出版社:人民邮电出版社
极客与团队——软件工程师的团队生存秘籍,作者:Brian W.Fitzpatrick,Ben Collins-Sussman,出版社:人民邮电出版社

作者简介:王小双,长期从事GJB5000推广、实施、评价、改进的工作,创建《软件工程之思》微信公众号,一直在《软件工程之思》分享GJB5000、CMMI、软件工程的知识和感悟。现致力于GJB5000咨询以及软件过程改进、软件工程能力提升的研究工作。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
UMLChina-我不经意的创业故事
软件工程能力漫谈:比质量更重要的,是项目管理能力
每日一职业,就业不迷茫! -软件工程师
高校软件人才培养体系的建构与实践
现代软件工程讲义 2 工程师的能力评估和发展
缺这项能力,做不了技术管理工作
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服