Reuse Is About People and Education, Not Just Architecture

Reuse Is About People and Education, Not Just Architecture
Jeremy Meyer
you MigHT AdopT THE AppRoACH that a framework that is well designed, or an architecture that is carefully considered and cleverly implemented, will lend itself to reuse within your organization. The truth is that even the most beautiful, elegant, and reusable architecture, framework, or system will only be reused by people who:
Know it’s There
Within your organization, developers or designers need to know that a design, framework, library, or fragment of code exists, and where they can find all the critical information about these elements (e.g., documentation, versions, and compatibility) in order to reuse them. It is a simple, logical truth that people won’t look for things that they don’t believe exist. You are more likely to suc- ceed with reusable elements if the information about them is “pushed.”
There are any number of methods for pushing information about reusable elements in an organization. These range from wiki pages with an RSS feed providing update information, useful in very large teams, to email announcing version updates in the source repository. In a tiny team, the designer or lead developer can inform his colleagues in personal conversations or by shouting it across the office. Ultimately, whatever your process for communicating about reusable elements, make sure you have one—don’t leave it up to chance.
Know How to use it
Understanding how to reuse an element depends on skills and training. Of course there are those people who (to use Donald Knuth’s terminology) “reso- nate” with coding and design. We have all worked with them, the gifted devel- opers and architects whose speed and depth of understanding is impressive,
52 97 Things Every Software Architect Should Know

even scary. But these people are rare. The rest of your team might be made up of good, solid, intelligent developers and designers. They need to be taught.
Developers and designers might not know of the particular design pattern used in a design, or fully understand the inheritance model that the frame- work designer intended them to use. They need to be given easy access to that information in the form of up-to-date documentation, or even better, training. A little training goes a long way toward ensuring that everyone is on the same page when it comes to reuse.
Are Convinced That it’s Better Than doing it Themselves
People, and particularly developers, tend to prefer to solve problems themselves rather than ask for help. Asking how something works is a sign of weakness, or even an indication of ignorance. This has a lot to do with the maturity and personality type of your individual team members; “better than doing it them- selves” means different things to different people. The “young guns” on your team will always want to write things themselves because it appeases their egos, whereas your more experienced people are more likely to accept that someone else has given thought to the problem domain and has something to offer in terms of a solution.
If your team doesn’t know where to find reusable artifacts or how to reuse them, they will default to the natural, human position: they will build it them- selves. And you will pay for it.
Jeremy Meyer has been designing and developing software for nearly 20 years, as well as teaching its mastery. He is currently a principal consultant for Borland Software in its modeling and design space.
Reuse Is About People and Education, Not Just Architecture的更多相关文章
- [Model] GoogLeNet
主要就是对Inception Module的理解 网络结构分析 没有densy layer竟然,这是给手机上运行做铺垫么. 一个新型的模块设计: [不同类型的layer并行放在了一起] 最初的设计: ...
- IOS Table中Cell的重用reuse机制分析
IOS Table中Cell的重用reuse机制分析 技术交流新QQ群:414971585 创建UITableViewController子类的实例后,IDE生成的代码中有如下段落: - (UITab ...
- truncate表hang住(等待时间较长),出现enq:RO fast object reuse等待事件
有一个应用truncate表等待了一晚上,一个定时任务,跑了几年了,今天早上来发现昨晚没有执行完成,hang住了,查询发现等待事件 fast object reuse. 10.2.0.4的库 Bug ...
- LTE Module User Documentation(翻译13)——频率复用算法(Frequency Reuse Algorithms)
LTE用户文档 (如有不当的地方,欢迎指正!) 19 Frequency Reuse Algorithms(频率复用算法) 本节我们将描述如何在 LTE 仿真中使用频率复用(FR)算法.共有两 ...
- Oracle 数据文件 reuse 属性 说明(转载)
Oracle 表空间 创建参数 说明 http://blog.csdn.net/tianlesoftware/archive/2011/01/27/6166928.aspx 当我们对表空间添加数据文件 ...
- java thread reuse(good)
I have always read that creating threads is expensive. I also know that you cannot rerun a thread. I ...
- cell reuse & disposebag
For my project I've made base cell class TableViewCell: UITableViewCell { private(set) var disposeBa ...
- Codeforces 915E Physical Education Lessons
原题传送门 我承认,比赛的时候在C题上卡了好久(最后也不会),15min水掉D后(最后还FST了..),看到E时已经只剩15min了.尽管一眼看出是离散化+线段树的裸题,但是没有时间写,实在尴尬. 赛 ...
- ValueError: Variable rnn/basic_lstm_cell/kernel already exists, disallowed. Did you mean to set reuse=True or reuse=tf.AUTO_REUSE in VarScope? Originally defined at:
问题 ValueError: Variable rnn/basic_lstm_cell/kernel already exists, disallowed. Did you mean to set r ...
随机推荐
- [HNOI2008] GT考试(DP+矩阵快速幂+KMP)
题目链接:https://www.luogu.org/problemnew/show/P3193#sub 题目描述 阿申准备报名参加 GT 考试,准考证号为 N 位数 X1,X2…Xn(0 <= ...
- The python programing language
Python is an example of high-level language. As you might infer from the name “high-level language”, ...
- 安卓开发--AsyncTask2
package com.cnn.imageasyncdemo01; import android.app.Activity; import android.content.Intent; import ...
- Spring控制反转容器的使用例子
详细代码如下: spring-config.xml <?xml version="1.0" encoding="UTF-8"?> <beans ...
- PostgreSQL 系统表
postgres=# \d pg_class Table "pg_catalog.pg_class" Column | Type | Modif ...
- Nordic Collegiate Programming Contest 2015(第七场)
A:Adjoin the Networks One day your boss explains to you that he has a bunch of computer networks tha ...
- caffe(14) python可视化
首先将caffe的根目录作为当前目录,然后加载caffe程序自带的小猫图片,并显示. 图片大小为360x480,三通道 In [1]: import numpy as np import matplo ...
- 一个Web报表项目的性能分析和优化实践(一):小试牛刀,统一显示SQL语句执行时间
最近,在开发和优化一个报表型的Web项目,底层是Hibernate和MySQL. 当报表数据量大的时候,一个图表要花4秒以上的时间. 以下是我的分析和体会. 1.我首先需要知道哪些函数执行了多少时间 ...
- 用Google Chrome 浏览器打开Unity打包的WebGL
方法一: 直接build and run 方法二: 步骤: 1.打开浏览器的属性 2.在目标的位置添加--allow-file-access-from-files, 注意--allow-file-ac ...
- 【Henu ACM Round#16 F】Om Nom and Necklace
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] KMP算法可以把"i前缀"pre[i] 分成ssssst的形式 这里t是s的前缀. 然后s其实就是pre[i]中 ...