产研提效 05|从 on boarding 看要成为怎样的程序员
产研提效 05|从 on boarding 看要成为怎样的程序员
JayClockon boarding,指的是企业从面试招人,到验证这个人是否符合公司需求的阶段。也就是一个员工,是否有能力:理解用户故事的上下文,以及验收条件 - 按照测试工序的指引,分解任务 - 根据任务列表逐步完成工作。在很多公司中,并没有一个有效的 onboarding 流程。一般是在试用期内,由 HR 和 mentor 以及和员工密切协作的人,来感性评估。而非从员工能否正确实施的迭代交付上入手。
难以避免的认知分歧
所谓正确实施迭代交付,即是否按照公司现有的代码架构与流程,在理解正确的用户上下文下,在给定的周期内,完成预先给出的功能范围。这里需要拉齐认知的有 3 个部分
- 完善的业务上下文
- 明确统一的代码代码架构
- 集体认同的验收条件
由于软件开发是集体活动,从团队视角上来看,不同成员会对同一个问题产生完全不同的看法。
对于公司的老员工来说,他们能完全胜任的的表现即为:理解用户故事上下文 -> 按照架构拆解任务 -> 完成一条待办(验收条件)
对于一些对业务理解不是很好的来说(一般是技术至上的开发):他们并不能理解用户故事由何而来,只能不断对用户故事卡进行迭代
而刚入职的员工,就完全摸不着头脑了。他们并不会仔细思考要做什么功能,产品说要做,就直接在原来的代码上叠加了。最终带来的就是大量的返工和修改。
这种认知分歧难以消除,毕竟不同的人经验水平、专业背景、个人偏好,对问题的思考角度都完全不同。我们优先要做的,其实是固化流程,尽量减少认知分歧上的差异。
总结你的第一个测试工序
测试工序是指在生产或制造过程中,对产品进行检查和验证的一系列步骤。它的目的是确保产品符合预定的质量标准和规格要求。简单来说,测试工序就像是在生产线上设置的“检查站”,用来确认每个产品是否合格。
举个例子,假设你在生产手机,测试工序可能包括以下几个步骤:
- 外观检查:检查手机外壳是否有划痕、裂纹或其他缺陷。
- 功能测试:测试手机的各项功能,比如屏幕显示、触摸反应、摄像头拍照、通话质量等。
- 性能测试:测试手机的运行速度、电池续航时间等性能指标。
- 安全性测试:检查手机是否存在安全隐患,比如电池是否会过热、充电是否安全等。
通过这些测试工序,可以及时发现并纠正生产中的问题,确保最终交付给客户的产品是高质量的。
从计算机的角度来看,测试工序就像是给电脑程序做体检,确保它健康无病,能够正常工作。具体来说,测试工序包括以下几个步骤:
- 单元测试:就像检查每个零件是否正常工作一样,单元测试是检查程序中的小部分代码(比如一个函数或一个模块)是否按预期工作。
- 集成测试:当各个零件都检查完毕后,需要把它们组装起来,看看它们在一起工作时是否协调。集成测试就是检查不同模块或组件之间的交互是否正常。
- 系统测试:整个程序组装完成后,需要进行全面的检查,确保它在各种情况下都能正常运行。系统测试就是检查整个系统是否符合设计要求。
- 验收测试:最后,需要让用户或客户来试用,看看他们是否满意。验收测试就是检查程序是否满足用户的需求和期望。
通过这些测试工序,可以发现并修复程序中的错误和问题,确保最终交付的软件是稳定可靠的。简单来说,测试工序就是给程序做全面体检,确保它能够健康运行。经过前几篇文章,我们其实可以固化出以下测试工序。
1 |
|
测试工序中的技术能力
- 描述功能需求的能力
- 拆解任务的能力
- 编写测试的能力
- 由可测试性引出的代码设计能力(设计模式)
埋点设计