#项目管理

最近在和很多企业深度对话中,如果想达到目标,我们深刻发现 DRI(Directly Responsible Individual) 直接责任人,这个角色的重要性,该角色最终对项目成功或失败负责的那一个人。他们是状态更新、决策制定和克服阻碍的核心成员。 这个概念起源并在科技界获得了突出地位,特别是在史蒂夫·乔布斯领导下的苹果公司,它成为了他们组织结构的基本组成部分。正如《福布斯》所述:"在苹果,对于谁负责什么从来不会有任何混淆。内部苹果用语甚至有一个专门的名称,即'DRI',或直接责任人" DRI最终对项目的成功(或失败)负责 ○ 无论团队规模或复杂性如何,他们都拥有最终结果 ○ 当事情陷入困境时,他们负责推动进展 ○ 当事情陷入困境时,他们负责推动进展供答案 DRI角色的一个关键方面是决策制定权力。 DRI不必解释他们为什么做出决定,他们绝对不必说服其他人。这赋予他们权力来: ○ 对项目方向做出最终决定 ○ 打破分析瘫痪 ○ 在不需要过度共识建设的情况下推进倡议 有效的DRI应该具备这些8个关键特征 : ○ 注重细节 - 同时不失去战略视角 ○ 在压力下保持冷静 - 在实施和截止日期期间 ○ 强大的倾听技能 - 具有出色的提问能力 ○ 适应性强 - 能够巧妙地调整项目方向朝着目标 ○ 主动性 - 善于预见和早期解决问题 ○ 多才多艺的沟通者 - 能够在所有组织层级有效互动 ○ 有韧性 - 能够从挫折中恢复 ○ 一致性 - 对类似情况的响应可靠 写在最后,这也是困局,很多人和我说的很直接,想干,但是不能干,本来应该是「砖」最后变成了「枪」这也是现状!
Yesterday, while trying out Notion 3.0, I found myself quickly losing interest. 昨天试用 Notion 3.0 过程中,越用越无趣。 Take connecting Linear into Notion as an example. We’ve only been using Linear for less than a year, yet the connection estimate was over 30 hours. The time wasn’t the real problem—what struck me was how the whole process suddenly killed any motivation I had to continue. 比如同步 Linear 到 Notion 中,我们用 Linear 还不到一年,提示要 30+ 小时。这个时间还是其次,更重要的是,尝试过程中,突然没了欲念。 When it comes to project management, Notion is like a spear, while Linear is a machine gun. There’s no point in forcing a machine gun to behave like a spear. 在项目管理这块,Notion 是把长矛,Linear 是架机关枪。没必要把机关枪同步成长矛。 Notion’s real genius lies in its abstraction of Blocks and Bases. Blocks come together to form Pages, and Pages can be assembled into SaaS-like experiences (though not fully realized). Notion 的厉害之处,是 Block 化和 Base 化的产品抽象。由各种 Block 组装成了一个个 Page,再由多个 Page 组装成一个个 SaaS(未达成)。 But this strength might also be its biggest weakness. A Page built from Blocks and Bases will never truly become a Calendar, Mail, Slack, or Linear. To get there, Notion would have to acquire or rebuild those applications entirely. Notion 的厉害之处,可能也就是 Notion 最大的傲慢之处。由 Block + Base 组装成的 Page,成为不了 Calendar、Mail、Slack、Linear 等垂类应用。这类应用,还是得收购或重新构建。 At the end of the day, Notion is still a document collaboration tool. Notion 的底盘,依旧只是文档协作。 What’s interesting is that in the age of AI, documents are starting to find more natural homes. Product design docs, for example, can now live directly in Cursor inside the codebase. Project collaboration docs can sit in Linear itself—a long issue is essentially a document. 有意思的是,AI 时代,让各种文档开始有了更好的归属。比如产品设计文档,经常可以直接用 Cursor 写在代码仓库里。项目协作文档,则可以直接写在 Linear 里(长一点的 issue 就是文档)。 In this new era, Notion’s foundation isn’t getting stronger—it’s actually getting thinner. Documents that don’t need collaboration now have better places to go. What’s left in Notion are only the documents that still require collaboration. AI 时代,Notion 的底盘没有变厚,而是变薄了。不需要协作的文档,有更好的地方去写。Notion 里剩下的,是需要协作的文档。 And looking further ahead: if people increasingly collaborate with AI instead of other people, even Notion’s collaboration layer could be shaken. 进一步的可能是,如果人越来越不需要与人协作,而是与各种AI协作,那么,Notion 的协作底盘都会被动摇。 The next generation of Office might not have “documents” at all. 全新一代的 Office 里,可能就没有文档。
Meepo
1个月前
🤪 meepo 今年有2w多的外包款项没有收回来,所以不建议开发者轻易接外包,发下 meepo 的经验,注意避坑: 1️⃣ 报价一定要合理,不能客户随便一个低价就把自己卖了,如果客户前期报价低,那么后期迭代+维护,可能会更低,而且你要做好最后交付之后,尾款不结算的心理预期,不要在客户心中种下你很廉价的种子。 2️⃣ 一定要让客户预付款,我一般是 20% ~ 30%,到账了再开工,中间定几个交付节点,每交付一部分功能,让客户验收付款之后,再进行下一部分的开发。 3️⃣ 功能一定要清晰明确,并发给用户确认,写详细一点,别嫌麻烦,开线上会议时,记得顺手录屏,我曾经因为这块弄的粗糙,反复跟用户 battle,因为客户不懂开发,所以中间肯定会存在很多理解偏差。 4️⃣ 在开发功能前,先找一下有没有适合的模板或者开源项目,从零搭建去开发,是万不得已的事情,往往意味着利润更低,开发周期更长,平时要记得去收集一些符合技术栈的好的模板或者开源项目。 5️⃣ 注意培养长期合作的其他人员,不管是前后端开发,还是 UI 设计,那些平时老是嚷嚷着说"带带弟弟"的人,真的等到项目下来,你会发现他们啥也干不了,平时肯定要积累自己合作的稳定 team,毕竟你不可能什么开发语言都会,一个人可以走的更快,但是一群人可以走的更远。而对于复杂点的项目,我会专门找个测试人员跟进,毕竟开发自己自测,会浪费不少时间,控制 bug 率,是减少客户爆炸的最直接的影响因子。 6️⃣ 建立与客户之间的长期信任关系,报价,交付质量,这些东西,如果长期不合理,那么肯定会导致项目嗝屁,或者后续没法继续合作,不要想着今天坑了,明天亏了,长期可控即可。 7️⃣ 不要什么项目都做,什么都做,意味着什么都不精,那么长期搞下来,又累又没有积累。meepo 现在专注 web 全栈开发,出海业务,AI 套壳,react + nodejs + ts 的生态,一个人即可完整整个项目的开发。
宝玉
3个月前
AI 编程越来越厉害了,我要怎么提升自己的系统架构能力? 现在 AI 写代码真的是越来越厉害了,一些小的模块让 AI 写,又快又好。慢慢的,对程序员写代码的能力要求会降低,但是对系统架构能力反而会要求更高。而且这部分能力不会轻易被 AI 取代,因为 AI 还不能像人类一样看到一个复杂项目的全貌,无法完整理解项目的业务上下文和约束条件,所以需要人去把任务拆分,一次只执行一个小任务。 那么问题来了,新人要怎么才能提升系统设计能力呢? 作为一个过来人,我觉得提升系统设计能力这事,可能有没有 AI 都差不多,都离不开多看、多练和多复盘。AI 的好处就是可以更方便地帮你查资料,以及更容易地理解项目,但它不能代替你去动手实践。 什么是系统设计? 在讨论如何提升系统架构能力之前,需要先搞清楚:什么是系统设计? 想想看,如果你做一个简单的网页,或者一个小脚本,需要系统架构吗?基本上是不需要的,因为足够简单,有没有架构都能写出来。那如果是要做一个 ChatGPT 这样的应用呢?那是一定要有很好的系统设计的,因为太复杂了!而且一个人也是做不出来的,需要很多人甚至很多团队协作才能完成。 但即使是 ChatGPT 这么复杂的系统,在开发团队工作的每一个人,工作职责并没有非常复杂。比如有的人只负责实现模型的 API 封装、部署,有的人只负责 Canvas 这样的文本编辑组件,有的人只做 iOS 客户端上的某个功能。一个复杂的系统,通过系统设计,把复杂系统层层分拆,变成了一个个小的模块,最终这些模块组合在一起就可以运行起来,让用户可以稳定地使用 ChatGPT 的服务。 所以系统设计,就是把一个复杂的系统拆解成容易理解、容易实现、容易维护的小模块,再清晰地定义好这些模块之间如何相互协作、相互沟通的过程。 通俗点讲,就好像你盖一栋大楼,系统设计就是设计图纸。图纸上详细说明了楼的结构,比如地基、钢筋框架、墙体、管道和电线,明确告诉施工人员每一部分怎么盖,哪些部分先盖,哪些后盖,哪些部件之间是如何连接起来的。 如何做系统设计? 系统设计这件事看起来很神秘,系统架构师似乎都是传奇般的存在,但做系统设计这事也没你想的那么复杂,因为绝大部分系统设计都有成熟的方案可以参考。作为架构师,可以灵活应用成熟的架构模式,一般是不需要去发明新的架构模式的。 但系统设计也没有那么容易,否则人人都是架构师了。系统设计难在哪呢? • 要充分理解需求和团队:我把理解需求和团队放在了第一位,因为系统设计是为需求服务的,你不理解需求做出来的设计那可能都是错的;同时系统设计要和组织架构匹配,毕竟你的系统设计出来,还是需要团队去实施的。如果你就两三个人整几百个微服务显然是有问题的,反过来你几百个人的团队还是单体应用也可能是有问题的。 • 要面对不确定性:系统设计不像写代码是一个确定性很强的事,代码模块的输入和输出都是固定的,只要去实现算法就好了。但是系统设计面对的是不确定性:需求不确定、未来的发展不确定、技术选型的影响不确定。你需要在这种不确定中做出相对稳健的决策。 • 要权衡取舍:在系统设计中,几乎不可能有绝对完美的方案,通常都是在多个选项之间权衡。例如要兼顾性能和成本、扩展性和开发复杂度、安全性和用户体验等等。这就要求设计者能做出合理的决策,并理解每个选择背后的得失。举个例子,选择微服务架构可能带来更好的扩展性,但也会增加运维复杂度和网络开销。 • 要沟通说服:系统架构不仅仅是给自己看的,更重要的是要让团队的所有成员都理解你的设计,甚至是非技术人员也能大致明白整体结构。这需要架构师具备良好的文档编写和表达能力,用清晰的语言、图表、流程来传递设计意图。不仅如此,在做系统设计时,并不是你做个设计别人就能认同的,你需要去说服别人认同你的设计,有时候也必须做出一些妥协。 当然到了 AI 时代,有些地方还是有些改善的。比如你资源不够就可以用 AI 凑,不善于表达就让 AI 帮你写原型写文档,不知道如何取舍就用 AI 分别实现一套 POC(概念验证),再对比看效果。 新人如何提升系统设计能力? 系统设计并没有快速通道,更多的是长期积累的过程,这个时间通常是以年计的。总结下来关键是三点:"多看"、"多练"和"多复盘"。 "多看":积累架构模式 就是学习经典的架构案例,知道有哪些架构设计的方法。网上有很多系统设计面试题和分析,都是很好的学习素材。另外还可以看开源项目,看看复杂的开源项目是怎么运行的,多关注: • 这些系统是如何拆分功能模块的? • 模块之间又是如何通信的? • 为什么他们选择了某种特定的技术或架构方案? • 在实际中遇到了哪些挑战,又是如何解决的?比如微博是怎么 8 明星并发出轨的? 推荐一些学习资源: • System Design Interview Alex Xu 写的这本系统架构设计面试书,系统地介绍了常见的架构模式 • High Scalability 网站,收录了大量真实系统的架构案例 highscalability[.]com • 开源项目如 Kubernetes、Kafka、Elasticsearch 的架构文档 "多练":从模仿到创新 除了理论学习,更重要的是主动去练习。系统设计这种事,哪怕你像 AI 一样训练了所有公开的系统设计方案,但你不试试仍然不会知道它们在不同的应用场景下的优缺点是什么。就像微服务从来不是个技术问题,而是一个和组织架构相关的问题。 新人的话,最好是从模仿开始,先照葫芦画瓢,然后再去按照自己的思路去改进。 一些你可以练习的方式: 1. 架构还原练习:选择一个你熟悉的系统或产品,试着去拆分架构,画出架构图;写下每个模块的功能定义,明确模块之间如何通信;再去找懂这个系统的人请教对比。 2. 对比学习:去看看类似功能的开源系统,看设计方案有什么不同,各自的优缺点是什么。比如对比 Redis 和 Memcached 的架构差异。 3. 设计先行:在做一个相对复杂的功能时,先去做一下设计再开始写代码。哪怕是个人项目,也要画架构图、写设计文档。 4. AI 辅助验证:尽可能把要实现的模块,用自然语言描述清楚,让 AI(推荐 Claude、Gemini、DeepSeek 等模型)去实现,看结果和你期望的差距在哪里。如果不是你想要的,去反复调整你的描述或者继续分拆,直到 AI 能实现你想要的效果。这个过程其实是在训练你的模块化思维。 5. 重构现有系统:去重构现有系统,在稳定性、代码重用、性能这些方面去改进。重构的过程会让你深刻理解原有设计的问题。 6. Side Project 实战:去做 side project,先尝试基于开源项目二次开发,再尝试从头搭建一套相对复杂一点的系统。比如做一个简化版的分布式消息队列、一个迷你版的容器编排系统。 只有在真实项目中踩坑、解决问题,你才真正能理解系统设计中各种取舍的意义。 "多复盘":从经验中提炼智慧 每次做完项目或者完成一段设计后,都要回顾总结一下过程: • 当初做决策的依据是什么?这些决策后来验证效果如何? • 如果再做一次,哪些地方会做不同的选择? • 遇到的困难和挑战是什么?分别是如何克服的? • 是不是有更好的技术或架构选择当时被忽略了? • 团队成员的反馈如何?他们是否理解并接受了你的设计?如果不接受,原因是什么? 复盘是让你从具体实践中提炼出通用方法论的重要环节。只有反复总结和不断优化,你的系统设计能力才能逐渐提高。 AI 时代更要用好 AI 帮你提升系统设计水平 在学习系统设计的过程中,AI 虽然无法替代你完整地设计架构,但可以成为你提升能力的重要工具,助你快速成长: • 快速查资料与案例:让 AI 帮你迅速搜集和整理系统设计的案例与最佳实践,大大节省学习成本。比如你可以问 AI:"给我解释一下 Circuit Breaker 模式在微服务中的应用场景"。 • 辅助实践:你可以把自己设计的模块先让 AI 尝试实现,以检验你的设计思路是否清晰合理,从反馈中不断优化设计。这就像有了一个永远在线的结对编程伙伴。 • 辅助沟通:你可以先把复杂的设计和思路告诉 AI,由 AI 帮助你简化表达,生成易于团队沟通和理解的文档。甚至可以让 AI 帮你生成架构图的描述文本。 • 辅助决策:当你在不同架构方案间犹豫时,让 AI 帮你分析每种方案的优劣势和适用场景,帮助你快速做出选择。AI 可以快速给你列出各种方案的 trade-off。 • 模拟场景:你可以让 AI 模拟不同的故障场景,帮你思考系统的容错设计。比如"如果数据库挂了,我的系统会怎样?" 架构设计能力的提升关键还是在人,而 AI 则能帮助你更高效地学习、更快速地试错和迭代,加速你成为合格系统架构师的步伐。 写在最后 原本只是打算简单写写的,不小心还是扯多了。没办法,系统设计这种事是真的没什么捷径好走,只有坚持学习。当然方法得当还是能加速一点。 在 AI 时代,架构师的价值不是被削弱了,而是被放大了。因为 AI 让实现变得更容易,所以设计的好坏会更加明显地影响最终结果。一个好的架构设计,配合 AI 的实现能力,可以让你的生产力提升十倍甚至百倍。 希望你早日掌握好架构设计,不用担心被 AI 替代,反而可以利用系统设计能力让 AI 更好地为你效力。毕竟,AI 再厉害,也需要有人告诉它要造什么样的房子,不是吗?