zoukankan      html  css  js  c++  java
  • 构建之法:第五次心得

    这个星期我学习了构建之法的第9章、第10章和第11章。

    9

    这一章,首先我知道了PM代表着什么,PMM就是Manager,但是P有好几种:Product ManagerProject ManagerProgram Manager,不同的行业和公司对PM有不同的解释,但是在这一章,介绍的是微软的项目经理—Program Manager

    项目经理主主要的职责就是根据市场和用户需求,协调各部门资源,正确地把握产品定位和方向,解决用户的痛点,持续优化产品。在书中我们可以看到在软件行业开始的初期,对于项目的分工,团队之间会存在很大的争议。但PM的出现很好的解决的这个问题,PM有两个重要的特性:1.负责一个功能的开发/测试人员和相关的PM密切合作,再由PM代表这一小组去和别的小组或者客户打交道,大大降低了交流的成本。2.有专人负责开发/测试之外的许多事物和项目进度的管理,让开发和测试人员专注于技术方面的工作。也就是说,PM做开发和测试之外的所有事情。包括在开发和测试过程中出现的风险,PM要在整个项目的生命周期管理风险。这就要求PM在风险管理中做到:1.发现问题后及时了解情况 2.缓和并且防止问题 3.预计 4.把问题变为机会 。

    作为一个合格的PM,需要有一下几项基本的能力:1.观察、理解和快速学习能力 2.分析管理能力 3.一定的专业能力 4.自省的能力。在项目完成期间要积极与组内成员做好沟通,仔细了解每个人对项目投入的认识,整合出来,这对于当好一个PM也是至关重要的!

    10

    在这一章中,我学习到了在项目中的典型用户和场景,了解到了在实现用户需求的时候,光看用户的表面语言或者行动还是不够的,还需要找到用户语言或者行动背后的动机!

    在软件设计的过程中,软件开发者会以自己的视角用专业的知识完成整个操作,但是软件最终设计出来是给用户使用的,往往那些用户对电脑不是那么熟悉,这时候,我们就需要设想出“典型用户”,强迫我们在考虑问题时从用户出发。“典型用户”的设计也需要从不同方面考虑:受欢迎的典型用户和不受欢迎的典型用户。我们还需要与这些设想后的典型用户的现实生活中的代表交流,了解他们的需求,在对自己的典型用户细化、修改。

    在这之后,就需要考虑场景了。典型用户想要通过系统实现什么目的,这就是场景所需要完成的。描述典型用户在这个场景中所处的内部和外部环境,给场景划分优先级,按优先级排序写场景。不同的任务会把一个场景编织起来,在这个场景中,我们就需要模仿典型用户,完成他们的潜在需求。

    在实现用户需求的过程中,用例也是很常用的需求分析工具。它的原则是:1.通过讲简单的故事来传递信息 2.保持对全系统的理解 3.关注用户的价值 4.足部构建整个系统,一次完成一个用例 5.增量开发,逐步构建整个系统 6.适应团队不断变化的需求。

    对于一个完整的软件,要想用户对自己的软件有较高的熟悉度,规格说明书是必不可少的。软件功能说明书是主要用来说明软件的外部功能和用户的交互情况。软件技术说明书是主要用来说明软件内部的设计规范。

    为了源源不断地实现用户的需求,就需要功能驱动设计,即FDD。它的步骤是:1.构造总体模型 2.构造功能列表 3.制定开发计划 4.功能设计阶段 5.实现具体功能。

    总之,在软件开发过程中,一定要对典型用户和场景这一块内容有深刻的理解,不然对实现用户的需求会有很大影响。

    11

    我们写软件就是要解决用户的需求,在这个过程中,需要很多的分析与设计,包括以文字为主的文档、用图形为主构造的模型、用数学语言的描述、用类自然语言+代码构造的描述和源代码加注释也能描述。

    书中主要介绍了图形建模和分析方法,它主要是表达实体和实体之间的关系、表达数据的流动、表达控制流和统一的表达方式。当然还有其他设计方法,比如形式化的方法和文学化编程等。从设计文档到最后实现,不单单是只需要研究代码,在代码中可能会有很多漏洞,各个模块之间的合作还有很多问题。测试用户的需求方面,可能还有很多修改意见。但是,从一个项目制作以来,从无到有,从简到繁,把之前的设想变成真真正正的软件,也是一件非常了不起的事情。

    对于开发阶段的日常管理,首先,我们做开发软件,并不是让团队像被关在监狱里面一样,要有大家自由交流的时间。其次,要想成为一个成功的软件公司,在对于每个项目,都要实现每天或者至少每周完成构建,当有一个能运行的系统时,即使是一个简单的系统,团队的积极性也会上升。然后,就是在面对构建一直失败的情况下,针对做事不仔细的人,鼓励他们,这样他们自己在受到关注后,也会对项目更加用心。最后,在成员个人行为只影响个人的时候,放松处理;但是危及到团队的话,就要严格处理。

    总之,在面对软件设计与实现的时候,我们要尽可能细化到每一个小细节,完成每一个小功能,这样最终才能制作出符合用户需求的软件。

  • 相关阅读:
    用JSP实现的商城购物车模块
    PHP Filesystem 函数(文件系统函数)(每日一课的内容可以从php参考手册上面来)
    PHP unlink() 函数(删除文件)
    $_SERVER['DOCUMENT_ROOT']
    thinkphp模型事件(钩子函数:模型中在增删改等操作前后自动执行的事件)
    php实现字符串替换
    js私有变量
    js模仿块级作用域(js没有块级作用域私有作用域)
    unity 3d开发的大型网络游戏
    thinkphp5项目--企业单车网站(八)(文章板块要点)(删除图片)
  • 原文地址:https://www.cnblogs.com/20hx/p/6877716.html
Copyright © 2011-2022 走看看