每个做项目的软件公司都有一个产品梦。

转型成为产品厂商是每一个软件项目交付型公司的梦想,因为只有产品化才能让公司在行业和技术上的积累发挥出价值,帮助公司走得更远。然而,从项目到产品,软件公司除了要面对商业模式的更新,还需要跨过开发和管理的门槛。无数小型软件公司的决策者被拦在了产品化的大门口。怎么办?

当我们聚焦在技术层面,深入了解小型软件公司的能力模型后,我们不难发现其走向产品化的瓶颈集中在两点:技术研发能力和开发管理能力。低代码技术的出现,让我们看到了提升技术研发能力的曙光。但大多数低代码平台,受限于技术能力和产品定位,没有在项目管理上提供必要的支撑,做“一锤子买卖”的项目交付时尚可接受;但和构建一个需要长期维护且针对部分客户定制的软件产品的需求相比,相去甚远。此时,我们需要引入更专业的企业级低代码开发平台,来寻求突破。

让我们以10月底发布的活字格企业级低代码开发平台 V7.0 Update 1 内置的项目管理功能为例,看看一套全面支持敏捷式项目管理的低代码开发平台,如何让定制化产品的研发更有序。

产品研发管理的复杂性

与项目交付不同,软件产品的生命周期更长,需要通过不定期的版本发布来不断充实系统功能。对于toB的软件来说,还需针对部分客户进行定制。此外,对于正在运行中的软件版本,如果出现严重的问题,也需要进行紧急修复,以减少客户的损失。这意味着开发团队在同一个时间点上,需要做三种不同的开发工作:

  • 开发新功能
  • 开发定制化功能
  • 修复线上问题

三线开发并行,在确保每一条线的工作本身质量的同时,开发团队还需要确保每次发布时,都包含了“正确”的内容,既不出现遗漏,也不会将未经测试的功能提供给客户。这些要求让研发管理变得更加复杂。为了应对这一挑战,软件工程学在21世纪初就提出了“敏捷项目管理”的理念,经过十多年的优化迭代,现已被广泛应用在软件产品的研发过程。

分支管理与产品研发

敏捷项目管理是软件工程体系的重要组成部分,涵盖了需求管理、变更管理、版本管理等领域的最佳实践。其中,为了解决产品研发时多线并行的问题,敏捷项目管理提出了“分支”的概念和实践。

使用分支意味着开发者可以把工作从开发主线上分离开来,以免影响开发主线。在新项目开发中,由于不存在维护系统稳定和修复错误的压力,所以单分支模式基本是可以胜任的;而在项目的后期维护过程中,开发组需要在维护系统稳定的前提下不断改进系统,同时也承担了立刻修复紧急错误的时间压力,这个时候,单分支已经不能满足开发的要求,必须寻求多分支的解决方案。

下图是一个典型的toB产品分支示意图,包含开发新功能(也称大版本)的开发分支;修正线上缺陷的修正分支;以及为特定客户做定制化开发的定制化分支。

(toB软件产品的多分支示意图)

  1. 在发布第一个版本时,开发团队将当前开发的分支视作主分支;

  2. 启动新版本V2.0研发时,开发团队从主分支创建Develop开发分支,新功能开发基于该分支进行;

  3. 需要在为XX客户做定制化开发时,开发团队从主分支创建Customer_XX分支,在此基础上开发定制化的功能模块,发布V1.0 XX定制版;

  4. 发现V1.0版本的严重缺陷时,不能基于Develop分支进行开发以免混入未经测试的V2.0新功能,而是从主分支创建Hotfix分支,开发团队完成缺陷修复后,合并到主分支,发布V1.1版本;

  5. 开发团队在Develop分支开发测试完成后,将其与主分支进行合并,融合V1.1 的修改项目和V2.0的新开发项目,发布V2.0版本;然后从主分支创建新的Develop分支,进行V3.0版本开发;

  6. 如果客户XX也需要升级到V2.0,开发团队可以在Customer_XX分支上,完成与主分支的合并,融合V2.0和客户XX定制化内容,发布V2.0 XX定制版

从上面的流程上看,每个分支上开发的项目互不干扰,同步满足新版本研发、客户化定制和缺陷修复。这种工作方式已经被大多数专业开发团队采用,其中就包括1983年即推出第一代私立学校管理软件的葡萄城。

从开发者到赋能开发者,葡萄城在今年10月将这种基于分支的研发管理方式引入低代码领域,在活字格企业级低代码开发平台V7.0 Update 1中提供了分支和合并的解决方案,在提供专业级开发平台的同时,帮助用户解决产品研发中“项目管理”的绊脚石。葡萄城是如何做到的?答案很简单,将专业开发者熟悉的Git分支功能“搬进”活字格。

活字格的解决方案

在2年前发布的V5.0 Update 1中,活字格就提供了兼容Git的协同开发功能。借助这个功能,多名开发者在同一个协作工程中分别开发不同的页面,而不会发生冲突。开发团队中每一个开发者都从协作服务器上获取最新的协作工程,各自开发不同的模块,定期将自己开发的页面、数据等签入到协作服务器,供其他开发者使用。这种协同开发的新模式能帮助开发团队轻松应对更大规模的Web系统需求,缩短中大型Web系统的开发周期。

(活字格的协同开发与签入历史界面)

协同开发和版本管理两大功能进入低代码领域,已经足够满足项目交付型开发团队的诉求。所以,该功能一经推出就赢得了用户的广泛好评。为了能够支撑产品研发型软件公司的项目管理需求,活字格新增了分支功能。与之前的版本管理类似,分支也完全兼容软件开发行业被广泛认可的Git。

以托管到码云上的项目为例,开发者可以在码云上为仓库创建和管理分支。为了保证秩序,开发团队通常会将非活动的主分支设置为只读,以免误修改。

(码云的分支管理界面)

在活字格中,开发者可以在打开协同工程时,选择当前使用的分支。

(在活字格中选择当前使用的分支)

需要将不同分支的内容进行合并时,可以通过可视化的方式选择需要进行替换覆盖的项目。

(利用活字格的导入功能完成分支合并)

总结

从项目交付到产品研发,软件公司的前进路上有开发工具厂商的一路支持。以活字格为代表的企业级低代码开发平台,将软件行业积累的先进经验与高生产力的低代码技术相结合,不但能帮助开发者提升开发效率,还能帮助开发团队建立敏捷化的项目管理机制。如果您对企业级低代码开发平台感兴趣,欢迎搜索“活字格”,访问官网,免费下载试用。