Thursday, December 27, 2012

My Sales Checklist (Part 2– Behaviors)

After discussing the prep work to be done before a sales meeting, many asked for a checklist of behaviors during a meeting. And, despite some attempts to be succinct, this post became monstrously long! If you are new to sales just try to master one point at a time. And, as always questions/comments are always welcome. Happy hunting!

Speak slowly - As you become more comfortable with the pitch, it will become less interesting to you. The natural tendency is to race through it speaking as quickly as you can. However, no matter how many times you’ve pitched, this is the customer’s first time hearing it. Slow down and put passion behind every performance.

Qualify Customers- Nobody likes indiscriminate marketing (ie spam). Set yourself apart and explain to customers why you are talking to them specifically. What about their company makes it the perfect fit? If you don’t now this it’s time to do some more research.

Smile - Getting in front of customers is hard and the first meeting is a naturally awkward situation. A simple smile goes a long way toward making the interaction feel friendlier. An added bonus is that smiling makes you feel happier too!

Ask for names - Whether in the beginning or at the end of your conversation shake hands and ask for their name. Then use it in conversation. This is cliché for a reason – it works.

Don’t Argue! Avoid arguing with customers at all costs. If you argue you will lose (either by being wrong or making the customer feel bad). Same goes for interrupting the customer. Especially in a startup it’s incredibly hard to hear people criticize or marginalize a product you love. During this situation just remember one of three things leads to no:

    1. Wrong Pitch – When a customer starts turning negative the first thing I think of (and the most common issue) was that my pitch missed something or hit a sensitive spot. While hearing the feedback – probe to identify the trigger. What was it about the pitch that made the customer say no?
    2. Wrong Product – Is there something about your product that needs to be changed? Probe to figure out what you could change to make it a better fit for the customer?
    3. Wrong Customer – Sometimes you end up talking to the wrong person. This could mean you’ve chosen the wrong type of organization (ie selling auto insurance to someone without a car). You could also simply be a case of speaking with the wrong person at the organization (ie making your pitch to the secretary).

clip_image001

Silence is Golden - Any break in the conversation is bound to make you nervous. The natural reaction is to fill the silence with more reasons your product is awesome. However, customer often just need some time think. Learn to savor the silence and wait for your customer to tell you what they’d like to hear about next.

Never Assume Anything - Nobody likes being told their business. Even if you know a problem exists it is critical to let the customer tell you about it. A customer who recently has validated and revisited a problem is primed to hear about your solution.

You Are There to Learn - Often new salesfolk make a customer visit with the intent to inform. It’s really meant to be the other way around. The real value of a great salesperson is to deeply understand the customer’s need and get the best possible product into their hands with the least amount of work. This means that 90% of your time will be spent learning what your customer needs, so you can spend less than 10% of your time showing them how your product meets those needs.

Get the Product In Hand - Let the customer use your product. Whether this is a trial period or a hands on demo – it’s important to have an interactive session where customers can envision themselves as owners. And, if you’re lucky you’ll get a moment of wow – the singular point in time where your customer realizes just how great your product is for them.

Be Confident - Anyone in sales has to be a people pleaser by nature. However, it’s important to focus on making customers happy through great products/service and not by discounting. Discounting is the most tempting and dangerous way to close a deal. Yes – it will help you get the deal done. However, it also devalues your service (which will impact other deals) and crunches your margins (so you have less money to make your clients ecstatic). Find ways to add value – not discount it.

Take Notes – After every meeting you should write down everything you can remember. At a bare minimum write down who to talked to, what their feedback was, and what the next action is (set up a meeting/send materials etc). I usually write this on paper during our conversation and then transfer it to my customer excel sheet later. It’s important to keep this record to make sure you don’t mix up your accounts (which will happen when working with 100+ leads in parallel).

Follow Up – Regardless of the outcome of a meeting send a follow up email. If they buy in – ask them how they are liking the product. If they don’t – keep them updated on upgrades/changes your company is making. If they are still undecided let them know about any successes or other clients you’ve brought on board recently. And, continue to follow up on a regular basis. I find checking in on folks every quarter is good practice.

Note: If you don’t hear back from someone I follow a 3-7-3 policy. I’ll send a polite reminder note (“hi there – just checking into to see if you…”) after 3 days, 7 days, and 3 weeks. If I don’t hear back after that I’ll assume they aren’t interested. And, of course, if anyone asks to not be contacted, don’t contact them!

Bonus: In Case of Failure. If a customer says no – flat out – and doesn’t seem to be giving you a fair shake, just ask for feedback. First, this is a great way to gather some feedback from a critical customer. Second, they are still consuming and considering your materials outside of the ‘sell’ situation. This takes the pressure off and opens the door of possibility again.

My Sales Checklist (Part 1 – Preparation)

As I’ve been focusing more of my time on pure sales at Flock and bringing some new folks up to speed on basic sales, I’ve began to compile a basic checklist for the sales process.

Elevator Pitch – This is a critical part of your business.  Generally this should be 3 lines (for email/events/introductions):

  1. Who you are
  2. What you do
  3. Why you want to talk to the customer

That’s it.  Keep it short and sweet – this sets the table for the rest of the conversation. 

Practice  - Stand in front of a mirror, look yourself in the eye, and practice until it’s perfect. By the time you get in front of a customer you should be able to communicate your value on autopilot. This enables the rest of your brain to focus on the customers, their reactions, and what the next steps are.

Script – After the elevator pitch there should be no more than three key points you want the customer to remember.  These should serve as your checklist – don’t blurt them out all at once or in a list, but be sure to hit each point by the end of the conversation.

FAQ – Any engaged customer will have questions.  Luckily, most customers have the same questions.  Over the course of just a few meetings you’ll get a good sense for the core common questions.  Get some great answers prepared and

Make a List (and check it twice) – I use a simple excel sheet with customer names, companies, emails, phone numbers, and notes as the columns.  This is essentially a super simple CRM system.  Your initial list can most often be created through web searches or directories. 

Bonus: Have a Good Hook – Any customer base has some aspirational goal (in IT this would be reducing costs, in sales it’s meeting more leads).  This is what you should lead with.  If you can open your conversation with this goal – their next question will be “Sounds great – how will you do that?”  You’ve now captured their full interest and set the table for the rest of your conversation.

Sunday, December 23, 2012

Non-Technical Founders

The most common question I get asked by entrepreneurs is what is the role of a non-technical founder?  In today’s market technical talent has become increasingly scarce with the trickle of top talent unable to meet skyrocketing demands.  It’s great to see engineers recognized for the outsized contribution they can make.  However, the pendulum has swung so far away from the business side of an enterprise that many have lost sight of the essential value a non-technical founder brings to a company.

And, for the first time in a long time, I find myself in the role of a non-technical founder with Flock (BuildAFlock.com).  Despite being a technical guy, I haven’t touched a line of code or a pixel of the design.  So, what do I do with my time?

I sell.

At a startup there are really only two jobs – building and selling.  That’s it.

image

A group of sales guys can easily find themselves with a customer base soon to be disappointed by a late mediocre product and no ability to rapidly iterate.  Identifying great engineers is simply a matter reviewing their past work.  What have they done?  Is it still running?  Even if you’re non-technical you’ll instantly recognize the care and high standards in any product that are the hallmarks of true talent.

A group of engineers without sales will tend to let product scope spiral out of control and end up with product that is a technical phenom that no customer wants.  However, proving value on the non-technical side is much more difficult.  Sales numbers are highly variable based on the market and product.

So, what can a non-technical founder bring to the table to attract engineers?  Customers!  I’ve heard literally hundreds of people with great ideas that have huge unstoppable potential.  I rarely hear from them twice.  However, if you take the time to take your idea into the real world and do some preselling you will be unstoppable. 

This process helps to refine your designs (inevitably your first cut will be wrong) before the first line of code is written.  And, the second an engineer finishes building V1 you’ll have a ready base of users eager to test it out.  So, rather than a half baked idea, you’ve proven the merit of your idea, gathered a customer base, and most important, proven your value in the venture to your future partner.

I challenge every early entrepreneur to pick a role – builder or a seller.  Don’t fall into the trap of trying to be ‘CEO’ or ‘manager of the team’.  Also, if you’re not a designer (ie not the person pushing pixels in Photoshop) don’t be the person running around with a set of wireframes and nothing else.

If you’re serious about creating a venture of any significance – build or sell.

Saturday, November 24, 2012

I-Lab Channel

After we launched BuildAFlock at Boston Startup Weekend I found myself with the enviable task of incorporating a large team from the outset of the company.  With 7 team members involved we need to build a robust founders agreement posthaste.  Sitting in the i-lab I stumbled upon the Harvard I Lab’s Youtube Channel.

So glad I did!  As a founder who has been to literally hundreds of ‘startup talks’ I was floored by the quality of content here.  My original issue was completely solved by this video by Dave Cappillo from Goodwin Proctor:

After being up for a couple weeks this video only has 86 views!  Seems shocking compared to some of the other garbage I’ve seen shared on reddit/digg/hackernews.  The only thing I could ask for is a transcript/deck/summary so I can skim, but the content was so good I ended up watching the whole 80 minutes (and taking notes).  Props to the I-Lab and partnering firms for getting such a great resource on the web and I fully expect the views to climb!

Friday, August 24, 2012

Work is just a rhythm

After spending over a year working alone on cimls.com I’ve found the biggest challenge is staying focused every day. When people work together in an office there is a mutual social motivation that is very powerful, but you only tend to notice it when its gone. After experimenting with a number of different motivators I found that, for me, it boiled down to rhythm. Once I planned and established a daily schedule as a habitual pattern the work easily followed:
image
Workout/breakfast (8-9)
I found 30 mins a day was the best fit. Enough to get the heart rate and endorphins up, but not so much to make me tired. Think of it as a primer. I do this before looking at my phone or email. Looking will sink this part of the routine.
Work (9-1)
This is always my most productive time. After going through urgent mail I prioritize my first task. I’d say 70% of the real work that I do all day happens here (difficult coding/pitch decks).
Lunch (1-2)
Nap (2-3)
Napping here is very important. Any later it inferred with my sleeping schedule. Forcing a nap here even if I wasn’t tired really brought up my energy the rest of the day.
Work (3-7)
I intentionally plan fun/easier work here (design/planning/email). This tends to be the part of the day hardest to re-start. If the work is fun or easier you get back into the zone.
Dinner (7-8)
Work (8-12)
Oddly, this also tends to be a very productive time for me. Especially with no other calls/emails to distract I get quite a bit of solid work done at night.
At the end of the night wind down by planning the tasks for tomorrow. Generally I block everything out in outlook
image
Sleep (12-9)
Sleep is the keystone to every day. Everything falls apart without adequate sleep and I won’t sacrifice my sack time for anything short of a catastrophic failure (site is down).
This may look like a lot, but I will take brakes as needed. I found from RescueTime I’m actively productive 8-10 hours a day. That’s about as good as it gets.

Getting on this schedule was challenging for the first couple days, but afterwards the general inertia made it easy to maintain and you almost automatically start each phase.
I have a 3 hour limit on hitting a wall. If I can’t work I just take that ‘block’ off
Breaks are always physical (walking, driving range, ping pong, darts) or sleep. No intellectually stimulating breaks at all. Bodies tend to like to be lazy, so we want to do something that uses 30% of our brain (TV/books/games) rather than 80% (coding /writing). Any opportunity to engage in a simple activity is attractive, but tended to make me less energetic and productive after.
Vacations. I’d generally take every other weekend completely off. No work whatsoever for 2 days. That typically is enough to allow me to reset, recharge and take a quick strategic review then dive back into the trenches. If I’m cycling caffeine intake then these two days will always be complete detox days (no caffeine at all).
Hope some of you find this useful to focus in and get work done!

Tuesday, August 21, 2012

Pitch Anywhere

imageThere’s a reason the elevator pitch rules supreme.  The best chance you have to influence the next investor and customer is when they aren’t expecting it.  In any big city the best folks are always around at local events, dinner parties, or in line at a coffee shop.  However, a happenstance meeting usually means you’ve haven’t had a chance to prepare either.  No Laptop, No Notes.

The one tool we never leave home without is our phone.  So here’s some tips to get you ready to pitch any time anywhere.

The One Liner

As soon as you open your mouth you need to pique their interest.  You have about 10 seconds to make it happen.  Once you see their eyes glaze over the pitch is done for.  Its incredibly hard for anyone pouring hours into their project to sum it up in a sentence, but it must be done.  The two tests I apply to any One Liner are:

-Will a teenager understand it?  Newspapers, magazines, and popular novels all target the 9th grade reading level.  So should you.

-Is it aspirational?  The biggest mistake I used to make was describing what my business was currently (i.e. a commercial real estate database) rather than being aspirational (we connect commercial buyers and sellers to make deals happen).   The first sentence needs to punch above its weight and describe your dream not your prototype.

Its as easy as 1-2-3

Now the classic pitch formulae works: Problem-Solution-Process.

-Problem – what problem are you solving and for whom?  For us it was: "Commercial investors don’t’ have a central place to find deals"

-Solution – what have you built to address that problem? ie “We’ve built a open marketplace where any commercial investor can list or find deals.

-Process – how are you doing this? Once you’ve convinced your audience that you have a super mission you need to prove you can accomplish your goal.  “We created a best in class big data system to integrate all of this data from where it already is today.”

Five Pictures

Demos are the devil.  They are hard enough in any environment, but on the run, with spotty wifi, phone being modified every day, and new software it’s a nightmare. This is only made worse by trying to walk a brand new user through the process in a slick fashion.

The workaround here is to take 3-5 pictures screenshots of your solution and just put them in an album on your phone.  Now you can just have swipe through them.  This process never breaks (just pictures not software), is slick (no fumbling around), and fast (no load times).  This is the best possible face of your application you should show. 

*Bonus* Offline Demo

Recently, I’ve been digging into some more android applications for PollKarma and I’ve found connections are painful.  No matter what carrier you’re on, it seems to fail when you demo. 

The best workaround I’ve found is to make an offline mode.  After building a simple connection tester I created an ‘offline mode’ for any places where you have a slow connection.  This mode always starts the app as a new user and uses all local data (rather than going to our server API).  Now I can demo the new app anywhere any time without clearing data or needing to find a connection. 

Saturday, July 28, 2012

Book Report: Do More Faster

With the good weather and barren inbox (thanks Olympics!) I had time to plow through Do More Faster - a compendium of startup short stories by the founders of TechStars (Brad Feld and David Cohen).  Based on the Amazon sample I felt some trepidation as it seems like another useless brag-a-thon of successful start-ups.  However, based on rave reviews I plowed ahead.

The first half o the book was largely as expected - repetitive and cliche stories about listening to customers and making good products.  *yawn*  When I have real conversations with start-up junkies there is usually some secret sauce or unfair advantage they have/discovered/acquired to win in their market.  Its usually messy and held together with lots of hope and duct tape, but it's true.  I want to hear that - not 20 iterations of the obvious.

That being said, the last two chapters of the book on on legal issues and work-life balance made the slog worth while.  Stories told by many (but especially Brad Feld) unveiled some sinister issues almost any entrepreneur will face (equity battles and upset spouses) when going all in on a company.  These problems fall into the easy to prevent, but hard to solve category.  So, getting a good feel for the warning signs is absolutely critical (write a great vesting schedule and set up regular conversations with loved ones).  And the genuine, unique and heartfelt stories was a fresh infusion of life experience.  Wish they'd led with that!

Not one of my bibles, but worth a weekend read!
http://www.amazon.com/Do-More-Faster-TechStars-Accelerate/dp/0470929839

Thursday, July 26, 2012

Compress Pictures

PowerPoint has come to the point where it is a good enough image editing tool.  I can get 90% of my work done purely in PowerPoint+Office Pictures Manager.  It may sound crude, but it works well to produce images at a dizzying rate.

Typically I'll just create the image I want in PowerPoint using the built in screen clippings/shapes/filters and then select "Save as Picture" (part of the right click menu).  However, in a particular instance I found that all images were coming out half the desired height.  In PowerPoint they were perfectly square, but once saved the png/jpeg/gif output was squashed to a rectangle twice as wide as it was tall.

On a hunch I gave "Compress Pictures" a shot.  This is a tool that often does a big reset on the internal memory of PowerPoint.  And low and behold it worked!

Often the image you see on the screen is a very small fraction of what PowerPoint remembers about an image (the application remembers all cropping, largest resolutions, transformations etc). Its a good practice to keep your files small and keep PowerPoint running fast to use this command often to remove unnecessary assets.

Tuesday, July 24, 2012

Is your web server load high?

A couple weeks ago we were getting worried about CIMLS.com's server.  We were running a larger AWS instance and hitting 80%+ utilization on a continual basis. For a site of our size slinging simple HTML this is ridiculous.  So, what was the problem?

Crawlers....

The bots that work for various search engines were furiously indexing CIMLS.com resulting in almost 40% of our server load.  About half of that was Google.  While a worthy cause, we cut the load in half by lowering the crawl rate to .5 requests/second.  This hasn't significantly impacted the number of indexed pages (let alone organic traffic/rank).

Adjusting the Googlebot's crawl rate can be accomplished by visiting google.com/webmastertools >> configuration >> settings >> crawl rate.  We tried a number of options, but found .5->1 requests/second to be a sweet spot that got our pages indexed without tanking server performance for real users.

Another big surprise for us was that the bulk of the rest of the load wasn't from other crawlers like Bing or Yahoo!  Instead, two foreign crawlers Yandex (Russian) and Baidu (Chinese) were just hammering the system.  As we are a US oriented site, the traffic from these sources was negligible (and probably irrelevant).

We found that modifying the robots.txt was not effective (these bots just ignored it).  We had to use a RewriteCond to block the bot activity:


RewriteCond %{HTTP_USER_AGENT} Baiduspider [NC,OR]
RewriteCond %{HTTP_USER_AGENT} YandexBot
RewriteRule ^.*$ - [F]

Well, finally that did the trick - and removed nearly 20% of our server load overnight.  Phew!

Thursday, July 12, 2012

An Android Dialog before the Facebook Dialog

While I was writing an award screen for PollKarma I decided that users would like award screens.  The behavior occurs when a user answers x questions they got a pop-up with a cool image/message and an option to share on Facebook.  To get this done I made a custom dialog box that serves as a pre-cursor to the facebook dialog to provide some more context for the user and a nicer graphic (Facebook's is limited to the format of a wall post.

The simplest way to get this done is with a new xml file for the custom dialog box and to dump all the code in  the main execution file.

The Award.XML file is very simple.  Any good share dialog will need a big image along with a share and close button:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical" >
        <Button android:id="@+id/share" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:text="Share"></Button>
   
        <Button android:id="@+id/close" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:text="Close"></Button>
    <ImageView
    android:id="@+id/YourImage"
    android:src="@drawable/yourimage"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
android:scaleType="fitXY"
></ImageView>
</LinearLayout>


Note the android:scaleType="fitXY" which auto-sizes your image to fill the layout and be big and pretty.

So, assuming you have a file named award.xml you can dump this code in the method triggered on any award event to provide a nice wrapper for a facebook wall share dialog:


final Dialog dialog = new Dialog(YourActivity.this);
dialog.setContentView(R.layout.award);
dialog.setTitle("This is my custom dialog box");
dialog.setCancelable(true);
Button closeBtn = (Button) dialog.findViewById(R.id.close);
closeBtn.setOnClickListener(new OnClickListener() {
@Override
    public void onClick(View v) {
        dialog.dismiss();
    }
});
Button shareBtn = (Button) dialog.findViewById(R.id.share);
shareBtn.setOnClickListener(new OnClickListener() {
@Override
      public void onClick(View v) {
      Bundle params = new Bundle();
      params.putString("caption", "yourcaption");
      params.putString("description", "yourdescription");
      params.putString("picture", "http://yoursite.com/images/yourimage.png");
      params.putString("name", "yourname");
      Utility.mFacebook.dialog(YourActivity.this, "feed", params, new DialogListener() {
          @Override
          public void onComplete(Bundle values) {
           dialog.dismiss();
          }
          @Override
           public void onFacebookError(FacebookError error) {}
          @Override
          public void onError(DialogError e) {}
          @Override
          public void onCancel() {}
      });
    }
});
dialog.show();
}

Sunday, July 8, 2012

Testing your Android Applications Internet Connection


Many droid apps rely on the internet to function.  My (soon to be released) PollKarma application relies on facebook for authentication, so I had to test this.  Googling the problem lead me to this solution:


public boolean isOnline() {
   
ConnectivityManager cm =
        (
ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

   
return cm.getActiveNetworkInfo() != null &&
       cm.getActiveNetworkInfo().isConnectedOrConnecting();
}

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />


This only does half the job.  Thankfully I was working on this at a starbucks.  Most public wifi these days will allow any device to connect, but requires a further action before connecting to the internet.  The above code really test the network connection (are you on Wifi) not internet connection (can you get data from the www). 

After some trial and error I came up with this solution:

public void initialize() throws IOException{URL url = new URL("http://yoursite.com");URLConnection connection = url.openConnection();try { HttpURLConnection httpConn = (HttpURLConnection) connection; httpConn.setRequestMethod("GET"); httpConn.connect();        //initialize your application here now that the connection is confirmed } catch (Exception e) {        //set up an alert dialog for graceful failure if no connection is available              e.printStackTrace(); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage( "No Connection.  Please logon to the Internet to continue.") .setCancelable(false) .setPositiveButton("Retry", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { try { initialize(); } catch (Exception ie) { ie.printStackTrace(); } } }) .setNegativeButton("Close", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { YOURCLASS.this.finish(); } }); AlertDialog alert = builder.create(); alert.show();}}


which is called from onCreate like so:

try{  initialize();}catch(Exception e){  e.printStackTrace();}

This functionality not only performs a test ensure the connections you really need are available, but it also provides the user with an elegant alternative if there is no connection. Quite a few steps better than the default hang on no connection!


Simple Android Debug Procedure


Identify WHERE the issue is happening

  1. Look at the logcat error to see if you can immediately identify the issue in the line of code
  2. Make sure to use Log.e(“tag”,”specific error note”) rather than in app toasts/popups. The UI execution thread can be blocked by other operations, but the log is written independent of execution.
  3. Always include e.printStackTrace(); in your try-catch blocks. Otherwise runtime exceptions fail silently.
  4. Isolate the last change that led to the issue (with code X it works but X+ doesn’t)
  5. Run through the code in your head (what should be executing/running/open)

Identify WHAT the issue is (get to a Google query)

  1. Look at stack Logcat errors/traces.  Any errors?  Any outputs that are not expected?
  2. Work your way down the call stack.  Start with the first method (onCreate) and work your way to the last method viewing variables at runtime along the way to make sure they are what you'd expect.
  3. Watch inheritance
    • A lot of pain has come from issues with overrides.  For example I assume my code is using java.library.newclass when instead it’s using mycode.newclass or android.newclass.

Finding a solution

  1. Google it to see if is a common issue
  2. Answers usually come from stack overflow/api documentation. 
    • Beware so sub-optimal implementations. There is a strong temptation using stack overflow just to paste in a solution to see if it works, but if you don’t understand what is going on it will introduce issues for you in the future
    • For example I added an animation sequence in android that overrode the onpause method. This caused an unhandled exception to fire every time I tried to call finish() or pause() or a user hit the home/back button. Huge pain to find and its not an issue that is immediately apparent (ie you’ll go 5-10 versions forward before discovering it. Then you need to backtrack).
  3. If you can’t find it you probably have another error in your code causing it
  4. This is a good time to roll back your code to the last time it was working and clean it all up/comment. 
  • This is good practice.
  • It is an opportunity to examine every line of code again to see if anything triggers an association with the trouble spot

Last Word: Version Control

Most of your errors will be caused by the last piece of code added. However, the tougher ones were introduced a long time ago, and you only found it now. Good version control lets you quickly step back in your version history to identify where the bug was introduced. Even if you are a lone wolf developer get your GitHub/SVN/CVS on.

Saturday, July 7, 2012

Since developing my first Android application I realized so much of the platform is undocumented.  I'm starting this blog to publish the various fixes/hacks/tools I'm using to get on my feet.  My pain is your gain.