应各方面的要求,本着继往开来,总结教训,共同进步的理念,作为平台开发的一员,我在这里将这个项目的开发过程做个总结。希望项目结束后,我们收获的不仅仅是一个软件。
这个系统最初是被叫做网管系统的,但是后来加入了较多的业务图表展示。再后来,为了给市场推广和接待客户,又给系统添加了比较炫的flash和GoogleEarth。本来是给内部员工管理用的,但是马上也打算推向客户。最近由于面对不同的用户,被迫需要维护三个版本。
给A客户看了,A提了些个想法,领导就说这是市场需求,上;给B客户看了,B也提了些个想法,同样,领导说这也是市场需求,上。这种剧烈的变化对开发人员来说实在是不小的挑战。
面对这种不规范的开发环境,开发人员唯一能做的就是……硬着头皮扛。除此之外,你不会跟领导说什么软件开发方法论吧。你无法判断哪些客户的意见是真正的需求。有客户,开发人员才有用武之地。
项目的开始阶段还不错,有需求设计文档,有站立会议,还有单元测试,月底还会有领导检查测试覆盖率。但是没过多长时间,开发有些变味了。首先是团队个别成员对站立会议有些抵触,认为过于形式,不排除某些成员由于压力太大,负责的功能好几天没有进展,因此不太情愿继续重复问题。对我而言,我能知道其它与我相关的模块的进度,进而拿捏自己的进度,或者听听别人的意见,进而看看对我的模块有什么影响,状态好的话,我还能给别人出出主意。
在某一天,领导觉得项目进度有些慢了,给了个时间点,要求必须实现某些功能。然后小领导组织大家开会商量解决办法,讨论结果是,在时间点内实现功能,先不考虑其它诸如权限、日志、输入验证等非业务功能。于是单元测试没有了,在开发过程中遇到的问题、解决方法和变更也来不及文档化。成员们开始因为各自的原因随意地更改接口,之前调通的功能又出现故障,这样的情形后来还出现多次,无形中增加了成本。
企业内部系统的开发与给别人开发项目是有区别的,领导希望从开发人员手里出来就是一个健壮可用、性能良好、扩展性很强的软件。这不是我说的。但是我切实体会到这一点。你无法跟领导说,我们完成了软件,但是还需要三四个测试人员测试一两个月。而且第一用户就是你的同事,出现了问题或者新需求,你每天都有不小的工作量。
再后来,领导发现这是一个对外宣传的平台,有客户来,或者市场要出去宣传,的确需要这么一个平台来展现我们的工作成果,于是,这个系统又加了些新功能,说实话,我很高兴我做的东西能代表我们部门,但是从软件开发的角度来看,又很纠结。有些界面要求不要交互,内容要自动播放,有的界面要求能对用户的点击做出响应。而且要求中英文,交付速度要快。
总的看来,进度的压力似乎是软件开发规范化的最大障碍,一旦进度优先,什么方法,什么规范,先站一边。而在市场看来,机会就那么一闪,没人给你时间,不管你是作坊还是工厂,到点拿出了东西,接下来,有钱赚,什么都好说。
作为小组的一员,我负责除数据库之外所有代码的编写。
从现在的统计来看,我们的项目有177个JAVA文件,143个JSP文件,237个数据表,101个数据库存储过程。应该是一个规模中偏小的WEB程序吧。
在开发过程中,遇到了很多问题。有技术上的也有技术之外的。
能完成这样一个项目,和成员的通力合作是分不开的。但是我们仍然有改进的余地。以后要注意沟通的质量。确保自己听到的是别人想说的,确保别人听到的是自己想说的。
通常来说,一个WEB程序分为多语言功能、权限管理、日志、数据库模型映射、页面展示和主体业务六大部分。其中除了主体业务之外,其它五个部分差别是不大的,这也是各种框架层出不穷的原因。
多语言对系统影响较小,但是对其认真的规划也是很重要的。一般来说,静态页面可以有cn和en两个文件夹来存放两种语言的内容,如果再多一种语言,只要再添加一个文件夹即可。但是对于动态页面,由于动态页面都是根据数据库数据生成的,如果把和语言相关的内容也放到数据库里,以后扩展语言的话会对系统造成很大变动。通常都是将语言相关的内容放到properties文件中,新的语言只要求新的properties文件。
在信誉平台里,和语言相关的内容分布在前端和后端的所有环节。目前的中英文实现属于笨方法,有80%的功能是中英文各做一套。幸亏目前的规模不算太大。如果再增加一个语言的话,还真要好好琢磨怎么加。
页面展示就是当页面跳转比较复杂的时候,容易让开发人员头晕,也是应该事先好好规划。
还有输入验证这个功能目前也没有完善。
技术问题能记起来的就是中文乱码问题,传输JSON字符串,其实技术问题不是什么大问题,又不是搞科研或者什么高精尖,解决方法都是可以找到的。
权限管理和日志这块涉及的比较浅显,还是需求不明确。
最后,主体业务这块,我们似乎过于想快速的将页面开发完,忽略了每个页面的实际意义。当页面开发完之后,发现有些页面似乎“价值”不大。一个产品一定要有一个产品的价值。否则,再辛苦,都是白费力气。
开发过程的不规范是有目共睹的。希望能从这些回顾中吸取教训。
分享到:
相关推荐
1.1 网站发展历史的简要回顾 1.1.1 从静态网页发展到动态网页 1.1.2 动态网页发展的几个阶段 1.1.3 ASP的技术特点 1.1.4 新一代ASP.NET技术 1.2 .NET框架的体系结构 1.3 XML:可扩展标记语言 ...
本篇将回顾几种常见的动态策略,包括凸管理(Convex Management)、凹管理(Concave Management)、恒定比例投资组合保险(CPPI)和优化基础投资比例策略(OBPI)。 1. 凸管理与凹管理: 凸管理与凹管理是基于投资...
这个“asp动态网站开发资料”可能包含了一个基于ASP技术构建的完整网站系统,它与SQL Server数据库结合,提供数据存储和检索功能。 SQL Server是微软公司推出的一款关系型数据库管理系统,广泛应用于企业级数据管理...
本文详细介绍了如何开发、调试和部署这些应用程序,旨在帮助读者构建一个完整的知识体系。 首先,文章强调了动态网站开发的重要性,特别是在用户体验和商业效率方面。Flash作为富媒体应用程序的关键,为用户提供了...
在Spring Boot框架中进行JavaWeb开发,是对传统Java Web应用的一种简化和优化。Spring Boot以其“开箱即用”的特性,极大地提高了开发效率,减少了配置工作。本篇将回顾JavaWeb开发的一些核心概念和Spring Boot如何...
ASP.NET3.5作为.NET框架的一个重要组成部分,引入了许多新特性,如LINQ、ADO.NET Entity Framework等,极大地提升了Web应用程序的开发效率和性能。 ### VWD2008开发环境 Visual Web Developer 2008(简称VWD2008)...
在这个“微信小程序开发-狼人杀小游戏案例源码.zip”压缩包中,你将获得一个实际的狼人杀小游戏的完整源代码,这对于学习微信小程序开发以及游戏开发具有很高的参考价值。 首先,我们要了解微信小程序的基本结构。...
网站开发是一个涵盖广泛的技术领域,包括前端开发、后端服务端开发以及API接口设计与实现。这个压缩包文件提供了一些核心资源,对于进行网站开发的人员来说是非常宝贵的参考资料。 首先,我们来看看`[Java参考文档]...
《Java回顾及开发环境建立》 Java,作为一种强大的、跨平台的编程语言,自1995年发布以来,已经成为软件开发领域的中坚力量。本课程旨在对Java进行深入回顾,并指导学员构建Java开发环境,为后续的高级开发技术学习...
ASP.NET 2.0是微软推出的用于构建动态网站和Web应用程序的框架,它基于.NET Framework,为开发者提供了强大而高效的应用...对于初学者来说,这是一个不可多得的学习资源,同时也适合有一定基础的开发者回顾和巩固知识。
在MATLAB开发中,"统计BitragEcoIntegration和多变量回顾Steinuhlenbeck"涉及到的是金融市场中的两个重要概念,以及如何利用编程工具进行数据分析和建模。这两个概念是经济一体化(Economic Integration)和Ornstein...
《PHP4.0与MySQL动态网站编程》是一个深入讲解如何使用PHP4.0版本和MySQL数据库构建动态网站的教程。这个教程可能包含了从基础到高级的全方面内容,旨在帮助开发者掌握这两种关键技术的结合,从而在Web开发领域实现...
总的来说,"JavaSE回顾小项目--坦克大战"不仅是一个娱乐性强的游戏,更是JavaSE技术的实践展示,它涵盖了面向对象编程、多线程、I/O流等核心知识点,是学习和掌握JavaSE技术的绝佳案例。通过该项目,开发者可以提升...
【标题】:“动态同学录(ASP开发)” 这个项目是一个基于ASP(Active Server Pages)技术构建的动态同学录系统。...对于有经验的开发者,这是一个回顾经典技术或研究ASP与现代Web开发框架差异的好例子。
【前端开发工程师转正述职报告模版】 在前端开发领域,一份详尽的转正述职报告是展示个人工作成果和专业能力的重要文档。本报告模版适用于初级前端开发...报告不仅是一个工作总结,也是个人职业发展的一个重要里程碑。
敏捷方法论强调了交付功能性的软件增量的重要性,认为每个迭代都应该产出一个可运行的、潜在可交付的产品版本。这样可以确保整个开发过程中,利益相关者能够频繁看到进展,并及时提出反馈。 本书还讨论了水晶方法集...
周杰伦网站开发说明书是一个详细的文档,旨在为团队成员和相关人员提供关于“周杰伦中文网”项目的重要信息。这份文档由宋天天于2014年11月23日制定,并经过汪洋的评审,旨在确保项目的顺利进行。 **1. 项目提出** ...
规划方法从静态、确定性转向动态、概率性和不确定性,涵盖了社会、经济等多个层面。旅游心理学和旅游社会学等理论开始在规划中占据重要地位。 4. **快速发展阶段(80年代—90年代)** 旅游规划在发达国家和发展中...
最后,Flutter开发实战与前景展望-RTCDevMeetup、FlutterInteract的Flutter1.12大进化和回顾等系列文章可以让你了解Flutter社区的最新动态,以及框架的进化路线图,帮助你预测未来的开发趋势和作出技术决策。
根据提供的文件信息,无法直接生成关于敏捷开发知识体系的具体内容知识点,因为所给内容并非实际的知识体系描述或相关内容,而是提示信息和一个网址链接。但是,根据标题“敏捷开发知识体系--高清版.pdf”,我们可以...