Ask Slashdot: How Best To Teach Programming To Salespeople?
First time accepted submitter greglaw writes "Our company makes development tools, meaning that all our customers are programmers. If you'll forgive the sweeping generalization, on the whole good programmers don't make good salespeople and vice versa. However, it's important that our salespeople understand at some level the customers' problems and how exactly we can help. The goal is not to turn the salespeople into engineers, but just to have them properly understand e.g. what the customer means when he uses the term 'function call.' Most of our customers use C/C++. Does anyone have any recommendations for how best to go about this? Online courses or text books that give an introduction to programming in C/C++ would be great, but also any more general advice on this would be much appreciated."
Really, it's not that complicated. You want to hire people who have programming background, but weren't interested or talented enough to pursue that full time. And they need better social skills than the average software engineer.
That's all. You can't turn a PHB into a good salesman for a product he can't understand.
...objects can be thought of as wrapping their data within a set of functions designed to ensure that the data are used appropriately, and to assist in that use(1)...SQUIRREL!
I wouldn't even try.
Sales people need to be adept as selling a business story and should be able to talk to project managers and other budget holders about the business benefits of investing in the tool.
The conversation with the programmers is key and important to making the sale -- but's it a different conversation about the job benefits of using the product.
So you need to go in two handed -- a business focused sales professional and a technical pre-sale consultant.
You either need a sales engineer that goes along on calls with the sales people, or simply just send some of your developers out to do sales...
Are you sure sale people will be talking to programmers directly?
It seems very unlikely you can train a sales guy well enough not to enter a giant "uncanny valley" of terminology for any real programmer they would talk to. You have no idea how much that puts of programmers at companies.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Ideally, you want to give them a problem to solve that they understand. For instance, have them develop a simple contact management application or sales lead database..
From this point, you can provide them with help and training as needed. Perhaps have them work in pairs.
If they refuse to learn, then perhaps they should work somewhere else.
If you need web hosting, you could do worse than here
Your company either does NOT understand sales people or what it takes to be an engineer. Sales are they to create a relationship with the customer. They usually have ZERO cred on tech issues. Have an engineer partner with the sales guy and team sell.
Give up now, it is impossible.
Your best bet is to go find the best Sales Engineers you can, the ones that don't just know the product catalog and can do a demo but who can install, customize and code integrations while providing solutions, solving problems and essentially doing the salesman's job for him.
Those Sales Engineers are rare, but they are the ones who can turn into what's sometimes referred to as a Technical Sales Specialist: a Salesman who can be their own Sales Engineer. Find someone like that and they will be able to sell to programmers.
First came SlashBI, now comes Slashshot!
Pair someone with strong programming skills with someone with strong sales skills. Lots of tech companies supplement their sales staff with "sales engineers" who know the technology. It's not unusual, and many IT organizations are impressed to have someone with expertise sent along with the sales people.
Insanity is a gradual process; don't rush it.
A chair and a whip.
In other words, to answer the question: you teach sales people the same way you teach anyone else. Some can do it, some can't. You'll find out soon enough. But salespeople, who understand the sales process, will be the ones you want if you're developing software that salespeople use in the field.
It's true for any industry. Designing software for airline pilots? Hang out with them and see what they want and need. Go back and code it. Done.
Which word didn't you understand?
I can see you may not be very familiar with corporate sales.
Sure all of the people using and even buying what they are offering may be programmers... but that does NOT mean they are the only people at the company you will talk to about a purchase, in fact there are usually business owners that have to OK expenses too and need justification/reassurances. The sales guy is there to make them feel comfortable that buying your product is good for the company.
In fact the very existence of sales people in the equation straight up says that somebody will non-technical will be talked to at some point, or else they could simply market over the internet. You do not need sales people for something programmers would buy directly, like a book or a really cheap text editor.
Thus, both a sales engineer and a sales person are required if sales people are needed but they are selling to programmers.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Robert Heinlein said it best: Never try to teach a pig to sing; it wastes your time and it annoys the pig.
As mentioned elsewhere, there's not much better than having Real Engineers go on sales calls, too, to answer the technical questions. You can teach salesmen all you want, but they won't be able to fake the insight gained through experience.
All salesmen should have some familiarity with the industry they're marketing to, though. They should have an understanding of how a programmer's mind works, and how your product makes the customers' lives better. For that, I recommend BASIC more than anything else. Not VB, mind you, but good ol' BASIC:
Once the run-through with BASIC is complete, you can expect the salesmen to understand how to read a simple (and commented!) program, and work out what it does. Show them equivalent programs written in C, C++, and BASIC. Be sure to point out how your product makes life easier, and show how a competitor (or Notepad) doesn't, tying in the lesson with the ultimate goal of making better salesmen.
You definitely won't be producing any great programmers, but you'll give them a glimpse of the mental juggling we do. They'll be able to recognize common use among customers, and possibly even impress a few with their knowledge. That's enough to significantly improve their relationship with the potential customer.
You do not have a moral or legal right to do absolutely anything you want.
On a prior engagement I was part of a team of people charged with training Sales people on a CRM application. I was probably jaded going in, seeing as I have a general distain for sales people of all types, but my experience there was that most of them had the attention span of a fruit fly. Gregarious, type A, call them what you like but those bozos couldn't pay attention for more than 5 minutes. Fucking Blackberrys going off all the time, stepping out to take phone calls in the middle of class, you name it. They were like a bunch of Kindergarden kids with too much sugar in their systems. Needless to say it wasn't the most successful gig I've even been on. I hope you have better luck that I did. Never again.
I gave up system level programming as a career since I was tired of my hobby and career being the same thing... it meant that for the last 30 years of my life (I'm not that old.... just started young), I have spent a minimum of 8 hours a day 7 days a week... often on vacations too in front of a screen and with no social life. I moved into teaching Cisco networking which I'm finding to be really fun and fulfilling.... I have had insanely good results... I am teaching my fourth course this week and so far I'm already setting new records for evaluations at the end of each week since I have a real passion for it. And oddly, I am making more money (2-3 times as much) as I was making when I actually made Cisco products Doh!
:)
That said... I spend a huge amount of time trying to figure out how to teach topics that are "advanced computing" related to people who need it fed to them in small words and made as simple as possible. I create analogies for things like understanding binary by making an imaginary currency called Binaries (sounds like dinaries) which come in coins starting at one and doubling for each denomination and ask them to make change and put the coins in the proper drawers (which happen to start empty) of a cash register without using the same coin twice. When you remove the math aspect from it and make it a simple task which they have done each time they visit a new country with a new currency they stop being afraid of it and move on.
Programming is often easiest to teach to non-programmers by asking people to "write a program" telling someone how to get from the airport to their house. Things like "If Shell gas station on opposite corner from me and hours of opening are from 6am to 11pm, then turn left". To describe functions, I would ask them to place each actual part of the directions on separate page of a document... mix them up and then on a single page, create a master document which refers to each page as a function to produce the program flow. Do the same with making dough for bread... "Kneed bread violently for 10 minutes"... "If the dough has dried out... add a sprinkle of water." "If the dough is too moist or is sticking to the cooking surface, add a little flour", "Repeat previous two tasks". "Loop back to the kneeding process if the dough has too many bubbles". etc...
I think two hours of this kind of instruction at lunch is enough to teach structured programming. Object oriented programming would require a much longer post
I wouldn't even try.
Sales people need to be adept as selling a business story and should be able to talk to project managers and other budget holders about the business benefits of investing in the tool.
You can't cure willful ignorance. If a salesperson actually gave two shits they would pick up a book and learn basic programming skills on their own.
Why not try the same strategy that helps today's programmers constantly learn new languages, libraries, version changes, etc: if you don't keep up... you lose your job to someone who can. It seems to light a fire under the ass of IT people.
In my company we used a Python book, "Learn Python the Hard Way." Gave out assignments of 1-2 chapters a week, and had them return the typed in program. It's simple enough that anyone can figure it out, and have a basic understanding of functions, programming logic, etc.
A good book for learning C is The Absolute Beginner's Guide to C. It explains things simply enough that anyone can understand C. You can do it the same way, maybe have a contest and give out prizes to the first people who are able to reach certain goals.
"First they came for the slanderers and i said nothing."
Yes, thats how it is in EDA industry.
The "requirement" bit is mostly done by the AE or Product engineer, who knows the product.
Sales guy job is to
1. Arrange for an EVAL, i.e, get a foothold in the customer
2. Post EVAL, negotiate a deal
Unfortunately, many other tech vendors do not follow this route.
My Aurora : http://www.youtube.com/watch?v=o91ZsGwJYyg
FB : https://www.facebook.com/TanveersPhotography
The poster is obviously not a good programmer because a good programmer can program in any language and talks in pseudo code to avoid getting trapped in language semantics and workarounds when discussing a concept rather then actual code.
Teaching sales staff C/C++ is way to deep. Teach them coding concepts but not an actual language. Hell, you might change language and then all your sales staff would need retraining.
As for training failed programmers as sales people. Congrats you just made sure every project you get will have been masterminded by someone who thinks he could do it better.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
This sounds like a question to the Internet Oracle
http://cgi.cs.indiana.edu/~oracle/index.cgi
The Internet Oracle has pondered your question deeply. Your question was:
> O Oracle, great and all the rest
>
> how do you get sales people to learn programming?
And in response, thus spake the Oracle:
} You offer a commission.
}
} you owe the oracle a piece of informaion that is correct but unhelpfull, yesterday's weather for example.
As of Postgres v6.2, time travel is no longer supported.
Unlike others here I don't think you should fire your sales staff and let the tech people handle all the talking. It's not realistic and it's not efficient.
Instead, let the sales people know their limits and when they reach them while talking to the customer, let them propose to organize a meeting between the potential customer and a developer. Have them say "Look, I'm not a coder myself so there's only so much I can tell you about the details of our product but if you are really interested, you could talk to one of our developers."
I love to hear that as a customer - I can tell when a salesperson is out of his/her depth and it's great to see they realize it and are open about it.
Have your developers do consulting duties where they do these kind of talks - you'll have to coach them a bit about what to avoid when talking to a customer - but unlike teaching your salespeople how to code, this is doable.
You can also push the limits of what the salespeople understand up to a point - you'll have to discover what that point is for yourself - after that it's a waste of time and money. You can probably make them do some simple hands-on on coding just so they see what the difference is between code and a binary and how you get one from the other and such things.
I am sorry, but communication skills aren't key here. Key is understanding what the *client* wants, instead of what the *developer* wants. I have seen many clashes between sales and software development and they all boil down to this:
Sales: "we need function XYZ in our software"
Developer: "no, we don't, it's useless, besides he can use tool ABC to flurb the snugger and be done with it"
Sales: "but the client asks for it"
Developer: "the client is a dumbass"
Sales: "he pays your salary"
[developer walks away and implements XYZ, but only against his will]
Both development and sales are serious skills and succesfull business manage to do them both right and in the correct balance.
-- The Internet is a too slow way of doing things, you'd never do without it.
To quote from Wikipedia
Myers-Briggs Type Indicator
The use of the Myers-Briggs Type Indicator as a predictor of job success has not been supported in studies,[15][16] and its use for this purpose is expressly discouraged in the Manual.[17]
Another case of HR pretending to have a scientific basis for predicting job fit to a profile, and totally missing the point of the original question. Presumably these guys know how to get the sales people they need, but realize that they need to speak the language of their customers.
I would suggest that the best way to train sales staff for any technical product is to take the best communicator from your technical staff and get him (or her) to run a regular seminar on the product, explaining the kind of problem the product is designed to solve and how the customers are likely to use it. Over a shortish time, the seminars will get better and you might even find that involving more techies actually improves the sales and the product.
nec sorte nec fato
When I was an employee I doubted that salespeople were doing a work worth more than what programmers did. They told me I was naive. I became freelance and had to do the sales work. It is really as simple as it look : Meet clients, organise meetings, eat food together, sign contracts and hassle them when they don't pay. Being the programmer of the product gives you an incredible edge in negotiation though : Normal salesmen talk about the advantages of a product without understanding anything about what they say. They sometime sell features trying to guess how hard it is to get them done. Being an engineer really gives you an edge. You know you struck gold when a small feature can be sold for 10 times what it will cost you.
The Wise adapts himself to the world. The Fool adapts the world to himself. Therefore, all progress depends on the Fool.
Reality: customer actually wanted DEF. Sales guy just didn't understand what customer said. Developer spends 50% of time developing and supporting unwanted feature.
Most of the people I know who quote or use the Myers-Briggs for job placement cheated or gamed the system in the first place. They read up on how to answer the questions to get the result they wanted. They they said see, I am a natural leader. We did this where I work. It was very odd. All the 'natural leaders' types sucked at getting anyone to do things. Work sucked, people hated going to work. Not many people would openly say they liked the bosses. Over time those people left and were replaced with the team player people in leader positions. Now everyone gets along. Work is a good place to be. We get more things done.
Yes we could have just left, but not everyone can or wants to pack up the family and move. The other job offers were for less money or required a move. The Mrs. (aka the Boss) did not like the areas where we would have moved too. Being a weekend father is not my thing.
A salesman needs two skills. One is the ability to sell, the people skills. In addition he needs deep product knowledge. If you are selling development tools, you need to understand development and exactly how these tools will make the programmers more productive.
It is not unusual to require multiple skills for a job. How is this any different?
I have often been approached by salespeople with little product knowledge. They never succeed in selling me stuff.
When I am interested in a technical product, I call the engineer. Usually they can quickly get me the information I need to make a purchasing decision.
How do we best teach salesmenship to programmers?
Yes yes, I understand that you tried to wave off the number one response to your question by marginalizing the difference between programmers and salespeople as a "sweeping generalization" but it is in fact a real issue that cannot be dismissed. The Blank Slate was smashed years ago. Persuasion and programming are two wildly different cognitive skillsets.
If you find somebody who happens to have BOTH skillsets, that rare individual should probably have a leadership role in the sales organization to help steer the people underneath to do their sales work in a manner that is rational and aligned with what your product truly delivers to the customer.
But the real solution to the problem you are outlining in your question is A TIGHTLY INTEGRATED RELATIONSHIP BETWEEN YOUR SALES ORGANIZATION AND YOUR SUPPORT ORGANIZATION. Doing this right isn't easy. It's more than just giving your salespeople a batphone to the helpdesk. Both groups need to collaborate to determine how each side can work to help the other group acheive their goals. There are a variety of effective models, but it begins with both groups realizing that they have a shared responsibility to ensure happy customers.
I think you gave up on the solution a bit too easily. People make their purchases based on two principles: the elimination of doubt and trust in the other person. The more doubt and the less trust, the less likely a sale occurs.
Who helps eliminate doubts and create trust with technical programmer customers better than a programming sales rep? I'm pretty sure the non technical sales-charmer type isnt a big trust builder either.