不知不觉本系列已经写了一个月,编码前的各项工作到此也终于结束了。回头看看这一个月走过来,白天上班晚上码字查资料,写写改改,挺不容易的。很多时候有些知识会用,知道是怎么回事,但并不等于能写出来。错别字、表达不清、言不达意这些就很常见了。虽然有了这么多年的工作积累,真正写后才感觉到自己还远远不足。在这个期间查看了很多博客、相关的书籍,在写博的过程中明显感到自己提升了,所以还未写博的朋友也赶紧尝试一下吧。
在写本系列的过程中,没有想到多次得到了编辑推荐,同时也得到了众多网友的支持,让我非常激动,在此表示万分感谢,同时也希望大家不要光看贴不评论,好的坏的都发表一下,大家多多交流。
另外,本文主要针对的是初学者和中小型项目,所以使用的技术、文档和工具会更偏向个性化,对此一些朋友给了不少建议,我个人觉得,无论是白猫黑猫,抓得到老鼠的就是好猫,所以最主要的是要合适和好用,而不必在乎它是什么。无论什么软件都有它自身的优缺点,我们只要利用得好就可以了。当然我本人未曾在大公司呆过,对很多工具与一些规范性的东西都是一知半解,所以也就不可能用那些高大上的东西在本系列中应用了。不过对于快捷简单的开发一个中小型项目来说已经足够了,希望初学者们也不要一下子定位太高,我们从中小型项目做起,至于那些更好的工具,我也在学习当中,大家空闲时间从逛逛那些大神的博客努力学习就可以了。
对于很多初学者来说,项目经验不是很足,在实际开发过程中很难把控好项目的进度,项目延期和加班加点那是家常便饭了,当然有一部分的原因可能是需求方的变动,而更多的是初学者们制定的开发计划不合理,预计时间不准确有关。
为什么会出现预计的开发时间不准确呢?
据我了解,主要有这几种情况:
1、对项目需求、功能不太了解,不清楚项目涉及的业务逻辑与将要使用的算法,以及功能之间联动产生的影响;
2、对开发框架或代码不够熟悉,不知道开发一个具体功能要调用到那些模块,需要花多长时间才能完成;
3、预计的时间只是自己的代码编写完成时间,没有考虑错误修复与自测时间;
4、在需求方、相关部门或上级领导的压力下(项目完成时间压力),挤压自己的休息时间,将工作以外的加班时间添加到实际开发时间中;
5、开发经验不足或项目需要的技术不了解,解决问题与Debug占用太多时间;
6、项目前期规划不好,存在结构性问题,导致代码量大增;
7、需求方不断变动,未考虑需求变化对项目进度的影响;
8、UI设计或其他同事开发进度影响;
9、个人有事请假或其他外因影响,占用了大量开发时间;
......
如何预计开发时间和控制项目进度呢?
首先要做的就是前面章节的各项准备工作,了解需求、画出原型,然后设计各界面详细功能,绘制出相关流程图,再了解框架代码和项目中所需要使用的技术细节,做完这些细节一个项目到底要开发多少个界面,使用什么算法,花多时间基本上就心理有数了。
当然这些都是影响预计开发时间的内在因素,除了这些以外,还有很多外在的不可控因素存在,会对项目进度造成更直接的影响。所以初学者在预估开发时间时,还需要注意下面几点:(由于时间关系对于每一点就不再举例说明了,大家自行理解)
1、在设计项目时,考虑好扩展性,方便需求变动时容易添加新功能;
2、评估时间须包括自测时间与Bug修复时间;
3、对于功能开发,不要随意加入自己的创意,除非必要功能(需要与需求方确认),多余的功能一律不给予实现;(这一点在很多新人身上都会发生,他们大多思路活跃,喜欢在项目中加入自己觉得很不错的小功能或想法,这样的话就会令项目变得不可控了,多余的功能会占用开发时间,又会令项目产生更多的Bug)
4、需求变更或增加时,必须通过项目经理或负责人统一规划安排,非必须项一律放到二期以后开发,新增需求必须重新评估开发时间;
5、开发进度必须严格遵守实施计划的安排,可以提前完成,但不能延期;
6、与需求方、项目经理、设计师以及部门同事做好充分的沟通工作,有问题主动请教别人,不耻下问;
7、多请教部门中的前辈和技术部负责人;
除了上面这些外,还有很多其他工作也是需要注意的,如项目更改后原型与文档的同步更新工作(对后期维护与二次开发会产生影响)、测试用例(设计得合理可以提高开发效率,不明白这些的人自测基本上都不会到位的,写出的代码会被测试人员反复的一虐再虐)、项目性能与安全优化(这个就更不用说了,经验不够的就算完成基本代码编写,但后面花费在这上面的时间将更长)、后期的项目部署等等,都会对进度产生一定的影响,这里就不再一一细说了。初学者不可能一开始开发时间就预估得很准,这需要开发经验的不断学习与积累。
本项目开发进度安排(只列出一部分,具体请下载附件查看)
本项目开发甘特图
下载地址:项目实施计划与甘特图.rar
(实施计划与甘特图在下载文件的《数据字典》中,另附上《项目开发计划》与《开发进度月报》模板)
本文转自 AllEmpty 博客园博客,原文链接:http://www.cnblogs.com/EmptyFS/p/3660211.html,如需转载请自行联系原作者