工程师的思维与软技能

工程师要掌握的思维:工程思维、技术思维、产品思维。

 

前期看到一篇阿里人写的一篇文章关于工程师的思维,然后自己做为工程师以及日常的工作很有感触。以下谈下自己的理解。

工程思维

软件工程解决的是面对尤其复杂软件时如何通过系统化的、规范的、可度量的方法控制软件过程,让整体可控,从而保障工程师对软件的全局认知以及解决问题的有效性。在应用比较小或初期时一般没区别,当应用及组织变大的时候,焦油坑、岗位墙等问题便凸显出来。工程便可让团队在运作形式上达成共识,在解决问题时选择有效工具。工程思维也是工程师区别于程序员最主要的方面。

参考:分析、设计、度量、测试、项目管理(进度、质量、风险、变更)等基础课题。

 

技术思维

如果工程思维是通过机制组合个体,那技术思维则是思考如何把个体提升到极致。技术对于IT来说是第一生产力,是工程师构建个体的起点,所以内心要认可并尊重技术。我觉得技术思维考虑两方面,一是对技术在实际中的合理运用,这也是工程的本质;二是持续学习保持技术的深度及先进性,每个岗位对深度的理解不同,但至少要清楚每个技术的原理及边界。

参考:技术原理、质量属性、需求沟通、个人产力评估、持续学习。

 

产品思维

是从长线及全局分析需求并评估技术投入的价值,也是个体及团队活动的指引。自从产品岗剥离出来后,岗位墙问题最突出的就变成了技术与产品的分歧。其实化解的方法就是产品岗要做好团队的产品赋能,技术岗做好团队的技术赋能。在思维上有一致的沟通基础后,再一起通过工程方法进行产品度量及有效配合完成一致目标。

参考:战略性、投产比、客户为中心、业务模式。

 

工程师要掌握的软技能:抽象能力、分级能力、分治能力、项目管理能力。

 

抽象能力

是针对事物本质实现现实与软件的映射。如果是从0开始构建系统,一定是从数据模型开始,从E-R图到应用API模型。对于目前核心系统是软件包的情况,开发时多数只需调用接口,这时也应从API层定义好各模型(颗粒度及依赖关系很关键),把基础服务层做扎实。软件包二次开发多是脚本式的开发,我个人不是很喜欢,长远看还是要抽取软件包最有价值的部分(成熟的业务流程及运营模式,技术一般封闭)转换为自己的。

 

分级能力

这里说分级是把抽象出来的模块和组件进行等级排序,包括其承载的功能的重要级排序、投入的成本排序及其本身能力的排序。这样在架构全局中组件及模块关系的建立时就有了约束。比如交易功能运行时依赖了运营活动功能,无论从功能重要级别还是运维能力级别上都是相反的。如果屈服于省时省力,那就把生产系统置于雷区,后果就很严重了。

 

分治能力

指分而治之能力,是从全局性的考虑,将大问题拆分为小问题解决、公共问题聚合为切面方案解决。也是上面提到的依赖问题的一种解决思路,从方案阶段就拆分清楚并排序,从关键路径角度一步步完成。切面方案引用了Spring的AOP的说法,把非核心的通用功能通过切面完成,减少系统的侵入性以及提升后续的扩展能力。

 

上面三种也是架构的主要能力。

 

最后一项,项目管理能力

只有理解了项目管理才能理解周报、月报及各种汇报,目的就是透明可量化,过程可控,最终目标可预期。项目管理一边是活有多少,另一边是能做多少,哪一边估算偏差大,都会导致目标的天平失衡。对于个人来说,一定要清楚任务的工作量和个人的输出量,做好大家的预期管理;工作过程中找到关键路径,并做好风险识别,保障自己的可持续输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ArchAliance

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值