zoukankan      html  css  js  c++  java
  • 对话:关于架构、设计与需求

    wwe: ...
    wwe: 我这几年的大部分工作也是偏重架构设计
    Aim: 有什么感想呢?
    wwe: 个人觉得架构设计就像生活中的一部分
    Aim: EN..这个怎么讲?
    wwe: 架构设计就像规划你的生活一样,都想把它变好、变美
    Aim: 但是,你也应该知道。会有很多人、很多因素让生活变得不美好。
    wwe: 当然
    wwe: 但有一个美好的愿景是很重要的
    Aim: 规划就如同畅想,你甚至可以认为:床与床头柜之前应该是U形连结的最为美观,但最后发现那样的一套家俱大概要40平米的卧室,而你现在的卧室只有25平米。
    Aim: 客户的需要向来没个定准。而且你又不能指望他在需求说明书签完字之后,就不再变更。我们不能在他变更的时候讲法律、讲合约。那没意义。
    Aim: 怎么办呢?设计的弹性需要多大?你如何把握客户的变更,而是不仅是接受他当下的需求?

    wwe: 当然首先要满足客户的需求,贴近客户
    wwe: 合适的才是美好的
    wwe: 我觉得需求的变化是正常的,就像装修房子,我觉得可以尝试拥抱变化,一种方式就是用迭代、增量,快速用户反馈等方法来把握变化
    wwe: 还有就是需求一直没有变化过,可能就因为我们自己没有很好的理解需求,这就要求我们多同领域专家多沟通交流了

    Aim: 你能让这个拥抱变得快乐些吗?我的意思是说,你认为哪些是不变的,以一个实例来说,你认为一套考试系统中有哪些是不变的?
    Aim: 你围绕什么在做、在实施。又为什么能保证在三届学生之后、五年之后、五任教师之后、两套教材之后,这套考试系统是不需要做框架级的变动的呢?
    wwe: 通过分层来理清业务模块,比如可以有基础构件层,考试通用构件层,通用构件层,再加上业务流程层
    wwe: 考试系统的最终必须可以个性化,通过个人定制流程来符合各种各样人的需求
    wwe: 让使用者来制定流程,比如老师等;学生自己也可以制定流程(比如自学等)
    Aim:
    是吗?我为什么要让考生定制流程?

    Aim: 哈哈。
    Aim: 第一,你现在已经掉在了一个坑里。
    Aim: 第二,你已经被需求淹没了。

    Aim: 首先,你现在已经掉在了一个坑里。因为我最开始说是“一套考试系统中有哪些是不变的”。而你并没有明确地问我是什么样的“一套考试系统”。
    Aim: 你说“是考试过程管理,考试数据管理,考生成绩管理,还是考场管理等等”
    Aim: 所以你接下来的设计“通过分层来理清业务模块,比如可以有基础构件层,考试通用构件层,通用构件层,再加上业务流程层……”这看起来合理,但没有任何的针对性。因为原本需求就不明确,所以你的结构就只能是通用结构,而不是专门的设计。
    wwe: 哈哈,是的
    wwe: 确实到坑理了,我想起一本书《你的灯还亮着吗》
    wwe: 问题是什么,非常重要,:)

    Aim: 第二个问题,“你已经被需求淹没了”。当你发现我提了一堆问题“……你围绕什么在做、在实施。又为什么能保证在三届学生之后、五年之后、五任教师之后、两套教材之后,这套考试系统是不需要做框架级的变动的呢?”
    Aim: 之后,你给了很复杂的答案:让使用者来制定流程,比如老师等;学生自己也可以制定流程(比如自学等)
    Aim: 但事实上,因为你需求并不明确,所以产品的使用角色也就不清晰。所以,你并不知道,可能考生根本不需要参与这个系统。所以我提出的需求中有一部分是“错的”,需要被过滤掉。因此,你无可避免地被淹没了。
    wwe: 是的
    Aim: 我提出问题时并没想——也就是说,这不是我专门挖的坑。但我看到你的第二个答案时,我便意识到最先的需求描述出了问题。
    Aim: 你应该更敏锐一些。因为我出问题时很随意,但你回答则应该更小心。8-|

    Aim: 说起来,《你的等还亮吗》这本书我也非常喜欢。在《大道至简》的纸质版中,我还引用过几处呢。
    Aim: 我在盛大学到的第一课,就是争论起源于问题的不一致,而不是问题。也就是说,对于两个同样聪明的人来说,如果他们面临的问题一致,那么就不应该有争论。
    wwe: 确实,很有可能两个人在讨论“同一个问题”,而实际上“问题”是不一样的
    wwe: 另外我觉得波莉亚写的《怎样解题》这本书也非常不错
    Aim: 这个我倒没看,哈哈,谢谢推荐,回头找来看看呵。
     

    注:wwe是某公司的架构师与经理。

  • 相关阅读:
    Java实现 蓝桥杯 历届试题 翻硬币
    后台管理UI推荐
    js跳转页面方法(转)
    Request常用方法 (总结)
    Eclipse项目 迁移到 Intellj IDEA
    由后端来类比前端设计的思考(转)
    数据库字段命名及设计规范(转)
    如何改变Myeclipse编辑区背景色(转)
    Myeclipse和windows调节成护眼色
    qt截获html请求(继承QNetworkAccessManager和QNetworkReply)
  • 原文地址:https://www.cnblogs.com/encounter/p/2188658.html
Copyright © 2011-2022 走看看