第七章-MSF
这一章讲了MSF,MSF即微软解决方案框架(Microsoft Solution Framework),是微软推荐的软件开发方法。他与敏捷流程一样有着自己的原则,
MSF思想框架的一套思想框架:
1、推动信息共享与沟通
2、为共同的远景而工作
3、充分授权和信任
4、各司其职,对项目共同负责
5、交付增量的价值
6、保持敏捷,预期和适应变化
7、投资质量
8、学习所有的经验
9、与顾客合作
在这一章也介绍了几种模型与模式,MSF团队模型MSF过程模型MSF敏捷开发模式MSF CMMI开发模式
读到这里我感觉到了不是每一个团队都是十全十美的,在某些地方上也可能会有一些冲突,从上面看来理念和流程都很复杂,还是要看每个程序员自身的修养和完成工作的素质,只有这样才能有更高的工作效率与质量。
第八章-需求分析
作为程序员,我们要做的是,将用户的需求充分挖掘出来,我们需要设身处地站在用户的角度上,将他们所说的需求实现,不仅仅如此,还要将之完善,并且预判将来的可能所要的需求。将这些打包以后,让用户验证是否是他们真正的需求。
8.1软件需求
寻找需求:
1.获取和引导需求(Elicitation)
软件团队需要找到软件的利益相关者,了解和挖掘他们对软件的需求,引导他们表达出对软件的需求。
2.分析和定义需求(Analysis&Specification)
这是指对从各个方面获取的需求进行规整,定义需求的内涵,从各个角度将需求量化(需求实现的最后期限,实现需求大致所需的时间和资源成本,各个不同需求的优先级,需求带来的收益,等等)。
3.验证需求(Validation)
软件团队要跟利益相关者沟通,通过分析报告、技术原型、用户调查或演示等形式向他们验证软件团队对于这些需求的认知。
4.在软件产品的生命周期中管理需求(Management)
在软件的生命周期中,需求在发送变化,技术在发展,团队成员的能力在提高。
对软件需求的划分:
1.对产品功能性的需求:要求产品必须实现某些功能。
2.对产品开发过程的需求:要求软件的开发流程必须满足某些约束条件,例如,开发过程必须产生某种类型的文档,必须在某个时间点达到某个状态,必须对源代码施以某种约束(安全性检查、代码版权核查、代码规范和支持文档的核查)。
3.非功能性需求:例如:执行时间限制等。
4.综合需求:可能牵涉到其他系统的情况。
8.2软件产品的利益相关者
用户:
顾客:购买这个软件或者根据合同或规定接收软件的人。这些人不一定是软件的直接用户。
市场分析师:市场部门要代表“典型用户”的需求。
监管机构:
软件工程师:工程师也是软件需求阶段的一个重要角色,软件的各种约束、特性会影响到他们的工作效率、开发难度和软件维护的难度。他们应积极参与到软件需求阶段中来。
8.3获取用户需求——用户调查
1.焦点小组(Focus Group)
2.深入面谈(In-depthInterview)一般是一对一。
3.卡片分类(Card Sorting)讨论->明晰定义->归类->排序
4.用户调查问卷(User Survey)
5.用户日志研究(User Diary
Study)
6.人类学调查(Ethnographic
Study)
7.眼动跟踪研究(Eye Tracking)
8.快速原型调研(Quick
Prototype)
9. A/B测试(A/B Testing)
8.4 竞争性需求分析的框架
大部分普通用户的需求都有好几个互相竞争的机构在提供服务,对于互联网类型的软件来说,更是如此。很多需求并不是用户提出来的,而是技术的突破让产品团队看到了可以让用户做到以前不敢想、不敢做的事情—但这个时候大多数用户并没有意识到自己有这个具体需求。
1. N(Need,需求)
2. A(Approach,做法)
3. B(Benefit,好处)
4. C(Competition,竞争)
5. D(Delivery,推广)