● 摘要
目前市场上的项目协同工具主要是针对大型研发团队的商业软件,其功能丰富但是过于复杂、并且价格昂贵,不太适合小型软件研发团队的需要。本文通过分析现有国内外项目协同工具的不足,结合小型敏捷软件团队的需求和本公司的实际情况,基于Wiki、RSS、AJAX等技术,设计并且实现了一个针对小型研发团队的轻量级的项目协同工具。该工具实现了基于角色的任务(Ticket)流程管理、基于Wiki的文档管理、灵活和个性化的定制查询、用于迭代开发的里程碑管理、代码变更查询、全面的系统配置等功能。本文主要描述我所负责的Ticket管理、基于Wiki的文档管理管理、系统管理等模块的设计和实现。本系统基于Ruby on Rails的Web开发框架,选择Ruby语言实现。本系统逻辑上划分为表示层、业务层、持久层三层架构。实现上采用MVC模式,在视图层采用RJS技术来开发AJAX,降低了实现复杂性;在控制器层采用REST架构设计系统,简化了系统的设计。Ticket流程管理比较复杂,不同的角色、不同Ticket种类、不同Ticket状态对于Ticket的处理都是不同的,并且系统要能够灵活地增加新的Ticket状态。为了解决这些问题,本系统采用有限状态机进行了抽象,绘制了状态转移表,增强了系统的可扩展性和可维护性。本系统采用Wiki代替了传统的Word文档,提高了文档协作效率和信息检索效率;采用的AJAX操作方式和灵活的定制查询能力提高了用户体验。本系统功能开发完毕并在本公司内部交付使用后,普遍反映系统功能简洁、上手快、定制容易,提高了工作效率,完备的Ticket流程管理不但提升工作效率而且改进了团队的工作流程。