Water Reflection

Reflection idea entrepreneurship invest

Thursday, March 24, 2005

An inspiration from Dell

"Speed is critical in computer industry." Speed is critical in the information age. Information is like computer hardware, in general, the older it is, the less value it has.

"Such rethinking of operations lets Dell operate more efficiently than any other computer company." An important character of a mechanic is to improve every component of his career gradually and continuously.

Friday, March 18, 2005

The "How Good Can You Stand It" Credo

Work like you don't need the money.
Love like you've never been hurt.
Dance like there's nobody watching.

Thursday, March 17, 2005

This and next month

Every evening before you sleep is a time to summarize what you have learn today. Every Saturday morning is a time to summarize what you have gained last week and a time to brainstorm what you are going to improve next week.

If you haven't had this habit. What you can improve this week, next week and next next week is to form this habit of reflection regularly. Reflect when you am so relax and quiet. Reflect on your desires inside. Reflect on the actions outside.

Every month

Every month, commit to changing something. Meet a mentor. Read more. Complain less. Cut your costs. Cut your calories. Change something and then measure the change. Compare. Not against others -against yourself. Don’t make it hard work. Make it easy. Make it fun.

"I do not try to dance better than anyone else. I only try to dance better than myself." - Mikhail Baryshnikov

Thursday, March 10, 2005

Tools

Invest a considerable amount of time to choose your tools before you begin any work.

Monday, March 07, 2005

No overtime

"Working overtime sucks the spirit and motivation out of a team. Projects that require overtime to be finished on time will be late no matter what you do. Instead use a release planning meeting to change the project scope or timing. Increasing resources by adding more people is also a bad idea when a project is running late." Everyone needs time to "sharpen the saw".

About Functionality

What's recommended?
"Keep the system uncluttered with extra stuff you guess will be used later." "Turn a blind eye towards future requirements and extra flexibility. Concentrate on what is scheduled for today only."

But why?
"Only 10% of that extra stuff will ever get used, so you are wasting 90% of your time. We are all tempted to add functionality now rather than later because we see exactly how to add it or because it would make the system so much better. It seems like it would be faster to add it now. But we need to constantly remind our selves that we are not going to actually need it. Extra functionality will always slow us down and squander our resources."

Simplicity

Why?
"A simple design always takes less time to finish than a complex one. So always do the simplest thing that could possibly work."

How?
"If you find something that is complex replace it with something simple. It's always faster and cheaper to replace complex code now, before you waste a lot more time on it. Keep things as simple as possible as long as possible by never adding functionality before it is scheduled."

"Beware though, keeping a design simple is hard work." But it's worth it.

Iterative Development Plan - just in time planning

What to plan? "User stories are chosen for this iteration by the customer from the release plan in order of the most valuable to the customer first. Failed acceptance tests to be fixed are also selected."

How to plan?
"The user stories and failed tests are broken down into the programming tasks that will support them. Tasks are written down on index cards like user stories. While user stories are in the customer's language, tasks are in the developer's language. Duplicate tasks can be removed. These task cards will be the detailed plan for the iteration."

"Developers sign up to do the tasks and then estimate how long their own tasks will take to complete. It is important for the developer who accepts a task to also be the one who estimates how long it will take to finish. People are not interchangeable and the person who is going to do the task must estimate how long it will take."

"Each task should be estimated as 1, 2, or 3 ideal programming days in duration. Ideal programming days are how long it would take you to complete the task if there were no distractions. Tasks which are shorter than 1 day can be grouped together. Tasks which are longer than 3 days should be broken down farther."

Iterative Development

Just read a few great insights in eXtreme Programming:

"Divide your development schedule into about a dozen iterations of 1 to 3 weeks in length. Keep the iteration length constant through out the project." This is not only a divide-and-conquer strategy but also great in managing risk.

"Don't schedule your programming tasks in advance. Instead have an iteration planning meeting at the beginning of each iteration to plan out what will be done. Just-in-time planning is an easy way to stay on top of changing user requirements." This is a wonderful insight about project management in the modern age as user requirements can change quite rapidly.

"It is also against the rules to look ahead and try to implement anything that it is not scheduled for this iteration. There will be plenty of time to implement that functionality when it becomes the most important story in the release plan." This is the famous "put first thing first" used in project management.

But what if you can't finish the planned task during the iteration? Here's the answer: "If it looks like you will not finish all of your tasks then call another iteration planning meeting, re-estimate, and remove some of the tasks." It takes integrity.

Last piece of advice: "Concentrate your effort on completing the most important tasks as chosen by your customer, instead of having several unfinished tasks chosen by the developers."