分享

读书笔记:软件工程的价值

 过河卒冲 2022-04-18

图片

软件开发是一项复杂的、创造性的集体活动。

要构建一个复杂的、有效的软件体系,不可能仅仅依赖增加人手,或者延长个体的工作时长来解决问题。

复杂软件的有效构建,更需要依赖的是科学的软件工程的能力。

提升软件团队的工程能力,是解决软件开发相关问题的关键。

工程能力的致胜之本:

打的准:如果不能做好需求的识别和分析,缺乏产品方面的意识,那么研发出的软件就没有市场和用户。

打的赢:工程能力会影响软件研发的效率、质量和成本,一个低效率、低质量和成本高的软件项目是没有市场竞争力的。

工程能力不是锦上添花、可有可无的东西,而是软件开发团队的核心生存能力。

什么是工程能力

工程能力不仅仅是写好代码。代码确实是软件研发的重要产出,但是工程能力的涉及范围绝不仅仅限于编写代码。

软件研发是一个需要多人共同参与完成的工作,提升工程能力也不限于“一个人”能力的提升。

工程能力反映的是团队的综合素质。要提高工程能力,不仅要看单兵素质,也要看团队能力;不仅要提升写代码的能力,也要提升其他方面的能力。

工程能力:

使用系统化的方法,在保证质量的前提下,更高效率地为客户/用户持续交付有价值的软件或服务的能力。

图片

1、研发的目的是提供价值

在软件开发中,系统设计和代码编写等技术只是手段,而不是目的。这些技术都必须为项目的目标服务。即使有很好的技术,如果软件最终对用户没有价值,那么这个项目很可能是失败的。

单冲的从技术角度来思考问题,而忽视所研发的软件对业务的实际价值,都是不可取的。

在软件开发整个生命周期内,都要从客户需求、商业价值和资源成本多方面综合考虑,这样才会使软件的研发活动更有针对性,从而减少不必要的研发投入,控制合适的投入产出比。

2、质量第一

首先,不能保证软件质量,就会影响用户的体验,从而影响软件的价值。

其次,降低软件质量,事实上不会降低研发的成本,反而会增加整体的研发成本。在研发阶段通过降低质量所“节省”的成本,会在软件维护阶段加倍偿还。

不同性质的软件,对于质量的要求是不同的。要保证软件的质量,首先要针对项目情况,明确定义软件所应达到的质量要求。

考虑项目时间这一因素,可以通过提高技术水平来高效率、低成本、系统性地保证质量,这是软件研发团队技术能力的体现。

高质量的软件首先是设计出来的,而不是写出来或测试出来的。因此,要提高软件质量,首先要提升软件的设计能力。

3、实现价值持续交付

首先需要提升对软件研发规律的认识,明确软件的研发和维护是长周期的。

在软件规划时,需要综合考虑软件在整个生命周期内的研发成本投入,在研发的早期少欠技术债。

软件/服务的价值提供是长周期的,要做好长期维护、长期服务、持续改进优化的思想准备。

4、系统化和科学的方法

软件工程是一个非常专业的领域。

在过去数十年中,前人在这个领域已经总结出大量优秀的理念、方法和实践经验。

软件工程不是由几个小窍门或小知识组成的,而是由产品设计、需求分析、系统设计、编码方法、质量保证、项目管理、系统运维和产品运营等方向组成的综合学科,并且在每个方向上都有非常深入的体系。

在软件研发方面,是否使用了科学的方法,效果会相差十倍、百倍、千倍,甚至是从0到1的差距。

5、持续提升研发效率

在现实中,很多涉及软件研发的管理者对业务目标非常关注,而对提升软件研发能力的关注度则不足。

软件研发效率可提升的空间很大,且永无止境。

软件研发能力的提升不是一个短期行为,而是一个持续的过程。在这方面,需要团队和项目管理者,以及每个软件工程师持续关注和投入。

备注:《代码的艺术》读书笔记

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多