软件开发的核心基本能力是理解和表达事物的能力

?

软件开发的核心基本能力是理解和表达事物的能力。 为什么这么说呢?

从与主管、客户、产品经理和项目经理沟通的角度来说,你需要能够理解他们说话的语境和背景,从而推敲其真正的意图;需要真正理解他人的需要和意图;表达只有在真正理解的基础上进行才是有效和有份量的;这里的理解指“自然语言层面的”。

从熟悉业务和产品的角度来说,你需要能够理解现实中的事物、事务以及相互的关联,并简明扼要地绘制出来;这里的理解指“分析语言层面的”。

从开发程序的角度而言,需要对所要处理的事物的性质和规则有深入的了解,能够理解抽象的概念、模型和设计思路。这里的理解是“计算语言层面的”。

在实际开发活动中,需要在有限的时间内处理潮涌而来的大量事务,理解不断涌现的各种新的思想和技术以及新的发现,在必要时作出恰当的反应和行动,包括优先处理重要紧要的事情、需求和项目,适当的忽略和放弃。这即对一个人的理解和表达能力提出了“速度”和“敏捷度”的高要求。

纵观我们的软件开发活动,无非是在持续不断地理解话语、理解事物、理解事务、理解软件设计以及表达自己的观点、完成所学所能中完成的。

而要增强理解和表达能力, 则需要适当地运动、休息和饮食, 保证健康的身体状况; 同时放开心灵, 观察和探索整个的世界,深入细致地去理解和分析事物。 

时间: 2024-08-06 12:22:30

软件开发的核心基本能力是理解和表达事物的能力的相关文章

软件开发的核心

「我们一直这样做开发,时间做久了,便忘了当初的本意.」 有关软件系统开发,我们谈些什么? 我们谈过程,编码规范.开发流程.同行评审.结对编程.持续集成,从瀑布到敏捷再到极限编程. 我们谈架构,企业级.J2EE.容器化.SOA(面向服务架构).Microservices(微服务化). 我们谈规模,大容量.高并发.大数据. 我们还谈可靠性.可用率.n个9.响应时间等等... 这一切的核心是什么? 先讲个电力行业的一个故事,电力的项目我没做过,对电厂的原理虽有所了解,但看见那些大规模的电站还是感觉挺复

软件工程过程 第2章 软件开发的主要活动

1.需求工程.P13 需求是任何软件开发项目的基础. 好的需求是项目成功开发的必要条件. 需求分析工作可划分为两个阶段:需求开发和需求管理.需求开发就是传统意义上的需求分析. 2.需求开发(需求分析)的目标.P13 与客户和其他涉众在系统的工作内容方面达成并保持一致. 使系统开发人员能够更清楚地了解系统需求,定义系统边界: 为软件实施计划提供基础: 为估算开发系统所需成本和时间提供基础: 定义系统用户的需求和目标. 3.需求开发阶段包括需求获取.需求分析.规格化说明和需求验证4个活动:需求管理包

浅谈敏捷软件开发与传统软件工程的对比与敏捷开发产生的原因

引言 在"计算机程序的蛮荒时代",人们对于程序的设计.编写是随想随写.灵活变化的.正如我们初学各种编程语言时那样,似乎把程序写对也不是什么很难的事情.然而,这种程序设计模式或许适用于几百行至几千行的小程序,而当我们面对更大的软件规模.更多的代码行数以及更复杂的人员架构时,这种随想随写的程序开发模式似乎不再适用,于是使人们遇到了「软件危机」,进而促使了软件工程这样一门学科的产生. 在我上一门程序设计的课程的时候,老师讲过,当我们学习各种语言.算法和数据结构时,我们学习的是怎样进行&quo

敏捷软件开发与传统软件开发的对比

敏捷软件开发与传统软件开发的对比 最早了解敏捷开发是通过大二的一次博雅课堂,一位在百度工作的北航学长跟我们分享了他近年来从事敏捷开发的经历.印象最深的一句话是一个延迟3个月交付100%功能的软件和一个按时交付75%核心功能的软件,敏捷软件开发者更愿意选择后者.本学期的软件工程基础课又向我们讲授了传统软件开发,经过课上和课后的学习,对于敏捷软件开发和传统软件开发有了浅显的认识和理解.由于课上学习的重点是传统软件开发,所以课下对敏捷软件开发进行了更多的涉猎,本文以敏捷软件开发为主体,来分析其与传统软

对软件开发中uml建模的理解和图形整理(一)

由于uml(统一建模语言)在开发中经常会用到,特别是在软件开发中的OOAD阶段,因此要理解和使用uml显得尤为重要.在uml开始之前,咱先回顾一个OOAD.OOP的主要特征. OOAD:根据面向对象的方法学来对软件系统进行分析和设计的过程.它包括OOA 分析阶段和OOD设计阶段.其中分析阶段主要解决"What to do?"的问题,而设计阶段主要解决"How to do?"的问题.具体来说就是:在OOA分析阶段咱要做的主要工作就是建立对业务问题域的视图(建立模型).

进行软件开发的能力与素养

软件从业者需要应对来自两方面的挑战: 1.  IT 行业的知识.技术更新很快, 如何去应对 ? 2.  软件开发主要包括什么样的工作和任务, 需要拥有怎样的专业技能和素养? 必须认真去思考这些问题,而不是一味埋头于学技术, 这样, 才能事半功倍. ------------------------------------------------------------------------------------------------------------------------------

我所理解的软件开发模式

在写这篇博客之前,提到软件开发我所能讲出来的只有个人开发团队开发之类的,于是我去百度,得知软件开发模式有:边做边改模型,瀑布模型,迭代模型,快速原型模型,增量模型,螺旋模型,敏捷软件开发,演化模型,喷泉模型,智能模型,混合模型等. 好吧,你赢了. 在读了邹欣老师在知乎发表的Build To Win的文章之后,我对软件开发的模式有了一定新的认知: 软件开发的目地决定了软件开发的模式. 每个人开发软件都是有目地的,我作为学生,写一些小的程序是为了练习,是一个学习的过程,就是邹欣老师在文章中提到的Bu

如何评估个人的软件开发能力

如何评估个人的软件开发能力 基础: 1.读程序的能力 很多的软件开发工作不一定会从头开始,这就需要开发人员有良好的阅读程序的能力,能在尽可能短的时间里了解软件整体的架构,理解该软件初始的开发思想,能迅速并有效地参与到项目开发中去. 2.编码能力 这点会涉及到开发人员对所用语言的熟练程度,和该开发人员的编程风格.是否拥有良好的编程习惯,能遵循通用的编程规范,并作好注释,对该开发人员所开发代码的易读性和易维护性有很大的影响. 3.调试和测试能力 现代的软件行业中,代码的调试和测试时间并不比编码时间短

对于软件开发中开发人员与测试人员关系的理解

在软件开发中都会有开发人员(以下简称开发)和测试人员(以下简称测试),在一些小型公司可能并没有测试,仅仅是开发兼任测试.在这里我仅针对于有专业的测试和专业的开发的项目. 每个公司应该都有考核机制,对于开发和测试的考核实际上很难量化,通常来讲大的方向就是开发所负责模块的bug数,对于测试来讲就是测出来的bug数,但这真的有效吗?这也许对开发有约束力,理论上开发是能够自己控制bug数的,如果从产生的bug数来评判开发的绩效还算有效,这样开发自然就会把代码写得更加认真.但如果根据测试测出来的bug数来