不知不觉本系列已经写了一个月,编码前的各项工作到此也终于结束了。回头看看这一个月走过来,白天上班晚上码字查资料,写写改改,挺不容易的。很多时候有些知识会用,知道是怎么回事,但并不等于能写出来。错别字、表达不清、言不达意这些就很常见了。虽然有了这么多年的工作积累,真正写后才感觉到自己还远远不足。在这个期间查看了很多博客、相关的书籍,在写博的过程中明显感到自己提升了,所以还未写博的朋友也赶紧尝试一下吧。

  在写本系列的过程中,没有想到多次得到了编辑推荐,同时也得到了众多网友的支持,让我非常激动,在此表示万分感谢,同时也希望大家不要光看贴不评论,好的坏的都发表一下,大家多多交流。

  另外,本文主要针对的是初学者和中小型项目,所以使用的技术、文档和工具会更偏向个性化,对此一些朋友给了不少建议,我个人觉得,无论是白猫黑猫,抓得到老鼠的就是好猫,所以最主要的是要合适和好用,而不必在乎它是什么。无论什么软件都有它自身的优缺点,我们只要利用得好就可以了。当然我本人未曾在大公司呆过,对很多工具与一些规范性的东西都是一知半解,所以也就不可能用那些高大上的东西在本系列中应用了。不过对于快捷简单的开发一个中小型项目来说已经足够了,希望初学者们也不要一下子定位太高,我们从中小型项目做起,至于那些更好的工具,我也在学习当中,大家空闲时间从逛逛那些大神的博客努力学习就可以了。

  对于很多初学者来说,项目经验不是很足,在实际开发过程中很难把控好项目的进度,项目延期和加班加点那是家常便饭了,当然有一部分的原因可能是需求方的变动,而更多的是初学者们制定的开发计划不合理,预计时间不准确有关。

  为什么会出现预计的开发时间不准确呢?

  据我了解,主要有这几种情况:

  1、对项目需求、功能不太了解,不清楚项目涉及的业务逻辑与将要使用的算法,以及功能之间联动产生的影响;

  2、对开发框架或代码不够熟悉,不知道开发一个具体功能要调用到那些模块,需要花多长时间才能完成;

  3、预计的时间只是自己的代码编写完成时间,没有考虑错误修复与自测时间;

  4、在需求方、相关部门或上级领导的压力下(项目完成时间压力),挤压自己的休息时间,将工作以外的加班时间添加到实际开发时间中;

  5、开发经验不足或项目需要的技术不了解,解决问题与Debug占用太多时间;

  6、项目前期规划不好,存在结构性问题,导致代码量大增;

  7、需求方不断变动,未考虑需求变化对项目进度的影响;

  8、UI设计或其他同事开发进度影响;

  9、个人有事请假或其他外因影响,占用了大量开发时间;

  ......

  如何预计开发时间和控制项目进度呢?

  首先要做的就是前面章节的各项准备工作,了解需求、画出原型,然后设计各界面详细功能,绘制出相关流程图,再了解框架代码和项目中所需要使用的技术细节,做完这些细节一个项目到底要开发多少个界面,使用什么算法,花多时间基本上就心理有数了。

  当然这些都是影响预计开发时间的内在因素,除了这些以外,还有很多外在的不可控因素存在,会对项目进度造成更直接的影响。所以初学者在预估开发时间时,还需要注意下面几点:(由于时间关系对于每一点就不再举例说明了,大家自行理解)

  1、在设计项目时,考虑好扩展性,方便需求变动时容易添加新功能;

  2、评估时间须包括自测时间与Bug修复时间;

  3、对于功能开发,不要随意加入自己的创意,除非必要功能(需要与需求方确认),多余的功能一律不给予实现;(这一点在很多新人身上都会发生,他们大多思路活跃,喜欢在项目中加入自己觉得很不错的小功能或想法,这样的话就会令项目变得不可控了,多余的功能会占用开发时间,又会令项目产生更多的Bug)

  4、需求变更或增加时,必须通过项目经理或负责人统一规划安排,非必须项一律放到二期以后开发,新增需求必须重新评估开发时间;

  5、开发进度必须严格遵守实施计划的安排,可以提前完成,但不能延期;

  6、与需求方、项目经理、设计师以及部门同事做好充分的沟通工作,有问题主动请教别人,不耻下问;

  7、多请教部门中的前辈和技术部负责人;

  除了上面这些外,还有很多其他工作也是需要注意的,如项目更改后原型与文档的同步更新工作(对后期维护与二次开发会产生影响)、测试用例(设计得合理可以提高开发效率,不明白这些的人自测基本上都不会到位的,写出的代码会被测试人员反复的一虐再虐)、项目性能与安全优化(这个就更不用说了,经验不够的就算完成基本代码编写,但后面花费在这上面的时间将更长)、后期的项目部署等等,都会对进度产生一定的影响,这里就不再一一细说了。初学者不可能一开始开发时间就预估得很准,这需要开发经验的不断学习与积累。

  本项目开发进度安排(只列出一部分,具体请下载附件查看)

  

  

  

  本项目开发甘特图

  

 下载地址:项目实施计划与甘特图.rar

 (实施计划与甘特图在下载文件的《数据字典》中,另附上《项目开发计划》与《开发进度月报》模板)

 版权声明:

  本文由AllEmpty原创并发布于博客园,欢迎转载,未经本人同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。如有问题,可以通过1654937@qq.com 联系我,非常感谢。

  发表本编内容,只要主为了和大家共同学习共同进步,有兴趣的朋友可以加加Q群:327360708 ,大家一起探讨。

  更多内容,敬请观注博客:http://www.cnblogs.com/EmptyFS/

从零开始编写自己的C#框架(10)——项目实施计划与甘特图的更多相关文章

  1. 从零开始编写自己的C#框架(1)——前言

    记得十五年前自学编程时,拿着C语言厚厚的书,想要上机都不知道要用什么编译器来执行书中的例子.十二年前在大学自学ASP时,由于身边没有一位同学和朋友学习这种语言,也只能整天混在图收馆里拼命的啃书.而再后 ...

  2. 从零开始编写自己的C#框架(2)——开发前准备工作

    没想到写了个前言就受到很多朋友的支持,大家的推荐就是我最大的动力(推荐得我热血沸腾,大家就用推荐来猛砸我吧O^-^O),谢谢大家支持. 其实框架开发大家都知道,不过要想写得通俗点,我个人觉得还是挺吃力 ...

  3. 从零开始编写自己的C#框架(8)——后台管理系统功能设计

    还是老规矩先吐下槽,在规范的开发过程中,这个时候应该是编写总体设计(概要设计)的时候,不过对于中小型项目来说,过于规范的遵守软件工程,编写太多文档也会拉长进度,一般会将它与详细设计合并到一起来处理,所 ...

  4. 从零开始编写自己的C#框架(9)——数据库设计与创建

    对于千万级与百万级数据库设计是有所区别的,由于本项目是基于中小型软件开发框架来设计,记录量相对会比较少,所以数据库设计时考虑的角度是:与开发相结合:空间换性能:空间换开发效率:减少null异常.... ...

  5. 从零开始编写自己的C#框架 ---- 系列文章

    目录: 从零开始编写自己的C#框架(1)——前言从零开始编写自己的C#框架(2)——开发前的准备工作从零开始编写自己的C#框架(3)——开发规范从零开始编写自己的C#框架(4)——文档编写说明从零开始 ...

  6. 从零开始编写自己的C#框架(25)——网站部署

    导航 1.关掉访问保护 2.发布网站 3.复制网站到服务器 4.添加新网站 5.设置网站访问权限 6.设置文件夹访问权限 7.控制可更新文件夹执行权限 8.设置“应用程序池”.net版本与模式 9.附 ...

  7. 从零开始编写自己的C#框架(17)——Web层后端首页

    后端首页是管理员登陆后进入的第一个页面,主要是显示当前登陆用户信息.在线人数.菜单树列表.相关功能按键和系统介绍.让管理员能更方便的找到息想要的内容. 根据不同系统的需要,首页会显示不同的内容,比如显 ...

  8. 从零开始编写自己的C#框架(25)——网站部署 【转】

    服务器安全部署文档 目录1.     前言.. 3 2.     部署环境.. 3 2.1         服务器环境信息.. 3 3.     磁盘阵列配置.. 4 4.     安装操作系统.. ...

  9. 从零开始编写自己的C#框架(26)——小结

    一直想写个总结,不过实在太忙了,所以一直拖啊拖啊,拖到现在,不过也好,有了这段时间的沉淀,发现自己又有了小小的进步.哈哈...... 原想框架开发的相关开发步骤.文档.代码.功能.部署等都简单的讲过了 ...

随机推荐

  1. SQL Server 2008中的代码安全<转>

    一:存储过程加密与安全上下文 二:DDL触发器与登录触发器 三:通过PassPhrase加密 四:主密钥 五:非对称密钥加密 六:对称密钥加密 七:证书加密 八:透明加密(TDE) 将 TDE 保护的 ...

  2. Python之路【第四篇】python基础 之基本数据类型之集合

    基本数据类型之集合 set set集合,是一个无序且不重复的元素集合 # set 不允许重复的集合 set允许重复的列表但是集合是无序的 #例如 # s = {1,23,23,4,55,55} # p ...

  3. tableView:cellForRowAtIndexPath:方法中indexPath.row不是从0开始的,从4开始

    问题描述:重新刷新数据源,刷新列表时,发现前面4个cell没有显示出来,直接从第5条开始的,这是什么东东? 在tableView:numberOfRowsInSection:方法里打印数据源个数,是正 ...

  4. android audio无法自动播放

    audio无法在android4.4+和ios6以上的版本自动播放,因为他们出于安全考虑,做了限制.必须用户自己手工点击才能播放,程序是控制不了播放的. 整死我了,整整搞了2天,查不出所以然,原来就这 ...

  5. 疯狂C#~伴随着我的库存管理¥

    每次的等待都是期待下一次的勃发!但激进的我非常想和大家学习一些东西,所以特地的分享了一个库存管理, 生活中容易运用的很多,但现在的学业希望能够得到各界人士的帮助!!! 首先:会有几个类来让它们协调 ( ...

  6. Comparing the MSTest and Nunit Frameworks

    I haven't seen much information online comparing the similarities and differences between the Nunit ...

  7. 谢欣伦 - OpenDev原创教程 - 服务端套接字类CxServerSocket

    这是一个精练的服务端套接字类,类名.函数名和变量名均采用匈牙利命名法.小写的x代表我的姓氏首字母(谢欣伦),个人习惯而已,如有雷同,纯属巧合. CxServerSocket的使用如下(以某个叫做CSo ...

  8. IRP完成例程返回值理解

    第一,完成例程里面直接返回STATUS_SUCCESS,这时候IRP已经继续向上回卷,失去了对IRP的控制. 第二,完成例程里面返回STATUS_MORE_PROCESSING_REQUIRED,仍具 ...

  9. window.location.href 中文乱码问题。。。。

    window.location.href 中文乱码问题.... 要解决此问题需要两次解码, 第一次解码: 是在页面中的js脚本中解码:window.location.href = "save ...

  10. ex1-第一个程序 ”helloworld”

    代码: print("Hello world.")print("Hello again.")print("I like typing this.&qu ...