软件工程实践----初步接触软件工程的总结
这学期的软件工程课即将结束,下面我就对本学期的软件工程课做一下基本的总结。
首先,这是我学期初在阅读了相关资料后提的一些问题:http://www.cnblogs.com/bsdbch/p/4027935.html
这些问题,有的在实际的课程实践中碰到了,因此得到了更深一步的了解。比如关于如何进行需求分析、产品定位,再比如如何控制代码的质量,如何架构整体框架从而让子函数、子类变得更小。但是也有些问题,由于我们的产品没有达到用那些高级方法的高度,所以没有过多的了解。比如关于程序模块间的耦合。
下面说说我通过看书和实践学会的那些东西。
关于需求:
1.采集需求
直接需求的采集(主要):需求采集需要 明确目标用户 手段有:用户访谈,调查问卷,可用性测试(让少部分用户对DEMO版提前试用),数据分析
间接需求的采集(次要):从接触用户的运营、技术、销售等人员采集需求。
2. 分析需求
用户需求!=产品需求。 不要听他说什么,而要知道他内心想要什么。将用户需求变成产品需求。
满足需求的三种方式有:改变现状、降低理想、转变需求。
3. 筛选需求
需求太多,资源有限,我们要做的是选出需要实现哪些需求。筛选标准是:性价比。
4. 需求管理
将排序好的需求分类、排序,管理好以便临时变更。
总结一下也就是,发现所有需求,找到重要需求,实现需求并不断管理更新需求。
关于设计:
关于程序设顶层计我没什么可以说的,因为我没做具体的设计工作。我只是知道顶层设计很重要,可以避免之后的很多问题。我们组就因为初期设计的不对走了很多弯路。
关于程序管理:
没有进行太多的代码编写工作,作为PM,我的主要任务是将代码模块分配给不同的DEV。听起来简单,实际有很多问题。
比如设想中DEV们几天内把代码写好,代码要控制在多少行之内,可实际上有的DEV开发快,超出预计时间几天就完成了,有的DEV们可能懒可能慢一些,规定时间还没有完成,这时候就需要在各个DEV们间协调沟通,或者换人换活儿开发,或者让原DEV更努力,总之,尽量保证进度的顺利。
再比如DEV在开发到一半会提各种设想不到的问题:服务器崩了写的代码没了怎么办可以延期么?我的方法只能写那么多行不会删减啊你看怎么办?总之问题千奇百怪,应对措施也千千万万。
这时候千万不能乱不能急,你是PM,你得掌控大局。你要保证的大前提是:程序高质高量高速的完成,你要保证的小前提是:队内气氛和谐、团结、向上。你的最终目标是,将这个产品设计好。而要实现这些,你要多沟通,多思考,多干活,多承担。在这个前提下,你调度所有的资源,总之,要有”我背锅,你们领赏“的觉悟。
关于测试和发布:
程序发布一定要留缓冲时间!因为像上面我所说的,软件开发过程中总会遇到各种奇奇怪怪的问题,千万不要信心满满地觉得我们顶层设计很好,每个DEV也都是顶级的肯定没问题,计划赶不上变化,留3到4天的缓冲时间,绝对没错的。
这就是我这学期学习软工的感想,谢谢老师给我们这个机会让我们可以感受软件工程的整个流程,学这学期的课,收获很大,帮助很大。老师帮我们入了门,修行还在我们自己,今后的IT路上,我们无时无刻不在软件工程的路上,我一定会更加努力。谢谢老师。