Most of a Product Manager's business life is spent in avoiding problems. However, in market research he has to eagerly seek out problems. Problems are very strong motivators of consumer purchases, and customer buy-in's. People will buy something they believe will solve a problem that afflicts them.Problem detection studies are often quantitative surveys designed to define problems in a category and then rank them based on intensity (How bothersome is the problem), frequency (How of the does the problem occur), duration (How long does the problem last), and preemptibility (What is the extent to which currently available products can solve this problem).To discover needs and ferret out problems, a nice PM conducts surveys and asks questions. He may also arrange to actually watch a process, whether that process is machining a precision part, mowing the lawn, opening a bank account, or designing a mobile application. By studying the process, he identifies gaps, needs and more importantly, problems!There is a catch here, instead of looking for ways to arrange work processes so that they are more efficient, our nice PM is looking for ideas about new products that will appeal to consumers by making tasks or processes easier, more efficient, more pleasant, more profitable and so on.Talking of task and process observations, they should be combined with questions:1. Ask the potential customer to list all the tasks or steps involved in this project.2. Ask him to rate the steps from pleasant to unpleasant.3. Ask why he finds a given step pleasant or unpleasant.4. Ask if, why and how he would would like the step, task, or process changed.We have to however remember that market research is a technique to be 'used' and not to 'rely' upon. The bad PM (like David Ogilvy remarked in Confessions of An Advertising Man) starts to use market research like a drunkard uses the lamppost, for support rather than for illumination.

Some product managers are control freak, and some are too cautious. Those are bad fishes in my opinion. Teams that work in agile style, developing new products must be working close with the customer. There could be instances where a team is newly formed and folks do not have much know-how about the attitude, way of life etc. of customers. The bad fish PM if given this situation does the following: 1. Runs short sprints, like 1 week. And here is the bad part - he claims that since he doesn't have trust in the team, he can't afford to lose control. 2. Although the team has good and proven experience in software engineering (although not in the current domain), they are NOT allowed to talk to customers. 3. All requests from customers come via the PM. (ok, this could be fair). If developers have doubts or questions, they have to ask the PM, and he decides when and how to take those queries to customers. 4. He yells in some meetings "I know the customer, I know what he wants! Do what I say." 5. No single soul in the development team, yes no one, knows who is the customer. Forget about what customers do and where they are! 6. PM arranges a face to face workshop with customers and does not take any developers/testers along. Do you think this team (which is composed of experienced guys who could be new to the system) can ever grow, emerge and delight the customer?

Problem Statement Subway trains can move people quickly from one station to the next. It is known that the distance between two consecutive stations is length meters. For safety, the train can't move faster than maxVelocity meters/sec. For comfort, the absolute acceleration can't be larger than maxAcceleration meters/sec^2. The train starts with velocity 0 meters/sec, and it must stop at the next station (i.e., arrive there with a velocity of 0 meters/sec). Return the minimal possible time to get to the next station. Definition Class: Subway2 Method: minTime Parameters: int, int, int Returns: double Method signature: double minTime(int length, int maxAcceleration, int maxVelocity) (be sure your method is public) Notes - Your return value must be accurate to within an absolute or relative tolerance of 1E-9. - If the train's speed at time 0 is v0 and the acceleration is always a, then at time t the speed will be (v0 + t * a) and the train will be (v0 * t + 0.5 * a * t^2) away. Constraints - length, maxAcceleration and maxVelocity will each be between 1 and 1000, inclusive. Examples 0) 1 2 10 Returns: 1.4142135623730951 maxVelocity is very large. So the train can keep speeding up until it reaches position 0.5. 1) 1 1 1 Returns: 2.0 2) 10 1 1 Returns: 11.0 The train reaches its maximum velocity after 1 second, while traveling 0.5 meters. It then travels the next 9 meters in 9 seconds, and takes 1 second to decelerate to 0 m/s while covering the final 0.5 meters. 3) 1 10 1 Returns: 1.1 4) 778 887 384 Returns: 2.458961621570838 5) 336 794 916 Returns: 1.301036207838119 This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2003, TopCoder, Inc. All rights reserved. public class Subway2{ public double minTime(int l,int a,int vMax){ double t,t1,t2,v,s; v=Math.sqrt(2*a*l); v=Math.min(v,vMax); t1=v/a; s=a*t1*t1/2; t2=(l-2*s)/v; if(l>=2*s) return 2*t1+t2; return 2*Math.sqrt((double)l/a); } }