同敏捷开发同样具有影响力的是微软的MSF开发模式,他有着一下几个基本原则:
一、推动信息共享与沟通
所有的信息都保留并公开,讨论要包括所有涉及的角色,决定要公开并告知所有人。当然,对牵涉到的技术机密、安全性等信息要采取必要的保护措施
这样确实有很多好处,首先,信息都保留了下来,其中更是对的,错的都有。
这一方面当我们想查询自己以前的程序时,可以很方便的找到程序,并且,我们可以不断的从自己的错误中积累经验。
二、为共同的远景而工作
这里 “共同的远景” 是指产品的远景,在同一时段,团队里的人的目标应该一致,这样才能真正的齐心协力,把软件开发好。
三、充分授权和信任
关键在于 “授权” 。
在一个高效的团队里,所有成员都应该能得到充分的授权,他们有权在职权范围内按照自己的承诺完成任务。
同时,他们也充分信任其他同时能实现各自的承诺。
类似的,团队的顾客也认为团队能兑现承诺,并进行相应的规划。
四、各司其职,对项目共同负责
团队中的每个角色都有自己的职责,如果出了问题,这个角色就要负责任。
五、重视商业价值,提供渐进的价值
六、保持敏捷,预期和适应变化
软件工程,唯一不变的是变化。
七、投资质量
八、学习所有的经验
九、与顾客合作
以上就是MSF的九项基本原则。
MSF同样还支持敏捷开发模式和CMMI开发模式。
软件之所以诞生,就是为了解决现实社会和生活中的各种问题。那么软件团队想要找出需求具体有下面的几个步骤:
一、获取和引导需求
二、分析和定义需求
三、验证需求
四、在软件产品的生命周期中管理需求
软件产品的利益相关者:用户、顾客、市场分析者、监管机构、系统/应用集成商、软件团队、软件工程师
那么,怎么获取用户需求呢?-----用户调研
1.焦点小组 2.深入面谈 3.卡片分类 4.用户调查问卷 5.用户日志研究 6.人类学调查 7.眼动跟踪研究 8.快速原型调研 9.A/B测试
做一个软件,不仅要能做好他,还要能在做软件之前,很好的预估做好软件的时间。那么怎么能够提高我们的估计能力呢?
1.参考前人的经验 2.运用公式计算 Y=X+(-)X/N (Y代表实际用的时间,X代表估计的时间,N代表该程序员做过类似此项目的次数)
在学程序语言的时候,我们知道,在解决大型问题的时候,解决的最好方法是分而治之。
同样的,对于一个大型的项目,我们同样应该采用分而治之的方法来解决问题。
对于我们学软件的学生来说,可能我们只知道开发和测试,但实际上,在公司里还有一类人,他们做着开发和测试之外的事情,那就PM,人称项目经理。
具体做的事情有:1.和客户交谈,组织用户调查,发现用户需求 2.了解和比较竞争对手的产品 3.怎么让软件变得可用、有用 4.怎么改进团队的流程等等。
简而言之,PM做开发和测试之外的所有事情。
并且,PM还要学会风险管理。
那么,PM的能力要求和任务是什么?
一、观察、理解和快速学习能力
二、分析管理能力
三、一定的专业能力
四、自省的能力
下面讲讲作为大学生,如果想要做PM,需要准备着什么?
1.参加各种社团并组织一些活动,最好是草根的活动,而不是由上而下规定的活动;
2.选修各种相关学科的课程
3.争取在实际的企业中实习
4.和小伙伴一起,搞点小生意、小创业