力之源泉在于理解。
从与主管、客户、产品经理和项目经理沟通的角度来说,需要能够理解他们说话的语境和背景,从而推敲其真正的意图;需要理解他人的需要和意图;表达只有在理解的基础上进行才是有效和有份量的;这里的理解指“自然语言层面的”。
从熟悉业务和产品的角度来说,需要能够理解现实中的事物、事务以及相互的关联,并简明扼要地绘制出来;这里的理解指“分析语言层面的”。
从开发程序的角度而言,需要对所要处理的事物的性质和规则有深入的了解,能够理解抽象的概念、模型和设计思路。这里的理解是“计算语言层面的”。
在实际工作中,需要在有限的时间内处理潮涌而来的大量事务,理解不断涌现的各种新的思想和技术以及新的发现,在必要时作出恰当的反应和行动,包括优先处理重要紧要的事情、需求和项目,适当的忽略和放弃。这即对一个人的理解和表达能力提出了“速度”和“敏捷度”的高要求。
软件开发的核心基本能力是理解和表达事物的能力。 纵观软件开发活动,无非是在持续不断地理解话语、理解事物、理解事务、理解软件设计与实现、表达自己的观点、完成所学所能中完成的。
对于初级工程师来说,执行力和具体做事情会很重要;对于高级工程师,设计规划和把事情想清楚更为重要。
分而治之 - 系统思考 - 抽象模型 - 科学规律 , 是逐步往上,从部分看到全景,从具体深入抽象,从理论到实际的方法总论。
软件开发的首要任务是深入理解业务。从用户角度来看,是场景、需求、功能与体验;从系统设计角度来看,是模块、接口与交互; 从底层实现角度来看,是流程、规则、数据、影响范围。
软件开发讲究模块化、分而治之,很多开发者可能只管理一小部分,但用系统思考的视角看到各模块交互的全景图是非常重要的。
通常是指互联网企业中存在的多项目并行情况。比如一个项目在提测中,一个在预发中,两个在开发中,涉及的点也比较多,还有两个正在全力赶过来。如何提升多项目的掌控力呢?
从项目经理的角度来看,每个模块的职责在于: 1. 完成预先评估的任务和工作,为整体流程和功能质量提供保障; 2. 在适当可接受的时间范围内完成,保障项目进度,减少延期时间。
优先级与预先评估。仔细查看各项目的联调、提测、预发、上线时间,确定优先级,错开时间;留出缓冲余地。此时,并不涉及实际开发,而是涉及到评估。 评估意味着:1. 需求理解; 2. 现有实现; 3. 改动点评估; 4. 任务拆分与工作量评估; 5. 时间评估。 评估性的活动,与编程是同等有挑战的事情。
充分开发自测。 要提升联调效率,要充分评估到改动点和开发自测,否则联调和提测的问题找上门来,一样让人吃不消。比较理想的情况是,自己的改动点都在掌控之中,只要部署好了,关注项目进度即可。
时间管理。 为改动点比较大的项目安排整段的时间,专注地解决问题。减少不必要的任务间切换。
申请资源。 再能干的人,多个项目同时挤压过来,也是很可能扛不住的。要及时申请资源,并说明充足理由。 很多事情,需要在做之前就想好。
深入理解事理,下足功夫,准备充分,有说服力;
语气和方式委婉柔和。
换位思考。从对方的处境考虑问题,理解对方的立场和视角。
原文:https://www.cnblogs.com/lovesqcc/p/10474078.html