在软件开发行业中,工作人员应该具备哪些技能才可以立于行业不败之地并可以持久常青的在工作中不断进步呢?今天我们就来说说在软件开发行业中最重要的生存技能,我们都知道软件研发少不了经验、技术以及业务这三方面的技能。在软件研发过程中,无论是普通的测试人员还是产品经理都可能会面临这样的问,那么技术,经验,业务哪个才能占据C位呢?事实上这三方面对大家来说都是不可或缺的,只是在不同的岗位上,大家的侧重点会有所不同而已。
技术、经验、业务的范畴
1、技术
一说到技术,有的人会说了:C++、Java、python这些就是技术。
但是不完全对,实际上这些编程语言是实现技术方案的工具。我个人认为,编程语言语法、数据结构是属于技术的,但是编写的代码是否为更优,这就是属于经验的范畴了。
如下图中列举的几种类型的技术。比如网络通讯技术、云计算技术、AI技术、数据存储技术、无线通信技术等等。
另外,测试设计的理论方法,比如等价类划分法、因果图法、边界值法等,都是属于技术范畴的。
2、经验
如果说技术一般是一些理论知识,那经验就是对技术理论的实实在在的实践。经验是通过日积月累,千锤百炼积累出来的“技巧”或者“捷径”。
经验丰富的人和经验不足的人,做同一件事情,前者可能很短时间就很好地完成了,后者可能花很多时间走了很多弯路,最后还是没有完成得很好甚至事情搞不定。
我这里列举了一些经验,比如测试开发经验、项目管理经验、测试执行经验等等。
不过,我们经常有个误区,就是经常把一个人的工作年限称为工作经验,但实际上这只能称为工作经历。
只有当一个人在工作当中善于思考、善于总结、善于创新,积累了一些宝贵的方法和技巧,这才能叫做经验。所以,在招聘人才的时候,不能过多的关注他们的工作年限,而是重点关注他们的工作经验,只有经验才能转化为对团队的贡献,才是有价值的。
有经验的人,并不一定是技术上有多牛,而是很多情况下,处理项目中的事务,在他们擅长的领域,已经形成了“肌肉记忆”,几乎近似于本能,本能的东西是最可怕的。
3、业务
业务是更加上层一点的概念。
总的来说,就是一款产品做出来之后,能给客户或者用户提供哪些便利、实现哪些价值。
比如,一个5G通信系统,可以给使用者带来高速率、低延时的无线网络体验,可以应用它来实现自动驾驶、智能物联等。
这些就是业务,可以大概划分为功能和应用场景两个方面。所以,业务就是通过产品功能实现用户的应用场景的过程。
技术、经验、业务之间的关系
技术、经验、业务之间是什么关系,亲戚还是朋友?哈哈,开个玩笑。
1、相辅相成
这三方面的能力,首先是相辅相成的关系。就像一个桌子的三条腿,少了哪条腿桌子都不行,哪方面的能力有短板都会影响整体能力的发挥。
比如,作为测试工程师,如果技术知识和业务知识都ok,但是没有测试经验,那必然要经过较长时间的经验积累和项目磨练才能成长起来。
如果测试经验丰富,也比较懂业务,但是对于行业和产品技术点的了解非常欠缺,那么几乎无法进行较深入和较细致的测试,因为对技术不了解的情况下,是很难进行高质量的测试分析的,自然测试设计和测试执行都会受到很大的影响。
2、根据角色而定
当然,技术、经验、业务三者之间通常不需要在一个项目上做到均衡。
经验方面,通常都是越丰富越好。但是技术和业务,对于不同的岗位,不同的角色,偏重的能力是不同的。
例如,开发人员或者系统架构师偏重技术方面的能力,如果在业务方面有更多的了解,将会是如虎添翼。
测试人员更需要站在客户角度考虑问题,所以更加偏重业务方面的能力,如果在有一定技术基础的情况下,有更深入的理解,有更广的技术面,也将是锦上添花。
3、根据项目情况而定
另外,针对不同类型的项目,以及项目的成熟度,这三方面的要求也会不同。
比如,一个纯粹自主研发的产品,那么对技术要求就会高一些;而一个ODM项目,对技术细节要求就没有那么高。
再比如,如果是一个经营了很多年的项目,项目流程很成熟,项目资产很丰富,那么对于经验上的要求就没有那么高,项目成员只要按照固有的流程开展项目,在固有的资产的基础上进行增量更新即可。还有一些项目,比如标准化认证项目,测试用例基本固定并且用例步骤非常详尽,测试人员只要按照测试用例一个一个的执行就可以了,这种情况下,测试人员或许不需要太多的业务方面的知识,只要具备业务常识就可以了。
以上我们分享了在软件开发行业中最重要的生存技能,如果您想了解更多相关信息,请您继续关注中培伟业。