转载: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 ...
随机推荐
- tomcat maxConnections和maxThreads区别
maxConnections:与tomcat建立的最大socket连接数,默认10000(很多网上说200,实际上通过tomcat7.0.55源码查看可以知道是10000),AbstractEndpo ...
- Oracle PL/SQL 找出100以内是3和5的倍数的数 循环语句
循环: loop --执行代码 exit when 表达式;--当表达式为真退出循环.(注意,其编写位置决定循环为先判断还是先执行,相当于java的while或do-while) end loop; ...
- 九度OJ 1499 项目安排 -- 动态规划
题目地址:http://ac.jobdu.com/problem.php?pid=1499 题目描述: 小明每天都在开源社区上做项目,假设每天他都有很多项目可以选,其中每个项目都有一个开始时间和截止时 ...
- 【HeadFirst设计模式】12.复合模式
定义: 复合模式结合两个或以上的模式,组成一个解决方案,解决一再发生的一般性问题. 要点: MVC模式是复合模式,结合了观察者模式.策略模式和组合模式. 模型使用了观察者模式,以便观察者更新,同时保存 ...
- 在Mac OS X中使用VIM开发STM32(1)
本文原创于http://www.cnblogs.com/humaoxiao,非法转载者请自重! 在我先前的博文⎣在Mac OS X中搭建STM32开发环境⎤中,我们在Mac中DIY出了最 ...
- setInterval()与setTimeout()计时器
JavaScript是单线程语言,但是它可以通过设置超时值和间歇时间值来指定代码在特定的时刻执行.超时值是指在指定时间之后执行代码,间歇时间值是指每隔指定的时间就执行一次代码. 超时调用 超时调用使用 ...
- [C#]Array 添加扩展
众所周知,Array 一旦定义好,譬如四个长度,当需要再往里面添加元素的时候,需要Array.Resize一下才可以,为了提高代码复用,所以索性封装下,方便使用,代码如下: /// <summa ...
- php四种基础排序算法的运行时间比较
/** * php四种基础排序算法的运行时间比较 * @authors Jesse (jesse152@163.com) * @date 2016-08-11 07:12:14 */ //冒泡排序法 ...
- oracle服务介绍
按照windows 7 64位 安装oracle 11g R2中的方法成功安装Oracle 11g后,共有7个服务,这七个服务的含义分别为: 1. Oracle ORCL VSS Writer Ser ...
- JS的this本质
1.this究竟为何物? 1.1 全局上下文(Global context ) 在全局运行上下文中(在任何函数体外部),this 指代全局对象window,无论是否在严格模式下. alert(this ...