zoukankan      html  css  js  c++  java
  • 【读书笔记】20年后的人月神话

    关于《人月神话》(notes),作者在20周年后的自嘲:20年前的一本与30年前开发经验相关的书。我们知道软件工程师大概分三种:编码员(Coder)、程序师(Entrepreneur)、架构师(Architect),20年之后他依然对架构师不厌其烦的强调。

    作为架构师,他们需要维护概念一致性。一个整洁、优雅的编程产品必须向它的每个用户提供一个条理分明的概念模型,这个模型描述了应用、实现应用的方法以及用来指明操作和各种参数的用户界面使用策略。上次我们谈到什么是创新的时候讨论过“怎样才能创新”这样一个问题,现在我认为应该概念一致性这一点也是创新的重要因素

    架构师的思维不需要天马行空,甚至要阻止出现这些点子,因为这些拼凑在一起的点子只会让产品结构变成一团乱麻,他们需要的是有秩序、有逻辑的思维。这些有规则的游戏才能反复使用并保存下去。

    为了尽量保持这种概念一致性,设计产品时就不能添加太多边缘功能。我们要清楚自己的核心在哪,优势在哪。这对正要着手于团队项目的我们十分重要,但问题也随之而生,如何才能围绕核心,从为用户服务的角度来看我们首先要做到就是必须要掌握用户的需求。对于大的用户群,为用户群的属性明确地记载各种猜测。清晰和错误都比模糊不清好得多。

    思想概论课上老师以韩剧《来自星星的你》为例说明了贴近用户的重要性,电视剧试播时由于男主角的衣服由深V变成了高领而引起观众的强烈不满,所以剧组立马调整回来,赢得了一致好评。用户的需求复杂性常常超过我们的理解,再完备的数据分析也不如尽早的发行出alpha版本给用户测试,这才是解决这个问题的终极之道。

    瀑布模型的基本谬误是它假设项目只经历一次过程,而且体系结构出色并易于使用,设计是合理可靠的,随着测试的进行,编码实现是可以修改和调整的。所以增量开发模型更加贴近我们的开发过程。

     

  • 相关阅读:
    Python 工匠:编写条件分支代码的技巧
    component-scan标签的use-default-filters属性的作用以及原理分析
    Serverless 架构的优点和缺点
    5 种使用 Python 代码轻松实现数据可视化的方法
    曾经我是一个只会excel的数据分析师,直到我遇到了……
    月薪45K的Python爬虫工程师告诉你爬虫应该怎么学,太详细了!
    用 Python 构建一个极小的区块链
    第六章 程序数据集散地;数据库
    MyBankgon功能
    第四章 深入C#的string类
  • 原文地址:https://www.cnblogs.com/chenzhikai/p/8947885.html
Copyright © 2011-2022 走看看