<?xml version="1.0" encoding="gb2312"?>
<rss version="2.0">
<channel>
<title><![CDATA[易心博客]]></title>
<link>http://exblog.ex123.net/</link>
<Description><![CDATA[易心博客]]></Description>
<language>zh-cn</language>
<copyright>Copyright 2005 exin</copyright>
<webMaster>webmaster@ex123.net</webMaster>
<image>
	<title><![CDATA[易心博客]]></title> 
	<url>http://www.ex123.net/images/admin/logo.gif</url> 
	<link>http://exblog.ex123.net/</link> 
	<description><![CDATA[易心博客]]></description> 
</image>
<item><link>http://exblog.ex123.net//blogview.asp?ID=3986</link><title>易心博客V3.2开发进程-易心博客</title><author>易心</author><description><![CDATA[<P>很早就有朋友问我,易心博客啥时候推出新版本.V3.1终于出了Final版本了.新版本就是V3.2了.大概要年前出.目前定的是15日开始内测.20日左右发布V3.2第一个版本.<BR>易心博客V3.2版本打算主要新增如下功能.<BR>1.在线升级 [已经完成]<BR>2.浏览模式增加列表模式 [已经完成]<BR>3.在线备份 [正在制作]<BR>4.相册图片由ftp软件上传到博客空间后,批量导入到博客数据库.&nbsp; [待开发]<BR>5.增加日志显示顺序标准 推荐等级 发布时间 点击次数 评论数量 [待开发]<BR>6.横栏导航自定义 [待开发]</P>]]></description><category>程序开发</category><pubDate>2009-1-8 22:31:17</pubDate><guid>http://exblog.ex123.net//blogview.asp?id=3986</guid></item><item><link>http://exblog.ex123.net//blogview.asp?ID=3985</link><title>XMLDOM节点属性表,很不错-易心博客</title><author>易心</author><description><![CDATA[<P class="g_w_100 g_t_wrap g_t_center g_t_bold g_t_24 g_c_pdin c07">XMLDOM节点属性表</P>
<DIV class=g_blog_list>
<DIV class="g_t_center g_c_pdin g_p_center c07 content" style="WIDTH: 760px">
<P>属性：<BR>1&nbsp;&nbsp;&nbsp;&nbsp; Attributes&nbsp;&nbsp;&nbsp;&nbsp; 存储节点的属性列表(只读)<BR>2&nbsp;&nbsp;&nbsp;&nbsp; childNodes&nbsp;&nbsp;&nbsp;&nbsp; 存储节点的子节点列表(只读)<BR>3&nbsp;&nbsp;&nbsp;&nbsp; dataType&nbsp;&nbsp;&nbsp;&nbsp; 返回此节点的数据类型<BR>4&nbsp;&nbsp;&nbsp;&nbsp; Definition&nbsp;&nbsp;&nbsp;&nbsp; 以DTD或XML模式给出的节点的定义(只读)<BR>5&nbsp;&nbsp;&nbsp;&nbsp; Doctype&nbsp;&nbsp;&nbsp;&nbsp; 指定文档类型节点(只读)<BR>6&nbsp;&nbsp;&nbsp;&nbsp; documentElement&nbsp;&nbsp;&nbsp;&nbsp; 返回文档的根元素(可读写)<BR>7&nbsp;&nbsp;&nbsp;&nbsp; firstChild&nbsp;&nbsp;&nbsp;&nbsp; 返回当前节点的第一个子节点(只读)<BR>8&nbsp;&nbsp;&nbsp;&nbsp; Implementation&nbsp;&nbsp;&nbsp;&nbsp; 返回XMLDOMImplementation对象<BR>9&nbsp;&nbsp;&nbsp;&nbsp; lastChild&nbsp;&nbsp;&nbsp;&nbsp; 返回当前节点最后一个子节点(只读)<BR>10&nbsp;&nbsp;&nbsp;&nbsp; nextSibling&nbsp;&nbsp;&nbsp;&nbsp; 返回当前节点的下一个兄弟节点(只读)<BR>11&nbsp;&nbsp;&nbsp;&nbsp; nodeName&nbsp;&nbsp;&nbsp;&nbsp; 返回节点的名字(只读)<BR>12&nbsp;&nbsp;&nbsp;&nbsp; nodeType&nbsp;&nbsp;&nbsp;&nbsp; 返回节点的类型(只读)<BR>13&nbsp;&nbsp;&nbsp;&nbsp; nodeTypedValue&nbsp;&nbsp;&nbsp;&nbsp; 存储节点值(可读写)<BR>14&nbsp;&nbsp;&nbsp;&nbsp; nodeValue&nbsp;&nbsp;&nbsp;&nbsp; 返回节点的文本(可读写)<BR>15&nbsp;&nbsp;&nbsp;&nbsp; ownerDocument&nbsp;&nbsp;&nbsp;&nbsp; 返回包含此节点的根文档(只读)<BR>16&nbsp;&nbsp;&nbsp;&nbsp; parentNode&nbsp;&nbsp;&nbsp;&nbsp; 返回父节点(只读)<BR>17&nbsp;&nbsp;&nbsp;&nbsp; Parsed&nbsp;&nbsp;&nbsp;&nbsp; 返回此节点及其子节点是否已经被解析(只读)<BR>18&nbsp;&nbsp;&nbsp;&nbsp; Prefix&nbsp;&nbsp;&nbsp;&nbsp; 返回名称空间前缀(只读)<BR>19&nbsp;&nbsp;&nbsp;&nbsp; preserveWhiteSpace&nbsp;&nbsp;&nbsp;&nbsp; 指定是否保留空白(可读写)<BR>20&nbsp;&nbsp;&nbsp;&nbsp; previousSibling&nbsp;&nbsp;&nbsp;&nbsp; 返回此节点的前一个兄弟节点(只读)<BR>21&nbsp;&nbsp;&nbsp;&nbsp; Text&nbsp;&nbsp;&nbsp;&nbsp; 返回此节点及其后代的文本内容(可读写)<BR>22&nbsp;&nbsp;&nbsp;&nbsp; url&nbsp;&nbsp;&nbsp;&nbsp; 返回最近载入的XML文档的URL(只读)<BR>23&nbsp;&nbsp;&nbsp;&nbsp; Xml&nbsp;&nbsp;&nbsp;&nbsp; 返回节点及其后代的XML表示(只读)</P>
<P>方法:</P>
<P>1&nbsp;&nbsp;&nbsp;&nbsp; appendChild&nbsp;&nbsp;&nbsp;&nbsp; 为当前节点添加一个新的子节点,放在最后的子节点后<BR>2&nbsp;&nbsp;&nbsp;&nbsp; cloneNode&nbsp;&nbsp;&nbsp;&nbsp; 返回当前节点的拷贝<BR>3&nbsp;&nbsp;&nbsp;&nbsp; createAttribute&nbsp;&nbsp;&nbsp;&nbsp; 创建新的属性<BR>4&nbsp;&nbsp;&nbsp;&nbsp; createCDATASection&nbsp;&nbsp;&nbsp;&nbsp; 创建包括给定数据的CDATA段<BR>5&nbsp;&nbsp;&nbsp;&nbsp; createComment&nbsp;&nbsp;&nbsp;&nbsp; 创建一个注释节点<BR>6&nbsp;&nbsp;&nbsp;&nbsp; createDocumentFragment&nbsp;&nbsp;&nbsp;&nbsp; 创建DocumentFragment对象<BR>7&nbsp;&nbsp;&nbsp;&nbsp; createElement&nbsp;&nbsp;&nbsp;&nbsp; 创建一个元素节点<BR>8&nbsp;&nbsp;&nbsp;&nbsp; createEntityReference&nbsp;&nbsp;&nbsp;&nbsp; 创建EntityReference对象<BR>9&nbsp;&nbsp;&nbsp;&nbsp; createNode&nbsp;&nbsp;&nbsp;&nbsp; 创建给定类型,名字和命名空间的节点<BR>10&nbsp;&nbsp;&nbsp;&nbsp; createPorcessingInstruction&nbsp;&nbsp;&nbsp;&nbsp; 创建操作指令节点<BR>11&nbsp;&nbsp;&nbsp;&nbsp; createTextNode&nbsp;&nbsp;&nbsp;&nbsp; 创建包括给定数据的文本节点<BR>12&nbsp;&nbsp;&nbsp;&nbsp; getElementsByTagName&nbsp;&nbsp;&nbsp;&nbsp; 返回指定名字的元素集合<BR>13&nbsp;&nbsp;&nbsp;&nbsp; hasChildNodes&nbsp;&nbsp;&nbsp;&nbsp; 返回当前节点是否有子节点<BR>14&nbsp;&nbsp;&nbsp;&nbsp; insertBefore&nbsp;&nbsp;&nbsp;&nbsp; 在指定节点前插入子节点<BR>15&nbsp;&nbsp;&nbsp;&nbsp; Load&nbsp;&nbsp;&nbsp;&nbsp; 导入指定位置的XML文档<BR>16&nbsp;&nbsp;&nbsp;&nbsp; loadXML&nbsp;&nbsp;&nbsp;&nbsp; 导入指定字符串的XML文档<BR>17&nbsp;&nbsp;&nbsp;&nbsp; removeChild&nbsp;&nbsp;&nbsp;&nbsp; 从子结点列表中删除指定的子节点<BR>18&nbsp;&nbsp;&nbsp;&nbsp; replaceChild&nbsp;&nbsp;&nbsp;&nbsp; 从子节点列表中替换指定的子节点<BR>19&nbsp;&nbsp;&nbsp;&nbsp; Save&nbsp;&nbsp;&nbsp;&nbsp; 把XML文件存到指定节点<BR>20&nbsp;&nbsp;&nbsp;&nbsp; selectNodes&nbsp;&nbsp;&nbsp;&nbsp; 对节点进行指定的匹配,并返回匹配节点列表<BR>21&nbsp;&nbsp;&nbsp;&nbsp; selectSingleNode&nbsp;&nbsp;&nbsp;&nbsp; 对节点进行指定的匹配,并返回第一个匹配节点<BR>22&nbsp;&nbsp;&nbsp;&nbsp; transformNode&nbsp;&nbsp;&nbsp;&nbsp; 使用指定的样式表对节点及其后代进行转换<BR>23&nbsp;&nbsp;&nbsp;&nbsp; transformNodeToObject&nbsp;&nbsp;&nbsp;&nbsp; 使用指定的样式表将节点及其后代转换为对象</P></DIV></DIV>]]></description><category>技术文章</category><pubDate>2009-1-5 13:15:04</pubDate><guid>http://exblog.ex123.net//blogview.asp?id=3985</guid></item><item><link>http://exblog.ex123.net//blogview.asp?ID=3984</link><title>关于bin.base64和bin.hex和urlencode的编码比较及ASP解码-易心博客</title><author>易心</author><description><![CDATA[题目有点诡异。<BR>废话不说，切入正题。<BR><BR>源文件是UTF8编码,长度44907<BR>经过bin2hex编码得到长度90882<BR>经过base64_encode编码得到长度60588<BR>经过urlencode编码得到长度76909<BR><BR>以上可以看出，base64编码相对于其他编码来说都小,官方说，这种编码数据量大33%，有兴趣的可以算算是不是。<BR>因此base64在网络传输编码中应用的最广泛。<BR><BR>谈谈解码。<BR>按照普通的思路做ASP解码很复杂的（其他语言就一个函数，这就是我们为什么要放弃asP的原因）<BR>想想有没有什么变通的方法？<BR>用XMLDOM!<BR><BR>
<P class=code>Dim objXmlFile,objXmle<BR>Set objXmlFile = Server.CreateObject("Microsoft.XMLDOM")<BR>objXmlFile.loadXML("&lt;r xmlns:dt=""urn:schemas-microsoft-com:datatypes""&gt;&lt;e dt:dt=""bin.hex""&gt;"&amp;STR&amp;"&lt;/e&gt;&lt;/r&gt;")<BR>'http://www.dc9.cn 'sipo 2007-4-11制作<BR>Set objXmle=objXmlFile.documentElement.selectSingleNode("e")<BR>Call SaveToFileBin(BlogPath &amp; newEspamFile ,objXmle.nodeTypedvalue)&nbsp;&nbsp;<BR><BR>Function SaveToFileBin(p,c)<BR>&nbsp;&nbsp;&nbsp;&nbsp; Dim objStream<BR>&nbsp;&nbsp;&nbsp;&nbsp; Set objStream = CreateObject("ADODB.Stream")<BR>&nbsp;&nbsp;&nbsp;&nbsp; With objStream<BR>&nbsp;&nbsp;&nbsp;&nbsp; .Type = 1<BR>&nbsp;&nbsp;&nbsp;&nbsp; .Mode = 3<BR>&nbsp;&nbsp;&nbsp;&nbsp; .Open<BR>&nbsp;&nbsp;&nbsp;&nbsp; .Write c<BR>&nbsp;&nbsp;&nbsp;&nbsp; .SaveToFile p,2<BR>&nbsp;&nbsp;&nbsp;&nbsp; .Close<BR>&nbsp;&nbsp;&nbsp;&nbsp; End With<BR>&nbsp;&nbsp;&nbsp;&nbsp; Set objStream = Nothing<BR>&nbsp;&nbsp;&nbsp;&nbsp; SaveToFileBin=True<BR>End Function&nbsp;&nbsp;<BR></P><BR>上面的bin.hex换成bin.base64就可以解base64的了<BR>我打赌这比写一大堆云山雾罩的函数简单多了吧？<BR>]]></description><category>技术文章</category><pubDate>2009-1-5 13:11:26</pubDate><guid>http://exblog.ex123.net//blogview.asp?id=3984</guid></item><item><link>http://exblog.ex123.net//blogview.asp?ID=3983</link><title>找出IIS中隐藏的网站-易心博客</title><author>易心</author><description><![CDATA[在进入正题之前，我们先来看一下，入侵者是如何在我们的主机上建立隐藏网站的。<BR>打开IIS的管理器-&gt;选定一个文件夹-&gt;点击鼠标右键-&gt;选择“资源管理器”，切换到网站的根目录，新建一个文件夹这里取名为“liuqq”，接着我们到“x:\windows\system32”（当然这个目录是任意的，其中的x代表系统盘）那里新建一个文件夹取名“liuhack”，回到IIS的管理器刷新就会看到，“liuqq”这个目录。<BR>选中“liuqq”目录，点击右键-&gt;“新建”-&gt;“虚拟目录”，给这个虚拟目录取名为“liuyes”，把这个虚拟目录指向“x:\windows\system32\liuhack”（如图一），建立完成。<BR><BR><BR>现在放个网页进去，打开浏览器，在地址栏输入“<BR>http://ip/liuqq/liuyes/index.asp”，如果IIS没有问题的话，应该可以正常浏览。<BR>接着我们来实现网站的隐藏――打开“我的电脑”找到网站的根目录删掉我们刚才新建的“liuqq”这个文件夹，再回到浏览器刷新看看，呵呵，怎么样网站还在吧。然后我们回到IIS的管理器刷新看看，“liuqq”这个目录已经没有了，这样我们隐藏网站的目的就达到了。<BR>OK，相信大家照着上面的方法做都会成功的，下面我们看一下如何找出主机上是否有隐藏的网站。<BR>在站点名称上点击鼠标右键-&gt;“属性”-&gt;选中“主目录”标签，将站点的“执行许可”由“纯脚本”改为“无”（或者“脚本和可执行文件”，不过建议不要选择这一项，如图二），然后点击“应用”按钮，怎么样？原形毕露了吧（如图三）。其中前面的“liuqq”就是被删掉的目录，而后面的“liuyes”就是入侵者建立“虚拟目录”的别名。<BR><BR><BR>当然，现在我们只是知道了存在隐藏的目录（网站），但是仅仅这样还是不行的，因为我们还不知道它到底保存在什么地方（入侵者不会傻到按照我上面的方法建立隐藏网站的），当然就没有办法删除它了。下面就让我们找到它的老巢，把它干掉。Go on……<BR>在网站所在的根目录新建“liuqq”目录（这个视“图三”的具体情况而定），然后回到IIS的管理器中刷新就可以看到隐藏的网站目录了（如图四），还等什么，赶快把它KILL掉。<BR>最后，别忘了把图二中的设置再改回来，否则网站就没有办法浏览了。好了，让隐藏的网站离我们远一些吧，祝各位主机管理员们GOOK LUCK！<BR>后语：在实验的过程中发现隐藏网站的方法对WIN2003＋SP1无效，请大家注意！]]></description><category>技术文章</category><pubDate>2008-12-21 10:31:39</pubDate><guid>http://exblog.ex123.net//blogview.asp?id=3983</guid></item><item><link>http://exblog.ex123.net//blogview.asp?ID=3982</link><title>一个正则表达式在线测试网站-易心博客</title><author>易心</author><description><![CDATA[<A href="http://www.zhongguosou.com/computer_question_tools/test_regex.aspx" target=_blank>http://www.zhongguosou.com/computer_question_tools/test_regex.aspx</A>]]></description><category>技术文章</category><pubDate>2008-12-10 17:43:27</pubDate><guid>http://exblog.ex123.net//blogview.asp?id=3982</guid></item><item><link>http://exblog.ex123.net//blogview.asp?ID=3980</link><title>如何修改远程桌面端口3389-易心博客</title><author>易心</author><description><![CDATA[老文章了.备忘<BR>&nbsp;1.打开“开始→运行”，输入“regedit”，打开注册表，进入以下路径：[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal&nbsp;Server\Wds\rdpwd\Tds\tcp]，看见PortNamber值了吗？其默认值是3389，修改成所希望的端口即可，例如6111。&nbsp;　　<BR>&nbsp;&nbsp;2.再打开[HKEY_LOCAL_MACHINE\SYSTEM\CurrentContro1Set\Control\Tenninal&nbsp;Server\WinStations\RDP-Tcp]，将PortNumber的值（默认是3389）修改成端口6111。&nbsp;<BR>&nbsp;&nbsp;3.&nbsp;修改完毕，重新启动电脑，以后远程登录的时候使用端口6111就可以了&nbsp;]]></description><category>技术文章</category><pubDate>2008-11-18 21:26:09</pubDate><guid>http://exblog.ex123.net//blogview.asp?id=3980</guid></item><item><link>http://exblog.ex123.net//blogview.asp?ID=3979</link><title>如何查看系统隐藏帐号-易心博客</title><author>易心</author><description><![CDATA[今天在任务管理器的用户项中意外发现了帐号usa$.第一感觉,这个帐号肯定是个隐藏帐号.因为一般隐藏帐号才会在用户名后加$符号,这样net user命令就不显示了.<BR>如何处理这个隐藏的帐号呢?还是删除吧.毕竟隐藏的多有企图.呵呵.远程连接到服务器,在运行框中输入regedt32.exe “HKEY_LOCAL_MACHINE\SAM\SAM”给予完全控制权限. 然后再在运行框中输入 regedit 查看所有用户 HKEY_LOCAL_MACHINE\SAM\SAM\Domains\account\users 看到隐藏的帐号了吧.呵呵]]></description><category>技术文章</category><pubDate>2008-11-18 21:07:34</pubDate><guid>http://exblog.ex123.net//blogview.asp?id=3979</guid></item><item><link>http://exblog.ex123.net//blogview.asp?ID=3978</link><title>Visual Studio 2008 专业版下载-易心博客</title><author>易心</author><description><![CDATA[<A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=83c3a1ec-ed72-4a79-8961-25635db0192b&amp;DisplayLang=zh-cn" target=_blank>http://www.microsoft.com/downloads/details.aspx?FamilyID=83c3a1ec-ed72-4a79-8961-25635db0192b&amp;DisplayLang=zh-cn</A>]]></description><category>技术文章</category><pubDate>2008-11-3 9:52:39</pubDate><guid>http://exblog.ex123.net//blogview.asp?id=3978</guid></item><item><link>http://exblog.ex123.net//blogview.asp?ID=3975</link><title>技术团队管理之道-易心博客</title><author>易心</author><description><![CDATA[<P>戴金龙 PMP <A href="mailto:popodai@163.com" target=_blank>popodai@163.com</A>? 保留著作权 </P>
<P>管理是一个强调综合素质的职业，既需要从业者有较好行业背景和技术功底，也需要从业者能洞察人心、洞悉人性，在保证重要干系人满意度的情况下，把工作做好。 </P>
<P>在久负盛名的《管理学原理》这本书中，管理被认为是一个复杂的有机活动，包括计划、组织、领导、控制与人员配备等一系列过程。管理之道显然是一个很庞大的话题。这里仅讨论技术团员的管理，希望笔者的经验对相关读者做好管理工作能有所帮助。 </P>
<P>第一节 技术团队有很浓的技术氛围，管理者要接受并融入这种文化。 </P>
<P>有不少管理层在脑子里有一个不好的观点：认为我是一个职业经理人，职业经理人不懂专业技术也可以把团队管得很好。他们这样为自己辩解时大抵会祭出PMBOK，因为上面讲过项目管理是一项独立的职业。其实PMBOK还有一句话，说管理者一定要深入学习和掌握行业领域知识，并反复强调它是管理者的基本职业素质之一。 </P>
<P>实践也反复证明，技术团队的成员非常看重一个人的技术能力和技术背景。如果技术团队的管理者在这个方面没有优势，那么他在团队里的号召力和领导力受到挑战是很正常的。技术型团队还有一个特点就是不少团队成员有种天生的自负心态，通俗地讲就是不服管或不服谁。笔者曾经做过一个试验，让团队的一个资深工程师给另一个资深工程师的绩效打分。结果得分是非常的低。同样的现象在互换角色后也惊人地相似。因此“文人相轻”的现象在工程界也同样会出现。技术团队的管理层要有心里准备，在团队建设方面要多花心思，工作要细致。如果你所在的团队有技术牛仔冒犯了你或者经常让你很不舒服，在不影响原则的情况下，应保持难得糊涂的心理状态。不要和他们斤斤计较，应从大局出发，兢兢业业地推进团队工作不断前进。 </P>
<P>在现实环境中，某些管理人员因为融不进技术团队中愚蠢地制造出了“技术—管理”对立局面，并自鸣得意地认为“做技术的人低级，做管理的人才高级”。这个想法如果只是自己私下里自我安慰倒也没什么，但是如果在工作场合加以宣传，就是很严重的错误了。因为现代企业所从事的绝大多数工作是团队工作，强调相互尊重，各司其职，紧密配合。管理和技术谈不上哪个高级哪个低级，二者谁出了问题对项目都可能是致命的。我想，部分管理层之所以觉得自己高级可能是因为自己的薪水高于工程师，但随着行业的成熟，将来，部分工程师薪水完全可能高于管理层（至少在微软多年前就已经是这样）。 </P>
<P>要带好技术团队，就需要深入了解其中涉及到的技术。管理层不要不懂装懂，要擅于请教擅于学习。笔者经常听到一些团队的工程师对经理意见很大，比如制定工作计划，根本不和有经验的工程师讨论，自己又对相关工作不太懂，结果定出来的计划根本就不具有可操作性，还经常拿着计划压工程师，完不成就让加班。遇到技术问题时自己不能予以有效支持，而是一味责备别人不聪明、工作不努力。我想，如果管理层能够谦虚一些，在制定计划时从技术角度多分析多思考，自己没有把握的部分多听听资深工程师的意见，那种不切实际的计划就不会草率地制定出来并获得通过。再进一步讲，如果管理层对技术有较好的把握，能够在做计划时及早预料到可能的技术风险，及早预料到可能的资源约束关系和活动的时序关系，那么就会给工程师起一个很好的示范和教练作用，而不会出现对工程师的一味批评、压制。事实上这种批评压制除了让士气低落外，并不解决什么实际的问题。及早理顺资源约束关系和活动时序关系，就能避免无尽头的加班和无休止的心理压力。所以，技术团队的管理者一定要在内心深处真正重视技术，抱着虚心的态度去深入学习，向任何一个有一技之长的人学习，这非但不会影响你的权威，反而让你的管理工作更有效更受团队拥护。 </P>
<P>第二节&nbsp; &nbsp;技术团队常常在沟通上问题严重，管理者应注意强化。 </P>
<P>在带技术团队的过程中，我发现有一批程序员，底子很好，逻辑很清晰，程序算法也写得很棒，但就是沟通做不好。这就要求技术团队的管理者要对团队进行有效沟通的培训。所谓有效沟通，就是要做到在工作场合区分清楚哪些是讨论，哪些是布置任务；在团队交流时弄清楚别人问的什么问题，根据别人的问话针对性地回答，既不要答非所问，也不要拖泥带水；在交付工作成果时要写别人能看懂的程序代码、代码注释和开发文档；在日常信函中应做到及时准确，不拖拖拉拉。 </P>
<P>很遗憾，上面说到的问题在相当多的技术团队都做得很糟糕。如果技术团队的管理者不进行相应的培训和强化，就会增加沟通成本，甚至耽误工作。这样的员工进入新的单位就会给新单位带来管理上的问题。对员工自身而言，如果这一块做不好也一定会影响职业生涯的发展。 </P>
<P>首先谈谈区分清楚讨论和布置任务。技术团队的管理者绝大多数时候是和团队成员在讨论和分析问题，运用头脑风暴法找到解决问题的最佳办法。但作为一个老练的管理者，也一定会在讨论成熟时向团队成员布置任务，否则工作就没有办法落实并得到执行。然而，团队里也总是不乏这样的工程师，在你下达任务时他还在喋喋不休地发表他的看法，总之他认为只有自己的方法才最好，不赞同你的方案，不配合执行分配给他的任务。在这个时候，管理层一定要明确向工程师说明，目前是在布置工作任务，不是在讨论解决方案的优劣，职业人士此时的重要职责就是按时完成上级布置的任务，否则团队工作就会各自为政，开展不下去。很遗憾，不少管理层纵容这些问题工程师胡作非为，结果弄出来一个又一个烂摊子，一些工程师甚至把项目当作学习新技术的一次练手机会！我们先不说工程师的素质问题，作为技术团队的管理者，出现这种情况，是负有不可推卸的管理责任的。 </P>
<P>其次，要注意团队技术人员在与别人交流时是否能做到有效沟通。即弄清楚别人问的是什么问题，根据别人的问话针对性地回答，既不要答非所问，也不要拖泥带水。或者，在问别人问题时是否能提供足够完整的相关资料，以便于别人清晰了解。技术型团队的团队成员在准确了解别人的问题这一块常常显得迟钝。如，别人的问题可能是填空题、判断题、单选题、多选题、简答题、论述题或材料分析题。不同的题型怎么作答才有效？这个问题在中学政治课上肯定都已经讲得很明白了，到了职场上反而用不好。这就需要管理层加以指点、培训和锻炼。另一方面，问别人问题也是这样，没有上下文，很突兀地问一个问题是不少技术人员常见毛病，管理层应通过组织有效沟通的培训，逐渐让工程师掌握有效的提问技巧。此外还有一些常见的无效沟通需要注意克服。比如某些程序员的习惯性辩论或习惯性反对；又如使用口头禅频繁，占用太多时间资源；再如乱用因果、转折关联词，使得沟通成本居高不下。 </P>
<P>再次，技术团队管理者应教育软件工程师在交付工作成果时要写别人能看懂的程序代码、代码注释和开发文档。如果对这些工程师放低要求，这是对项目的不负责，也是害了这些软件工程师。如有些管理者因为时间忙或者没有兴趣去阅读代码就让开发工程师自己管理自己的代码，结果肯定一团糟。笔者曾经遇到一个工程师，他不喜欢写代码注释，找他谈话，还是转不过弯来，他觉得自己写的代码只要自己能看懂就行了，不需要那么严格，还说注释会增加工作量。于是开代码评审会时，我就从代码库中抽了一段代码，是他两个礼拜之前写的，我让他给大家讲讲这段代码的逻辑。结果该工程师搞得满头大汗，看了半天也理解不了这段代码到底是什么含义。一段自己写的代码，隔半个月自己都理解不了，可想而知，别人要想看懂就更难了。经过这次“出洋相”，从此他开始踏踏实实写代码注释了。其实不光是要写注释，还必须要写别人能看懂的注释。软件行业较高的跳槽率是众所周知的事实，如果这些代码注释写得有一搭没一搭，很容易产生不可控的代码可维护性风险。开发文档也是如此，尽管写一份专业的软件文档是文档工程师的事，但对于任何一个软件开发、软件测试工程师而言，能够写条理清晰、可读性强的软件文档应该被视为基本职业素质和最起码的职业技能。有些工程师图省事，写文档常常是堆砌一个个的单词和短语，根本就不是完整的句子，别人也读不懂；有些句子语焉不详，故意回避技术难点和逻辑比较繁琐的地方；有些动辄就让读者去参考某某文档，等等。这些都是不应该出现的工作状态。作为技术团队的管理者，应通过培训、走查、一对一辅导等多种途径逐渐纠正这些陋习和弊病。 </P>
<P>最后，谈谈在日常信函中出现无效沟通的例子。日常信函应做到及时准确，不拖拖拉拉。有不少从业者在收到电子信件后看一下，然后就没有下文了。在实际项目管理中，我要求团队成员凡是作为收件人身份收到的信件，都应该在5分钟内予以响应。如果你没有考虑清楚怎么回答，至少也应该发信告诉对方邮件已收到，正在调查，并注明多长时间以后给予正式回复。不少公司培养出来的工程师形成一种令人厌恶的习惯，经常不查信箱，耽误了重要的信件响应速度；或者发现一些比较麻烦的信件时就装着没有收到，相关人问起时就以“没收到”为托辞；或者因为要写一份滴水不漏的回信闷声酝酿了两三天才给回复，这些都使得邮件沟通出现了严重的问题。这些坏习惯的养成和技术团队管理者不无关系，如果能及早纠正、严格要求，就能让团队沟通成本大幅降低。在发邮件沟通这件事情上，我还要求团队成员发出一封信后若对方没有反应，应接着再发，在连续三次没有反应后，应将信件发送给我，由我来转发以推动相关沟通的进行。（这有效地避免了一类典型办公室场景：经理问小王某事进展如何，小王说已经给相关人发过邮件了，对方没有一直没有回信。）在实际沟通过程中，除了项目启动后开始的一两个月有时需要我去推动外，后来邮件沟通就基本顺畅了。 </P>
<P>第三节&nbsp; 技术团队应建立一个有效的学习机制，尊重知识，实现共赢。 </P>
<P>技术团队有一个明显的特点就是成员对学习新技术有一种偏好，甚至可以说是痴迷。如果能通过一个有效的学习机制把团队成员的学习热情激发出来，那么团队的创造性、士气、工作热情和团队的稳定性都将大幅度提升。那么如何建立一个有效的学习机制呢？ </P>
<P>第一点，管理层要纠正一些不当观念。有些管理人员认为安排团队学习不属于管理人员的工作，水平差的员工应自己多请教多学习，管理人员每天忙着计划、实施监控和偏差调整，哪有精力去管理团队成员的学习呢？这个认识是不正确的。实践证明，没有学习机制的团队是很不稳定的，员工常常因为学习不到新的东西而不珍惜手头的工作。理论上，PMBOK2004在人力资源管理这一章也强调了团队建设的重要性，团队建设的核心就是通过团队学习提高团队成员的技能，从而形成高绩效的团队。也有些管理人员赞成团队学习，但认为学习的东西应该对项目有直接帮助才行，否则就不支持、不参与。这是一种较为短视的管理行为，学习对项目有直接帮助的知识固然是正确的、符合项目利益的，也的确应该作为学习和强化的重点。但是，如果因此而排斥学习其他知识就显得没有智慧了。比如适当增加一些财务管理、投资理财和身体保健方面的学习，对于员工来讲是终生受用的。增加一些管理知识和职业生涯规划，对于员工来讲有利于个人发展，对于公司而言有利于人才培养和成长。 </P>
<P>第二点，不要把学习形式化、拘泥化。不要以为有一个人在前面讲课，大家正襟危坐这才是学习，也不要以为花了大价钱从外面请了一个专家来讲课这才是学习。学习的外延是极为广泛的。比如团队成员做的非常好的地方，可圈可点之处，就可以让他给大家介绍，让大家来学习他。在CMMI体系当中，这就是项目级的“最佳实践”，应该及时拿出来让大家都来学习、分享。比如一本很好的技术书籍，大家分分工，分头研读研究，每人负责一部分，写读书笔记，制作PPT，在随后安排的学习会议上按照章节编排次序轮流讲解，渐进学习，这也是一种很好的学习方式。技术团队成员一般都受过良好的教育，如软件研发团队，以本科生和硕士生为主，这样的群体是有能力自己做学问、搞研究的。因此，应倡导每个人在获取别人知识的同时，也要贡献出自己的知识。 </P>
<P>第三点，学习的时间和场地要固定。学习时间和场地千万不要变成灵活安排。如果灵活安排了结果就是这部分时间逐渐被砍掉。因此强烈建议技术团队管理者把时间和场地定死了。比如每天一次从12点30分到1点30分或者从5点30分到6点30分。或者每两天一次，比如安排团队学习在周一、周三、周五中午12点30分到1点30分。场地也应该定死，不然到时就候像没头苍蝇到处找场地。学习场地应至少配备笔记本、投影仪等基本会议设备。对于那些连场地资源都不能保证的执行组织，技术团队管理者应积极推动和高层频繁沟通，以保证相关资源尽早到位。以上谈的时间和场地，这两件事看起来很容易做到，但恰恰是最考验恒心和毅力的所在。这两件事情上最大的敌人就是“灵活安排”，技术团队管理者应该切记。 </P>
<P>为了保证学习的效果，技术团队管理者应酌情使用考试环节。对于那些互动性强的学习课程可以不考，对于那种是很纯的新知识类课程，建议考虑使用考试手段。 </P>
<P>结语 </P>
<P>以上内容是笔者带领技术团队做项目、搞工程的切身体会，是经验和教训积累而成的。在给相关企业（软件企业为主）做管理培训时发现这也是技术团队带有共性的问题。因此整理出来形成文字，供读者朋友参考。 </P>
<P><BR>后记 </P>
<P>早上去网上查点东西，发现以前的文章被人改了改题目，加了两个字讲述，拿去发表了。觉得有点搞笑。不知道这篇是不是也会在不久的将来变成《讲述技术团队管理之道》。哈哈。一笑中。<BR></P>]]></description><category>网摘随笔</category><pubDate>2008-9-24 13:19:03</pubDate><guid>http://exblog.ex123.net//blogview.asp?id=3975</guid></item><item><link>http://exblog.ex123.net//blogview.asp?ID=3973</link><title>来北京了-易心博客</title><author>易心</author><description><![CDATA[<P>星期一晚上匆匆的赶到了北京。</P>]]></description><category>生活札记</category><pubDate>2008-9-18 7:08:15</pubDate><guid>http://exblog.ex123.net//blogview.asp?id=3973</guid></item>
</channel>
</rss>