Slashdot Mirror


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."

27 of 211 comments (clear)

  1. Hire bad programmers with good social skills by Anonymous Coward · · Score: 5, Insightful

    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.

    1. Re:Hire bad programmers with good social skills by dragonquest · · Score: 5, Informative

      "Hire bad programmers with good social skills"

      "You want to hire people who have programming background, but weren't interested or talented enough to pursue that full time"

      And the good news is that these people are in abundance in the lead architect/team leader/technical manager positions. I can confirm their existence and numbers (did I mention abundance?) from all the organizations I have worked with.

      --
      "Never try to tell everything you know. It may take too short a time."
    2. Re:Hire bad programmers with good social skills by Cryacin · · Score: 5, Interesting

      Actually, the GP is pretty spot on. There are two types of sales people generally, the Hustlers that tend to act like a hairdryer at management, playing buzzword bingo to provide the required level of synergy with the current corporate strategy, or the sales types that tend to understand what they are selling, and explain the benefits of the products.

      Contrary to popular belief, most programmers are not socially inept basement dwellers at the mom's house. The sales person does not need to know 100% of the technical aspects, they need to be able to convey what can be done at a coarse level, and then for detail, reference a skilled programmer.

      Furthermore, if you are selling into a corporate scenario rather than a small business, your business owner will at best "know of" programming. They will want to know what your product will do for his business, and let his technical guys determine if it really will do that. Really, I have yet to meet a CEO or any other Chief (Insert middle title here) Orifice that has programmed in the last 5 years.

      Hence, you'll need a standard winer and diner sales person for the C(X)O's and/or middle line executives/enterprise architects, and a technical sales person for the developers/team leads investigating the technology on a ground level.

      --
      Science advances one funeral at a time- Max Planck
    3. Re:Hire bad programmers with good social skills by FormOfActionBanana · · Score: 4, Interesting

      Don't talk about this like it's magic. Sales is a really tough job and you have to be a 1/100K personality type to succeed. My organization sells static analysis software, and our salespeople are a mixed bunch and have a lot of varied tech experience from their past lives:
        - former military pilot
        - former DEC programmer
        - fool
        - MBA
        - former vintner
        - former VAX/MVS/AS400 tech support

      Nevertheless, our assumption is they know all about the customer's problem (manage costs, control risks, pass an audit, build a legacy) but know NOTHING about the technology, and we remind them of such. We pair up the salesguys with a "presales engineer" who is much more techie and a product expert but less responsible for the relationship.

      Really, this is a very standard way to do technical sales. I thought everybody knew this.

      --
      Take off every 'sig' !!
    4. Re:Hire bad programmers with good social skills by Anonymous Coward · · Score: 3, Interesting

      Yeah, I agree. The idea that programmers are basement dwellers needs to be confronted. If you look at the Jung based MBTI assessments, I know from 20 years of experience in the field that great developers depend on the middle two dichotomies, not the outer two. In other words, an ENTJ can be a good programmer, and so can an INTP. INTP might be your basement dweller, and ENTJ is like P.T. Barnum and Thomas Edison rolled into one. The important part is that they're "rationalists" -- they're good at problem solving, and in most cases like doing it -- that comes from the NT part. (They're "intuitive thinkers" per the MBTI parlance).

      If you're looking for a good salesperson that can walk the walk and talk the talk with developers, what you're looking for is the ENTJ. They get a charge out of working with people, and they are quick to make assessments -- a key skill for a salesperson. They're also rationalists, so they can have credibility with your developers (as long as they don't overdue the glad handing -- especially when dealing with *NTP types). An ENTP might do ok, as long as they're not off the scale on the J/P dichotomy (then they become too indecisive and have a tendency to lose a lot of sales because they never "go for the kill").

      Of course, if you're dealing with large corporations, what you'll find is that the management layer is not universally filled with *NT* folks as others have mentioned. That's what makes Dilbert comics funny for example -- the pointy haired boss is not, and most likely never could be, a critical thinker. In that case, you're looking for ESFJ types -- the traditional sales guy -- these are people who get a charge out of working with others, tend to notice things like body language, tend to put a lot of emphasis on making people feel good, and tend to be quick at making decisions, which gives the perception of being decisive. They also tend not to like absolutes, which drives rationalists crazy, who structure their whole thought process around solving problems, which requires some absolutes (givens) in order to make progress.

      Although MBTI isn't perfect, it does divide the world into 16 categories of people, and that rough categorization can go a long way toward getting the right people in the right seats on the bus. The rationalists (*NT*) make up less than 20% of the population. So if you're interviewing fewer than 5 people to fill a position, then there's a pretty good chance you haven't seen your minimally qualified candidate yet (although, rationalists tend to be attracted to engineering roles, so that's more of a rule of thumb than anything -- we never interview fewer than 5 people, so we can at least say we gave it a fair shot).

      MBTI is especially good if you combine it with one of the other assessment tools like HBDI or DISC. (It's certainly a lot better than shooting from the hip -- which is what a lot of shops do unfortunately.) People who don't register highly on the NT dichotomy can actually work ok in a development team for a while, but there's a good chance they won't like it over time, especially if they're the opposite profile (SF), which leads to unnecessary turnover.

    5. Re:Hire bad programmers with good social skills by TapeCutter · · Score: 5, Funny

      "presales engineer" - I've done that job, the sales people won't tell you where they keep the cocaine and hookers.

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    6. Re:Hire bad programmers with good social skills by meburke · · Score: 5, Insightful

      Actually, there is a test for that. Back in the 60's, two guys from Harvard (Greenberg and Mayer) concluded a test of what made good salespeople. The personality dynamics were "empathy" and "ego drive". A person had to be able to connect with the customer and have the drive to come out with a solution. Those of us with high empathy and ego drive did real well at things like selling encylopedias. (It amazes people how I could walk into someone's home and walk out 90 minutes later with a $1000+ order.) However, in those days, a computer salesperson needed to have less ego drive (but more than enough to stick to it) and high empathy; computer sales took over a year and sometimes two years to close. A person with really high ego drive wouldn't get rewarded often enough to keep them involved.

      Interestingly enough, 1 out of every 5 people tested was suited for some kind of sales. Another interesting thing; 1 out of 4 people tested would have been better off changing to a sales job from the one they already had.

      Greenberg and Mayer also addressed the methods of training. They found that the most effective way to train was using role-playing practice.

      In my experience, the best sales training was provided by Xerox Learning systems and The Dale Carnegie Courses. Methods and role playing were both used over a multi-week course. (In the 10-week period I took the DCC Sales course, I made more CASH sales in 10 weeks than I had in the previous 10 years!)

      Unfortunately, DCC has reduced their course to three days and some online coaching. It is not the same and it is apparently not nearly as effective. I haven't seen anything from Xerox for years. I used to do computers and accounting during the day and sell Britannica at night to make a living. Then, in the late 70's, computers got cheaper and another Britannica Salesman opened a computer store in our town. I'd like to say we got rich, but it didn't happen that way. However, it did provide many years of good, solid, rewarding work.

      Many companies still hire sales people, give them a 90-day draw against commissions and then screw them on training and development. Since the sales cycle and opportunity window are sometimes much longer than 90 days, it makes better sense to have a one or two-year program in place with much coaching and feedback. I wouldn't put much faith in any single program, but the "Solutions Selling" (Bosworth, Thank you Sun Micro), "Socratic Selling" and some NLP-based course like "Beyond Selling" would probably be what I would use to train salespeople today. These are communications-based selling processes, useful in different situations.

      The lack of programming ability is probably not the big barrier to the sale: It is more likely that the customer can't explain what he wants and why he needs it, and the salesperson can't PROVE that the product delivers what the customer wants. Details are so far down the selling process that the customer should have committed to buying well before that point.

      OKI, now if you are dealing in the Microsoft world, you may have a completely different problem: Sharepoint, SQL Server and CRM don't play well with previous versions; "cloud" apps, especially CRM stuff has developed a 20-fold increase in database size; legacy systems that customers have been using for years no longer communicate meaningfully and will no longer print legacy reports; and the method for writing the modifications has changed drastically in just the last 5 years. The Microsoft world may be collapsing under its own weight. In this case, you had better be prepared to teach your salespeople very good requirements analysis processes and maybe some programming. Pick you languages, get a course in-house, and work on the actual solutions you need to solve.

      Good luck

      --
      "The mind works quicker than you think!"
    7. Re:Hire bad programmers with good social skills by dj245 · · Score: 4, Insightful

      Actually, the GP is pretty spot on. There are two types of sales people generally, the Hustlers that tend to act like a hairdryer at management, playing buzzword bingo to provide the required level of synergy with the current corporate strategy, or the sales types that tend to understand what they are selling, and explain the benefits of the products.

      In some industries, such as pharmaceutics and IT, there is a third type. The attractive female saleswoman. She shows up and the men buy whatever she is selling.

      --
      Even those who arrange and design shrubberies are under considerable economic stress at this period in history.
  2. It's doomed. by Anonymous Coward · · Score: 5, Funny

    ...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!

  3. You need a technical pre-sale consultant for that by alecclews · · Score: 5, Insightful

    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.

  4. Sales Engineer by SuperKendall · · Score: 5, Insightful

    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
    1. Re:Sales Engineer by Anonymous Coward · · Score: 3, Funny

      Well, actually, it should look more like this:

      "SELECT `hotness`,`bra_size`,`butt_measurement`,`age` from
      `Employees` WHERE (`sex` = 'F') AND (`age` < 35) AND (`dog` = 'false') ORDER BY `age` ASC, `hotness` DESC, LIMIT 0,25"

      You insensitive clod.

  5. What a Dumb Idea by Anonymous Coward · · Score: 5, Insightful

    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.

  6. Get Some Really Good Sales Engineers by Squeebee · · Score: 3, Insightful

    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.

  7. Don't look for one person to fill two roles by hendersj · · Score: 4, Informative

    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.
  8. Customers != Gateway by SuperKendall · · Score: 4, Informative

    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
  9. Socializing programmers? by Anonymous Coward · · Score: 5, Insightful

    Robert Heinlein said it best: Never try to teach a pig to sing; it wastes your time and it annoys the pig.

  10. BASIC suggestions by Sarten-X · · Score: 3, Interesting

    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:

    • It's (usually) plain English. There are few abbreviations, and most structures read as a straightforward sentence. That helps to keep focus on general structures and concepts rather than syntax details.
    • No overhead. There is no boilerplate necessary to just make something that runs. That means that your first lessons can cover things like "the program runs one step at a time, in order," which is a lesson often missed in many introductory courses, and not obvious to many non-programmer folks.
    • Most structures (depending on version), in simple form. No, you likely won't find multithreading, but you can show a function call, loops, conditionals, variables, objects, and most other programming elements just fine, and without needing much other syntax to make a demonstration program. Pick a flavor of BASIC that includes features supported by your product, for illustration.
    • No practical application. This is a bit of a lie that really should be told to all students. Make it clear from the start that they should never attempt to write a "real" program in BASIC, not because it's impossible, but because there are far better languages out there. Toward the end of the lessons, start introducing them (especially C/C++, since it's what your customers use). Use that as a leaping-off point to show that all languages are functionally similar.

    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.
  11. System level developer, now instructor says.... by LostMyBeaver · · Score: 4, Informative

    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 :)

  12. Re:You need a technical pre-sale consultant for th by NFN_NLN · · Score: 4, Interesting

    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.

  13. EDA industry is very different by tanveer1979 · · Score: 3, Informative

    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
  14. Oh brother by SmallFurryCreature · · Score: 3, Insightful

    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.

  15. Let your salespeople know their limits by wienerschnizzel · · Score: 3, Interesting

    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.

  16. Re:It should be obvious... by DerPflanz · · Score: 3, Insightful

    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.
  17. Re:MBTI oh no by HarryatRock · · Score: 4, Informative

    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
  18. Re:Better: use the existing programmers by Yvanhoe · · Score: 3, Interesting

    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.
  19. Re:It should be obvious... by i+kan+reed · · Score: 3, Insightful

    Reality: customer actually wanted DEF. Sales guy just didn't understand what customer said. Developer spends 50% of time developing and supporting unwanted feature.