如何判断一个项目是否有问题

做过很多项目,有的时候冥冥中能感到不放心,就是一种心里很没底的感觉。最近我就在想,怎么判断一个项目有没有问题?

一个项目的执行过程如下:

  1. 产品/老板等根据现有的问题,提出一个需求

  2. 产品召集研发、测试等同学做需求评审,提出上线时间

  3. 研发同学写技术方案并评审,预估出开发时间,测试同学粗估出测试时间

  4. 研发同学开发

  5. 测试同学写测试case,并评审

  6. 测试同学进行测试,包括一轮、二轮、回归等

  7. 项目上线

我觉得有问题的情况可能出现在如下几个位置

1.需求阶段:有时候需求可能不合理,对如何分析项目的思考,不合理的原因可能是因为脑子一热提出来的、设计过重、没有发现根本原因所以方案不全面等。

  • 后果:导致的后果就是ROI特别低,费老鼻子劲完成任务,收获比较少,而且会导致核心的任务后移了。

  • 解决:从研发角度看,有时候挺难解决的,因为凡是需求都肯定能找到需要解决的问题,不能说完全没有价值。要么自己看的足够深,能够说出本质,大家都信服,要么自己的影响力比较大。在这一步上battle挺累的,少部分成功了,一些升级后也成功了,大部分失败了。

2.需求评审:评审过程中大家提出了很多问题,而且是比较重要的,这说明这个项目是没有考虑全面的。还有一种情况是评审的时候,对应的研发、测试都没有拉全,这说明产品与技术团队不是很熟悉,也不是很好的事情。

  • 后果:如果继续推进,大概率仍然有很多隐藏点没有发现,这些点会在UI、UX、技术方案设计、测试过程中不断被发现,然后需求不断变更,大家都累。即使上线后,也有可能影响到用户体验。没拉全研发人员则需要重新对评审。

  • 解决:可以产研定好一些规则,如果出现几个P0级别的问题没有考虑到,就重新完善一下方案,不要追求速度。当然这个解决方案也是很理想化了。至于找不全人的情况,还是提前找个POC研发或者PMO,确认一下人员吧。

3.技术方案:这里出问题一般都是大问题。首先是技术方案不清晰,原因可能是懂了但是写的不好,还有一种情况是不太清楚细节,写了个大概出来。后一种会很麻烦,问细节的时候往往答不出来,需要下去再想想。技术方案意味什么,我觉得意味着对每一个关键节点都考虑清楚了,甚至说要在哪里改都想清楚了,或者说技术方案就已经是伪代码了。另一个是估时不准,往往因为各种压力,时间压缩的比较严重。

  • 后果:很多细节没考虑到,测试的时候很多问题;有重大问题没考虑到,无法完成开发;写完的代码和技术方案差异过大,对线上影响过大;时间压缩过于严重,无法保证质量。

  • 解决:技术方案评审可以定标准,核心问题不知道的重新设计。这种虽然也比较理想化,但是还是可以实现的。倒排期这种问题,我发现只有大家怨念太多、离职的人多了、线上事故多了,倒排这种才会减少。

4.开发:这里很多都是各种各样的细节了,如不按照技术方案写、代码写的不严谨导致panic或cpu/mem高,高并发等特殊case没考虑全、数据库没加锁、表没加索引、代码写的混乱、没有注释等等

  • 后果:上线一堆问题

  • 解决:强制单元测试、加强代码review、靠测试同学、加强同学的编码能力

5.测试用例:主要是怕测试用例写的不全,这个可能是因为测试同学没有深入了解需求,或者对研发的技术方案设计了解不深。我有一个测试同学,他会看开发的代码,让我安全感满满。

  • 后果:有问题没测出来

  • 解决:研发自己要提高质量;测试也需要深入了解需求和技术方案,想好所有细节;做好自动化测试

6.测试:这里怕两点,一个是每一轮测试都能测出新的问题,量还不少,这就让人比较怕。二是测试的问题,研发没有深入追查,按照自己的想象给了个解释,然后resolve了。

  • 后果:一般会导致上线延期,毕竟总有问题出现要修复要复测。还有一点是让人没底,不知道还有多少问题是没有发现的

  • 解决:提前做好测试用例;研发和测试都需要严肃对待发现的问题,最好能考虑一下是什么原因导致的,是个大问题还是个小问题

7.上线:没有上线计划。尤其是多个团队合作的时候,没有上线计划就是个噩梦。我记得看过很多次上线顺序出现问题导致回滚的事件了

  • 后果:上线乱糟糟,大家不知道按照什么计划处理

  • 解决:花时间写一份上线计划,大家对齐,这个时间是值得的

写在最后:本来想简单写写,但写了之后发现各个阶段出现的问题其实挺多的,解决方案也有,每一个都可以写个单独的文章出来。但我想说的是,方案一般公司都是有的,但方案都是冷冰冰的,真正需要的用心靠谱的同学。不知道大家有没有这种经历,和某个同学合作过后,还想继续合作,为啥,真的是放心,这个阶段交给他/她,你就知道是没有问题的。我是幸运的,每个阶段我都遇到过这种靠谱的同学!

相关推荐
王中阳Go17 分钟前
从超市收银到航空调度:贪心算法如何破解生活中的最优决策谜题?
java·后端·算法
shepherd11117 分钟前
谈谈TransmittableThreadLocal实现原理和在日志收集记录系统上下文实战应用
java·后端·开源
关山月44 分钟前
使用 Ollama 和 Next.js 构建 AI 助手
后端
倚栏听风雨1 小时前
SwingWorker详解
后端
深栈解码1 小时前
OpenIM 源码深度解析系列(二):双Token认证机制与接入流程
后端
考虑考虑1 小时前
feign异常处理
spring boot·后端·spring
mCell1 小时前
你可能在用错密码:服务端密码安全的真相与陷阱
后端·安全·go
掘金狂热勇士1 小时前
Faster LIO建图过程
后端
树獭叔叔1 小时前
从零开始Node之旅——装饰器
后端·node.js
摆烂工程师2 小时前
Google One AI Pro 的教育学生优惠即将在六月底结束了!教你如何认证Gemini学生优惠!
前端·人工智能·后端