作为技术人员,经常遇到没有接触过的技术,有时是点滴的小技能,有时可能是大的一个研究课题。在《个人管理 - 从小工到专家》中有一个复用级别的图,其中每一级别都是需要研究的,复用粒度越大的需要投入研究的越多,那么我们如何进行技术研究呢?本篇我将分为两个小节来讲,第一节从一本书籍讲起,第二节从我做的报表引擎过程中的心得来总结,希望对正在或者即将要进行技术研究的读者有所帮助。

像外行一样思考,像专家一样实践

  日本的金出武雄先生在《像外行一样思考,像专家一样实践》一书中,用浅显易懂的语言传达了他在科研领域的一些经验,值得我们学习。像外行一样思考,像专家一样实践指 的是我们进行最初的设想时只要像普通人那样进行一般的思考就可以了,但是一旦确定了想法,真正要做的话,就要像专家一样缜密、彻底的进行调查和研究,将其 实现从现状出发,进行逻辑推理,最终去下结论和实现。最近有好几个人问我同一个问题,每次看别人的东西总是习惯于在还不知道如何使用时就会不自主的深入到 思考别人如何实现上,这种在考虑问题时总是从细节(也就是“专家“的角度)着手,这样会导致学习效果很差,所以我们需要学会抽象,不然就会困在细节之中。

  在我做OpenExpressApp时就借鉴了这个思路,先不以目前所拥有的技术为前提去看待问题,而是从希望最终能做成什么样子的终点作为我的开始,在学习的过程中,不去考虑具体实现,更多的从使用方式去看,当我对最终的结果有所了解后才开始像技术专家一样去考虑实现。这其实也就是以终为始,也是《高效能人士的七个习惯》中的一个要点。

  这本书是我几年前看的,具体的忘记了,下面只说一些还记得的相关内容,可能和书中不一样,对原著感兴趣的可以去看原书:

  1. 理论越是适用于简单、抽象的问题,越具有价值,KISS(KeppitSimple,Stupid)原则正是我们像外行一样思考的基本原则。
    当自己都觉得不简单时,就需要考虑加深自己的理解,并考虑如何更抽象简化一下
  2. 在解决问题时,能准确地限定问题的关键点,将会非常有效。
    这点很重要,在《架构 - 又一个类似与“平台”一样的词汇》中我说过架构要做到关注点分离,也就是需要把主要问题考虑出来并进行关注点分离。
  3. 锤炼构想的方法就是跟他人交流,在交流中进行验证。交流方式有很多种,直接和身边人沟通、上技术论坛交流、使用别人的软件看别人如何做的等
  4. 解决问题的两大必要条件:首先要有好的思路,如果方向不对,再怎么努力也无法到达目的地;同时,扎实的基础、毅力、效率也是非常重要的,否则就只能是空中楼阁、纸上谈兵。我在这里说的方向,不是说你的想法思路必须进行严格的验证,而是指研究人员在做研究之前至少需要明确目标,并对自己的研究结果有信心
  5. 解决问题的阶段:
    • 描绘问题:仔细、反复地思考问题是怎么产生的(多问几个why),从什么地方入手最容易得出答案(试用第三方成熟软件是一个我认为非常好的途径)。
    • 广泛收集材料,打好解决问题的基础。对问题进行归类,对于与问题本质无关的可以暂时不考虑。
    • 培养解决问题的基本能力:从简单入手,逐步提高自己解决问题的能力,由浅入深,长时期的关注会让问题越来越简单。
    • 增强解决问题的能力:多做尝试,多找些问题来试,慢慢深入问题,逐渐提高解决问题的能力,要像缠绕细铜丝一样,一圈一圈慢慢缠绕,才能形成铜线圈。提高能力的过程,是不能中断的,一旦停止,已经积累起来的能力就会土崩瓦解。
  6. 独创不是灵光闪现出来的,而应该是经过长时间的思考最终得出的结果。我们不能指望刚进行研究就出结果,而应该以持续的努力去做研究。
  7. 知觉、思考、行动都源于“经过理解的记忆”,如果我们把他人长时间研究得出的成果总结记忆下来,不仅高效便捷,也能为自身的思考打下坚实的基础。
  8. 培养思考能力是养成“像外行一样思考”的必经之路,记忆与反复学习是“像专家一样实践”的力量源泉。
  9. 思考的重点是创意而不是因循守旧,要敢于去构想,大胆假设,很多荒诞无稽的想法往往确实新的科学真理的起点。对于解决问题我们首先需要的是构想方案,然后才是去论证构想的正取性,这样才可能出现新思维和创新。就像OpenExpressApp一样,我的目标就是让业务人员可以做出基线产品来,通过业务工程来提高产品质量和开发速度,这些在有的人看来觉得比较难,但我觉得只是时间问题而已。在实践过程中,我也不是一次性的就开始进行OpenExpressApp的开发,而是利用机会逐步实践各个关注点,如报表和AutoUI等技术都是在不同项目组中进行验证的。
  10. 一切速成的方法都是外行的词语而不是专家的实践方法,实践需要的是日积月累,像专家一样实践不仅仅是为了解决你遇到的问题和构想,更多的是不断的去提高解决问题能力,提高我们的分析能力和思维能力。只有意识到实践应该像专家一样你才可能感受到自己知识和技能的微不足道,才能促使自己不断去完善自己的知识。思考需要的是像外行一样的广度,而实践需要的是像专家一样的深度。在《个人管理 - 从小工到专家》中我也说过,在很多情况下将自己定位在一个更高的层次上去看问题,要把自己的视野拓宽,做事时要回归应有的定位。
  11. 不能把研究工作当作一件很严肃的事情,应该把它当作一件有趣的事情去做。这里说的有趣,是指精神上的放松,但内心仍然要认真对待。这点其实很重要,我也深有体会,因为只有你觉得有趣,你才会容易坚持,否则苦的是你自己。
  12. 表达自己的想法、说服别人实践、国际化时代的讲演、会话、写作能力,这部分内容后面我会单独介绍。

  外行不关注实现的难度,关注的是目的和要求,像外行一样思考,不仅是创新的一种途径,也是保证现有工作更有价值的一个保障,所以当技术人员面对需求人员提出的很多问题时,不要立马去反对别人,而应该以赞赏的眼光去看别人。 而专家目标远大,做事严谨,技术人员都要力争专家,对具体实现严谨,最终能不能作是一回事,但是对待外行的意见应该是赞赏的,而不是对立的。

  像外行一样思考,像专家一样实践,这句话说起来很简单,但是做起来很难。我们的很多工作中可能是反着来的,是向专家一样思考、像外行一样实践,考虑问题时什么因素都考虑,最终可能实现的也不做了,真正决定要做的到执行时又没有做得卓越。如何将这句口号落实到现实,其实也是有一些方法论的,《六顶思考帽》等水平思考方式就不错。虽然对六顶思考帽接触和应用还很少,但后期我还是打算先提高介绍给大家一起学习。

从报表研究想到

  在很多情况下将自己定位在一个更高的层次上去看问题,要把自己的视野拓宽,做事时要回归应有的定位。  

  在2006年时研究过一阵子平台,第一期任务主要是做报表,自认为这个工作做得还是自己很满意的。在2007年时也给大家分享了一下我的研究方法,感觉这些方法正好和本篇blog主题吻合,所以在这里就把他粘出来和大家分享一下。如果上面小节像外行一样思考,像专家一样实践是理解作者的见解,那下面的就全是我个人的心得。

  学习

  • 为什么要学习(why):学历代表过去,经验代表现在,学习能力代表未来
  • 学什么(what):学以致用
  • 怎么学(How):高胖高(先深度再广度,再深度,依次螺旋)。只要认定what是好的,可以通过主动、被动、强迫三种方式去学习。

  方法

  1. 选择研究重点:先从架构角度  分离关注点,分人或者迭代进行研究重点
  2. 重点研究选择:对决定后的选择  进行重点研究,从案例、产品、模型、应用等多个角度去考虑这些重点
  3. 验证实践选择:考虑如实现和应用这些重点

  心得

  • 业务驱动技术、技术带动业务
  • 合理使用现有资源,不要重复发明轮子
  • 借鉴专业软件公司产品,开发适合公司的产品。
  • 在对新技术进行实践过程中,最好采用迭代的方法,快速看到能运行的程序可以更好的进行产品管理并增加自己的信心
  • 适当的文档工作能够帮助理清思路

  开发活动大纲

在《软件观点 - 软件工厂方法》和《软件工厂方法(二):软件工厂应用》中提到过领域工程开发的大体活动大纲,是借用《产生式编程》中方法,方法大致如下:

1. 领域分析

a)  领域定义

i. 目标和风险承担者分析。此活动的工作量依赖于项目的大小和上下文。

ii.领域范围界定和上下文分析

1.应用领域和现有系统的分析

2.领域特征的确定

3.与其他领域关系的确定

b) 领域建模

i. 关键概念的确定

ii. 关键概念的特征建模(共同点、可变性、特征依赖和特征交互)

2. 领域设计

a) 整个实现架构的确认和规范

b) 领域特定语言的确认和规范

c) 配置知识的规范

3.  领域实现(DSL、产生器和实现组件的实现)

4.  领域测试

推荐:你可能需要的在线电子书

我的微博:http://weibo.com/openexpressapp

敏捷个人sina围裙:http://q.t.sina.com.cn/135484  

欢迎转载,转载请注明:转载自敏捷个人网站

转载于:https://blog.51cto.com/zhoujg/940607

17.跟金根回顾敏捷个人:技术研究之道相关推荐

  1. 101与金根回顾敏捷个人:(13)敏捷个人和敏捷开发

    本文更新版本已挪至   http://www.zhoujingen.cn/blog/1726.html ------------------------- 敏捷个人源于工作 自2001初成立了敏捷联盟 ...

  2. [转载] 2011 ScrumGathering大会简要记录 - 周金根

    在ScrumGathering大会上遇见了周金根,我们都对人的方面非常感兴趣,自然很谈得来.周金根特别关注实践,推出的"敏捷个人"中有很多实践方式,相对来讲我就比较务虚一点.有兴趣 ...

  3. 十二载征程犹未止,看今朝星光尽闪耀丨万字长文回顾2023数据技术嘉年华

    4月8日下午,为期两天的第十二届数据技术嘉年华(DTC 2023)在北京新云南皇冠假日酒店圆满落下帷幕.大会得到了工业和信息化部电子五所的支持和指导,围绕"开源·融合·数字化--引领数据技术 ...

  4. 胡喜:蚂蚁金服十五年技术架构演进之路

    导读:5 月 6 日,蚂蚁金服副 CTO 胡喜在 2019 年 QCon 上做了<蚂蚁金服十五年技术架构演进之路>的演讲.借此机会,也和大家深入讨论了一下蚂蚁金服对金融科技未来的判断,并首 ...

  5. 金域医学:规模+技术,ICL领军者迈入新篇章

    作者:天风医药郑薇团队 1. 国内第三方医学实验室行业领军者 金域医学是一家专业从事第三方医学检验及病理诊断业务的独立医学实验室,主营业务为向各类医疗机构提供医学检验及病理诊断外包服务.目前公司可提供 ...

  6. 复星金服微服务_复星金服以区块链技术解决行业痛点 “中招公信链”项目正式启动...

    近日,中国招标投标公共服务平台在北京召开协同推进"互联网+"招标采购行动技术创新成果推广运用交流会,包括复星金融服务集团(以下简称"复星金服")在内的113家单 ...

  7. 敏捷开发大家谈(三)--敏捷开发技术在电子商务软件中的应用(2)

    第四章 敏捷开发技术在电子商务软件的推广 1. 电子商务软件实施的高风险性 软件开发行业目前同时存在两种情况,它既是一个非常成功的又是具有很多问题的行业. 2. 在跨平台系统的移植上的应用 电子商务系 ...

  8. Simio敏捷建模技术—Simio Templates

    SIMIO敏捷建模技术--使用Simio模板创建复杂系统的细节模型 仿真建模使用分析技术来解决复杂的运营问题,要获得所提供的仿真模型的洞察力,首先要开发待分析的系统仿真模型.更复杂的系统需要更为广泛的 ...

  9. 活动总结:CMDN#17 18期厦门、福州站技术沙龙

    一.活动整体概述: 主题:移动开发者俱乐部第17期:厦门.福州两地技术沙龙 会议时间:厦门:2012年4月7日下午14:00-17:30 福州:2012年4月8日下午14:00-17:30 会议规模: ...

最新文章

  1. 旷视5号员工陈可卿:1991生于绍兴、10岁买电脑改变命运,信息奥赛金牌保送清华...
  2. 七十九、TodoList示例 深入Redux的工作流
  3. niosii spi 外部_NIOS II SPI详解 如何使用SPI方式传输
  4. 教你6步定制你的Ubuntu桌面
  5. 使用Spyder控制台(console)执行带参数脚本和带参数的debug模式
  6. OpenCV---图像梯度
  7. 用C#代码实现求两条线段的交点并判断各种情况
  8. 高等数学学习笔记——第九讲——数列收敛的判定方法
  9. MySQL经典50道练习题及全网最详细解析
  10. android word编辑图片,Word转换成图片详细教程.doc
  11. wordpress使用又拍云存储实现CDN加速使用心得
  12. 生日快乐网站模板(HTML5+JS+CSS) 带音效
  13. js自下而上无缝滚动
  14. 【数据库】03——初级开发需要掌握哪些SQL语句
  15. error: dst ref refs/heads/master receives from more than one src
  16. 人身三流指什么_关于《三流人生》那些事儿
  17. protect 和 private 的区别
  18. 【毕业设计】基于单片机的火灾报警系统设计与实现 - 物联网 stm32
  19. 软件著作权提交源代bai码格式_软件著作权提交源代码格式要求
  20. vue地址栏隐藏id 隐藏参数

热门文章

  1. 【前端开发】HTML入门与实战
  2. python三大神器之装饰器
  3. 关于整合spring+mybatis 第三种方式-使用注解
  4. Laravel+Angularjs+D3打造可视化数据,RESTful+Ajax
  5. SWFUpload上传
  6. ISA2006标准版安装及无人值守安装
  7. Technet:服务器虚拟化备份和灾难恢复
  8. flash里alert
  9. 第8章 Iptables与Firewalld防火墙
  10. 深入了解volatile