Oct 18 2009

AAladdin.com (阿拉丁) is live

Published by xiaoming under Buisness,Howto,Tech

AAladdin.com is an agile organization transition framework that was created by me in order to help medium and large size company to transfer from current organization structure to an agile organization.

For details please check AAladdin.com (in Simple Chinese) and AAladdin.com/en (In English)

No responses yet

Jun 15 2009

Why estimate and measure?

Published by xiaoming under Tech

Estimation and measurement are two key activities in software development projects. Without them, it would be very difficult to make a project plan. Both Agile and lean use value-driven principle which means anything that are not working software would not add value to business. However if these activities are regarded waste and abandoned, obviously projects would go disaster. Why are they so important to software development projects?

  

Estimation and measurement are key information for project planning. A project plan is used for communication purpose. It puts project stakeholders on the same page so they know what might happen in the near future and what happened in the past. Estimation will give the “project plan users” an ideal time line whilst measurement gave them the real progress.

  

As both estimation and measurement are not working software so they would not add value to business how to spend as less time as possible in these two activities are apparently quite important. PLAN is also like a “product”, KISS(Keep It Simple & Stupid) principle will work here too.  Over design of this “product” will lead to waste.

  

For estimation, it depends on how accurate that business requires. Because estimation is more or less a “guessing number” and influenced by estimators’ skills and experience. So it is not easy to have a team of 20 to agree on each other of the estimation. One of the rules is not to spend more time in order to make estimates more accurate and make it “Just Good Enough”.

  

For measurement, use common unit, such as hour, day, point, profit, $ and etc. and ensure that it is easy to be understood and used.

No responses yet

Apr 26 2009

Design matters – London Marathon

Published by xiaoming under Tech

London marathon was held on 26th April 2009 and there were more than 35,000 people participated. Runners dressed up with all kinds of funny costumes, funny as hell. I saw at least 4 spider men, 3 super men, 2 bat men, sunflowers and etc. Of course there were professional athletes, especially women’s game. The winner of 2008, 2007 London marathon, Olympics medalists were all present. Zhou Chunxiu(from China), Olympic bronze medal Olympic 2008, campaign of London marathon 2007 was one of the strongest potential winner who ended up out of top 10. She was in the first group in the first 25km and in very good shape when she passed my front door on Westferry road. Unfortunately she fell behind right after the 25 km point.

There might be a few reasons that she lagged around that point(24 km) where I was. She was not able to pick up the energy drink that was prepared for her and put on a table under a big sign something like “Drink pick up-1″. I guess that she might have moreenergy and get much better result if she was able to pick up that small bottle of drink. I also observed that almost all Japanese athletes had no trouble to grab their drinks. If you look at these two bottle of drinks and read my analysis, you might know why the design of the drink bottle actually matter.

Chinese design drink Japanese design drink

Chinese design Explanation Japanese design Explanation
Easy to be seen Very poor No clear sign, the label was rolled up and too hard to be seen; The colour is not outstanding Very good Two clear sign and one can strongly differentiated against other bottles; Color is obvious and can be seen from at least 20 meters away
Easy to be grabbed OK There is a strap but the material is hard and sharp. It could easily hurt the athlete’s hand Very good Strong and smooth material strap with blue color which is shining. Easy and comfortable to grab
Easy to drink Very poor Has lid; the position of the strap and the bottle is awkward [see the picture below]; very difficult to drink Very good No lid; has straw; very easy to drink
Multi-function None Nothing, but a bottle please and encourage the athlete There are the athlete’s favorite cartoon character, and slogan to encourage the athlete overcome the tiredness. It makes her feel warm and encouragement

Check out the pictures below (demonstrated by my super model – Dapang ) and find out why the Japanese design is much easier to drink.

Dapang demonstrationDapang demonstration

So, you see the design of a simple bottle does matter and maybe matter a lot. Think of the design in auto-motor or IT industry, a small awful design might just ruin your potential big success which was established with millions of dollar and lots of hard work.

No responses yet

Mar 12 2009

Go Time & Material Model

Published by xiaoming under Buisness,Howto

What is time & material model and when it applies

A simple definition of “Time & Material” Model is that the purchaser exchange “material” with a service provider’s certain quantity of “daily rate”. The material could be a bunch of document which contains advanced management process, intellectual property, a piece of software or one side of well painted wall. The daily rate could vary from £20 to £8000 depends on how precious of the service.

 

This business model applies when scope, specification and implementation plans of a project are not easy to define at the outset, Time & Material Model becomes an attractive option. Under this model, you pay as per use of the hourly development efforts, making it the most flexible of the three models. [From http://www.continuum-systems.com/price-timeandmaterial.htm]. Time & Material business model is developed for long-term projects, where the total effort cannot be estimated in advance and the scope of work can vary during the implementation. [From: http://www.qarea.com/outsourcing-services/pda-time-and-material.php].

 

If compared with Fixed price model, which is ideal for projects with a detailed technical specification, Time&Material model is the best for scalable projects. This business model is highly efficient in case the project is hard to predict in terms of time and creative effort and in case the development process needs control and improvement upon each iteration. Thus, it allows for cancellation at virtually any stage of the development project[From: http://www.qarea.com/outsourcing-services/pda-time-and-material.php].

 

Corporation old procurement process

So Fixed price model is suitable for purchasing of a physical product or something that has fixed scope or feature. While Time & material model is suitable for purchasing of service or something without explicit feature during the contract negotiation stage. If you have a look at most of the corporation procurement process it is not difficult for you to find comprehensive and decent process for fixed price procurement which is for purchasing of a physical facility, a car or PCs. The problem comes along when corporations plan to purchase service such as consulting service or customized software. As they do not have a process that specialized service purchasing, they tended to use the existing one. So things started going completely wrong.

 

They just do not fit!

Think of that you plan to spend money on something which you have no idea what it is or you only know part of it. How could you decide how much you need pay for it. Decision should only be made with necessary concrete information you require. Clearly, there is no enough information for anyone to make a correct decision. Old software procurement model aligns with the old business model.

 

Low technology –> Business not change so much –> Fix scope/feature –> Fixed price model –> Waterfall software development model

 

I believe that you know how fast and unbelievable the technology and business grow. It is almost not possible to oversee and predict how your business look like in 24 months of time. So business requires a suitable model for software development service

 

High technology –> Business change very fast –> Scope can not be fixed or predicted –> Time & material model –> Agile, adaptive software development model

 

Change is inevitable

The world is not odd. Software development industry has grown from design and development of fixed feature product into customized enterprise application in order to provide better service and survive. So it is much more than just producing a physical product. It is service now. If you disagree, I will encourage you to give me one single example that there was no change of requirement in the development of any large scale enterprise application. I bet you can not. Requirement change is inevitable because business is changing. If your business does not change but others does, it is clear that you won’t be able to survive. Also there is no way to predict or imagine the change of requirement. So you need a more flexible and adaptive business model for this kind of procurement.

 

Solution

Probably you have already figure out the solution. Let me recap
  • Upgrade your corporation procurement guideline and process with Time & material model of service purchasing in it.
  • Develop or recruit professionals to manage Time & material project. It does require special expertise.
  • The key of applying this model is risk management and contractor performance management

 

Change it!

If you still use the old procurement model for service purchasing, you will definitely experience argument, displeasure and waste of investment. So why not change it?

No responses yet

Mar 12 2009

Who wants to be a product owner?

Published by xiaoming under Tech

Who wants to be a product owner? The answer is “No one”! What a product owner does? In an agile software development project, product owner is responsible for maintaining the Product Backlog by representing the interests of the stakeholders. So this person need work with different project stakeholders who might be from more than one business unit to collect and prioritize the requirement. The typical challenges are  

  • Difficult to coordinate business units and software development service providers to spend time together and figure out the high priority requirement.
  • Difficult to prioritize backlog across business units.
  • Normally corporation does not give enough support to product owner.
  • Business units ALWAYS complain that why their requirement could not be done first.
  • Etc
Ideally product owners should come from business because they are supposed to know business better than IT. Completely concentrating on business value without thinking too much about IT actually leads the whole team’s attention to business value. If a project that involves quite a few business units, ideally there should be someone either in business or IT who knows the business very well and have strong coordination and facilitation ability to take this role. Sometimes, this role was pushed to software service providers, it makes the job even more harder because it is extremely difficult for someone who is not in your corporation to coordinate business units to work properly.
The biggest problem is that because this job is so challenging and not well rewarded in the industry, no one really wants to do it or not so many people have the skills and experience to do it. So, does it mean there is no way out to solve this critical problem? The answer is “NO”. There are
  • Corporate management need understand the challenging of this job and give appropriated reward and support.
  • Business owners need to understand that if you want that your investment is well spent, if you want IT to develop what you actually need, you DO need spend enough time with product owner and software service provider to help them understand your business needs, requirement and problems.
  • Take the ownership, find or recruite someone within your organization to be the chef of your IT investment.
  • Product owner deserves very much respect and appreciation from corporate management and business units because this person is the most important ring of the whole business-IT chain.
After you have done these, there should be more people who want to be product owners who can manage your IT investment much better so that you would get the most return of IT investment.

One response so far

Mar 09 2009

My driving instructor knows agile

Published by xiaoming under Tech

My AA driving instructor Jason actually knows agile even better some IT professionals. I started learning “driving in the UK” from him about a month ago. After several classes, I found that he was a really good instructor and always put safety in front everything else. He even surprised me with his understanding of basic lean and agile principles. Let me tell the story.    

We had a class last Saturday, I was quite tired before driving so I could not concentrate on following every instruction or make necessary changes. So he stopped me and said that   

when you drive from office to home, you don’t need think of what will happen along the whole journey. As long as you go for the right direction you only focused on from where you are to the next junction or roundabout. The reason is that there is going to be change ahead so do not think of too much about too far away. Keep watch out what is happening in front of you. Thinking of mistake that you made would not help you to drive better when you are on the road. Concentrate making it right next time rather than thinking it over.

I was surprised because what he said sounds like an agile training session rather than driving lesson. Let’s have a look at how well his thought matches basic lean and agile principles

 

Jason’s thought Lean/agile principles and practices
Drive from office to home, go for the right direction Goal oriented, see the whole system, set a clear goal and direction
Focus on where you are to the next junction or roundabout Iterative development, focus on one iteration a time
There is going to be change ahead so do not think of too much about too far away. Keep watch out Change is inevitable. Continuously communicate and collect feedback, adaptively project management
Forget the mistake that you made when you are on road, make it right next time. Continuously improve the process and plan

 

It is very interesting when you see people from other industry or lead a complete different life actually have exactly the same understanding of how to do things right. I feel that it was valuable to pay a driving instructor’s rate and also get agile consulting service although I do not really need it :-)

No responses yet

Dec 05 2008

Ramsay’s Kitchen Nightmares

Published by xiaoming under Tech

Gordon Ramsay, a famous British food writer, business man and TV star. He stars in the Channel 4 series Ramsay’s Kitchen Nightmares which tells stories how he help some dreadful restaurants to come back to the business and win back customers. I watched the episode this Thursday, which was very impressive because I found that there were so much in common of what Gordon did in his show and what we did in our agile software development projects.

The show started, he walked into this rural Lancashire pub where he had found the landlord laying down the law in the kitchen and doing 120-hour weeks, despite undergoing a quadruple heart bypass, and had debts of £250,000.

It reminds me a failing project that was over spent and had people doing quite a lot over time but still did not seem to make the deadline.

Gordon identified some key problems and found out the root causes very quickly.

Problems Root causes
£250,000 debt Restaurant was running very inefficient, one person was the decision maker for everything.
No one could work in this restaurant more than 6 months Team was forced to taken order from the owner and no motivation and appreciation
There were many fancy plates, decorations that were not necessary and did not match Pub theme food Not customer centered and lack of communication with customer
People did not trust each other, there were huge boundaries between the manager and staffs. Lack of communication and integrity

Does it ring any bell to you? Yes, we had very similar problems in software development projects. Let’s look at a series of ways that Gordon tried to solve above problems.

  • Changed the menu that is simpler and customer centered
  • Kicked the boss out of kitchen and let other chiefs make decisions as a team
  • Got rid of those fancy plates which did not suit for the pub food theme and was not used that often
  • Strengthen what they were good at (Original puddings) as a brand and selling point
  • Encourage communication inside the team and with customers
  • Gathered the whole team to do stand up meeting and asked them to look back what they did right or wrong
  • Motivate the team, show praise and appreciation to the team, build good relationship between the boss and the team members

Gordon Ramsay played a very good project manager role in this game and he demonstrated many good software development practices by using agile and lean principles.

Problems Root causes Solutions and practices Principles/Methodologies
£250,000 debt Restaurant was running very inefficient, one person was the decision maker for everything. Change menu, make it simple and efficient, customer centered KISS, Lean(Eliminate waste), Value driven
No one could work in this restaurant more than 6 months Team was forced to taken order from the owner and no motivation and appreciation Kicked out the boss, team motivation and decision, self-organized team “Walk Out The Door”, People who do the work make decision, Lean (Empower the team), Lean (Build integrity in)
There were many fancy plates, decorations that were not necessary and did not match Pub theme food Not customer centered and lack of communication with customer Got rid off unnecessary stuffs, more communication with customers Lean (Eliminate the waste), User centered design
People did not trust each other, there were huge boundary between the manager and staffs. Lack of communication and integrity Stand up meeting, retrospective Agile, Lean (Eliminate waste), encourage communication

Running a business or managing a project might be very different between different industries and domains. However insight how to solve problems, there are methodologies and principles that could be used in common. Maybe it is because running a restaurant and developing a software are both professional service. I still remember that I benefited a lot from the experience of working in a restaurant when I started my IT career as a technical support engineer.

2 responses so far

Mar 15 2008

GOT & GDT

Published by xiaoming under Tech

Successful projects

There are varied criteria of determining if a project is successful. They are

  • Maximize the business value of project delivery
  • Deliver on time
  • Achieve the quality of the project(product/working software)
  • Achieve the margin, reasonable the benefit
  • Customer’s satisfaction
  • The team well developed and enjoyable
  • Good relationship with client
  • Reputation in the industry
  • and etc

It is not too difficult to define and work towards those objectives in the beginning of the project. However, two months later, how many projects were still considering the set of goals is what they were working for? Many teams only focused on several of them. If you were asked the question, why did you give up some of them? The answer would be very simple “No time!” I can not blame the excuses because the crucial judgment of a successful project is “Deliver on time”. The reason that we did not achieve all the goals in the end of the project is that we regard them individually, not looked them as one OBJECTIVE. And the even worse, team member might understand the goals differently, and work towards different directions. You might find, some objectives were partially accomplished. Partially done work is also considered as waste, even effort was hard made. Personally, I don’t reckon that a successful delivery is always the top one criteria to measure whether a project is successful. However, it is mandatory.

So how can we ensure that the whole team works towards the same goals, keep going and accomplish them in the end of project. You need GOT and GDT.

GOT stands for Goal Oriented Thinking; GDT stands for Goal Driven Team.

In general, we need the whole team think the project in a way of “Goal Oriented” and the project team should be “Goal Driven”.
It might be quite dry to understand the concept and where to start. Let me give a start point, thinking of the reasons of failure projects.

Reasons of failure projects

The reasons of failure projects vary case by case. They could be

  • Customer’s expectation is beyond team’s capability
  • Contract is much risky
  • Requirement changes too frequently
  • Lack of communication and feedback
  • Team does not have the same goal
  • Team does not focus on the goal
  • and etc

Nevertheless, if the team does not work towards the same direction, the risk would be much more increased. Sometimes, project managers felt quite frustrated that the project failed even they had the money, right people and kinda nice customers.

Behind the reasons, either the team did not have the same goal, or did not work towards the same goal. So how to organize the team to achieve the same objectives along the road of project and make a project successfully? We need GOT and GDT.

GOT (Goal Oriented Thinking) & GDT (Goal Driven Team)

In order to make it more clear and transparent to my readers, I organize my thinking into five aspects(In pink). In each of them, there are solutions(In green) and tools(In yellow) to achieve the objectives of “GOT and GDT” through the whole life cycle of a project. Several solutions can also map to our daily business activities(In blue).

GOT GDT Free Mind diagram

There are also relationship between Solutions, tools and activities. For details of this diagram please view here.

Goal Oriented Thinking

In the beginning of a project, not everyone in the team might know what exact goal of this project. So first thing, a project manager need to do is to figure out “Goal for small and big team” and clarify them, put them in a place that is visible to the whole team all the time. Then a PM still ensure that all effort which the team makes is for the goal of the small and big team. PM is responsible for drafting and finalizing the goals. I will talk about this in the “What a manager/Lead should do”section. Sometimes, you work in a small team which is part of a big team. PM need to let everyone in the team know the goal of each team. In most of the cases, small team has more goals than the big one. Make sure to balance them across teams. Team member could have objectives for himself. Make sure PM has the interviews before you draft the goal of a team, considering their personal objectives and balance it. After a goal or set of goals is finalized. It becomes the goal for a whole team. So It is OUR goal but for individual. One team One Dream.

Goal Driven Team

GOT

When you have a team which has the same goal. Next, make sure team member continue working to achieve it. To build a GDT, first thing, let everyone in the team understand it and ask them how they can do to help the team and himself to achieve the goal. PM can make it as several action items for teammates every other week. Then in the end of each two weeks, PM can evaluate individual performance against goal/value. It is not a good idea to have a performance review in the end of each year. Because no one would actually remember what a team member did well or not. Why not divide them into each very small trunk and evaluate them.

A pull system is a good tool in order to achieve the goal for a team. After we have action items for individual, you don’t have to push tasks to them, all you need do is get the tasks ready and ensure its visibility. Team member will self-organize to pick up tasks in order to accomplish team goals and his personal action item.

To build a GDT, PM should make sure that you get the right person on board. If anyone who always have different understanding of the team’s goal or can not work towards it. He might suit for the other projects but this one. A PM need to recommend him to another team or resource manager in this case.

An organization has her own visions, objectives and targets. Our ultimate goal is to align the team’s objectives with organization’s vision. Only a Goal Driven team can make this easier.

Transparent Team

GOT

Even, a GDT is right there, we can not take for granted that a team will never change. Team member need to know everything in the team. The team shall be transparent to all sponsors, customers, users and team member himself. It does not limit to visibility of the plan, progress and risks but the business plan. Why business plan? If a team member does not know it, he won’t know how valuable his effort is. If team member don’t know it, he would not know whether what he is doing is waste.

Business process diagram

Another thing, every project need pay more attention to, let the team see the whole system but his individual area.There are several tools that we can use to help. Business process diagram of the whole system is always help. Each small team may highlight his own part.

Sometimes, developers focus on individual functionality/story, rather than the whole business process or the system itself. In the middle of project, some team keened to make large amount of code refactoring. There are many reasons that lead to the smell situation. One of them is that developers don’t see the design for the whole business process or system. The diagram here shows how stories map to the business process. Why not hang this diagram somewhere everyone can see it?

For project plan and progress reporting, I recommend several tools, such as “S-curve”, “Burn down and burn up Chart”, Kanban or story wall and task wall

What we did was not enough. 10 minutes technical knowledge sharing should happen everyday. One minute talk is another useful tool for the team to practice communication skills. We can do more. Get the lessons learnt visible to the whole organization and require feedbacks. Open discussion, more communication helps the team more transparent.

At the same time, the team has the reporting material for senior management team. No extra work is needed. Someone said that “Reporting is only for bosses”. Not all true! Bosses need see what is going on in each team, meanwhile every team member need know this as well. They should see the same page.

What a manager/lead should do

GOT

I have been talking about what a manager/lead should do in the previous sections. Personally, I don’t like separate managers and leaders into two groups. Nowadays, managers do not only control schedule, control cost and etc, we also set directions, develop resource, align people and Enable motivation.

First thing, a manager should do is to draft and finalize the goal for a team. So what is the goal composed of?

  • Contract and deliverables
  • Margin of the project
  • Individual career development
  • Organization vision
  • Customer expectation and satisfaction
  • Team’s enjoyableness of the project
  • Business development’s strategies
  • Reputation
  • And etc

This is how a project goal composed. Think of its balance and compromise then, explain it to the whole team, answer questions and reach individual’s understanding.

PM and the whole team need to highlight the goal in any occasion, such as meetings, activities, requirement discussion and etc. Whenever you observe an activity that violates the team’s goal, anyone should stand up and let the people know that they might be going to a wrong direction. The team shall consider those behaviors as waste and eliminate them right away.

In summary, project manager need focus on removing road blocker, providing any possible service to the team and at the same time guiding the team to a correct direction.

For HR team, it is a good way to measure people’s performance referring to if individual worked for the team’s goal and how much value that each team mate contribute .

Goal is not everything

Not everything

How do we deal those good ideas that are not associated with our goal?

Please don’t ignore or throw them away . Offer another place for those good ideas and encourage the team to develop the ideas into a real thing in non-project time. I always believe that the innovation is the key of successful business.

Summary

In summary, combine the goals of organization, project and individual into one GOAL, as OUR goal. Help the team to work towards the same direction in order to achieve the same goal which will make you a successful project and successful business.

4 responses so far

Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 United States License.