本文目录
#揭秘AI开发:重塑软件工程的未来
#AI与软件工程融合带来智能化软件新生态
一、揭秘AI开发:重塑软件工程的未来
(原创 独立开发者小凯 Indie Hacker)
当我在Every Studio开始构建我的第一个AI项目时,我以过去构建产品的方式对待它:确定一个明确的问题,规划解决方案,构建MVP(最小可行产品),然后从那里迭代。这是一个相当直接的、以软件为驱动的方法:快速构建、测试、学习和改进。
但它没有奏效——于是我问自己:在AI中构建与传统软件构建有什么不同?

我加入了Every Studio,目标是雄心勃勃的:在三个月内构建九个产品——每10天一个项目。我的第一个项目,Mindtune,是一个AI驱动的替代传统广告技术和社交媒体算法的产品。我的假设是,人们已经厌倦了社交媒体Feed中公式化、冷漠的内容,而AI提供了一个机会,可以提供更相关、更个性化的体验。
我开始Mindtune的需求验证,因为这是传统软件项目往往崩溃的地方。你构建着陆页,与潜在客户交谈,分析竞争对手——然后才投资资源构建产品。创始人们已经按照这个模板操作了这么久,以至于它就像一个反射。我们不一定停下来问自己,我们真的能构建这个东西吗?
使用AI构建要求我们打破习惯,以不同的方式构建。AI产品带来了一套独特的风险,如果你不理解它们,你注定会犯错误。
当我构建Mindtune时,我确定了三个风险档案,这帮助我清楚地看到了我正在承担的风险类型——更重要的是,什么将决定它是否成功。我将深入探讨每个风险,它们如何相互关联,以及AI如何破坏传统的初创企业“风险链”。我希望创始人和构建者可以通过更好地理解他们的想法中的风险所在——以及如何最好地化解它们——在想法迷宫中少走几条弯路。
初创企业风险链
任何初创企业都涉及三种类型的风险:可行性、价值和可行性。
可行性风险:我们真的能构建它吗?这是经典的工程挑战。例如,SpaceX在开发其可重复使用的自着陆火箭时面临可行性风险。 价值风险:用户能从中提取价值吗?这是产品市场契合的核心。Airbnb是价值风险的一个好例子——大多数人最初认为这是一个荒谬的想法,假设没有人会想住在陌生人的家里。 可行性风险:我们的业务能从中提取价值吗?Facebook和Google在早期与可行性风险斗争。他们知道他们有一个人们喜欢的产品,但需要时间和实验来找到一个可持续的商业模式。
这三种风险的互动方式至关重要。将它们视为一个链条:可行性 → 价值 → 可行性。如果你的产品在技术上不可行,其他两个风险就不重要了。如果它是可行的但没有价值,你又陷入了困境。即使用户喜欢你的产品,你仍然需要弄清楚如何从中赚钱。
这三种风险不仅按顺序出现;每种风险的大小还取决于你正在构建的产品类型。
在传统软件中,可行性风险通常很低。构建Facebook的第一个版本并没有涉及任何突破性的技术飞跃。马克·扎克伯格在哈佛大学宿舍编写了代码。真正的挑战在于价值和可行性风险:人们会使用它吗?它能够成为一个盈利的业务吗?
相比之下,还有深度科技——像基因疗法、聚变反应堆和自动化通用智能这样的项目,它们将全新的技术带入市场。这些类型的创新有明确的需求和商业模式(例如,针对现有疾病的一种药物),所以价值和可行性风险很低。风险在于可行性:深度科技初创公司承担的是构建他们不确定是否可能的东西的风险。
我开始认为Mindtune的行为将很像软件产品,可行性风险低,在价值和可行性阶段有更大的障碍。但当我了解到,AI在可行性和价值方面引入了独特的挑战,需要新的方法。
首先,风险档案不一样。有两种主要类别的AI初创公司:我所说的深度AI初创公司和应用AI初创公司。
深度AI初创公司正在构建基础模型或硬件,如Groq的芯片和Figure的仿人机器人。最大的风险是可行性。这些公司经常从事尖端研究,他们追求的突破是否可能并不总是清楚。这是高风险、高回报的领域。 应用AI初创公司像Sparkle和Lex利用来自OpenAI等公司的现有模型和API。关键风险是价值。应用AI公司需要证明他们使用的AI以某种方式创造了有意义的价值,这种方式比非AI解决方案更好、更快或更有效。还有一个可行性风险:AI模型可能不总是按照你期望的方式执行,需要更多的思考和改进以获得良好的结果。
Mindtune是一个应用AI产品:它利用现有的AI模型提供更个性化的社交媒体Feed的期望结果。我相信价值就在那里——用户将欢迎不同的社交媒体体验——而且商业模式已经得到了现有产品的验证。但我越想,越意识到我错过了一个重要步骤:思考技术的可行性。我假设,因为我可以设计AI模型来提供一个结果,这与持续获得正确的结果是一样的。我低估了在AI中构建的可行性风险,即使是应用AI。
AI的独特可行性挑战
传统软件本质上是确定性的:如果逻辑和参数设置正确,代码会产生可预测的输出。
生成性AI有一个固有的随机维度:结果并不总是一致的,输出质量可能会根据输入数据和模型本身的细微差别而波动。它需要不断的测试来确定结果是否可靠和对用户有价值。因此,传统的工程直觉并不完全适用。
随着时间的推移,你开始建立对AI模型能做什么或不能做什么的感觉,但这些直觉比传统软件的校准要少。即使是经验丰富的AI工程师也会遇到意想不到的结果。技术可行性风险比传统软件大,因为模型在测试中可能会让你感到惊喜——无论是正面的还是负面的。但它并不像深度科技那样令人生畏,深度科技可能需要基本的科学突破才能前进。相反,生成性AI的风险介于软件和深度科技之间——可行但不可预测。
由于这种不可预测性,使用生成性AI需要更加实验性的方法。在传统软件中,构建良好的第一个版本可能需要小的调整——在这里改变按钮位置,那里更清晰的副本——而不是彻底的改革。然而,对于生成性AI来说,那个第一个版本可能需要持续的“调整”——调整提示、整合额外的数据、调整参数——以提高其可靠性和用户价值。每个调整都可以稍微改变结果,所以迭代和测试的循环对于获得所需的结果至关重要。
对于Mindtune,我开始构建软件体验——线框图、登录等——在测试模型(GPT-4o、Claude 3.5 Sonnet、Gemini Pro 1.5和Llama 3.2)之前,看看它们是否能够为个人广告生成足够好的内容。那是一个错误:当我最终评估模型输出的质量时,它们返回了不一致的结果。我应该在担心软件组件之前做后者,因为最终决定项目可行性的是底层模型的质量,而不是上面的软件。
这个迭代过程还要求你直观地知道何时停止或转向。在推动模型能力和认识到它已经达到极限之间有一个微妙的平衡。有时,尽管反复调整,输出可能永远达不到可接受的质量,你应该放弃。或者,你可能感觉到再多几次迭代就能产生你瞄准的结果。
然而,在这个阶段也有细微差别。有时,应用AI的不可行性是一个标志,表明项目不值得追求。在其他时候,你可能相信价值就在那里尽管可行性低——所以你不应该放弃项目,但要转向。你可能开始认为你正在构建一个应用AI项目,并意识到你实际上正在构建的是深度AI,而为了使项目可行,你必须进入研究模式并构建自己的模型。你的可行性风险增加了,但项目可能更有价值,因此更值得追求。
了解你的风险,了解你的路径
无论你构建什么,你都需要了解风险档案,但对于AI来说尤其重要。如果你知道你所承担的风险的性质,你可以弄清楚在哪里优先分配你的资源和精力。它还迫使你在每个阶段提出正确的问题:我们能构建这个吗?人们会使用它吗?只有在那些检查点被清除之后:我们能围绕它构建一个可持续的业务吗?
无论是应用还是深度,AI初创公司的运作复杂性都比传统软件产品高。它们需要更深入地了解风险如何相互锁定,并愿意探索未知领域。许多开发人员认为使用生成性AI API消除了技术风险——他们正在创建“只是另一个包装器”。但这具有欺骗性。即使使用现有模型,也涉及大量的实验。
低估这种技术风险可能会导致时间和资源的浪费。人们很容易认为,由于AI模型完成了繁重的工作,你可以专注于市场需求和商业模式。但实际上,确保AI按需执行是挑战的一个重要部分。实现可靠和有价值的结果不仅仅是连接API;它需要持续的调整、测试和对模型行为的深入理解。对于我的下一个项目,我将从这里开始。
二、AI与软件工程融合带来智能化软件新生态
(原创 LIKY AIDT智能工业)

01
智能项目管理

02
智能需求设计
智能化软件工程
1. 需求分析
需求分析是软件设计的基础,也是软件工程中最重要的环节之一。传统的需求分析方法通常需要依赖人工进行需求收集、整理和分析,效率低下且容易出现错误。而在智能需求设计中,AI 可以通过自然语言处理技术,自动从用户的需求描述中提取关键信息,并进行需求分析和建模。例如,AI 可以通过分析用户的需求文档、用户反馈和市场调研数据,自动生成需求规格说明书和用例模型,为软件设计提供准确的需求基础。
2. 需求生成
在智能需求设计中,AI 还可以通过对用户行为数据的分析,自动生成用户需求。例如,AI 可以通过分析用户在软件中的操作记录、搜索记录和反馈信息,自动发现用户的潜在需求,并生成相应的需求描述。这种需求生成方式可以大大提高需求的准确性和及时性,为软件设计提供更好的指导。
3. 架构设计
软件架构设计是软件设计的核心环节之一,它直接影响着软件的质量、可维护性和可扩展性。在智能需求设计中,AI 可以通过对需求规格说明书和用例模型的分析,自动生成软件架构设计方案。例如,AI 可以通过分析需求的复杂度、业务规则和性能要求,自动选择合适的软件架构模式,并生成相应的架构设计文档。这种架构设计方式可以大大提高架构设计的效率和准确性,为软件的开发和维护提供更好的支持。
4. UI 设计
用户界面(UI)设计是软件设计中最直观的环节之一,它直接影响着用户的使用体验。在智能需求设计中,AI 可以通过对用户需求和用户行为数据的分析,自动生成 UI 设计方案。例如,AI 可以通过分析用户的操作习惯、审美偏好和使用场景,自动选择合适的 UI 元素和布局方式,并生成相应的 UI 设计文档。这种 UI 设计方式可以大大提高 UI 设计的效率和准确性,为用户提供更好的使用体验。
5. 接口设计
软件接口设计是软件设计中非常重要的环节之一,它直接影响着软件的可扩展性和可维护性。在智能需求设计中,AI 可以通过对需求规格说明书和软件架构设计方案的分析,自动生成软件接口设计方案。例如,AI 可以通过分析需求的业务逻辑和软件架构的模块划分,自动选择合适的接口类型和参数,并生成相应的接口设计文档。这种接口设计方式可以大大提高接口设计的效率和准确性,为软件的开发和维护提供更好的支持。
6. 评审检查
在智能需求设计中,AI 还可以通过对需求规格说明书、软件架构设计方案、UI 设计方案和接口设计方案的分析,自动进行评审检查。例如,AI 可以通过分析需求的完整性、一致性和可测试性,自动发现需求中的问题和风险,并提供相应的改进建议。同时,AI 还可以通过分析软件架构的合理性、可扩展性和可维护性,自动发现架构设计中的问题和风险,并提供相应的改进建议。这种评审检查方式可以大大提高评审检查的效率和准确性,为软件的质量提供更好的保障。
03
智能开发
01
研发问答
在软件开发过程中,开发人员经常会遇到各种技术问题和难题。传统的解决方式是通过查阅技术文档、请教同事或者在网上搜索答案。这种方式效率低下,而且不一定能找到准确的答案。在智能开发中,AI 可以通过自然语言处理技术,自动回答开发人员的问题。例如,开发人员可以通过向 AI 提问,快速获得相关的技术解决方案和代码示例。这种研发问答方式可以大大提高开发人员的工作效率,减少开发过程中的技术难题。
02
代码生成
代码生成是智能开发中的一个重要环节。AI 可以通过对需求规格说明书和软件架构设计方案的分析,自动生成代码框架和代码模板。例如,AI 可以根据需求的业务逻辑和软件架构的模块划分,自动生成相应的代码框架和代码模板,开发人员只需要在这些框架和模板的基础上进行代码编写,就可以大大提高开发效率。同时,AI 还可以通过对已有代码的分析,自动生成相似的代码片段,开发人员可以直接使用这些代码片段,减少重复劳动。
03
代码补全
在软件开发过程中,开发人员经常需要输入大量的代码。传统的代码输入方式是手动输入,效率低下且容易出现错误。在智能开发中,AI 可以通过对开发人员输入的代码进行分析,自动预测开发人员的下一步操作,并提供相应的代码补全建议。例如,当开发人员输入一个函数名时,AI 可以自动预测该函数的参数类型和返回值类型,并提供相应的代码补全建议。这种代码补全方式可以大大提高开发人员的工作效率,减少代码输入错误。
04
代码优化
代码优化是提高软件质量和性能的重要手段之一。在智能开发中,AI 可以通过对代码的静态分析和动态测试,自动发现代码中的潜在问题和性能瓶颈,并提供相应的代码优化建议。例如,AI 可以通过分析代码的复杂度、可读性和可维护性,提供代码重构的建议。同时,AI 还可以通过对软件的性能测试,自动发现软件中的性能瓶颈,并提供相应的性能优化建议。
05
bug 排查
在软件开发过程中,bug 是不可避免的。传统的 bug 排查方式是通过手动调试和测试,效率低下且容易出现遗漏。在智能开发中,AI 可以通过对代码的静态分析和动态测试,自动发现代码中的潜在 bug,并提供相应的 bug 排查建议。例如,AI 可以通过分析代码的逻辑结构和执行路径,自动发现可能存在的逻辑错误和边界条件问题,并提供相应的 bug 排查建议。这种 bug 排查方式可以大大提高 bug 排查的效率和准确性,减少软件中的 bug 数量。
06
单元测试
单元测试是保证软件质量的重要手段之一。在智能开发中,AI 可以通过对代码的分析,自动生成单元测试用例。例如,AI 可以根据代码的函数签名和逻辑结构,自动生成相应的单元测试用例,开发人员只需要运行这些测试用例,就可以快速发现代码中的问题。同时,AI 还可以通过对单元测试用例的执行结果进行分析,自动评估代码的质量和可靠性。
07
代码注释
代码注释是提高代码可读性和可维护性的重要手段之一。在智能开发中,AI 可以通过对代码的分析,自动生成代码注释。例如,AI 可以根据代码的函数签名、逻辑结构和变量含义,自动生成相应的代码注释,开发人员只需要对这些注释进行审核和修改,就可以大大提高代码的可读性和可维护性。
08
编码辅助
在软件开发过程中,开发人员需要使用各种开发工具和框架。传统的开发工具和框架通常需要开发人员手动进行配置和使用,效率低下且容易出现错误。在智能开发中,AI 可以通过对开发人员的开发习惯和需求的分析,自动为开发人员提供编码辅助。例如,AI 可以根据开发人员的开发习惯,自动为开发人员推荐合适的开发工具和框架,并提供相应的配置和使用建议。同时,AI 还可以通过对开发人员正在编写的代码进行分析,自动为开发人员提供代码提示和自动完成功能,提高开发人员的工作效率。
04
智能测试
1. 测试需求理解
测试需求理解是软件测试的基础,也是软件测试中最重要的环节之一。传统的测试需求理解方法通常需要依赖人工进行需求分析和测试用例设计,效率低下且容易出现错误。在智能测试中,AI 可以通过自然语言处理技术,自动从需求规格说明书中提取关键信息,并进行测试需求理解和建模。例如,AI 可以通过分析需求的业务逻辑、功能点和性能要求,自动生成测试需求文档和测试用例模型,为软件测试提供准确的需求基础。
2. 测试分析
测试分析是软件测试中的一个重要环节,它直接影响着测试的效率和质量。在智能测试中,AI 可以通过对测试需求文档和测试用例模型的分析,自动进行测试分析,确定测试的范围、重点和方法。例如,AI 可以通过分析需求的复杂度、业务规则和性能要求,自动选择合适的测试方法和工具,并生成相应的测试计划和测试方案。这种测试分析方式可以大大提高测试分析的效率和准确性,为软件测试提供更好的指导。
3. 测试用例生成
测试用例生成是软件测试中的一个关键环节,它直接影响着测试的覆盖度和质量。在智能测试中,AI 可以通过对测试需求文档和测试用例模型的分析,自动生成测试用例。例如,AI 可以根据需求的业务逻辑和功能点,自动生成相应的测试用例,测试人员只需要对这些测试用例进行审核和执行,就可以大大提高测试用例生成的效率和准确性。同时,AI 还可以通过对已有测试用例的分析,自动生成相似的测试用例,提高测试用例的覆盖度。
4. 用例评审与修复
在软件测试中,测试用例的评审和修复是确保测试质量的重要环节。传统的测试用例评审和修复方法通常需要依赖人工进行,效率低下且容易出现遗漏。在智能测试中,AI 可以通过对测试用例的分析,自动进行用例评审和修复。例如,AI 可以通过分析测试用例的覆盖度、有效性和可执行性,自动发现测试用例中的问题和风险,并提供相应的改进建议。同时,AI 还可以通过对测试用例的执行结果进行分析,自动发现测试用例中的错误和缺陷,并提供相应的修复建议。
5. 测试脚本生成
测试脚本生成是软件测试中的一个重要环节,它直接影响着测试的效率和质量。在智能测试中,AI 可以通过对测试需求文档和测试用例模型的分析,自动生成测试脚本。例如,AI 可以根据需求的业务逻辑和功能点,自动生成相应的测试脚本,测试人员只需要对这些测试脚本进行审核和执行,就可以大大提高测试脚本生成的效率和准确性。同时,AI 还可以通过对已有测试脚本的分析,自动生成相似的测试脚本,提高测试脚本的覆盖度。
6. 智能测试
智能测试是软件测试中的一个新兴领域,它利用人工智能技术,自动进行软件测试。在智能测试中,AI 可以通过对软件的功能、性能和安全性进行自动测试,提高测试的效率和质量。例如,AI 可以通过模拟用户的操作行为,自动进行功能测试;通过对软件的性能指标进行监测和分析,自动进行性能测试;通过对软件的安全漏洞进行扫描和分析,自动进行安全性测试。这种智能测试方式可以大大提高测试的效率和准确性,减少测试人员的工作量。
7. 缺陷分析
缺陷分析是软件测试中的一个重要环节,它直接影响着软件的质量和可靠性。在智能测试中,AI 可以通过对测试结果的分析,自动进行缺陷分析,确定缺陷的类型、严重程度和影响范围。例如,AI 可以通过分析测试用例的执行结果,自动发现软件中的缺陷,并对缺陷进行分类和统计。同时,AI 还可以通过对缺陷的修复情况进行跟踪和分析,自动评估软件的质量和可靠性。
05
智能部署和运维
智能化软件工程
1. 配置生成
在软件部署过程中,配置文件的生成是一个非常重要的环节。传统的配置文件生成方法通常需要依赖人工进行配置,效率低下且容易出现错误。在智能部署和运维中,AI 可以通过对软件的需求和环境的分析,自动生成配置文件。例如,AI 可以根据软件的功能需求和性能要求,自动选择合适的配置参数,并生成相应的配置文件。这种配置生成方式可以大大提高配置文件生成的效率和准确性,减少软件部署过程中的错误。
2. 代码检测
代码检测是软件部署和运维中的一个重要环节,它可以帮助开发人员和运维人员及时发现代码中的问题和风险。在智能部署和运维中,AI 可以通过对代码的静态分析和动态测试,自动进行代码检测。例如,AI 可以通过分析代码的复杂度、可读性和可维护性,自动发现代码中的潜在问题和漏洞。同时,AI 还可以通过对软件的性能测试,自动发现软件中的性能瓶颈和问题。这种代码检测方式可以大大提高代码检测的效率和准确性,减少软件部署和运维过程中的风险。
3. SQL 脚本生成
在软件部署和运维过程中,SQL 脚本的生成是一个非常重要的环节。传统的 SQL 脚本生成方法通常需要依赖人工进行编写,效率低下且容易出现错误。在智能部署和运维中,AI 可以通过对数据库的结构和数据的分析,自动生成 SQL 脚本。例如,AI 可以根据数据库的表结构和数据关系,自动生成相应的 SQL 脚本,用于数据库的初始化、数据迁移和数据备份等操作。这种 SQL 脚本生成方式可以大大提高 SQL 脚本生成的效率和准确性,减少软件部署和运维过程中的错误。
4. 运维问答助手
在软件运维过程中,运维人员经常会遇到各种技术问题和难题。传统的解决方式是通过查阅技术文档、请教同事或者在网上搜索答案。这种方式效率低下,而且不一定能找到准确的答案。在智能部署和运维中,AI 可以通过自然语言处理技术,自动回答运维人员的问题。例如,运维人员可以通过向 AI 提问,快速获得相关的技术解决方案和操作指南。这种运维问答助手方式可以大大提高运维人员的工作效率,减少运维过程中的技术难题。
5. 自动工单处理
在软件运维过程中,工单处理是一个非常重要的环节。传统的工单处理方法通常需要依赖人工进行处理,效率低下且容易出现错误。在智能部署和运维中,AI 可以通过对工单的分析,自动进行工单处理。例如,AI 可以通过分析工单的描述和问题类型,自动分配工单给合适的运维人员,并提供相应的解决方案和操作指南。同时,AI 还可以通过对工单的处理结果进行跟踪和分析,自动评估运维人员的工作效率和质量。这种自动工单处理方式可以大大提高工单处理的效率和准确性,减少软件运维过程中的错误。
6. 故障识别与预测
在软件运维过程中,故障识别和预测是一个非常重要的环节。传统的故障识别和预测方法通常需要依赖人工进行监测和分析,效率低下且容易出现遗漏。在智能部署和运维中,AI 可以通过对软件的性能指标和日志数据的分析,自动进行故障识别和预测。例如,AI 可以通过分析软件的 CPU 使用率、内存使用率、网络流量等性能指标,自动发现软件中的性能问题和故障。同时,AI 还可以通过对软件的日志数据进行分析,自动发现软件中的异常行为和故障模式,并进行故障预测。这种故障识别和预测方式可以大大提高故障识别和预测的效率和准确性,减少软件运维过程中的风险。
7. 自动诊断告警信息
在软件运维过程中,告警信息的处理是一个非常重要的环节。传统的告警信息处理方法通常需要依赖人工进行分析和处理,效率低下且容易出现遗漏。在智能部署和运维中,AI 可以通过对告警信息的分析,自动进行诊断和处理。例如,AI 可以通过分析告警信息的类型、严重程度和影响范围,自动确定告警信息的优先级,并分配给合适的运维人员进行人员处理。同时,AI 还可以通过对告警信息的根源进行分析,自动提供相应的解决方案和操作指南,帮助运维人员快速解决问题。
8. 安全运维支持
软件的安全运维是至关重要的。AI 可以在安全方面发挥重要作用。它可以通过对网络流量、系统日志等数据的实时分析,检测潜在的安全威胁,如恶意软件入侵、数据泄露等。AI 还可以自动生成安全策略建议,帮助运维团队加强系统的安全性。例如,当发现异常的网络访问模式时,AI 可以立即发出警报,并提供应对措施建议。此外,AI 可以对用户行为进行分析,识别潜在的内部安全风险,如员工的异常操作行为等。
06
智能服务
01
智能客服

02
用户体验优化

03
软件更新和升级

结 语



1、如您转载本公众号原创内容必须注明出处。
2、本公众号转载的内容是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请作者或发布单位与我们联系,我们将及时进行修改或删除处理。
3、本公众号文中部分图片来源于网络,版权归原作者所有,如果侵犯到您的权益,请联系我们删除。
4、本公众号发布的所有内容,并不意味着本公众号赞同其观点或证实其描述。其原创性以及文中陈述文字和内容未经本公众号证实,对本文全部或者部分内容的真实性、完整性、及时性我们不作任何保证或承诺,请浏览者仅作参考,并请自行核实。
夜雨聆风