43-面对探索型功能开发任务,如何避免常见陷阱?

前言 在软件开发过程中,我们经常会遇到一些探索型的功能开发任务,就是那些没有做过、没有参考案例、甚至整个部门都没人有经验的功能开发。 这种任务往往充满了不确定性,也最容易出现问题。 书接上回 还记得之前张三和李四因为临时方案爆发的争论吗? 李四最近的开发工作一直都差强人意。 每次功能做完在会议上演示,总是会被挑出很多问题:功能实现丢三落四、界面样式不够美观、逻辑处理不够完善等等。 问题表现 这个问题到底出在哪里呢?是李四做事情不够用心吗? 经过一段时间的观察,我发现问题主要出在两个方面: 问题一:需求沟通不到位 首先是需求沟通的问题,很多时候,需求给出来的时候就存在可协商的空间,什么意思呢?就是需求描述不够明确,没有达到可量化的程度。 比如只说 “界面主题色是蓝色”,但没有给出具体的十六进制值。对于开发人员来说,蓝色可以是天蓝色、浅蓝色、粉蓝色,甚至深蓝色。 结果等开发完成了,你又不满意了,说想要的是深蓝色。这个时候功能都实现完了,找谁说理去? 问题二:探索型任务的特殊性 第二个原因是,李四的开发任务是探索型的任务,这类功能没有做过,甚至整个部门就他一个人开始做。 对于这种类型的任务,最容易出现的问题就是口头沟通的局限性,两个人在座位上你一句我一句地讨论功能实现、技术预研、技术框架、设计方案、函数封装等,都是口头沟通。 因为没有参考案例,沟通双方很容易出现 “我觉得我说清楚了,你觉得你听明白了” 的情况。 结果呢? 等功能开发出来,李四觉得自己已经做到位了,张三一看,觉得和之前沟通的完全不是一回事儿。 解决方案 面对这些问题,我们应该怎么办呢? 对策一:需求量化是基础 首先,需求必须可量化、可验证,这是解决问题的第一步。 颜色要给出具体的十六进制值,尺寸要给出具体的像素或百分比,功能要明确输入输出,性能要给出具体的指标要求。 所以说,模糊的需求必然导致模糊的结果。 对策二:方案文档不可少 其次,对于探索型任务,方案文档是关键。 李四应该在开始敲代码前,先在脑子里过一遍整个开发流程,找出可能存在的技术难点和争议点,针对每个难点提供 1-2 个解决方案,然后形成方案文档,文档应包括:做什么、为什么、怎么做、有什么问题、怎么解决、结论。 一来可以把思路梳理清楚,二来可以提前预知可能出现的问题,把风险在开发前就排除掉。 对策三:多人讨论是保障 最后,一个人拍脑袋决定的方案往往存在隐患,正确的做法是召集项目负责人、相关同事等一起过一遍方案文档,大家从不同角度提出意见和建议,明确解决方案和实现方式。 为什么要这么做? 因为每个人掌握的信息不同,多人讨论可以避免信息盲区,可以发现个人思考中忽略的问题,最重要的是,集体决策可以分摊责任,如果最后方案还是不太理想,也怪不到某一个人头上。 总结 说实话,探索性功能开发确实充满挑战,很多人会觉得这类型的任务,最大的难点是在技术层面的攻关,但实际上,只要做事情的方式不对,同样得不到自己满意的结果。 所以说,探索不代表可以随意,创新也需要规范。按照正确的流程和方法去做,你会发现,很多看似复杂的问题其实都有章可循。

2025-11-25 · 1 分钟 · 42 字

42-项目紧急情况下,临时方案是救星还是地雷?

前言 说实话,这个事情真的太常见了。在项目开发过程中,时间紧、任务重,大家都想赶紧把功能做出来,这种时候往往就容易出现一些临时方案。 但是呢,临时方案这个东西,用好了是救急,用不好就是埋雷。 今天就给大家分享一个真实发生的案例,看看在项目紧急情况下,我们到底应该怎么处理。 事情是这样的 李四最近在赶一个项目的进度。说实话,时间真的太紧了,按照正常的开发流程,根本来不及完成所有功能。于是呢,李四就动了个心思,用了一些临时的解决方案。 比如说,有些条件判断、有些循环逻辑,本来应该是根据接口返回的数值来动态设置的,但是为了赶时间,李四直接把这些值硬编码写死了。这样做的好处是,功能马上就能跑起来,测试也能顺利通过。 但是呢,这种做法在功能、代码规范上面肯定是有问题的。就像你盖房子,本来应该用钢筋混凝土浇筑的柱子,你用了几根木头临时支撑一下,虽然看起来也能立起来,但是,随着楼面东西越来越多,顶不住是时间问题。 矛盾爆发 项目负责人张三在重构代码的时候,就发现了这个问题。说实话,张三当时就火了,在项目进度例会上直接就和李四争论起来了。 从张三的角度来说,这种低级错误真的无法理解。代码规范这种约定俗成的东西,难道还需要一遍一遍地强调吗?如果每个人都这样随意修改代码,那项目质量怎么保证? 从李四的角度来说,他觉得很委屈。当时项目时间那么紧张,我想出了临时方案,至少保证了功能按时上线,自己不但没被表扬,反而被批评,心里真的很不好受。 双方都觉得自己有道理,看起来这个问题真的很无解。 张三的问题 说实话,张三作为项目负责人,也有他的责任。 首先,代码审核没有做到位。这种明显的硬编码问题,应该在第一时间就发现,而不是等到项目上线后才提出来。 其次,在李四解释了原因之后,张三不应该过多指责,而是应该给出建设性的建议,帮助李四改进工作方式,避免下次再出现类似的问题。 李四的问题 李四的临时方案本身并没有太大问题,毕竟在紧急情况下,有时候确实需要一些特殊手段。 但是呢,他的处理方式有问题。在使用临时方案之后,他应该有更好的选择: 方案一:主动告知 在群里或者邮件中告知团队成员,说明自己使用了临时方案,并且承诺在时间节点过后会进行完善。这样既能保证项目进度,又能让团队成员了解情况。 方案二:默默完善 如果不想让太多人知道,至少在时间节点过后,自己要记得把这些临时方案替换成正式的解决方案。 但是很遗憾,李四两个选择都没有做。所以才导致了后来的争执。 总结 说实话,这个案例虽然看起来很简单,但背后反映的是项目管理中的一个普遍问题。 在项目开发中,我们经常会遇到各种紧急情况,这时候就需要我们有灵活的应变能力。 但是,灵活不等于随意,我们需要在保证项目进度的同时,也要保证项目质量。 最重要的是,遇到问题不要互相指责,而是要互相理解,共同寻找解决方案。 只有这样,才能让团队变得更强大,项目变得更成功。 记住,临时方案可以用,但一定要使用正确的方法,想出一个好点子,并不等于就解决了问题,要在执行层面也做到位,那才是真正的解决了问题,而不是出现新的问题。

2025-11-24 · 1 分钟 · 32 字

41-多项目管理中的人员调配思考

在多项目管理过程中,会遇到这样一个问题:有的项目人比较多,有的项目人比较少。 比如 A 项目有张三、李四、王五等 4 个人,B 项目则只有赵六、王七 2 个人。 这种情况下,通常会考虑从 A 项目调一个人去支持 B 项目。 不过在做这个事情之前,得先想明白几个问题:我们为什么要调一个人去支持 B 项目?调谁合适?为什么是他?做这个事情的根本目的又是什么? 如果不加深究,很容易得出答案:因为 A 项目人多,B 项目人少,适当匀一下,显得更为合理。 但实际上,人员调配的真正目的是优化资源结构,把钱花在刀刃上,实现利益最大化。 从这个角度出发,你会发现事实可能和之前预想的不一样: A 项目有 4 个人,B 项目有 2 个人,虽然 B 项目的事情好像更多更杂,表面看更应该加人。 但结合项目对部门业绩发展的重要性来评估资源投入就会清楚,A 项目是行业项目,B 项目只是对内的、满足公司自身需求的项目。 显然,这两个项目对部门发展的重要性是不一样的,A 项目很明显更重要。 所以,即便 A 项目人多,B 项目人少又事情多,也不应该从 A 项目调离人员。 正确的做法是加快 A 项目的功能迭代,同时对 B 项目的功能进行筛选,先做高优先级的,低优先级的就推迟开发。 除此之外,是否调离人员,还需要评估人员的重要性。 结合实际情况,核心成员就该投入到重要性高的项目,再结合对他的发展期望,调整到利于他发展的项目中。这样一来,他的能力能得到提升,也容易做出更好的业绩,从而激励到自身。 还有一点,要尽量不过多变动当前人员负责的业务,不让他们掺杂过多业务,一来精力太分散,容易变得低效;二来人员掺杂过多业务,会加大管理难度,影响多项目推进。 所以在我看来,多项目管理中的人员调配,可以通过这几个来判断: 根据项目对部门业务发展的重要性,评估投入资源。重要性高的项目人多,重要性低的项目人少。重要性低的项目事情多,就适当慢下来,按优先级处理。 依据成员的重要性进行调配,核心成员投入到重要性高的项目,利于其发展、做出业绩,实现自我激励。 避免人员参与过多业务,以最小力度调整人员,保持业务的稳定性。

2025-08-18 · 1 分钟 · 55 字

45-落后就要挨打

自身实力是根本(打铁还需自身硬) 结果导向,不迷信过程 主干线思维,聚焦核心目标 第一性原理,目标导向的方法选择 把自己当成一个"国家"来经营 强如教员都有过屈辱的经历,我这点小小的委屈,又算得了什么? 打铁还需自身硬,落后就要挨打。 国与国之间,人与人之间,都是如此。如果不清楚怎么处理人与人之间的关系,那么可以把自己当成一个国家,看国家与国家之间是怎么处理这种关系的。打铁还需自身硬,落后就要挨打,古往今来,都是如此。就需要把自己当成一个国家来生存。看看中国近代史,是怎么变成现在这般强大的,又是付出了什么努力,多少鲜血和汗水? 只看结果,不注重过程,不迷信苦劳,只相信拿到结果。 打工人的思路:主干线为主,其他分支为辅,影响到主干线的,要么加班抽时间解决,要么砍掉或者下放任务给到其他人解决。 接到新任务做法:先判断是否对主干线有利,否则其他人来做或不做。 使用第一性原理,目标是什么?不用完全遵照现有的方式、方案来执行,只要达成目标,不管什么方法都可以。 PBL的核心是在解决实际问题中学习成长。你的每一个学习行动都要围绕"如何获得客户签约"这个核心问题展开。不要只是学习,要在实战中学习,在解决问题中成长!

2025-08-18 · 1 分钟 · 13 字

40-AI代码评审出现幻觉问题应该怎么处理

在之前的文章《37-AI 时代,代码评审方式究竟怎样优化?关键要点有哪些?》中已经提到,AI 代码评审基于 Code-Review-GPT-Gitlab 进行使用,因为这个开源库包含评分机制、问题反馈、修改建议和修正后的代码等部分,比较符合我的预期。 在使用了一段时间之后,考虑到要基于流程规范来操作,项目成员提交代码后,最好能看到 AI 代码评审报告,然后根据反馈的问题修改后再提交代码。 但怎样才算修改好了呢?这就需要制定一个标准,比如将 90 分作为评分标准,每个分支提交到仓库时,都需要达到 90 分以上,代码才能入库。 然而,以 90 分作为标准执行一段时间后,有同事反馈这个标准可能不太合理。因为通过 AI 代码评审,出现了一些幻觉问题,这会导致评分不准确,使得 90 分的要求难以达成。 幻觉问题一直是当下 AI 面临的较大难题,在我看来,这并非完全是由于私有化部署时使用的模型小、性能不够强大所致,很多市面上很强大的 AI 工具,同样存在这个问题。 加上,其实提交的代码只是变更部分,AI 代码评审时,只会对 diff 部分进行检查,这就会存在对业务认知不完整的问题,因为项目中一个完整的业务功能,并不一定就在一个文件里完整呈现的。 因此,流程调整为采用 “AI 预评审 + 人工复核” 的方式,依旧按照 90 分的评分要求,具体问题具体分析。如果出现幻觉问题,则灵活处理,而非因噎废食。 关于幻觉问题,一方面可以考虑升级配置,比如购买性能更好的显卡;另一方面只能等待行业发展,以有效解决 AI 幻觉问题。 在《当 99% 可靠性是及格线,我们如何为大模型装上工程 “安全带”?》这篇文章中,提到了对幻觉问题的探索和解决,后续发展情况仍需持续关注: 在 2025 世界人工智能大会(WAIC)上,蚂蚁集团旗下蚂蚁密算宣布对外开源高阶程序(High-Order Program)大模型可信应用技术框架,通过外部化控制与核验,为构建可信、可控、可维护的大模型应用提供了务实的参考标准。 除此之外,项目成员在提交代码之前,需要在 VSCode 中使用豆包 AI 插件,对所有改动的文件进行检查。 这样至少能在提交代码、进行分支合并之前,在本地提前暴露问题,无需等到提交代码后再用 AI 进行代码评审,从而简化大量工作。 不过,在本地使用豆包 AI 插件检查改动的代码时,无需过度检查。因为我发现,每次提问都会得到问题反馈,即便复制它建议的代码去询问,仍然会收到很多建议,这会让人感觉没完没了。 毕竟代码的写法、规范并非只有一套,功能的实现细节也千差万别,并非绝对统一。所以,只需检查一次,把特别明显的问题改掉即可,若是吹毛求疵,只会陷入无尽的循环。 至此,我之前认为代码评审完全可以由 AI 来完成并让整个流程顺畅运转的想法,显然有些激进了。 以当前情况来看,无论 AI 代码评审能达到何种程度,即便幻觉问题能得到有效解决,也不应该完全由 AI 来承担这项工作。 ...

2025-08-13 · 1 分钟 · 78 字