投资活动现在有所下降,但可能会在 2023 年回升。当投资增加时,并购也会增加。轮到您时,您的组织和代码会通过技术尽职调查吗?
让我们从积极的方面开始:如果投资者正在进行技术尽职调查 (TDD),您可能会通过。你已经很好地通过了产品与市场契合度、财务和竞争差异化的测试,以至于他们现在想要深入了解。
这里有一个不太好的消息:公司可以通过业务测试,但无法通过 TDD。尤其是对于非技术高管来说,代码审查过程感觉就像……审计……以另一种语言进行……响亮的时钟不停地滴答作响。不好玩。
我们公司分析了价值数千亿美元的交易代码,从三人软件公司到拥有数千名开发人员的公司。我们查看了超过 200,000 名开发人员的贡献,他们共同编写了 40 亿行代码。
代码库健康状况不佳通常是由其他团队而不是工程“造成”的。
从该数据集中,我们提炼了八个问题,您现在可以问自己。即使 TDD 还没有出现,对这些问题有好的答案将确保您的代码库是健康的。
TDD 快速入门
在我们进一步讨论之前,这里有更多关于软件技术尽职调查的背景信息:
- TDD 适用于传统软件公司和由定制软件支持的非软件公司。
- 它涉及对员工或承包商编写的代码的检查。
- TDD 由内部专家或专家顾问进行。
- 投资者和收购者,尤其是规模较大的精英投资者,可能会要求进行定量代码扫描以补充定性访谈。如果投资者正在为交易寻求代表和保修保险 (RWI),则这种代码扫描实际上是强制性的。
TDD 的目标是:
- 通过确定代码库是否足够安全进行投资来降低交易风险。
- 如果交易通过,则确定改进的机会。
我们说“代码库”是因为它不仅仅是放大镜下的源代码。您的文档、流程,最重要的是,软件开发人员也将接受检查。 TDD 的功能范围包括代码质量、代码安全、知识产权、DevOps、IT,有时还包括产品管理。
因为它不仅仅是代码的质量,所以我们讨论代码库健康以涵盖所有这些领域。
问题1:你一直在做什么?
确保组织正在开发最重要的软件产品是降低交易风险的重要部分。
这听起来很明显,但有时,一家公司声称正在开发一种新产品,但实际上他们会将大部分时间花在为主要客户进行定制开发上,或者根本不做任何事情。
考虑这个公司两年来软件开发的例子。不仅工作存在周期性(夏季更高),而且随着时间的推移显着下降,尤其是在 2022 年。
图片来源: Sema
重点:在这里,对于 TDD 中的所有问题,任何答案都可能足以通过考试。
这将我们引向TDD 主题 #1:TDD 最重要的部分是确保代码库的状态与组织的业务目标保持一致。例如,美国教育软件公司通常会看到周期性的软件开发——夏季更高,秋季更低——以最大限度地减少开学时对客户的干扰。
问题 2:您的代码库有多少单元测试?
我们喜欢区分底层代码质量,包括其可维护性或扩展能力等指标,以及功能代码质量——产品如何为用户工作。
“技术债务”是描述底层代码缺乏完美的另一种方式。