IT Consultant, Agile Coach, Business Analyst

Archive for the ‘Skills’ Category

演讲技巧(上)

Wednesday, March 26th, 2008

演讲技巧是咨询师必备的技能之一。作为一名专业人士,在观众面前能够逻辑清晰、表达到位、信服有力的将其所关注的内容表述出来,是许多人都希望做到的一点。然而很多时候,有些人对小细节不够重视,在演讲时犯错误,导致比较差的演讲效果。

如要提高演讲技巧,个人认为需要着重关注于内容、声音、手势、幻灯片等几方面。下面我会分2篇将我个人这两年的一些经验总结一下。

内容要有内在逻辑性

我看到过一些人做演讲,前后内容跳跃性极大。幻灯片之间没有过度句,头一篇和第二片之间异常生硬。关于这方面Minto的《金字塔原理》一书讲述的比较深入。一般的,逻辑可分为演绎法和归纳法等方法。

同事马波在讲敏捷的时候,采用的多是演绎法。他从问题开始,推出解决方法,然后又从这里引出新问题,一环扣一环,最终推出来结论,让听众从根本上理解为什么采用敏捷。这种方法对于问题的分析非常清楚,但有时候把握不好容易陷入细节,无法给观众一个大局观。所以要考虑多种方法共用。

逻辑讲究的是有理有据。每个概念都应该有解释,每条论证都应该有根据。所以很多时候我们都是从What开始开头,然后说Why,接着是How。有一种情况应该大力避免,就是用一个观众不懂得词汇来解释另一个观众不懂得词汇。最终这里面的逻辑关系可能会套的很远,为了解释一个概念,不惜引经据典,博古论今,这样听众很容易迷失。不过徐昊运用的相当精熟。

声音和情绪

声音是传达内容的媒介。以前我做演讲的时候,常犯的一个错误就是声音没有起伏,像平时说话一样一串串就出来了。如果在相对封闭的会议室,又是下午,很快你就会发现下面听众开始犯困了。做演讲讲究语速和语气。在林语堂的《怎样说话与演讲》一书中专门强调过这一部分。

语速是最容易理解和掌握的。我一开始演讲语速容易加快。可能是由于紧张,就倾向于快点讲完。然而,对于介绍新知识、新理论、做新品展示等场合,切忌快速说话。这时候应当慢慢的细致的把新的东西娓娓道来。

语气比较需要经验。什么时候该强调,什么时候该重音,什么地方应该用平淡的口气带过,非常需要揣摩。这个我做的也不好。不过,多数情况下,你觉得重要的东西,自然要着重则个。

演讲者的情绪能够感染听众。我英国的同事Marc演讲的时候,情绪非常的兴奋。他那次讲的是Web 2.0主题,里面涉及到许多创新的应用。他用一种非常兴奋的语气和动作,表达了他对这个主题的激动和热情。他的演讲感染了听众,所有人都对这些新应用产生了浓厚的兴趣。

所以很重要的一点,就是你要对自己的话题有激情。如果讲了很多遍, 自己都觉得没意思了,你再讲给听众的话,就会不自觉的把这种厌烦的情绪带给听众,从而降低你演讲的影响力。

手势和姿势

我们老大郭晓曾经讲过一个故事:当年我们CEO去参加商业课程培训,回来后说学到了一件事最有用,就是演讲三步骤:1 将手指向你要讲的幻灯片内容,2 转头面向观众,3 面带笑容的讲解这一部分。然后不停反复这一过程。这就是演讲手势的精要。

虽说上面说的简单了一些,不过非常实用。很多时候,由于在投影仪上进行演讲,不如白板来的直接,用手势或激光笔等指示你讲的部分非常重要。尤其是在出现结构图、流程等略显复杂的页面的时候。

演讲的时候,应当站直尽量不要走动或晃动。我有次在一次演讲在观众面前不停的走圈,结果被同事记下取笑至今,说我走八字。演讲者应站在一个不挡住屏幕的位置,用手势配合你的讲解,除非必要不要乱动。

笑容在有的时候很重要。如果不是必须要严肃的内容和场合,不妨增加一些微笑。俗话说的好,“面上洋溢着自信而成熟的微笑”。个人认为在一些地方增加一点小包袱也很有效果。例如,场下坐着某个听众比较熟悉的人,不妨开下他的玩笑,如果是公司内部,开老板玩笑或许是一个很有趣的选择。也可以对上一场的演讲者进行一下评论等等,作为开场白或者活跃气氛的调剂相当有效。

阅读:演讲技巧(下)

Tags: ,

进行性能测试

Tuesday, May 15th, 2007

最近在项目中兼任QA的角色。QA的职责当然是保证质量。性能是质量的一部分,理所当然应该是QA的职责范围嘛。这次team中负责性能测试的QA调走了,只好由我硬着头皮顶上去了。想到前些日子还兼做了几天Dev,哎,忽然觉得自己好多功能啊。

以前从没亲自动手搞过性能测试,但在原理上了解,并在项目里看别人测过(有时候还指指点)。这次选用Jmeter进行测试,是第一次上手。好在这东西对我来说不太难,今天一天就做出了10,20,30,50并发的四组数据。

按照测试计划,我们在测试数据不变的情况下,增加用户的并发数,找到随着并发数增加系统的break point。然后根据测试结果进行下一步的动作,改进或者保持现状等。

性能测试关键不是看一次的数据结果,而是要进行持续的跟踪、度量、比较、分析。根据测试数据找到系统性能瓶颈,确定其优先级,先解决影响最大的部分。例如目前我们项目的首页响应速度比其他页要慢很多。

纵向对比,随着并发人数的增加,每个测试场景的性能是否保持在一个可接受范围内。横向对比,对同一场景用不同的测试数据,看是否随着数据量的不同有显著变化。记录每个版本的运行情况,测试每一处改进,看所做的改进是否真的促进了性能的增加。

测试工具的选取也需要根据实际项目的情况来确定。我这次用的Jmeter也算是大众工具了,虽然测试AJAX有些勉强,还没找到好方法,但也勉强可用。不过它的交互设计实在是令人发指。

Jmeter是程序员做的交互设计的典型,整个菜单基于一个神秘的Tree,还可以增节点,定义变量,增加循环判断等。至于结果报表放在listener菜单中这样的事情就更不用说了。太技术化了,非技术人员基本上无法理解这奇怪的工具。怪不得多数团队都要程序员来做性能测试。

另外一个关于性能测试的常见工具是JProfiler。我们同时也用这东西找找系统代码里面哪个部分最耗内存。结果发现40%的内存占用是由于Sitemesh,30%的内存占用是Joda Time。令人惊奇的发现啊。马上干掉Sitemesh,某些页面性能提高了10倍。

尝试AMOWA

Tuesday, August 2nd, 2005

试用了Michael的bufallo,恩,不能算试用,在没有替代品的情况下
已经直接用在了project里面。作了个选择行政区划的三级联动选择框
搞了2天终于出来了,虽然问题严重,哎,不过聊胜于无。
我决定帮老陈一起完善这东西。

另外,burlap存在更严重的问题,
我的一个Region类,所有属性除了父类的timestamp,都被输出了2遍
怪不得取不到值呢

JDK5使用心得–泛型

Tuesday, April 12th, 2005

开始在project里面使用泛型了。感觉使用泛型大约要经历几个阶段:

1 有意识的使用类型化的集合。
一开始不太会用呢,只知道在建立List等的时候,泛型一把
List<product> products = new ArrayList<product>()
简单直接。每次只须要提供List getProducts即可。

2 开始逐渐的有所感悟
由于有些class有继承关系,经常针对一个抽象类或接口的集合操作。

List< ? extends Product> products = new ArrayList<product>();

这样这个products就可以接受各种product的子类型

3 主动想要使用类型参数
忽然有个写一个通用Factory的想法,尝试写new Factory<product>().create()

public class Factory<T> {
T create() {
return new T()
}
}

咦?不行!原来jdk5不支持直接对T的操作。怎们办呢?我改!

class Factory<T> {
private Class<T> c;
public Factory(Class<T> c) { this.c = c; }
public T create() throws Exception
{ return c.newInstance(); }
}

只好这样了: new Factory<Product>(Product.class).create()

4 偶然的灵机一现
一直用Hibernate,每次都被主键类型搞得头大。有的类需要String,有的需要Long。
而需要getId的地方却很普遍,只好抽象一个DomainEntity 

interface DomainEntity {
java.io.Serializable get/setId()
}

谁让String ,Long都是Serializable的类型呢。对了,用泛型!

interface DomainEntity<T>{
T get/setId()
}
class Product implements DomainEntity<Long> {
}

哈哈,这下可以用通用的方法访问不同的类型了。

CoolURI and PathInfo

Thursday, January 6th, 2005

如何实现形式非常Cool的URI?如:
1 对于一个CMS系统
a http://domain/cms/article/123456
b http://domain/cms/articles/123456.html

2 对于一个电子商店
a http://domain/e-commerce/products/PE-1113
b http://domain/e-commerce/products/PE-1113.html

3 对于一个blog
a http://domain/icecloud/blog/2004/12/31
b http://domain/icecloud/blogs/2004-12-31.html
(more…)

自定制InstallAnywhere的行为

Thursday, December 23rd, 2004

采用InstallAnywhere打包产品。如果简单的复制安装,只需要用到基本的功能就行了。
如果要定制复杂的过程,例如创建数据库表。就需要自定制InstallAnywhere的行为例如Action和Rule。
(more…)

MySQL处理UTF-8的一个BUG

Wednesday, December 15th, 2004

安装Confluence的时候,总是有数据表无法创建。
迷茫了几天,才知道,是MySQL的一个问题。

安装MySQL的时候,在字符集的地方顺手选择了UTF-8
MySQL有个限制,就是主键长度不能超过1024字节
而UTF-8是一个字符占3字节。
因此,一旦有300多个字符的PramaryKey,就会出错。

用GBK也是一样,如果有超过512的key作为主键,就会无法建表。

改为GBK,一切正常。