个人管理 - 我是这样偷着做架构的

本文更新版本已挪至  http://www.zhoujingen.cn/blog/1717.html

 ------------------------

 

  毕加索一生是个不断变化艺术手法的探求者,印象派、后期印象派、野兽的艺术手法都被他汲取改造为自己的风格.他的才能在于,他的各种变异风格中,都保持自己粗犷刚劲的个性,而且在各种手法的使用中,都能达到内部的统一与和谐.他有过登峰造极的境界,他的作品不论是陶瓷、版画、绘画、雕刻都如童稚般的游戏.艺术的道路上毕加索总是不断扬弃陈规,体现出惊人的创新才能。他有一句话“Bad artists copy;Good artist steal”,现在搞艺术的都传为“Good artists copy, great artists steal”。就像我在《个人管理 - 从小工到专家》中说的"守-破-离",这句话的意思也是体现了“抄”和“偷”是创新的来源,如果把Artists换成developer,那就是 Good Developer Copy, Great Developer Steal

好的技术人员会偷

  任何一个人对一件事情都是从一个不知道到模糊再到了解和精通的过程,如果让你去着手做一件大家都不知道的事情,你会怎么做?当我对某个产品模块不会设计时,我会毫不犹豫的去抄袭类似的产品。说到”不重新发明轮子“,很多人就会想到代码和框架,而对于架构师来说,思想是更为重要的一个轮子

  我就是一个经常偷着做产品的人,如果你看过《报表引擎 - 报表应用思路》,那就会知道我之前做的报表引擎是润乾的,如果你看过《信息系统开发平台偷OpenExpressApp - 总体架构的由来》,那就知道OpenExpressApp的框架思想是从DevExpress eXpressApp Framwwork (XAF)偷来的。今年我将继续我的偷之旅,下一个目标就是全球DSM领域内著名的产品MetaEdit+,我将开发一个元模型引擎,到时基于之上可以给OpenExpressApp增加建模支持,这是“让业务人员做开发”的重要一步。

  SNS社区”占车位“、”奴隶“、”偷菜“等游戏部分好像隔夜之间就全部出来了,所以可以看得出来,大家其实都在”抄“,要是在”抄“的基础上都有自己的创新,每个游戏都能”偷“就更好了。如今”偷“已经不是遮遮掩掩的了,我觉得”偷“对我来说反而是一种态度,一种方法,就像“Good artists copy, great artists steal”说的一样。以下我将讲一下我是如何偷的,也欢迎大家也养成偷的习惯:)

读书时抄作业

  再将偷产品之前,我想起小时候的一些故事,有时候我来不及写作业,早上就会早早来到学习。来早的目的就一个,抄作业。

  1. 找到可以抄袭的作业
    • 找对人:我不会随便找一个人的来抄袭,因为我怕抄错了被发现了,所以我找的人不是班长也是课代表,或者排名前十名的。其次是这个人是否开放(Open),有些人不够哥们,把作业本子藏的好好的,你问他他当没听见,或者直接说不给。
    • 找对作业:有的人字迹写的差,你有时不小心就会抄错
  2. 求同存异
    • 我也不是一个差学生,也算有思想的,所以当然不会只是像罚抄作业一样。抄的过程中,我也会看看他做的思路是不是对,如果对我就会全部抄下来
    • 有时后为了不让老师发现,我也会特意修改一些内容,不让把顺序颠倒一下,文字修改一下
  3. 修正
    • 在抄的过程中,如果发现有明显错误的地方,我会自己修改一下,毕竟,我要偷也要做得职业点:)

工作后偷架构

  1. 找到抄袭源
      ”偷“对我来说反而是一种态度,就像”不重复发明轮子“一样。很多人都知道这句话,但真正做起来又会另一回事,缺少的不是轮子,而是看你想不想去找轮子。
    1. 找对厂商:竞争对手、开源产品或者类似产品厂商,我研究的报表是就会找业界著名的报表厂商
    2. 找对架构:有些厂商会有多种产品,每种产品包含功能不一样,由于我们是抄袭,那就专挑完全功能的来试用。有些产品会有比较详细的介绍和说明,这类产品对我来说我会优先考虑。
  2. 主题抄袭,求同存异
    在《个人管理 - 如何读好书:读书的四个层次》中介绍的第四个层次:主题阅读就是一种针对一个主题进行多本书籍的一种对比思考和总结的一种阅读方式,在抄袭产品过程中,我们也需要进行主题抄袭,研究多个产品后决定如何做这个关注点。
    组合抄袭
    1. 有时候做研究工作,自己需求是不太清楚的,这时候就可以多参考几个产品,拿着别人的功能列表进行对比,把共同的部分记录下来,看看是否自己需要的
    2. 不同产品肯定存在一些各自的亮点,这也是我们需要特别关注的,很有可能这是你产品增值的部分。对不同产品的不同功能,我们也需要分别看看,然后自己判断一下是否需要

  3. 一个架构由多部分组成,如在《软件观点 - 平台分类:系统平台、开发平台和开放平台》介绍的开发平台。开发平台是在系统平台之上,提供在开发方法指导下,通过 开发工具辅助工具,基于框架引擎以及内置的模块等一套支持软件开发生命周期的完整开发环境来构造软件,以期在统一平台下能够快速高质量的提供产品。以下是OpenExpressApp的Roadmap,它包含多个部分,所以我们要做的不仅是主题抄袭,还要做组合抄袭,OpenExpressApp不会带给大家创新性的技术,而是将现有技术和产品中有价值的部分引入到一起,它要做的是整合别人已经实践的方法,提高我们自身的开发能力,以求快速、高质量的开发产品。
  4. 由抄到偷
    如果我们仅仅停留在抄的基础上,那也只是到了守-破-离的守阶段。毕加索的原话是”Bad artists copy;Good artist steal“,他的创新更多来源于偷,就是在抄的基础上有所创新。在进行了主题抄袭后,我们会进行组合抄袭,其实在抄袭过程中我们的思考和决策过程就是在做”偷“这一重要步骤。在参考别人的基础上,加入自己的见解,解决自己的问题才是关键。比如在做报表时,就针对公司的打印加强了页面模型,针对树形要求增加树形显示和汇总等。
  5. 不断修改
    《架构 - 又一个类似与“平台”一样的词汇》中说过架构是需要持续完善的。我们经过前面几步,基本架构基线就成型了,这时候你的产品更像一个山寨的,只不过是不同部分分别山寨不同厂商的而已。产品框架成型后就可以开始迭代实现了,在上线后需要注重反馈,不断修改完善产品。

  以上是我目前想到的偷架构5步骤,这主要是基于本人不是一个天才设计师而言,如果你是一个天才设计师,前无古人,那么就没有参考价值了:)

 借鉴

  “偷”不仅仅局限于做架构,我们工作生活的很多方面所要解决的问题和方案,其实很多人已经思考过并且分享过。其中有些还是经历过长时间、大量实践总结而来的,所以借鉴这些东西可以让我们受益颇多。时间节省了,效率提高了,心情也舒畅了:)

  但在借鉴过程中,我们不要忘记思考借鉴内容与你的问题之间的联系,需要记住,借鉴只是一种方法,我们最终目标还是形成自己的东西!

 

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

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

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

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

posted on 2010-01-03 11:20 周 金根 阅读(...) 评论(...) 编辑 收藏

导航

公告