您如何管理您的项目生命周期?
例如:你是从模板开始的吗?您是否使用SVN等版本控制作为权威来源?您是否对项目进行存档,如果是,何时存档,以及如何存档?当项目复活(工作恢复)时,是如何处理的?您是否使用自动化脚本来执行诸如创建IIS站点、数据库、存档、启动等操作?
特别令人感兴趣的是在不同的开发点管理许多项目。
发布于 2009-01-31 21:57:40
开发:我们不是从模板开始的,因为世界变化得足够快,使得模板维护成为一项全职工作。我们鼓励每个人使用相同的IDE (Eclipse),这样他们就可以在自己的环境中互相帮助。
项目管理:我们使用GForge来管理我们的项目。Sourceforge稍好一些,但GForge要便宜得多,而且有不同的许可费用模式。GForge集成了CVS、SVN、文档存储、问题跟踪器,并很好地集成了所有内容。这使得我们很容易看到项目所在的位置。开放的问题,以及与代码更改相关的关闭的问题,一切都是集成的。
版本控制:虽然我们尝试了SVN,但我们又换回了CVS,因为它更适合我们的需求,而且运行得很好。
备份:我们的GForge服务器,包含我们所有的项目和源代码,在VMWare EX服务器上运行。每天都会在虚拟机级别执行备份,如果出于某些原因我们觉得需要更频繁的恢复点,我们会制作虚拟机快照。
复兴项目:这在我们的业务中非常常见。每个项目都有它在CVS中的所有库和构建需求。该项目总是有一本最新的开发手册,其中描述了运行开发环境的所有步骤,并有一个章节介绍了所有不是默认的东西,需要注意。我们尝试在尽可能默认的环境中构建软件,这样开发人员就不必花费几天的时间来调整他们的设置。
几乎所有的项目都是使用Maven构建的,这也简化了我们的开发人员的工作。通常情况下,恢复项目只需几个步骤:
通过SSH将eclipse
构建:我们所有的项目都构建在一个独立的构建服务器上。每天早上,构建服务器都会进行一次完整的构建,如果所有单元测试都成功,则会标记CVS。在白天,每小时构建一次,当出现故障时,团队会自动收到一封电子邮件。通常我们每个项目使用一个构建服务器,它是一个简单的luntbuid服务器(Linux,Tomcat,Luntbuild)。
构建服务器,有时甚至是开发者机器都是VM的,这使得恢复一个项目变得非常容易。从文件服务器中获取VM,启动它,然后就可以运行了。
构建服务器创建每日站点,这些站点显示单元测试覆盖率统计数据、复杂性度量、CVS活动和开发人员活动(谁更改了什么以及何时更改)。
我们所有的软件都内置了自建数据库脚本。将配置文件指向数据库,启动软件,它就会计算出需要对数据库本身做什么。这真的很方便,因为buildserver可以直接启动软件。不需要特殊的步骤。我们的客户也很高兴,他们永远不需要担心他们的数据库或升级脚本。
整个项目生命周期都是在GForge中管理、记录和跟踪的,并添加了一些外部电子表格来跟踪预算,因为这更容易。
无论你是否有一个集成的项目服务器,我认为拥有一个系统是非常重要的。这使您可以在不同项目之间切换开发人员,而不会让他们迷路。它节省了时间。特别是当客户在2或3年后再次向您要求修改旧软件时(是的,这种情况确实会发生)。
我们使用的所有东西都是开源的(您甚至可以使用GForge的开源分支)。关键不在于工具,而在于你如何使用它们。
发布于 2009-01-29 21:11:25
这将取决于工作的性质。当在家里为私人客户工作时,我首先为客户打开一个文件夹,里面有一堆标准文档,我对这些文档进行了自定义,如合同、发票、报告、需求、测试、代码库等。随着项目的发展,我会根据需要添加/修改目录。
如果我必须返回一个项目,我会重新打开该目录,并且对于任何非通用组件,创建一个新目录。例如,如果我的客户已经构建了一个web应用程序,现在他们需要第二个应用程序,我会将相同的目录用于发票和合同,并为代码库、需求和测试创建新的目录。
在备份方面,我会在达到里程碑的任何时候将工作归档,但代码除外,我每天至少备份代码。在每个项目结束时,当我关闭合同时,我会获取整个目录并将其压缩并存储在远程服务器上。
发布于 2009-01-29 21:46:52
我创建了包含项目阶段的文件夹,比如“初始化软件过程”,我们放置了业务提案这样的文档,我们使用另一个文档来表示需求,另一个文档用于构建、发布,一个文档用于会议记录等等。
我们将这些放在subversion存储库下,但这真的取决于您使用的是什么元方法,也取决于您如何处理配置管理以及您希望如何组织。是的,我们为我们的大部分工件使用模板,所以我们在某种程度上保证了我们产品的质量。
https://stackoverflow.com/questions/493403
复制相似问题