转载:CEO应向软件工程师学习的7个技能
软件工程师的哪些技能是值得CEO学习的?显然,软件工程师是逻辑的,高效的,注重细节的,有计划的,并且大多数CEO也是如此。但是,软件工程师还有一些更微妙,甚至是令人懊恼的品质,那么CEO是否可以从中学习呢?
懒惰
优秀的工程师(不只是软件工程师)是懒惰的:他们喜欢自动化重复性的工作,不愿意做任何不必要的工作。会议和文书工作通常都属于这一类。通过避免不必要的工作,软件工程师可以更高效,并且有更多的时间去做更多有用的工作。
CEO也应该力求高效率的偷懒。删除不必要的活动,把精力和时间放到提升价值的任务中。在大多数情况下,重复做同样的事情是毫无意义的。如果一定要反复做的话,那么用自动化的方法。如果你做不到自动执行的话,那就委托出去!
经常失败
软件工程师有着与发明家和科学家部分相同的特质——都饱受失败的风吹雨打。通常情况下,这是有意的,但有时是实验性的。这不是鲁莽,而是一种无畏。未知是一种需要探索的风险,你无法拒之于门外。专注实验和原型能让人快速学习。
CEO让自己适应这种做法将会产生巨大的影响:开拓新市场,尝试不同的方法,甚至研究趋势和预想。关键是要失败得既快又不浪费成本,并且牢记目的。(如果你觉得这听起来有点像精益生产,那么就对了。)
如果你不是时常失败,那么说明你没有尝试任何新的东西。
制造问题
软件工程师会积极寻找问题,有时甚至会故意制造问题。问题是变相的机会,但是找不到问题并不意味着没有问题。软件工程师宁愿毁去成果也要看看会发生什么。他们编写测试只是为了确保所有的边缘情况都有效。他们实施监控系统,这样出了问题就会被警告。总而言之,他们会聆听人们的抱怨——因为这可能会有惊喜,这和自己找问题是一样的。
初创企业的CEO应该学会如何系统地做到这一点,探索机会空间,直到找到需要解决的正确问题,用正确的解决方案,针对正确的市场,在正确的时间。有助于企业站稳脚跟。而知名企业的CEO在这方面做得很好,他们将制造问题作为持续改进的一种形式。
亲自动手
软件工程师往往不喜欢纸上谈兵。他们不仅战斗在编码前线,而且还与用户和客户合作来了解各种要求和投诉。答案不是你坐在办公室就会出来的:它们在工厂车间,在客户的办公室里。学习软件世界关于用户体验的概念,研究它应该如何适用于你的供应链,以及你的员工。一个新的角度可能意味着意味着一个巨大的惊喜。
忽略人的因素
当软件工程师工作的时候,往往会忽略人的因素,尤其是当他们正在努力实施改进的时候。他们认为,大多数问题起源于系统某处的约束——可以是时间,金钱,动机,激励,标准,也可以是过程——个人往往无力解决系统。文化,同伴的压力,以及对现状的偏见是需要克服的强大障碍。尚未解决的事情,改变系统是紧悬软件工程师头顶的宝剑,这些都与人的因素无关。
CEO通常惯于应付政治系统和与人打交道,所以他们可能会倾向于将风险和指责归派给某些个人。有时候可能这也不失为一个不错的方法,但如果你回顾过去的人所运行的系统,那么你或许会发现系统才是问题的根源。
请记住,没有系统是完美的,没有系统是神圣不可侵犯的。
杀死你的宠儿
工程师不怕测试自己的想法,并且如果证明是不切实际的,也会毫不犹豫地丢弃它们。他们经常会通过摒弃宝贵的想法和业余项目来“杀死他们自己的宠儿”,无论这个宠儿有多么地令人着迷,如果它们不能工作的话。CEO可以通过面向现实审核他们的想法,也可以通过客观地评价他人的表现来“杀死自己的宠儿”。 (显然杀人是犯法的,此处并非真正的人。)
发呆
软件工程师常常发呆,但他们称之为系统思考:一种让人将一系列复杂的相互关联的系统视为一个整体的能力。系统思考可以说是从复杂性中生出连贯性和简单性最重要的(有时也是最恼人的)催化剂。软件工程师擅长系统思考,解决问题通常要求他们平衡包括时间、资金和质量以外的多重约束。虽然这种习性在决定去哪里吃午饭时让人非常懊恼,但在处理意义重大的问题和寻找机遇的时候,非常有价值。
CEO必须时刻处理多个相互关联的系统和冲突约束。孤立地检查每个部分是不够的——你还必须考虑所有潜在的相关关系和力量。系统思维同时包括从多个角度出发的,高层次的和细微的思考。由此看来,一个完整的模型可作为一个识别、组织和解决子问题的框架来提供服务。通常,若干个简单的理念和规则就足以让一个乱七八糟的败笔蜕变成一个整体化的结晶。
软件工程师不是因写代码而获取报酬:而是因思考。系统思考在你写代码的时候是不会发生的(不过有时候,两者可能会同时进行)。所以,如果你看到一个软件工程师在发呆,经常发呆,那才是真正干活应有的样子。简单又优雅的解决方案不是从天上掉下来的,而是通过不懈地思考和追求得来的。
创造力
给自己一点安静的时间,发挥你所有的想象力和创造力,来承担你作为一个CEO需要解决的问题。分析问题的错综复杂和约束条件。猜想它们之间的相互作用力。从多个角度加以思考。寻找有助于解释或简化发生了什么或者你想要发生什么的模式和类比。并且当你发现一个可能的回答时,运行一个快速又廉价的实验来测试。然后重复。循环往复。你的工作,就如同软件工程师的工作一样,是永远做不完的。
转载:CEO应向软件工程师学习的7个技能的更多相关文章
- CEO应向软件工程师学习的7个技能
软件工程师的哪些技能是值得CEO学习的?显然,软件工程师是逻辑的,高效的,注重细节的,有计划的,并且大多数CEO也是如此.但是,软件工程师还有一些更微妙,甚至是令人懊恼的品质,那么CEO是否可以从中学 ...
- C++软件工程师,你该会什么?
请尊重原创: 转载注明来源 原创在这里哦 C语言广泛用于基础软件.桌面系统.网络通信.音频视频.游戏娱乐等诸多领域.是世界上使用最广泛的编程语言之一.随着物联网技术的发展,C/C++技术在3G网络 ...
- 1、软件工程师要阅读的书籍 - IT软件人员书籍系列文章
软件工程师要阅读的书籍估计是项目组内最多的.软件工程师处于项目组中最基础的人员储备阶层,与项目的关系最密切.当然,现在是大数据时代,我们无法全部看完所有相关的书籍,只能够先学习工作需要的知识,然后在项 ...
- [No00004D]深度思考好文:软件工程师的困境
昨天是我一同学结婚的好日子,同学们大家聊各自的工作,有个同学突然问了我一句:我们同学中好像做软件的不多?如果再细分,好像做网络相关的更少? 回想起当时为何读计算机信息管理的专业,是因为那时听说读电脑未 ...
- 一个IC软件工程师的2017年终工作总结
相比2016年的波澜起伏,2017多了一份平静和清淡.不过,平静的生活下,总有一颗飞向远方的心. 在这一年将近结束的时候,总结一下自己的工作,生活和学习.也顺便展望一下未来的2018,看看有哪些 美好 ...
- JAVA软件工程师应该具备的技能有哪些?
前言:有朋友问我:学历和能力哪个重要?我个人觉得能力大于学历,没有能力哪来的学历,学历只是证明能力的一方面.为此在能力方面畅谈java软件工程师必备的能力.作为一名合格的java工程师,不仅需要学历, ...
- JAVA软件工程师应该具备哪些基本素质?
必知:软件企业要求基础软件工程师具备六大基本素质,即良好的编码能力.自觉的规范意识和团队精神.认识和运用数据库的能力.较强的英语阅读和写作能力.具有软件工程的概念和求知欲和进取心. 1.良好的编码能力 ...
- 后记:IT软件人员学习的书籍 - IT软件人员书籍系列文章
1年了,软件人员学习书籍系列总算是写完了.虽然文字篇幅不多,主要对各个角色的一些基本内容做了介绍,但是更重要的是能够提供相关的人员学习书籍进行下载,让更多的人能够从中学习到更多的知识. 这个系列,从项 ...
- 开篇:软件项目的整个流程 - IT软件人员学习系列文章
这段时间闲来无事,就在总结以前的项目经验,然后写成博客的形式以进行记录.本文就对<IT软件人员学习系列文章>做个开篇吧. 对于IT软件的开发来说,无外乎B/S.C/S和Android.iO ...
随机推荐
- 选择结构if语句和switch语句的区别
------- android培训.java培训.期待与您交流! ---------- 1.选择结构if语句格式及其使用 A:if语句的格式: if(比较表达式1) { 语句体1; }else if( ...
- ZOJ 1202 Divide and Count(排列组合)
Divide and Count 题目大意:给定箱子的数量和每个箱子的容量,在每个箱子里都装满对应容量的宝石,每颗宝石都是独一无二的,求一共有多少种放置方式.但是如果两个箱子的容量相同,则认为是 同一 ...
- lambda表达式————一看就会
这里没有过多讲解,只有几个连接,进入看,看完后你就会觉得什么博客对lambda的介绍都是浮云,不是片面就是不准确. 链接地址: 1: https://msdn.microsoft.com/en-us/ ...
- 【转】如何编译安装PHP扩展
本文参考 一开始安装PHP的时候,我们并不知道需要哪些扩展,所以只有等到我们真正用到的时候才想办法去安装. 安装PHP扩展最简单的办法就是 sudo apt-get install php5-xxx ...
- Nginx 域名转发
例如访问www.b.cn直接跳到www.a.cn上去,又不想多域名捆绑一个目录. server { listen 80; server_name www.b.cn; rewrite ^/(.*)$ h ...
- javascript控制子页面对父页面控件操作
//赋值 window.parent.document.getElementById("partyid_trade_edit").value = data.data.partyid ...
- AngularJS(3)-过滤器
过滤器可以通过一个管道字符(|)和一个过滤器添加到表达式中.. 1.uppercase/lowercase 大小写过滤器 2.currency过滤器 3.向指令添加过滤器 过滤器可以通过一个管道字符( ...
- springdata整合mongodb一些方法包括or,and,regex等等《有待更新》
这几天接触mongodb以及springdata,自己英语比较戳,所以整理这些方法花的时间多了点,不过也是我第一次在外国网站整理技术 不多说,直接上代码,这里只是给出一些操作方法而已,如果有需要源码的 ...
- Class.forName、Class.class(属性)、getClass()的区别
1.出现的时期不同:Class.forName()在运行时加载:Class.class和getClass()是在编译器加载2.Class.class只是在编译时用来存放类的相关信息,并没有实例化对象: ...
- 解决IE6下Position:fixed问题(只用css)
在IE6.0及以下版本的浏览器里是不支持position:fixed.而在IE7,IE8,firefox,opera,chrome都可以完美的支持此特性的.解决此问题的要点主要有: 1).容器要有一个 ...