Talk – A software of quality journey
讲稿@
http://libaocun.com/wp-content/uploads/2009/07/Journey.ppt
Code @
http://balionweb.googlecode.com/svn/trunk/SoftwareQualityControl/
讲稿@
http://libaocun.com/wp-content/uploads/2009/07/Journey.ppt
Code @
http://balionweb.googlecode.com/svn/trunk/SoftwareQualityControl/
Finally, I delivered my first talk. Kind of excited, you can imagine.
PPT can be found @
Let me know what you think of it.
Update
This article was originally posted @ http://blogs.msdn.com/bali_msft/archive/2009/06/02/my-pm-talk-in-sjtu.aspx
All great designs come from deep understanding to customers. In my case, I’d like to design the email service for information workers(IW) as I am one of them. Basically they are hired to get things done. Modern projects, or tasks in smaller granularity, are getting too complex to be accomplished individually. So people have to work together – we call it collaboration. Consequently they have to communicate. They are forced to communicate. Email solves the problem of logistics and synchronization so that communication could happen between different time frames and locations, so it is still indispensable currently. But it is far from perfect, sometimes it is a trouble. Can it be done any better? Let us have a try. This new thing is called Pmail.
First of all, let us keep in mind that tasks are actually what IWs really care about. They are much happier if they can complete assigned task without touching emails. Right? Completion of tasks is what they are trying to achieve. Second, when they have to communicate, they care about distilled information they are expecting while writing/reading emails. You will not get any additional credit through presenting your idea by writing a poem. Senders and recipients come last. Without them, communication can’t happen. These two entities get lower priorities because if distilled information can be gained by other means, say search engine or anonymous DL, who cares them?
Again – email for IWs is all about tasks, not messages. This is the most fundamental philosophy differentiating Pmail’s design from others.
By nature, current email systems allow one sends anything to any number of persons at anytime anywhere. Gradually it turns out true that something that can be anything can do nothing actually. Theoretically any email should be of your interest; otherwise sender will not send it to you. Realistically it is so easy to be over-used:
Pmail’s primary design goal is to help team get jobs done efficiently – under right timing, priorities, order and resources. Everyone would have a clear picture about how his work contributes to team success.

Pmail would also aim to minimize communications as much as possible. Leave users alone please. In task-centered email design, all emails will fall into one of below four categories:
|
Category |
Description |
Example |
Your Action |
|
FYI |
There is no immediate impact to any tasks in your plate at this moment |
High level org changes announcement Knowledge sharing News letter |
No – No immediately action required |
|
Catch the ball |
Someone requires you do something to unblock his task(s) |
Sign Off request Fix broken printer Mandatory code review for check in |
Action required – Do something and then back to requester with results |
|
Here you go |
Someone provides you what your task(s) require |
Approval letter Team member phone number collection table |
Action unblocked – You are ready to go complete specific task(s) if all dependencies are resolved |
|
Collective efforts |
Someone needs your inputs for task(s) he is working on |
Execution plan review Brainstorming |
Best efforts – do what you can to provide inputs |
Persona/User scenarios
Key scenarios that Pmail addresses include:
Bird view will look like above diagram. In following task view, you can see all mail threads about one task are at your finger tips.

Mail view will also a bit different. Every mail has a TaskID field to help you get the whole context conveniently.

In addition to biggest differences we covered before, you might also get excited when seeing below features.
I am interested in your thoughs on it. Let me know. Thank you.
Nowadays software is getting so complex that it needs incredibly more and more people to build it. For example, there are 9000 engineers working on Vista simultaneously. In certain sense, you can call that it is a labor-intensive industry. Ideally, it would be best to put all people in one place; however there are also lots of sound reasons to build global development teams.
Why bother to build global development team?

Like many other things, challenges always go with benefits hand in hand. You can’t take only part of it. Fair enough.
There are several factors playing critical role in deciding appropriate distributed development model. At least you should consider project type, team seniority, team size, team culture, communication cost and history.
Fast Company recently published its version of the world’s top 50 most innovative companies. Although I would question why Intel is among top10, what surprised me most is the fact that Hulu is listed #3. I know there might be political things about the particular order, as it goes with most ranking, but it would be also interesting to find out “why Hulu, not others”.
Origin
Hulu, an online video streaming company, managed to do something which YouTube failed to do. Copyright is one of YouTube’s headaches, but it is incredible positive thing for Hulu, because it is built intentionally aimed to server property content by two major stream media dogs, NBC Universal and Fox.
{YouTube, watch someone’s DIY video} VS { Hulu, watch TV & Movies online legally} -> Similar but different market niche.
People might be asking, why NBC and Fox executives don’t rely on YouTube to serve their plays? You can imagine following conversation which probably happened behind the scene:
|
NBC/Fox: |
Hey, YouTube, are you interested in serving my video to the world? |
|
YouTube: |
Why not. Let’s sit down and take a look at this. Now we are owned by Google, and we are overwhelming dominator in online video market. We have great brand. We have great infrastructure. We have most talented engineers. Blabla… (down to the point) so you have to pay x dollar for every minute show. |
|
NBC/Fox(think): |
uh-um… let me do some math here. Plan A is to work with YouTube, plan B is to build up something myself. In next 3-5 years, if everything goes as predicted, plan B will bring much more money to our shareholders than plan A, and less risky. |
|
YouTube(ping NBC/Fox): |
What do you think of the plan? |
|
NBC/Fox: |
Nice plan, but no, thanks. |
This is the first site who delivers property video to your computer for free. Traditional Media Company gradually realized that they have to embrace the changes if they are not able to prevent them. It is online streaming, in this case. Hulu has more than 120 sources now.
Key is property content sources are nonrenewable rare resources.
Independence
Hulu’s CEO said to capital angels, “I don’t think you’ll be seeing the name Fox or NBC on the site hardly at all, Hulu is about the shows, not the networks. The shows are the brands that users care about.” Another quote, “the key to Hulu’s success is its freedom to operate essentially as a stand-alone company…”
From startup’s perspective, captical can be good thing, or bad thing. It can help you grow much faster, but it can also easily enable you miss your initial goals. Capital often appoints some seemingly smart guy, who is with XYZ MBA degree or n years of experience in ABC company, to take over the company as one of its investment agreements.
That is indeed one of the worst investment risk controls, although it happens again and again. Give money to most passionate guys, and letting them be passionate always is the only way to maximize the probability of getting most out of your investment.
Feature?Solution? Experience!
Question: If you are given a task to build a video streaming site within less than 3 months, what would you do?
We were taught this way:
1) Identify who will be using your site
2) Draw use case diagram
3) List scenarios for each user role
4) To support each scenarios, figure out needed features
5) Design/Code/test your features
6) Go live
7) Yeah! Party! :- )
If you follow this in your next interview, I can almost guarantee a pass. Do we miss anything? Actually we missed most critical one – Experience! Experience is a combination of brand/feeling/easy-to-use/enjoyable process. For example, given below requirement:
“Design something which is used to sit on, commonly for use by one person. It often has the seat raised above floor level, supported by legs.”
People will respond immediately, “Chair!”. You may notice that there are at least hundreds of types of chairs in the world, if not thousands of, if not millions of. Only most imaginative ones who deeply understand that particular set of users’ needs, care about their feelings and eventually apply those into product designs can do the best work. Let us take a look at “art of chair”.

Be COOL, in show time, although you might have the similar hard time figuring out what some of them really are.
Just like someone said about iTune – “iTune is not selling features. iTune is selling experience.”
1) Simple
2) Larger screen
3) High-resolution video
4) Clutter-free
5) Quality control
6) Free to users
7) No download
Obsessed with users