提出问题
快速通读教材《构建之法》,并参照提问模板,提出5个问题。
如何提出有价值的问题? 请看这个文章:http://www.cnblogs.com/rocedu/p/5167941.html ,以及 在互联网时代如何提问题。 还有这些要点:
- 在每个问题后面,请说明哪一章节的什么内容引起了你的提问,提供一些上下文
- 列出一些事例或资料,支持你的提问。
- 说说你提问题的原因,你说因为自己的假设和书中的不同而提问,还是不懂书中的术语,还是对推理过程有疑问,还是书中的描述和你的经验(直接经验或间接经验)矛盾?
一个模板可以是这样:
我看了这一段文字 (引用文字),有这个问题(提出问题)。 我查了资料,有这些说法(引用说法),根据我的实践,我得到这些经验(描述自己的经验)。 但是我还是不太懂,我的困惑是(说明困惑)。
或者这样:
我反对作者的观点(提出作者的观点,自己的观点,以及理由)。
大学生应该能写出自己的思考, 而不是摘抄书本内容。
提示:编程经验不多的同学,建议看16章 “创新”, 提出自己的问题。
Q1:关于结对编程
每个人每天高效率工作时间不超过3-4小时。结对编程中驾驶员和领航员的角色要经常互换,避免长时间紧张工作而导致观察力 判断力下降
- 现在已经是大三下了,我们每天上完课以后剩余的时间不一定非常充足,而且即使有充足的时间,由于每个人将来目标的差异投入到软工课程的时间也是参差不齐的;我的疑问是:没有那么充足的时间,如何保证结对编程的质量?
极限编程对工程师提出更高要求。这种要求不关乎技术水平,也不关乎学历水平或工作经验
- 根据以往的课程设计经验,我发现比较早完成答辩的往往是哪些有dalao的小组,技术水平在结对编程里真的无关紧要吗?
Q2:关于需求分析
功能分析的四个象限:
外围功能 杀手功能
必要需求 辅助需求
- 我的疑问是:杀手功能是不是有可能随着市场的变迁,用户使用习惯的改变变得不那么必要,以至沦为外围功能(就像以前的小灵通 寻呼机);在这种情况下软件开发者要怎么应对,要直接放弃整个软件吗?
Q3:关于用户体验
适合各种类型用户:软件要为新手和专家提供可定制化设计,还应该为存在某些障碍的用户提供一定程度的便利。对于长期使用某个软件的用户,软件应该能适应用户的使用习惯,让用户越用越顺手,最后产生感情上的好感和忠诚度
- 我的疑问是:当各种用户的用户体验之间产生冲突时,该如何处理,为每一种不同的用户体验开发不同的功能?这样做成本允许吗?还是向大多数用户让步,只要开发满足大多数用户的功能就好
Q4:关于软件质量保障
一个团队也许可以靠一些特殊的方法来提高程序的质量,但是软件工程的质量需要长期的过程来提高;软件工程的质量体现在:软件开发过程中的可见性;软件开发过程中的风险控制;软件内部模块,项目中间阶段的交付质量,项目管理工具的因素;软件开发成本的控制;内部质量指标的完成情况
- 一款软件发布以后,必然伴随着各种情况的发展变化(比如用户人数增多等),开发软件的技术人员必然要做好准备应对相应的情况,也就是说要在运维上下功夫;
- 我的疑问是:运维可以算作是软件工程质量标准的重要一环吗?
Q5:关于创新
迷思之七:成功的团队更能创新 p356
- 我的疑问是:成功的团队一定会像书中所说受到巨大期望的制约从而在创新的旅途上止步不前吗
- 举一个例子 大名鼎鼎的valve软件公司在90年代开发出自身素质过硬的《半条命》系列游戏并取得了巨大的成功,然而如今距离valve发行的最后一部游戏作品已经过去了将近五年;约略一看valve的游戏帝国是进入了守成期,可是由valve开发/运营的steam游戏平台(非游戏产品)在近年来依旧能够取得耀眼成就,这充分证明了valve依旧有着旺盛的创新能力
【附加题】:请将问题提交至豆瓣:https://book.douban.com/subject/27069503/, 并在博客中给出链接
在豆瓣页面的最下方 “读书笔记” 那里发言, 《构建之法》的作者会亲自答复问题