软件设计师系列1——软件设计师都干点儿啥

说到软件设计师都干点儿啥,很多人会想到写设计文档,画UML图,而我想从另一方面来说说

从职业类比说起

医生是个职业,医师、主治医师、主任医师是职称
律师是个职业,四级律师、三级律师、二级律师、一级律师是职称
程序员是个职业,你可以将软件设计师、软件架构师理解为职称

三种职业的相同点

医生一般是,通过检查确认身体的病因,寻找治疗方案,再进行治疗
抽象地说就是:分析问题,寻找解决方案,解决方案落地

律师一般是,通过对证据进行分析,在法律上找到解决纠纷的方法,打官司
抽象地说就是:分析问题,寻找解决方案,解决方案落地

程序员一般是,通过分析要实现的功能,梳理设计思路,写代码
抽象地说就是:分析问题,寻找解决方案,解决方案落地

这三种职业及其相似,都是在:分析问题,寻找解决方案,解决方案落地

三种职业的不同点

这三种职业的不同点也很明显,就是:问题所处的领域不同

不同职称有何区别

以医生为例,我父亲生病住院,主治医师当晚就说,可能是GBS。第二天主任医师查房,要求做CT和脊髓穿刺,排除中枢神经的一些病变并确诊是GBS。
抽象地说就是:主任能从更高的层次、更大的范围,去分析问题并寻找解决方案

所以,比起普通程序员,软件设计师也是一样,能从更高的层次、更大的范围,去分析问题并寻找解决方案

结论

软件设计师都干点儿啥?
软件设计师也是程序员,除了写代码之外,软件设计师可以解决更高的层次、更大的范围的问题。
更高层次和更大范围的问题的解决方案,描述起来需要用更宏观的方式,这就是UML。虽然解决方案最终也是用代码实现,但如果要描述并讨论解决方案,会由于代码太细致,导致只见树木不见森林。
UML只不过是描述解决方案的一种工具,并且在软件行业已经达成一致,所以它非常有利于交流。

进行软件设计

找需求人员把问题理解清楚,分析问题并思考解决方案,把解决方案用UML描述出来,这就是软件设计。
软件设计的过程不需要面面俱到的文档,只要能自己想清楚,并且用UML描述出来就行了。
思考的过程,会发现很多需求的细节,过程中应该和需求人员深入地讨论。

设计评审

往往会有多个方案拿不准,或者自己的方案担心有缺陷,这就需要设计评审了。
设计评审更不应该有面面俱到的文档,我的经验是:

把设计草图画在纸上,拍个照
把大家召集在一起,一定要有白板
大家一边看你的设计草图(投影或显示器),一边讨论,一边在白板上重绘
将白板上的结论拍照留底,直到所有问题讨论结束

写设计文档

设计文档就是把问题描述清楚,再把解决方案描述清楚就可以了。
解决方案就是设计评审通过时,大家在白板上绘制的照片。
具体的方法和模板,在下一篇有详细描述。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值