Often times, a client will bring to me a great idea and ask for an estimation. The problem is, for me to make a good estimation, I need to imagine the product from the back: at the last day of delivery, looking back to the project start, what happened? I need to also be able to see the product on that day. "How many buttons on each page and where did they go." All of this gets put into the estimation. Of course, you can imagine that many things catch clients by surprise.
Here's 5 things that I estimate for that clients may not:
5) VISUAL DESIGN
Actually, most clients don't forget that visual design needs to be done. In fact, getting the pretty pictures is usually their favorite part of the project (BTW, everyone thinks they're a visual designer. I am, too, of course). What they forget, though, is that visual design needs to be converted into code: HTML/CSS. Throw, on top of that, the functionality (dynamic drop downs, anybody?), and you're talking about more time that you just didn't see.
4) TESTING
Some customers don't understand why testing is necessary. Why can't the developer just test as they go? The reason is that in every implementation, developers make assumptions. Having a tester validates these set of assumptions, as well as ensures that the assumptions link back to the business process. Plus, sometimes after you've drilled the 1000th nail in, it's hard to step back to see the whole wall.
3) PERFORMANCE TESTING
Not to be confused with testing above, performance testing/tuning requires a whole different skill set. It's one thing to push all the buttons in your car. It's a whole other thing to test how fast your car goes. For some reason, most customers prefer to pretend there's no such thing as performance testing. I'll concede that a "new" site might not need as much speed as a large-scale one. Nevertheless, if it's slow, the fingers point to me. So I have to factor it in.
2) TWEAKS IN FUNCTIONALITY
Every client/product manager forgets something. It might be "what happens when 'more' is clicked". Or it might be "what happens when a browser is closed in the middle of a process". Or, it might just be "oh! I forgot this!". Clients also hate to hear, "no. That's out of scope." So, there's a buffer for these tweaks. The amount can vary (but shouldn't be zero), but it should be agreed by both parties. It also reflects how flexible the project manager should be toward change requests.
1) DISCUSSION TIME (AND RAMP UP)
When an engineer makes an estimate, they're usually thinking "the customer has told me 100%. This will take exactly 4.5 hours to build". However, there's more to development than coding. (a) Customers soon figure out that they only told 80% and still need to clarify more. (b) Projects have daily scrum meetings. (c) Developers need to talk to testers need to talk to Project Managers need to talk to clients. (d) etc. I've seen projects where clients have said "I don't need discussion time in an estimation" and ended up chatting with developers 3 hours per day. The reality is, a construction worker can't build a building in a vacuum. He needs to talk to, if nothing else, other builders. The same principle applies for building websites.
Anyways, this list is by no means exhaustive, but it's just some of the things I come across. In the future, if you're asking for an estimation and you don't see these things, you might want to ask your estimator 'why'.
Monday, July 19, 2010
Tuesday, July 13, 2010
The Benefits of Corporate Polymorphism
Lately I've been having thoughts about polymorphism. Let's get this straight, I'm not talking about the Object Oriented principle in Programming. I'm talking about good old-fashioned Biology 1A - Polymorphism. It's been decades since we've studied it, so here's a summary:
Sometimes a gene mutates and you see two different variants in the same population. The classic example is the peppered moth. There exists two types of peppered moth: white and black. The white camouflages perfectly with white trees, allowing it to avoid detection by birds. However, during the Industrial Revolution, there was a huge rise in the black variant. Why? Well, nobody knows for sure, but scientists surmise that the black peppered moth was able to blend in better with the polluted air (now, with cleaner air, the white one is making a comeback).
So, what does this have to do with businesses?
Variation provides great survival benefits to a species.
For example, a large chunk of my job is recruiting and doing this for a global company in China has huge challenges. With the wide culture gap between Chinese and Westerners, it's easy to feel more comfortable with one group or the other. Chinese managers are always pushing me to hire more Chinese employees. Non-Chinese are pushing for non-Chinese. Sometimes I wonder if its even possible to make both sides happy.
But, the reality is, its best if my company has both. For the best companies, diversity is the key to survival. In 2009, with the unstable economies in Europe and the US, we found that we were able to lean more heavily on projects in the local Chinese market. However, now in 2010, with things picking up again, we're finding ourselves shifting back.
Diversity is needed in the individual. I have found, that the more diverse in abilities an individual is, the more likely he/she can weather through fluctuating times. Take language, for instance. I've been quite strict about only hiring bilingual Chinese engineers - an unpopular decision with most at my company. "If their English is good, they probably didn't spend enough time studying technology!" "If their English and technology are good, they'll be too expensive!" "A Chinese project doesn't need English speakers! They just need developers now! I'd rather have a non-English speaker tomorrow than a bilingual one next month!"
Now, in 2010, I'm thankful that we focused on both. Having the diversity means that I can have an engineer working on a Chinese projects this week, and in Europe working with clients the next. Employees also recognize that having diverse traits, be it language skills, life experience, even hobbies, afford more opportunities more diverse experiences. A win-win to all.
More importantly diversity is needed in the company. The reality is, having a lot of different traits isn't easy to cope with. I'm Asian-American. That means, when I'm in the US, I'm Asian. When I'm in Asia, I'm American. In neither place do I completely fit.
Similarly diversity in a company is painful. It means that there's a lot of arguing, a lot of unexpected viewpoints, a lot of misunderstanding, and often times, a lot of hurt feelings.
However, diversity is also incredibly powerful. It enables us to generate innovative ideas. See things that we couldn't otherwise do alone (or even within our close community). And finally, humble us to realizing that even our most basic assumptions about how people think and act could be wrong.
Building a diverse company isn't for everyone. Authoritarian managers need complete control, and having wildly ranging viewpoints could slow things down. 'Mom and Pop' shops don't need a wide variety of skills.
However, if you can manage it, a polymorphic company fosters an environment where employees trigger one another to think differently. Long term, this not only stimulates its people, but also challenges the company to grow to unforeseen heights. A win-win situation.
Sometimes a gene mutates and you see two different variants in the same population. The classic example is the peppered moth. There exists two types of peppered moth: white and black. The white camouflages perfectly with white trees, allowing it to avoid detection by birds. However, during the Industrial Revolution, there was a huge rise in the black variant. Why? Well, nobody knows for sure, but scientists surmise that the black peppered moth was able to blend in better with the polluted air (now, with cleaner air, the white one is making a comeback).
So, what does this have to do with businesses?
Variation provides great survival benefits to a species.
For example, a large chunk of my job is recruiting and doing this for a global company in China has huge challenges. With the wide culture gap between Chinese and Westerners, it's easy to feel more comfortable with one group or the other. Chinese managers are always pushing me to hire more Chinese employees. Non-Chinese are pushing for non-Chinese. Sometimes I wonder if its even possible to make both sides happy.
But, the reality is, its best if my company has both. For the best companies, diversity is the key to survival. In 2009, with the unstable economies in Europe and the US, we found that we were able to lean more heavily on projects in the local Chinese market. However, now in 2010, with things picking up again, we're finding ourselves shifting back.
Diversity is needed in the individual. I have found, that the more diverse in abilities an individual is, the more likely he/she can weather through fluctuating times. Take language, for instance. I've been quite strict about only hiring bilingual Chinese engineers - an unpopular decision with most at my company. "If their English is good, they probably didn't spend enough time studying technology!" "If their English and technology are good, they'll be too expensive!" "A Chinese project doesn't need English speakers! They just need developers now! I'd rather have a non-English speaker tomorrow than a bilingual one next month!"
Now, in 2010, I'm thankful that we focused on both. Having the diversity means that I can have an engineer working on a Chinese projects this week, and in Europe working with clients the next. Employees also recognize that having diverse traits, be it language skills, life experience, even hobbies, afford more opportunities more diverse experiences. A win-win to all.
More importantly diversity is needed in the company. The reality is, having a lot of different traits isn't easy to cope with. I'm Asian-American. That means, when I'm in the US, I'm Asian. When I'm in Asia, I'm American. In neither place do I completely fit.
Similarly diversity in a company is painful. It means that there's a lot of arguing, a lot of unexpected viewpoints, a lot of misunderstanding, and often times, a lot of hurt feelings.
However, diversity is also incredibly powerful. It enables us to generate innovative ideas. See things that we couldn't otherwise do alone (or even within our close community). And finally, humble us to realizing that even our most basic assumptions about how people think and act could be wrong.
Building a diverse company isn't for everyone. Authoritarian managers need complete control, and having wildly ranging viewpoints could slow things down. 'Mom and Pop' shops don't need a wide variety of skills.
However, if you can manage it, a polymorphic company fosters an environment where employees trigger one another to think differently. Long term, this not only stimulates its people, but also challenges the company to grow to unforeseen heights. A win-win situation.
Subscribe to:
Posts (Atom)