我没有什么敏捷、什么XP编程的概念,所以我这次的格斗没有套路。
从去年开始我担任了项目经理一职,已经负责公司的三个项目的开发和实施了。
我可以籍以此发表我的看法。
本主题内容是极限开发
首先说说我概念当中的极限开发。
项目特点:面向应用、面向服务的中小企业应用。
先哆嗦一下业务需求:
我们在实际调研企业现状后,最大限度的了解与我们应用范围相关的实际业务。随后进入业务需求分析,其实就是抽象实际业务到软件功能设计。同时考虑到我们应用
范围外的业务,用户可以不太关心这一块,但是我们必须得做。最终的业务需求分析由公司内部评审,(尽管我们的管理不完善,但是我有权力让什么也不懂的领
导参与),再与客户去交涉。直到取得最终评审。
极限开发之前:
我们首先要做概要设计,其实是对前业务需求分析的细化,当然这文档是面向业务的,这个文档是修改最多的,所以在你开始写这个文档以前一定要做好版本管理(包括有效版本的管理)。
概要设计长话短说吧,就是对企业实际业务管理的理想模型,是尽可能的去理想(理智的想象,而不是单纯的想象),同时不能够把软件的功能划分在合同的需求功能之外(这个一定要把握一个度的问题)。
概要设计是一个相对漫长的过程,这个过程马虎不得,一定要有耐心说服用户和有权力的领导,说什么能做,什么不能做,我们为什么这么做,以及变通的业务实现等等。
极限开发之数据库设计篇
大家可能不理解,为什么我首先要对数据库进行设计呀,这个完全和我的习惯有关。(我的地盘我做主)
在对以上概要设计完以后,我的心理就对实际的软件功能有具体的描述了,当然这个是我最清楚了,我在写概要设计的时候会把这些映射成软件的具体实现,并且使
用一些工具比如VISIO在写完概要设计的实际业务时,我会把软件的实现图、逻辑图同时画出来,害怕以后没有时间来想这些,呵呵。
所以在其后的工作当中,我对软件的具体实现就胸有成竹了,所以我直接进行数据库设计。
数据库设计我使用DB Design,这个工具很好用,我在数据库设计时有两个准原则:
原则一:数据库表对应程序功能模块,一个模块一个前缀,并且如果无太多关系的业务模块对应一张表,并且这些表没有关联关系,都是独立的。
原则二:所有的表如果无复杂关系都使用统一的UUID做为主键,同样,如果处理同样的事务,字段名能够统一的话就统一命名,或者有统一规则生成等。
根据以上原则,我的数据库表没有想象当中的复杂,所以在程序实现时就不用考虑数据库间的关系。
极限开发之程序实现-统一增加、删除、修改数据库
数据库设计完以后,就建立映射成实体,并根据现行的软件架构实现统一的对数据库的增加、删除、和修改的操作,比如现在的STRUTS+SRPING+
HIBERNATE的架构,我根据数据库表,生成对本数据库表的增加、删除和修改的类接口,剩下的工作由下面的员工完成,(很想自动生成,但没有时间来写
这些东西。以后这个东东肯定会有人发明)
极限开发之程序实现-封装业务逻辑层
我一般使用VISIO或者现在的WEB FLOW给手下的员工画出程序实现方式,让他们来完成,我的工作是检查他们的代码是不是符合规范,是不是能够符合
业务需求,所以这个时间我的主要工作是质检和修改程序实现的业务逻辑,(有些刚刚毕业的大学生,你要给他讲明实现的业务关系呀,还不如告诉他你应该往哪个
表插入什么数据来得快,这是一个怪圈)
极限开发之程序实现-关键业务实现
关键业务的实现是至关重要的,这个我一个可能是不行,而且可能当时用户的需求在改变或者改进等,所以我就要找一个比较实在、能力比较强的员工来担任这个职务,要尽可能的给他讲明实际的业务和用户需要的效果和目的,说不定他还能帮助你的思维呢。
这个是个重要的环节,所以生产的重点就是这里,在最复杂的业务逻辑时,对程序的处理,一定要画个VISIO或者什么图告诉员工每一步的实现如何做,包括很
多的错误处理等。如果你在这里偷懒了,说明你这个项目的有很多的隐患在其中,这个工作比较艰巨,变数也多,需要多多鼓励员工。
极限开发之程序实现-单元测试
单元测试不是很严格,由公司相关人员测试,不过经过我质检过的代码,一般没有太多问题。
极限开发之程序实现-业务测试
根据项目的实际业务来测试,由我和能力很强和人来测试,最后由测试人员来测试,
极限开发之用户试运行及上线
这个就不用说了,要用服务的意识来帮助客户来认知这个东东,就好象到理发店让小妹妹给你按摩一样,不要害羞。也好象很累了到冼足浴室一样,无微不至引导消费。
我的这三个项目分别是库存管理+财务管理、EAI项目和CRM+服务。
用人最多的时候不超过6人,开发周期没有超过2个月的。
库存管理+财务管理 6人 1.5个月
EAI项目 3人 20个工作日
CRM+服务 5-6人 不到两个月
所有项目均是新写。
分享到:
相关推荐
同时,书中也提到了他们对技术未来趋势的看法,这些预测和设想对于理解当前科技行业的动态和未来发展方向具有启发性。 总的来说,《编程大师访谈录》是一本集启发性、教育性和趣味性于一体的读物,它不仅提供了对...
深入研究这些源代码,我们可以更详细地了解filesync设想的具体实现细节,包括使用的编程语言、库和框架,以及具体的算法和策略。不过,具体代码的分析超出了当前的描述范围,需要实际查看源代码才能提供更详尽的信息...
* 图形化编程不需要记忆计算机语言的语法,不需要使用键盘输入程序代码,只需要按照“先作什么,后作什么”的设想,就可以编出程序。 JC 代码编辑 * JC 代码编辑是 VJC 的一个重要组成部分,用户可以在 JC 代码...
通过应用编程软件和机床联网系统,企业可以实现快速编程与加工,而无需手工绘制图纸和输入繁琐的程序代码。例如,沈阳机床钣焊件厂就利用了METALIX—CNCKAD2000这样的先进编程软件系统来完成编程工作,并计划通过...
本文档旨在提供Excel VBA实例教程指南,旨在帮助读者快速掌握Excel VBA编程技术。作者认为,学习编程语言的关键是实践和应用,而不是 đơn纯地学习理论知识。因此,本文档提供了一些实用的提示和建议,旨在帮助读者...
本文档是关于Excel VBA的实例教程指南,旨在帮助读者快速掌握Excel VBA编程的基础知识和实践经验。作者通过分享自己的学习经验和心得,提供了一些实用的建议和方法,帮助读者快速入门和进步。 知识点一:学习Excel ...
Lucas Carlson在其文章中提出了一个大胆的设想:让计算机自己编程。这一想法的核心在于利用机器学习技术使计算机能够理解自己的代码结构,并在此基础上进行自我优化和错误修正。 #### 二、计算机自我编程的可能性 ...
最后,教材应鼓励学生在学习数据结构的同时,注重提升从理论到实践的转换能力,培养能够快速适应编程语言多样化的高级语言编程能力。 改革后的《数据结构》教材,应包含大量的实例和案例研究,让学生能够更好地理解...
在本课程设计中,学生被要求利用C语言来开发一款迷宫游戏,以此来加深对C语言的理解并实践多媒体编程技术。 迷宫游戏的开发涉及多个知识点,主要包括: 1. **图形库的使用**:C语言本身并不支持图形编程,但可以...
【教学内容的改革】强调了对国内外有限元教材的比较研究,将课程内容划分为五个模块:基本原理、编程与计算训练、单元构造及特性、专题分析和案例应用,旨在帮助学生快速掌握有限元法的核心概念和应用技巧。...
另外,编程实例和提示也贯穿整本书,有助于组织快速高效地掌握Scala语言。Larry Morroni,Morroni Technologies, Inc.的所有者,认为《Programming in Scala》不仅是一本优秀的新手教程,而且对于任何希望更深入了解...
计算机专业是信息技术领域的重要组成部分,它涵盖了从硬件到软件的广泛知识体系。在这个专业中,学生需要理解并掌握计算机科学的基础理论...通过这样的规划,学生可以在毕业后具备足够的竞争力,适应快速变化的IT行业。
随着计算机技术的快速发展和普及,教育领域也在逐步实现信息化和数字化。特别是在理工科的实验教学中,数据处理软件的引入正变得越来越重要。本文探讨了开发综合性实验数据处理软件的必要性和可能实现的功能,以及该...
为了解决这些问题,项目团队首先关注于语言的发展,设想一个能满足嵌入式应用需求的简单硬件平台架构,并制定了相应的规范,定义了该硬件平台的二进制机器指令系统(后来成为“字节码”指令系统)。这样,一旦语言...
在1990年代中期,Java(原名Oak)的设想是为了实现家电设备间的通信,但并未得到广泛接纳。随着互联网的发展,Java迅速崛起,成为桌面应用和企业级应用的首选平台。1999年,Sun Microsystems推出了Java 2 Micro ...
在“一百年后的编程语言”章节中,Graham设想了未来编程语言可能的发展方向,提出了对未来编程模式的设想。 在第四部分,Graham对编程语言和设计的品味进行了深入的探讨。例如,在“梦寐以求的编程语言”章节中,...