绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
程序员探险记7-工程篇-同舟共济
2019-08-26 18:18:28

提到工程,我们容易想到一些耗时耗力的大型项目,而项目的成功都是一个团队齐心协力,同舟共济取得的成果。

工程是什么。结合近年流行的STEM教育,我们来看看科学(Science),技术(Technology),工程(Engineering)和数学(Mathematics)的关系结构。数学作为基础,推动着科学的进步(有句话叫科学的尽头是数学,数学的尽头是哲学,哲学的尽头是"神学")。科学的发现让我们认识了世界,从而产生技术发明来改造世界。工程则是运用科学知识和技术工具,有组织、系统化的去改造客观世界,目的是为人类服务的具体实践活动。具体到IT行业,软件工程是应用数学、计算机科学及管理科学等,以系统性的、规范化的、可定量的过程化方法去开发和维护软件的工程。简单说就是关于如何低成本、高效率、按时按质量完成既定的软件研发工作。

大型软件系统开发中,工程化的团队协作过程成为软件系统成功的保证,一个编程高手不一定是的工程师。对于一个成功的工程项目,

首先要求的是成本可控的前提下效益大化。由于在工程活动中存在许多不确定因素和相互矛盾的要求,只有进行系统的综合平衡,才能大限度地提升效益。这对程序员提出了更高的要求,需要具备风险意识,成本意识,质量意识,团队意识。那些拥有大局观的工程师,其目光是放在整个项目的成功上来看待的,而不只是把眼光局限于编码上。如果带领一个项目,软件工程师可能有更多的思路及办法,而程序员可能就会陷入茫然。

工程师除了具备基本技术素质外,还需要工程素质,包括沟通能力,思考能力,解决问题能力,团队协作能力,创新能力。

沟通能力。如果你在工作中碰到过与人讨论事情总不在一个频道,相信会有深刻感悟。如何提高团队沟通带宽也是每个管理者需要重点思考的问题。前面【面试篇】和【架构篇】已经提到过沟通的重要性。

思考能力。思考能帮助你更好发现问题和理解问题。比如工作中只有找到了重要的事情,才能更高效;只有理解了需求问题的本质,接下来的设计和开发才有意义。

解决问题能力。它可以帮助你及时消除工作流程中的阻碍,对于推动工作及时往前进行具有重要作用。

团队协作能力。每个研发团队都有自己的一套流程,不管是瀑布还是敏捷模式,你都需要遵守规范。不要小瞧了规范,一个简单的命名就可能评判出一个工程师的能力(命名之所以这么难是由于你得清楚这个名字代表什么业务含义,还要让别人见名知义)。好的命名等规范能极大的提升团队的沟通效率。关于团队精神,“400米个人世界纪录43秒03,4*100接力世界纪录36秒84”足以说明问题。这里再分享一下我们团队的scrum实践过程,见下方的图片。

创新能力。创新的解决方案和思路往往能带来事半功倍的效果。不管是创新型人才还是创新型公司,往往都是行业中的佼佼者。

通过技术架构和工程能力的配合,我们才能快速去响应业务的需求,提供更优质的工程师服务。后面的三篇【业务篇】【产品篇】【数据篇】中我们再重点围绕服务展开讨论。

分享好友

分享这个小栈给你的朋友们,一起进步吧。

程序员探险
创建时间:2019-08-26 17:52:54
信息大爆炸时代,技术本身并不是重要的,持续学习才是重要的。如何学习决定了你的人生宽度,如何思考垫定了你的人生高度。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • anfield8
    栈主

小栈成员

查看更多
  • 栈栈
  • jerrysun
  • local0
  • neuyu
戳我,来吐槽~