一个沉重的问题:软件开发还有价值吗?

不管是医生、教师,还是会计,都很容易让人了解工作的内容,而且这项工作在现实生活中也能继续进行下去,但是软件开发工程师这个职位实在是太难描述了。综观国内外众多程序员论坛,我们总能看到与“软件开发”相关的讨论,有不少网友甚至对此提出疑问:软件开发是一门无用的职业吗?

创新互联建站专注于宁远网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供宁远营销型网站建设,宁远网站制作、宁远网页设计、宁远网站官网定制、微信小程序开发服务,打造宁远网络公司原创品牌,更为您提供宁远网站排名全网营销落地服务。

一般而言,成都软件开发工程师既是软件设计师,又是软件架构师,又是一名**的程序员,可谓身经百战,为什麽标准的高薪技术员总是被爆出悲观无用的论调?

软体开发是无用的职业?

一个软件工程师在国外和很多同事聊天时得出这样的结论:对大多数人来说,软件工程开发是一个除了工作以外没有任何用处的职业,而这个技能在生活中几乎不会用到。很多网民发帖调侃说,平时还可以修电脑,重装系统,清理电脑垃圾等等。大多数软件开发工程师不会详细地向家人介绍他们的工作,除非他们找不到工作,或者因为介绍得太详细,他们曾经被家人拉去四处奔波修理电脑。

尽管调侃的成分很多,但也不免会有些心酸。事实上,软件开发工程师在产品生命周期中的角色是非常重要的,涵盖了需求,设计,开发,修改,发布等各个环节,生活中也没有传说中那么乏味和无用。许多软件开发工程师都很擅长用编程来解决日常生活中的问题,例如编写一些软件或小程序自动地执行部分重复的复杂工作;为零售店编写网站或APP,以方便用户选购商品;为家庭编写控制程序,以达到智能目的;编写简单的日程表提醒软件,以免忘记重要的约会...有业内人士表示,是否有用取决于用户是否真正需要,只要是必要的软件开发工程师就值得他们去做。

另外,在国外如谷歌、苹果等一线科技公司工作的软件开发工程师的工资水平早就达到了每年一百万人民币。回顾国内,2010年软件出口规模达215亿元人民币,软件从业人员达72万人,尽管如此,但人才缺口依然巨大,特别是高素质软件工程人才严重短缺。

因此,这一职位并非没有用,而是没有**的人才。

软体品质下降是开发的大锅吗?

一位好的成都软件开发工程师必须对自己的产品负责。现在,一部手机就能解决吃饭、休闲、旅游、娱乐等各个方面的需求,只需几个APP就能搞定,软件产品越来越多,但真正能算得上颠覆性创新的东西却越来越少,基础软件的质量似乎越来越差,这锅该背吗?

有位***深夜在V2EX上发表了一篇题为“底层开发的性价比越来越低,基础软件的质量也会越来越差”的博文,他说前半句是目前的事实,后半句是根据事实推断未来,也就是说,基础软件的质量会越来越差,这是什么意思?

在他看来,现在只有一小部分年轻人愿意花几十年的时间来维护和学习前人的代码,整理出数以千万计的代码,基本软件的质量逐年下降。大多数年轻人都不愿当“平行世界的守护者”,更有观点认为“不要重复造轮子”。

由于市场对产品研发周期和迭代周期的要求不断提高,各种敏捷开发工具应运而生,与以前相比,软件开发工程师所花的时间的确减少了,但是他们对性能和用户体验的关注却在减少,这也导致了大量软件流入市场,但总体质量却在下降。

诚然,不少挣扎在一线的底层***对此也表示不满,认为国内仍有许多***重视基础软件质量,并愿意更新迭代以前编写的底层代码,只是这一群体话语权太少,外界的声音太弱。

当然,也有网友认为,这也不全是软件工程师的问题,很多公司在软件开发过程中常常是需求提了改、产品提了改,**开发的产品成了无用的代码堆积如山;工期一再被压缩,为了赶时间,大多数软件开发工程师不得已而为之节省了设计时间,自然没有时间来评估项目的效益和成本,结果往往是修改和更新非常痛苦,不同***之间的协作也可能影响到系统的其他功能,导致整个软件开发过程漏洞百出。

所以,软件质量的优劣不能单纯依靠软件开发工程师来解决,这其中还涉及到多人协作、部门协作等问题,这一锅全压在工程师身上,也是有点疼。

怎样避免无用的代码堆积?

一度向往的职业变成了日积月累的无用代码,多少让开发人员有些沮丧,虽然不能保证整个产品的质量,但至少可以在代码层面上下点功夫。“无用代码积累”的现象在日常的软件开发中很常见,对于需求经常修改的问题,其根源在于找出软件开发的目标,而*终决定代码是否有用的人应该是用户,如果一段代码所具有的功能符合用户需求,并且具有商业价值,那么它是有用的。

需求变更和代码修改是软件开发过程中常见的问题,但是这种不确定因素也需要考虑。针对这种情况,**的解决方法可能是迭代开发,也称为迭代增量式开发,它将整个开发周期分解成几个时间段,每隔一定的时间对软件进行一个小的迭代,每迭代几次,进行一个全面测试和大的版本更新,对开发结果进行质量审查,而这一过程*重要的是听取终端用户的意见,以便及时调整优化,避免无效需求,特别是决策者们拍脑门出来的决策。

在开发前,技术负责人必须准备好相应的文件,确定各个工程师的分工,特别是需要协作完成的部分。此外,如果不同工程师之间的代码经常相互影响,那么团队将尽可能抽时间和精力来进行代码Review,并且目标是降低代码的复杂性,考虑让这些程序员负责独立开发模块,减少对整个项目的影响。

长久以来,测试在国内没有受到足够的重视,一个测试团队至少应有白盒测试、效率测试、单元测试等各种全职人员,不建议在所有功能都完成后才开始测试,**是一个功能马上完成,测试阶段应由测试人员充分掌握,开发人员的工作必须得到尊重。

*终,成都软件开发是一项非常复杂的工作,为了避免过程中出现错误,许多公司摸索并建立了完善的代码编写规范,包括变量命名规则,分层设计,类和接口设计,直到*终的代码审查结果都很明确,*重要的不是写代码,而是学会解决问题,做真正有价值的事。

毋庸置疑,软件工程开发是一个有价值的工作,也是一个非常具有挑战性的工作,这种价值不仅体现在工作中,许多**的软件产品已经影响到了用户的生活,这也是许多一线技术公司不可或缺的职位,但是价值到底有多大,还要看做的人,如果开发人员本身的技术不高,很容易弄巧成拙。


分享题目:一个沉重的问题:软件开发还有价值吗?
链接URL:http://ybzwz.com/article/sheocp.html