20162320刘先润大二《程序设计与数据结构》第二周学习总结

《构建之法》第7-9章节PPT学习总结

  • 微软解决方案框架(Microsoft Solution Framework,MSF),是微软公司经过吸收各部门积累的业务经验并随着时代更新的软件开发方法。其主要原则有9点:推进信息共享与沟通、为共同的远景而工做、 充分受权和信任、各司其职,对项目共同负责(不只要完成本职工做,更要对项目负责)、重视商业价值、保持敏捷,预期变化、投资质量(投资的效率,时期并要求长期)、学习全部的经验(要坚持总结和分享)、与顾客合做(从用户角度出发)
  • 用户调研(User Study),A/B测试,经过态度、行为、定性、定量来规范调研的尺度。
  • 需求分析html

    软件需求

    将需求进行分类、清楚软件产品的利益相关者、获取用户需求(用户调研)、竞争性需求分析的框架、功能的定位和优先级、目标估计和决心、找出估计后面的假设、最后分而治之git

    经验公式

    工程师的经验公式实际时间花费主要取决于两个因素—对 某件事的估计时间X,以及他作过相似开发工做的次数N。 Y = X ± X ÷ N
  • 提案,评估和WBS程序员

    NABC model

    N--need需求、Approach--作法、Benefit--好处、Competitors--竞争、Delivery--推广方式算法

    评估

    目标(根据实际的需求来定)、决心(它承诺在特定日期交付预约义的功能,做为特定的质量级别)、估计(单个任务花费的人力、时间)数据结构

    WBS – Work Break Down

    分而治之,顶层(产品)→中层(功能)-用户视角→较低级别(功能实现)-团队透视图(PM,test)→最低级别(模块)-开发透视图
  • 风险管理。第一步:确认风险、根据不一样的来源对风险进行分类;第二步:分析和优先级划分;第三步:计划和管理风险
    应对风险的方法:进一步研究、接受、 规避、转移、 下降、制定应急计划
  • 项目经理(PM),PM负责除产品开发和测试以外的全部事情,包括正确地作产品和正确地作流程。
    PM的做用:收集需求、设计用户界面,编写规范、协调市场、文档、测试、定位、带领团队达成决策
    注:项目经理是和你们平等工做,而且作具体工做,和其余团员一块儿造成决议,只管事无论人的,和领导型经理是不同的。框架

《构建之法》学习中提出的有价值的思考问题

  • 问题1:在第7章,关于作用户调研,书中举了一个例子,Bowman是谷歌的视觉设计主管,谷歌的一个团队不能在两个蓝色之间作出决定,因此他们在每个蓝色之间测试41个阴影,看看哪个表现更好。他最近就边界是否应该是3, 4,或5像素宽进行了辩论,并要求证实他的状况。我已经厌倦了辩论这种微小的设计决策,《论语》云:“如切如磋,如琢如磨。”作事要求精益求精,在进行用户调研的过程当中,为何不能调研细微到毫厘,即作调研作过头?或者说如何肯定作用户调研的界限,究竟哪一种调研才算是作过头呢?好比当我作用户调研时,我努力朝着最精确的方向去作,但我是否已经作过头了呢?
  • 问题2:第9章中,“一个团队成熟的标记,就是对风险的管理”,在《构建之法》中如是说,几乎每一个优秀的团队都会有本身独特的一套风险应对措施。关于如何应对风险,首先就应该确立态度,书上给了三种不一样的态度,经过查阅百度百科,我了解到风险态度是一个专业名词,总共分为三种态度,引用该知识点以下:
  风险厌恶是一我的接受一个有不肯定的收益的交易时相对于接受另一个更保险可是也可能具备更低指望收益的交易的不情愿程度。
  风险中性是相对于风险偏好和风险厌恶的概念,风险中性的投资者对本身承担的风险并不要求风险补偿。咱们把每一个人都是风险中性的世界称之为风险中性世界(Risk-Neutral World)。
  风险偏好是指人们在实现其目标的过程当中愿意接受的风险的数量。

如上三种态度是一个从保守到开放的过程,这三种态度中任何一种都有其存在的理由,是否是风险中性必定是最好的选择呢,或者是求稳发育仍是冒险一搏呢?学习

  • 问题3:第9章关于项目经理PM,提到Project Manager 和Program Manager的一个区别是一个团队能够有不少Program Manager,而且是和团队其余成员进行决议。我提出一个疑问若是一个团队中存在多个PM,他们针对一个项目造成了多个决议,这种窘况该如何解决呢?还有就是既然每一个团队成员均可能当上PM,而这个职位又没有实际权力,这对团队的帮助做用真的大吗?我认为这设些带有少量管理权力的职位例如小组长效果会比较好,由于小组长是能力佼佼者,自己又能管事和管必定范围内的人,不就提升了小团队效率吗?
  • 问题4:project manager和program manager有一个区别在于前者管事也管人,后者只管事无论人,而且符合PM能力要求的程序员都有机会成为PM。假若一个程序员能力很强,可是并不会管理和领导,像这样领导力较弱的PM和能力不是特别强但领导力出众的程序员相比,谁能更加胜任这一职位呢?因此PM须要有很强的领导力吗?

上周考试错题总结

  • 错题1:
    ```Determine the order of the following pseudocode fragment.
    if (a > b) then
    print a
    else
    print n
    end if
解答:O(1),全部的if子句只包含一个操做。我原来写的O(n),我觉得上限是n就直接填了O(n)。
- 错题2:

Determine the order of the following pseudocode fragment.
j = 1
for i = 1 to n
j = j * 2
next i
for k = 1 to j
x = x + 1
next k
```
解答:O(2n) ,第一个循环的2n值被计算并存储在j中,所以第二个循环执行2n次。说实话,这个题是题目看错了,我把 j = j * 2 当作了j²。测试

代码托管

本周学习《构建之法》,代码只练习了课上的代码。
.net

其余(感悟、思考等,可选)

6我的1本书不够看设计

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 188 1/1 25 算法分析
第二周 70/258 1/2 15/40 《构建之法》7-9章
第三周
  • 计划学习时间:15小时

  • 实际学习时间:15小时

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料

相关文章
相关标签/搜索