问题探讨 | 小团队,到底需不需要详细设计

问题:需求是多变的,设计有没有必要

两个观点:

  • 需要设计
  • 不需要设计

场景

小X:万事皆需计划,没有计划就像无头苍蝇一样到处乱撞。设计就是成熟计划的前提
小Y:计划跟设计的概念不该被混淆,没有设计计划一样可以制定
小X:没有设计的计划都是耍流氓,根本不知道怎么做哪来的计划
小Y:开发不需要细致到每一步的设计(指基本告诉你代码怎么写),过于细致的设计容易限制开发人员的思路,流水线式的开发不利于个人发展与团队整体实力提升。
小X:对于能力突出的人来讲,可能不需要给出详细设计,但是不能要求每个人都能做到快速理解快速开发。
小Y:你这是人身攻击(笑~)我们是对事不对人,人的问题是靠制度约束的,自由的开发才能最大程度激发每个人的潜力
小X:好吧,我们对事不对人,那么怎么把事做好?没有提前设计,怎么保证团队成员的理解是一致的。如果出现理解偏差,中途很可能会返工的。
小Y:你说的有道理,但是这个不能全靠设计,即使设计很详细也会出现理解偏差的。而且设计一般要耗费大量的时间,这样就压缩了开发时间,如果开发过程中出现意外,很可能无法按时交付。
小X:你说的有道理,但是没有设计出问题的几率会更大。
小Y:所以团队开发方向需要靠一个站在全局角度上的人来把控,就像掌舵手一样,及时发现问题并解决。
小X:怎么保证这个人就一定是对的呢?
小Y:这个人一定是知道团队达成的共识的。他需要不断的审视设计方案来检查漏洞,并定时接收团队成员的反馈,以了解整个开发进度及开发方向是否发生偏差,如果发生偏差及时纠正。
小X:哈~你也说设计方案了,这不就是我说的设计吗?看来你也是支持我的观点的,嘴上说着不要身体还是很诚实的嘛(不屑一顾脸)
小Y:¥%¥……&……%%……&Y%

故事中断,因为小X正在被小Y追杀。。。

总结:

  • 设计是必要的,但是没必要一定是非常详细的设计。
    • 如果需要快速开发,设计以实现为主(当然不能出现致命漏洞),然后再优化
    • 接上,实现为主的前提下,代码必须健壮,保证灵活性(封装变化点)不要日后变化一个点全盘崩。
    • 简单文档:以实现需求为前提,达到能让所有人看明白的标准。(可以用MarkDown写)
  • 团队需要一个站在全局的人,这个人不一定是Leader,可以是团队中的任何一个人。
    • 熟悉所有需求,以及所有功能实现的流程,保证开发的每个功能闭环
    • 把控全局,承担“掌舵人”的角色。不定时检查开发进度及内容,防止因理解偏差出现的方向性错误
    • “中间人”的角色,跟领导沟通、跟团队成员沟通。保证方案的设计目标是准确的,并将方案的任何变动及时通知所有的人。

写在最后

第一次尝试这种写法,感觉挺有意思。模仿对话,可能更有代入感,问题会更清晰,就是这个对话写的有点乱。。。

猜你喜欢

转载自blog.csdn.net/weixin_34219944/article/details/87196220
今日推荐