News for hackers. Stuff that matters.
Re:Lessons Learned from Software Rewrites by mcpherrinm on Monday September 05, 2016 @06:26AM (#12429300)
The skill of going from potentially "wrong" requirements from non-experts into something engineers can deliver is one of the most important skills I've seen in technical sales people.

Customers have a problem to solve, and try to ask for something to solve that problem. Understanding the problem and proposing a solution (and a price) is how you get happy customers.

https://youtu.be/BKorP55Aqvg is a great example of how to fail at this. The "expert" totally fails to understand the customers needs, and instead gets hung up on bad definitions. He's supposed to be the expert in drawing lines, so he should be able to understand why they need them. You could say the customer is lying about their requirements, but they probably just don't understand them.

This goes for any customer/provider relationship - internal services, it departments, platform enginners. Not just selling stuff to other companies.

Re:Lessons Learned from Software Rewrites by mrob on Monday September 05, 2016 @07:05AM (#12429456)
I don't think it's a great example, because with a little creativity that "impossible" spec is possible:

https://www.youtube.com/watch?v=B7MIJP90biM

The customers might even be happy with it, because it would mean they wouldn't have to admit their requirements were stupid.

Re:Lessons Learned from Software Rewrites by wolfgke on Monday September 05, 2016 @07:39AM (#12429586)
> because it would mean they wouldn't have to admit their requirements were stupid

I personally prefer it to be instructed when my requirements are stupid (if there really is strong evidence that they are) since this way I can learn in a much faster pace to make good requirements.

Re:Lessons Learned from Software Rewrites by wolfgke on Monday September 05, 2016 @06:51AM (#12429405)
> You could say the customer is lying about their requirements, but they probably just don't understand them.

To build on the example from https://news.ycombinator.com/item?id=12428337: If another person says "MySQL" it is MySQL and nothing else. If they meant something different, he would say "data store" or give some non-technical description from which a technology-minded person can reconstruct what the person really wants. The same holds for the "submit button". If the person talks about a "submit button", such a button is meant. If he means something else, he would give a description, say "a user interface element which allows to send the data that I have inputted to the central data store such that [...] Choose the technology which is best according the current UI/UX guidelines.".

If I don't know what I want I give the information in a high-level way such that an expert can reconstruct/build the missing details. If I say some concrete technology that is an exact specification. If this is not what you want, it is lying. There is no in-between.

Re:Lessons Learned from Software Rewrites by sanderjd on Monday September 05, 2016 @10:34AM (#12430527)
Lying is when you relate something you know to be untrue. What you're describing is more like "confusion".
Re:Lessons Learned from Software Rewrites by Retra on Tuesday September 06, 2016 @03:31AM (#12434211)
Or maybe you don't know exactly what you want so you give examples demonstrating the salient features instead.