软件心学致良知篇(1)软件脓包之正确的废话

系列文章目录

第一卷 软件脓包之正确的废话
第二卷 软件脓包之皇帝的新衣



前言

该系列的文章主要是写给致力于成为优秀的软件工程师,如果你只是把软件开发作为混吃等死工具和应酬,那么它们并不适合你。什么样的肠胃理当配备什么样的食粮,精神层面我认为亦是如此。

作为一名优秀的软件工程师(即使你现在不是,相信你未来也肯定是),我们要有所坚守,要有所为有所不为。王阳明认为我们每一个人都可以成为圣人,我们每个人与生俱来都具备良知。即使是一个盗贼,你叫他盗贼,叫他光天化日之下裸奔,他还是会生气和不好意思的,这是盗贼的良知。

那么优秀的软件工程师也应该具备这种职业良知,这也是该系列文章题目的含义。

文章不能改变任何人,文章只能激发立志成为优秀软件工程师的你们的良知,你们终究会成长为你们心目中想成为的样子!

在这里插入图片描述

什么是软件脓包

脓包在医学上的定义是:身体某部组织化脓时因脓液积聚而形成的隆起物。当然我们常常用它来比喻无用之人,也进一步将其引申为社会丑恶现象。

乍一看这和软件开发有什么关系?软件开发者不应该都是一群不善言辞,只会埋头干活,凭真本事吃饭的人吗?应该不会和脓包扯上关系呀。

但是,据我观察软件开发过程中,不仅存在脓包现象,而且还呈越来越严重的趋势。


谈谈软件开发中脓包

一个完整的软件开发过程,大体上会经历需求-设计-开发-测试-上线这几个步骤。先简单看看每个阶段应该做些什么:

在这里插入图片描述

  • 需求阶段:主要包含需求分析与需求设计,需求分析的主要工作就是梳理清楚组织/人群需要改进的的问题。不管是做项目还是产品,如果没定位清楚问题,那以后就是做无用之功。接着需求设计的工作就是针对前面问题,描述应该如何利用系统或产品去改进,也就是系统/产品需要具备的表现。

  • 设计阶段:这里主要是指编码之前的设计。需求阶段已经定义好了系统/产品需要具备的表现,设计阶段的工作就是为了满足功能需求,对问题进行提炼,将现实世界映射到软件世界,对软件系统中解决方案进行业务核心域封装。

  • 开发阶段:这个阶段开始进行编码,把设计阶段的业务核心域用代码进行实现,同时需要兼顾满足一些质量需求和设计约束。也就是完成业务核心域到非核心域(编码)的映射。编码之所以被称为非核心域,是因为具体用哪种语言或哪种技术,对系统来说并不重要。

  • 测试阶段:验证核心域设计是否满足需求,也就是真正解决了用户问题。同时还会验证是否满足规定的质量需求和设计约束。

  • 上线阶段:将系统或产品交付进入实际使用的阶段。

在上述过程中,每个阶段都会产生脓包,尤其是前面二个阶段。本篇文章就先来说说需求阶段和设计阶段常见的的一些脓包。

正确的废话

这个脓包常常产生与需求阶段,它的外在体现集中在产品文档中,比如:需求规格说明书或产品规格说明书中。

比如这么一个需求描述:为了满足HR的考勤需求,所以需要做一个考勤功能。

你有没有看出来这个描述的问题?

如果没有get到关键点,我再换一个:为了满足你要吃阿莫西林的需求,所以药厂要生产阿莫西林。

怎么样?相信你看完后瞬间就反应过来了:哎,这明显不对嘛!

你再回头对比看看两个描述,结构上是不是完全一样。

很明显,写出这种需求描述的人,根本就没有进行深入思考,或者说根本就没在思考。没有哪个病人自己会有吃阿莫西林的需求,正如没有哪个HR会有考勤的需求一样。

病人要吃阿莫西林肯定是因为生病了,可能是呼吸道感染,可能是胃部出现了问题。吃药是为了解决病症,至于吃什么药不是病人自己随便决定的,需要去看医生。

同样HR可能是需要记录上下班时间进行绩效核算,可能需要统计员工工作积极性,可能是所以需要某种系统来进行信息管理。

所以这种正确废话式的脓包是我们在需求阶段要警惕的,要避免这种脓包也很简单,推荐使用用户故事的结构去描述产品需求。用户故事的三段式结构:作为某角色我需要活动以便于上商业价值,能够强迫我们做更深层次的思考。

在这里插入图片描述

  • 42
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值