构建之法 第四次心得
第六章
学习了之前的内容之后,我了解到了团队合作的流程以及在编码时候一些格式的注意,在学习第六章后,对敏捷流程有了大致的了解。敏捷流程是一种很好的软件开发的流程,我认为在软件开发时,敏捷开发可以使得软件可以在满足客户的满足时不断地快速更新。
敏捷开发需要不断关注技术和设计,这种开发模式需要以有进取心的人为项目核心,并且充分支持信任他们。软件开发是一个很漫长的过程,也不是一个人的事情,一个人的效率高是不好完成这个开发的,所以必须要一直总结怎么提高团队效率,并且不断地提高团队内每个人写代码的能力。在敏捷开发中,会有很多的问题和解法,需要考虑到各个需求和任务之间是有种种复杂的依赖关系的,除了优先级之外,我们还要考虑相互的依赖关系。
有时候做软件开发的时候并不是从一开始定好的,中途可能会因为一些突然加进来的内容,有时候这个功能可能需要修改很多内容,所以很多时候都要结合多项因素综合考虑是否需要停下来先修改再完成,还是应该继续做下去,最后再做改动增删。在软件开发中,写完该写的代码之后,并不会变得轻松,因为还有最后的综合,验证各个功能单元的正确性等等,这部分非常重要,而且需要很多时间去完成。但是我觉得并不是所有软件开发都适合用敏捷开发,我认为并不可能每个人都很厉害,都能在短时间内尽快的完成项目,所以要视情况而定,并不是所有人都适合这种方式。软件开发一定要精益求精。
第七章
学习了第七章之后,我觉得MSF是建立在敏捷开发的基础上的,这种团队模型有9条基本原则:推动信息共享与沟通,为共同的远景而工作,充分授权和信任,各司其职并且对项目共同负责,交付增量的价值,保持敏捷、预期和适应变化、投资质量,学习所有的经验,与顾客合作。对于一个公司的项目,最重要的就是保护技术机密,保证不会泄露出去,提高安全性,采取必要的保护措施。正如之前阅读第五篇的时候说的,团队合作,重要的是团队的合作,所以大家必须要很明确目标是什么,并且一起完成,虽然成员间实力可能有所偏差,但是每个人都应该要努力。
无论是在什么开发模式中,充分授权和信任都是必要的,不然是做不好好的软件的。如果成员之间就不信任,那么势必不能合作,不能共同进步。MSF过程模型是从传统的软件开发瀑布模型和螺旋模型发展而来的,结合了两个的优点。MSF团队模型还可以推广到包括操作、业务和用户等外部因素,要在对立中寻求共同利益,在冲突中达到平衡。
第八章
每个软件开发最重要的就是需求分析,没有需求分析,就不能进行下一个步骤。在软件开发中,需要对产品的各方面需求进行分析,比如对产品功能性的需求,开发过程的需求,非功能性需求,综合需求。软件开发最主要的就是针对用户的需求的,所以这部分很重要。
在现实生活中,无论是什么方面,需求都是销售商品的首要条件,我认为需求也应该分一下主次,主要的需求着重分析。在做软件开发的时候就需要考虑到用户的最重要的需求。在用户需求这方面,可以采取用户调查问卷的形式,向用户提供实现设计好的问题,让用户回答,这种方式可以更加容易了解用户的需求,更容易做出满足用户需求的软件。
竞争性需求分析,就是需要找一些别人还没想到的东西和人家进行竞争,并且对自己和竞争对手进行分析,了解到自己的优劣势,以及对手的优劣势。NABCD是一种很好的,很有效的方法,N是需求,A是做法,B是好处,C是竞争,D是推广。
进行需求分析之后,就是要考虑如何实现这些需求,还要将这些功能结合起来,呈现给用户。在实现这些需求的时候,我们应该要想清楚为什么要先做这个功能,谁做哪部分。功能性分析可以分成杀手功能,外围功能,必要需求,辅助需求,可以让团队看到自己感兴趣的功能,然后决定谁来做。
做项目重要的是有计划,有目标,有决心,所以无论谁做项目,都要进行需求分析,估量好做项目的时间,需求等,并且努力实现。