开发者日均分心1200次,MCP或成解决之道
快速阅读: 行业研究显示,开发人员仅16%时间用于编码,其余时间处理运营和支持任务。MCP协议通过整合AI助手与常用工具,减少上下文切换,提高开发效率。
软件开发人员大部分时间不在编写代码;最近的一项行业研究发现,实际编码仅占开发人员工作时间的16%,其余时间则用于运营和支持任务。随着工程团队面临“以更少资源做更多事情”的压力,以及CEO们夸耀其代码库中有多少是由AI编写的,一个问题是:如何优化工程师剩余84%的工作任务?
提高开发人员生产力的一个主要障碍是上下文切换:频繁在各种工具和平台之间切换,这会严重影响开发效率。哈佛商业评论的一项研究发现,平均数字工作者每天在应用程序和网站之间切换近1200次。每次中断都很重要,加州大学的研究表明,完全恢复集中注意力需要约23分钟,而且近30%的中断任务从未恢复。上下文切换是DORA(DevOps Research and Assessment)框架中的一个重要问题,DORA是目前最流行的软件开发性能框架之一。
在一个AI驱动的公司试图赋能员工以更少资源做更多事情的时代,除了提供大型语言模型(LLMs),一些趋势正在浮现。例如,Brex公司的首席工程师Jarrod Ruhland认为,“开发人员在集成开发环境(IDE)中专注时,能发挥最大价值”。基于这一点,他开始寻找新的方法来实现这一目标,Anthropic的新协议可能是其中的关键。
模型上下文协议(MCP)是一种开放标准,旨在促进AI系统(特别是基于LLM的工具)与外部工具和数据源之间的集成。该协议于2024年11月由Anthropic发布,自发布以来,MCP服务器的数量在过去6个月内增长了500%,6月份的下载量达到700万次。
MCP的一个重要应用是将AI编码助手直接连接到开发人员日常使用的工具,从而简化工作流程,大幅减少上下文切换。以功能开发为例,传统过程涉及多个系统的切换:在项目跟踪器中阅读工单,在聊天工具中与同事沟通,查找API文档,最后打开IDE开始编码。每个步骤都需要在不同的标签页间切换,这会降低开发速度。
有了MCP和现代AI助手,如Anthropic的Claude,整个过程可以在编辑器内完成。例如,实现一个功能的步骤可以是:
– 使用Linear MCP服务器拉取工单详情;
– 使用Slack MCP服务器显示相关对话;
– 使用Glean MCP服务器引入所需文档;
– 要求Cursor编写功能的框架。
同样的原则也适用于其他工程师的工作流程,例如,站点可靠性工程师(SRE)的事故响应流程可以是:
– 通过Rootly MCP服务器拉取事故信息;
– 通过Sentry MCP服务器检索跟踪数据;
– 通过Chronosphere MCP服务器导入可观测性指标;
– 要求Claude Desktop修复导致事故的错误。
这种模式并不新鲜。过去十年,Slack通过成为数百个应用程序的中心枢纽,显著提高了工作效率,使员工无需离开聊天窗口即可管理各种任务。例如,Riot Games连接了大约1000个Slack应用程序,工程师的工作效率提高了27%。
代码测试和迭代时间缩短22%,新漏洞识别速度提高22%,功能发布率提升24%;这些改进都归功于工作流程的简化和工具切换的摩擦减少。如今,类似的变革正在软件开发领域发生,人工智能助手及其MCP集成成为连接各种外部工具的桥梁。IDE有望成为工程师的一体化指挥中心,类似于Slack对普通知识工作者的作用。
MCP可能尚未准备好进入企业级应用。MCP是一个相对较新的标准,安全方面存在不足,没有内置的身份验证或权限模型,依赖于仍在发展的外部实现。身份和审计也存在模糊性,协议无法明确区分某个操作是由用户还是AI触发的,这使得在没有额外定制解决方案的情况下,责任归属和访问控制变得困难。F5 Networks首席技术官办公室的杰出工程师兼首席布道师Lori MacVittie表示,MCP“打破了我们长期以来的一些核心安全假设”。
当同时使用多个MCP工具或服务器时,会出现另一个实际限制。每个MCP服务器都会列出一系列工具及其描述和参数,供AI模型考虑。过多的工具会淹没模型的上下文窗口,导致性能显著下降。一些IDE集成已设置硬性限制(例如Cursor IDE最多支持40个工具,OpenAI代理则为约20个工具),以防止提示超出模型处理能力。
此外,工具的自动发现或基于上下文的建议功能尚不完善,开发者通常需要手动切换或筛选活动工具,以确保系统顺畅运行。Riot Games安装了1000个Slack应用程序的例子表明,这种模式可能不适合企业使用。
过去十年的经验告诉我们,将工作带到工作者身边的重要性,从Slack频道推送更新到“收件箱清零”的邮件管理方法,再到统一的平台工程仪表板。现在,随着AI的加入,我们有机会进一步提高开发者的生产力。就像Slack成为商业沟通的枢纽一样,编码助手也有望成为软件创建的中心,不仅用于编写代码,还用于汇聚所有上下文和协作者。通过让开发者保持在工作流中,我们可以消除工程生产力长期面临的频繁心理转换问题。
对于任何依赖软件交付的组织来说,仔细审视开发者的日常活动至关重要,你可能会发现一些意想不到的情况。
Rootly AI实验室负责人Sylvain Kalache指出,企业应关注开发者的日常工作,以提升软件交付效率。
(以上内容均由Ai生成)