您如何管理项目生命周期?
例如:你是从模板开始的吗?您是否使用SVN等版本作为权威来源?您是否存档项目,如果是,何时以及如何?当项目恢复(工作恢复)时,如何处理?您是否使用自动脚本来执行诸如创建IIS站点,数据库,存档,启动等操作?
特别感兴趣的是管理不同发展点的许多项目.
开发:我们不是从模板开始,因为世界变化足够快,使模板维护成为一项全职工作.我们鼓励每个人使用相同的IDE(Eclipse),以便他们可以在他们的环境中互相帮助.
项目管理:我们正在使用GForge来管理我们的项目.Sourceforge略胜一筹,但GForge便宜得多,并且拥有不同的许可费模式.GForge整合了CVS,SVN,文档存储,问题跟踪器,并且很好地集成了所有内容.这样可以轻松查看项目所在的位置.打开问题,关闭连接代码更改的问题,所有内容都集成在一起.
版本控制:虽然我们尝试过SVN,但我们切换回CVS,因为它更符合我们的需求并且工作正常.
备份:我们的GForge服务器,包含所有项目和源代码,在VMWare EX服务器上运行.备份每天在VM级别完成,如果我们认为由于某种原因需要更频繁的恢复点,我们会制作VM快照.
复兴项目:这在我们的业务中非常普遍.每个项目都有它的所有库和CVS中的构建要求.该项目始终有一个最新的开发手册,该手册描述了运行开发环境的所有步骤,并且有一章介绍了非默认的所有事项,需要注意.我们尝试在尽可能默认的环境中构建软件,以便开发人员不必花费数天来调整他们的设置.
几乎所有项目都是使用Maven构建的,这也为我们的开发人员提供了便利.通常只需要几步就可以恢复项目:
下载eclipse
通过SSH连接到CVS(extssh内置于Eclipse中)
签出项目(默认"签出"选项)
运行"Maven Eclipse"并刷新Eclipse
在Eclipse中运行unittests以查看是否一切正常.
构建:我们所有的项目都建立在单独的构建服务器上.如果所有单元测试都成功,每天早上构建服务器都会完成构建并标记CVS.在白天,每小时构建一次,当有失败时,团队会自动收到电子邮件.通常我们每个项目使用一个构建服务器,它是一个简单的luntbuid服务器(Linux,Tomcat,Luntbuild).
构建服务器,有时甚至是开发人员机器都是VM.这使得恢复项目非常容易.从文件服务器获取VM,启动它,你就可以了.
构建服务器创建每日站点,显示单元测试覆盖率统计信息,复杂性度量,CVS活动和开发人员活动(谁更改了什么以及何时更改).
我们所有的软件都内置了自建数据库脚本.将配置文件指向数据库,启动软件,并确定它需要对数据库本身做什么.这真的很方便,因为构建服务器可以启动软件.无需特殊步骤.我们的客户也很高兴,他们永远不必担心他们的数据库或升级脚本.
整个项目生命周期在GForge中进行管理,记录和跟踪,并添加了一些用于预算跟踪的外部电子表格,因为这样更容易.
如果您有一个集成的项目服务器,我认为拥有一个系统非常重要.这使您可以在项目之间切换开发人员而不会丢失它们.它节省了时间.特别是当客户在2或3年后回复您,以便对旧软件进行修改(是的,会发生这种情况).
我们使用的所有东西都是开源的(你甚至可以使用GForge的开源分支).它不在工具中,而是你如何使用它们.