Thursday, January 19, 2012

拾遺•中秋

"此生此夜不长好,明月明年何处看"

光要拼命燃烧方能填上一屋静谧的亮
月在冰凉的夜才有满地婆娑的霜
我们卑微的身影渐长而短
我们耳语的细碎不及风声来回的奔跑

只有手
牵着牵着
就是别人的天亮
今人的喟叹

- 9/14/2008.中秋夜.自娛娛人短信

Tuesday, January 03, 2012

七絕.讀史

字裏黑白皆血色,
行間默默盡哀號。
承合起轉千家墓,
盛世天朝萬骨藏。

數稿, 2012.01.03 定

Monday, January 02, 2012

Test post from the blogger app for iPhone

Hello from the blogger app for iPhone, looks pretty good. I think I can start writing more with this convinient app.

But why the heck I don't have spellchecking... Sometimes work...

I'm watching FashionTV, let me try to post a picture, see if the image setting is properly set.

軟件開發流程第一講: 開宗明義 (綱要)

上週三去北京電視臺給他們開發團隊講了軟件開發流程第一課, 也是我們華美漢盛沉澱六年經驗的内部必修课之一. 綱要如下, 待閒暇時再擴展. 若條件允許, 則下次考慮錄下視頻放出. (Update: 完整版《华美汉盛 Adaptive Development Process 简介》)

1. What is Process?

Process is a set of rules, executable steps built from human mistakes, to mechanically minimize human mistakes.

(It's the mechanical part of human intelligence that runs the daily world; and the non-mechanical part creates art and ruins)

2. What is a GOOD Process?

A good process defines a minimum set of steps, each of them guards quality from a problem experienced before.

(In engineering world, anything you let slip away is going to bite you back, badly, painfully.)

3. What is Software Quality?

http://en.wikipedia.org/wiki/Software_quality
Completeness; Conciseness; Consistency; Effectiveness; Efficiency; Maintainability; Reliability; Security; Structuredness; Testability; Traceability; Understandability; Usability…

4. 估算与计划

- 估算时必须不受计划干扰, 以获真实数据
- Poker game 以估算
- 给定人数/时间, 团队的容量 (capacity) 便是固定的
- 当我们得到需求 "小球" 的数量与相对准确的 "大小" 估算后, 即可计划出在特定的杯子 (团队 capacity) 里能装入多少小球
- 当小球溢出, 即任务量超过团队容量, 需及时与客户沟通处理方法, 方向为:
(1) 减: 依轻重缓急减去非必要的需求至后期工程
(2) 加: 商量 deadline 是否是 hard 的或可调整
(3) 加: 加人 (则成本加)
(4) 加: 加班 (成本也实际增加)

5. Common Questions

(1) Do we have to apply every step of a whole process from the beginning?

No.

Depends on the team's engineering maturity level, comfort zone, and the team lead's confidence of process execution.
Improve your team's engineering maturity iteratively, gradually -

If your team doesn't even have source control before, let's start from the very basic thing - as the team gets comfortable with new practices, you can start trying/introducing more practices.

(2) Are there any guaranties that by executing every step of a process will eliminate all quality issues?

No.

It only guaranties the same mistakes won't be made again. As long as we are human, we tend to make new mistakes while the complexity increases, we'd better keep our minds open to learn new lessons and define new processes.