Categories

Offices PK

WLC is moving into the new office, whose structure diagram has just been distributed to us.  Coincidently, I read about the Bionic Office of Fog Creek.  Compared to Fog Creek, MS looks more like a traditional company, doesn’t it?

‘Sleep’ in Windows Vista

Joel Spolsky wrote a article "Choices = Headaches", in which he complains the bad design of the nine options, two icons and seven menu items, Windows Vista provided for users to leave their computer.  Actually, the purpose of introducing the new mode ‘Sleep’ (the leftmost icon) is to address this kind of complaints against WinXP.

In the Features for Performance, you can find that ‘Sleep’ mode behaves differently on laptops from on desktops.  It’s a good design.  The only pitfall is its name.  It would be much better if it’s called ‘Leave’, with a tooltip ‘Let Vista take care of it’.  Correspondingly, the menu can be named as ‘For Geeks’, with a tooltip ‘You are on your own’. ;-)

“一个管理者,不应该是一个好员工”

晚上特精神,就上网看文章。其中有一篇写得很有几分道理。说的也是那个道理“严于律己,宽以待人”。特此摘录如下:

“以小人之心,度君子之腹,最终会发现君子的伟大;以君子之心度小人之腹,最后受伤总是君子,量大者一笑而过,量小者恼羞成怒。一个好的管理者,不应该是君子。然而可惜的是,现在中国几乎所有的管理者,都是由好员工成长起来的,这样会造成一个什么样的问题呢?换位思考是管理者最常用的方法之一,其实换位确实是一个很好的方法,只不过管理者们却往往是这么想的:处在这个环境下面,当时的我是怎么样怎么样做的,为什么你不能这样做呢?所以他们会对底下的员工提出很多要求,实事求是的讲,他们所提的要求并不过分,只是他们忽略了一点,当时的他是一个好员工,而你的下属并不人人都是一个好员工,如果他们也都是好员工的话,请问,你这个管理者还有什么存在的必要?他们自己完全可以管好自己了,就像当时的你那样。

管理者的管理跟制度不同,制度面向的是一般性,而管理面向的是特殊性。如果有个公司有个员工是练俞加的,他工作的时候很喜欢把脚放在嘴巴里(只是举个例子,呵呵),公司的领导觉得很不雅观,影响公司形象,于是他在公司的规章制度里加了一条,员工工作的时候不准把脚放在嘴巴里。后来这个员工走了,很多新来的员工就很奇怪了,怎么会有这种规定的?谁会把脚放到嘴巴里去呢?真是变态的制度。所以制度是不可能针对特殊化的,而管理就不同了,那管理能不能一般化呢?问答这个问题之前,我们先来分析一下我们所处的大环境,就IT行业来说,员工流动是一个很大的问题,要一个管理者摸清下属员工的个性,然后针对他指定一套管理方法,这显然是不可能的。所以要管理面向特殊性,太过于理想化,根本不可能实现。那我们的管理者应该如何把握这个一般性的尺度呢?如果一个勤奋的管理者,他往往就会要求下属也很勤奋,要求他们一周工作7天,每天工作12个小时,而且还不满足,因为他在做管理者以前,一天工作18个小时。这样就导致了什么问题呢?勤奋的人,还可以忍受,但懒散的人就很难以忍受了,慢慢的就被淘汰。中国有句古话叫强将手下无弱兵,大概就是这个道理吧。但这个只是古人说的,现在还有道理吗?也许答案是否定的。管理学上好像有这么一个说法,如果你的下属,永远跟你的意见一致的话,那么你或者你的下属,肯定有一个人是多余的。人才是多种多样的,一个勤奋的人算个人才,但一个懒散的人,如果他的工作效率非常高,很有创造性才能,也算一个人才,但在一个勤奋的管理者手下,这样的人是很难生存的。所以我在这里说的一个管理者,不应该是一个好员工指的是,一个管理者,只有容忍了下属所有的缺点,他才能在他们的缺点之外,发现到他们的长处。而且一个管理者,是一个团队的灵魂,是下属与下属之间联结的纽带,只有认识到下属的伟大,才能很好起到这个作用,如果觉得下属们都是小人,都是人渣,别说起联结作用了,也许最先出现矛盾的就是他了。”

My First Perl Script AGAINST Kingword.

I’ve been loving C for so long and I decide to make some naughty change now. ;-)  I begin to learn Perl, which is designed to be practical (easy to use, efficient, complete) rather than beautiful (tiny, elegant, minimal), exactly opposite to C.  I learned Perl because:
  1. It’s beneficial to the project I’m working on.  My project heavily involves text manipulation, for which Perl was originally developed.
  2. It’s beneficial to a PM.  Perl is efficient at building demo code to show prototypes.

It’s Kingword that pushes me to start my Perl career from such a poor script, a script less than 10 lines.  Before I upgraded from Kingword2005 to Kingword2006, I exported (one feature of Kingword) my NewWord list to a txt file whose format is defined by Kingword2005.  Then, when I tried to import them back to the NewWordPad of Kingword2006, it failed because Kingword2006 can only import txt files in a new format newly defined by Kingword2006.  It feels like the government persuade me to trade my gold for the currency, but some day later, the government issues a new kind of currency and the one I hold can not be used any more.

So I decided to fight against Kingword, by writing a Perl script transforming the old format to the new one.  I did and it works well. :-)

Managing windows.

Here, I’m talking about managing windows, not Windows.  Managing windows under Windows XP.
 
windows distribution
I still remember the time when I coded day and night.  If I didn’t use an IDE, under X Window, I need one console for the editor, one console to compile and debug, one console to edit the config file, one console to generate the test data, one console to run smoke test and check the log……  Luckily, the desktop under X Window seems always big enough, since there are Virtual Desktop Managers available.  I can launch/drag different windows onto different virtual desktops and switch among them quickly using hotkeys.
 
The good news is that there are also similar solutions under Windows XP, while the bad news is that they are not as good.  The Virtual Desktop Manager in PowerToys suite, which should be half-official, sucks in usability.  As always said, if you don’t satisfy the customers, someone else will.  "Deskwin" is the one satisfying me.  It basically has all the features I expected except being able to configure the number of desktops.
 
windows placement
In windows, generally speaking, the window obtaining the focus (active) must be the one on top, while this is not necessarily true in X Window.  So when working under Windows XP, I often run into the boring situdation that I have to resize the windows and drag them around to avoid overlap, so that I can work on one window yet read information on another.
 
Today, I just discovered a considerate feature of Windows XP to help me out.  Try this:
  1. Choose several windows (say 3 windows) on the task bar, by holding the <Ctrl> key and clicking the window buttons.  Once a window is chosen, it appears pressed.
  2. Right click one of the window buttons you chose, choose "Tile Horizontally" or "Tile Vertically".
The windows I want to see are neatly placed by a few clicks.  This feature is important to me, yet I feel sorry that it takes me so long to discover it.  Maybe I’m stupid, but being stupid should not pevent me from discovering a well designed feature, if it’s really well designed.  "No stupid customers, but stupid design".
 

Software Process Model in MS

Lately, we guys had some casual discussion about the Software Process Model in MS.  It’s an interesting topic worth revisiting and writing down.
 
Most projects in MS follow Waterfall Lifecycle Model.  Why not RUP?  Unnecessary.  Why not Agile Methods?  Unnecessary.
 
Agile Methods provide:
  • Satisfy customer early (continuous, frequent delivery of value).  – For ordinary users, does it really matter to get Windows Vista sooner or later?
  • Welcome changing requirements, even late.  – This is the crucial point.  The products of MS are all GENERAL solutions/services/platforms, ie none is custom-built.  So, why is it necessary to subject to serveral customers’ requirements change?
Agile Methods require:
  • Customers and developers work together.  – Impossible to involve all customers.  Extremely hard to select representative visiting customers.

But things are changing, escpecially in the most dynamic product lines, eg Windows Live.  Products in these fields exceptionally need to "Satisfy customers early".

To me, the most attractive Pro of Agile Methods is: "working software over comprehensive documentation". ;-)

Last but not least, the MS Nighhtly Build Cycle is the heartbeat of the project.  There is a huge incentive not to break the build.

开张

这是我的第二个Space。前一个主要写生活,这一个主要写工作。我喜欢把工作和生活分开,Space也只好如此。
 
在写东西方面,我非常非常懒。这个Space开了许久,一直没有勇气开张。直到前两天,有一个朋友用“牛人一般都不写Space”讽刺我,让我终于迫不得已鼓起勇气……
 
我急切地需要锻炼英语写作,而我发现在写生活的时候,用英语恰如其分的表达情感是多么的痛苦。此处既然写工作,就尽量使用英语自虐好了。
 
谢谢。