Friday, November 15, 2013

Python Training Part 3 (of 4)

In my ongoing series on EVERY business person should learn a programming language... and that language should be Python...   this is part 3 of 4.   Like prior trainings, this should be done in order.  You should already have python 2.6 installed, and be able to create files and invoke idle from either the shell or the gui.

Today's lesson is on "classes"... classes are a very important concept in Python (and almost any programming language).   They enable you to write much more readable and useful code.... most importantly they enable you to build complex systems that 'build on top of each other' using either member variables of classes or inheritance or both.

A class can be thought of as simply a "container" for one or more "variables" and one or more "methods".
Those variables are called 'member variables' because they belong "in the class".
Those methods are called 'class methods' or sometimes called 'member functions' because they (almost always) act on or use the member variables of that class.

An object is an instantiation of a class... e.g. while a class "describes" what are it's member variables and member functions...   an object is one instance (e.g. one of potentially many) class objects.

Okay, enough mumbo-jumbo, let's get some hands-on!

1. First, create a file called location_classes.py somewhere in your library include path (C:\python26 works)

2. In that file, put the following very simple class:
class Location(object):
    #MemberVariables
    #x    #y    #z
    def __init__(self,x,y,z):
        self.x = x
        self.y = y
        self.z = z

# this is one of the most basic classes possible, it has 3member variables, x, y, z, and one member function called "__init__".   "__init__" is a special member function that is called when an instance is created.
Now, let's use it.

3. Next, from within idle, type the following commands

from location_classes import Location
l21 = Location()  #this fails!   In our __init__ we required x,y,z to be set!
l2 = Location(3,4,5)
l1 = Location(0,0,0)
print l2
print l1
print l1.x
print l2.z

#notice the "dot" notation to access your instance member variables (l2 is an instance of class Location)
#notice how l1 is seperate from l2, but both are the same class?
#cool right? :)
#you havn't seen the least of it!

4. Now, change your class code to be as follows:
import math
from datetime import datetime

class Location(object):
    #MemberVariables
    #x    #y    #z
    def __init__(self,x=0,y=0,z=0):
        self.x = x
        self.y = y
        self.z = z
     
    def __str__(self):
        return "X: %f, Y: %f, Z: %f" % (self.x,self.y,self.z)

    def distance(self,destination):
        xDiff = destination.x - self.x
        yDiff = destination.y - self.y
        zDiff = destination.z - self.z
        return math.sqrt(math.pow((xDiff),2) + math.pow((yDiff),2) + math.pow((zDiff),2))

#notice we've done 3 things.. we've set some 'default values' to the __init__ function, we've added 2 new member functions __str__ and distance.  __str__ is a special one that defines that classes string representation.   let's try it!

5. Close Idle, and restart it... (you have to do this, or your classes may not get reloaded correctly).  type the following into the new idle window

from location_classes import Location
l21 = Location()  #this succeeds now!!!
print l21
l2 = Location(3,4,5)
l1 = Location(0,0,0)
print l2
print l1
print l1.x
print l2.z

print l1.distance(l2)  #notice it did the distance math from l1 to l2!  cool right?

#play around with this...
l1.z=55
print l1.distance(l2)

#and try stuff like this
l21 = l2
print l21
print l2

6. Okay, now to learn about including a class into a class... this is NOT inheritance, it is instead, making a class a member variable of another class!   (We'll learn inheritance later).   For now, update your location_classes.py file to be as follows:

import math
from datetime import datetime

class Location(object):
    #MemberVariables
    #x    #y    #z
    def __init__(self,x=0,y=0,z=0):
        self.x = x
        self.y = y
        self.z = z
     
    def __str__(self):
        return "X: %f, Y: %f, Z: %f" % (self.x,self.y,self.z)

    def distance(self,destination):
        xDiff = destination.x - self.x
        yDiff = destination.y - self.y
        zDiff = destination.z - self.z
        return math.sqrt(math.pow((xDiff),2) + math.pow((yDiff),2) + math.pow((zDiff),2))

def vectorTo(origin,destination,speed):
    if speed==0:
        return origin
    dist = origin.distance(destination)
 
    dx = (destination.x - origin.x) / dist
    dy = (destination.y - origin.y) / dist
    dz = (destination.z - origin.z) / dist

    x = origin.x + dx * speed
    y = origin.y + dy * speed
    z = origin.z + dz * speed
 
    return Location( x, y, z )

#a boat is defined by its length, width, height, type-code and position and heading (point boat is moving towards)
class Boat(object):
    #Member Variables
    #length = 0    #width = 0    #height = 0    #boat_type = 0    #position = Location(0,0,0)    #heading = Location(0,0,0)

    def __init__(self,boat_type):  #makes boat_type required
        self.length = 0
        self.width = 0
        self.height = 0
        self.position = Location(0,0,0)
        self.heading = Location(0,0,0)
        self.boat_type = boat_type

    def move_towards_heading(self, speed):
        if (self.position.distance(self.heading) <= speed):
            print "Will arrive"
            self.position = self.heading
            return True
        else:
            #move towards goal
            self.position = vectorTo(self.position, self.heading, speed)
        return False

## Notice We've made a function (vectorTo) which is used in a new member function of class Boat... (move_towards_heading)...
### Notice that the Boat class has 2 member variables that are a Location type!  And that the move_towards_heading updates the position vectors of the Boat class!  Cool right?

7. Let's play with our new boat! :)  From python idle command line type:
from location_classes import Boat
ab = Boat(1)  #a boat of type 1
ab.heading = Location(5,5,5)
print ab.position
print ab.position.distance(ab.heading)
ab.move_towards_heading(1)
print ab.position
print ab.position.distance(ab.heading)

ab.move_towards_heading(speed = 1) #note that i said speed=1 here, but i didn't have to, I could have just said 1, but I wanted to show you how in a function call you can specify which parameters are what...

print ab.position
print ab.position.distance(ab.heading)

ab.move_towards_heading(1)
print ab.position
print ab.position.distance(ab.heading)

#can you see our boat moving?  I can!   It's moving!!!!

8. Okay, time to learn about inheritance!   We need TIME!  Time, I say, time! Make your location_classes.py file look like this:

import math
from datetime import datetime

class Location(object):
    def __init__(self,x=0,y=0,z=0):
        self.x = x
        self.y = y
        self.z = z
     
    def __str__(self):
        return "X: %f, Y: %f, Z: %f" % (self.x,self.y,self.z)

    def distance(self,destination):
        xDiff = destination.x - self.x
        yDiff = destination.y - self.y
        zDiff = destination.z - self.z
        return math.sqrt(math.pow((xDiff),2) + math.pow((yDiff),2) + math.pow((zDiff),2))

def vectorTo(origin,destination,speed):
    if speed==0:
        return origin
    dist = origin.distance(destination)
 
    dx = (destination.x - origin.x) / dist
    dy = (destination.y - origin.y) / dist
    dz = (destination.z - origin.z) / dist

    x = origin.x + dx * speed
    y = origin.y + dy * speed
    z = origin.z + dz * speed
 
    return Location( x, y, z )

#a boat is defined by its length, width, height, type-code and position and heading (point boat is moving towards)
class Boat(object):
    #Member Variables
    #length = 0    #width = 0    #height = 0    #boat_type = 0    #position = Location(0,0,0)    #heading = Location(0,0,0)

    def __init__(self,boat_type):  #makes boat_type required
        self.length = 0
        self.width = 0
        self.height = 0
        self.position = Location(0,0,0)
        self.heading = Location(0,0,0)
        self.boat_type = boat_type


    def move_towards_heading(self, speed):
        if (self.position.distance(self.heading) <= speed):
            print "will arrive"
            self.position = self.heading
        else:
            #move towards goal
            self.position = vectorTo(self.position, self.heading, speed)
        return self.position
 
class Location4d(Location):
    t = datetime.now()
    def __init__(self,x,y,z,t):
        super(Location4d, self).__init__(x,y,z)
        if t > 0:
            self.t = t

    def __str__(self):
        return "X: %f, Y: %f, Z: %f, T: %s" % (self.x,self.y,self.z,self.t)

## notice we added a new class Location4d, and it inherited Location!   up till now, we've been inheriting "object" which is actually a very base class that gives us ability to call super  ( we didn't have to do this, we could have called  class Location()  but then we wouldn't have had access to the super function, which can be really helpful. )

### Also notice that since we inherited from Location class, that we actually have an x, y, z already as member variables, and we added t  (time!).

### We've over-ridden the __str__ function (by having defined ou own) and added to the __init__ function (using super)

#### let's play with it.

9. In your command shell  (idle) type the following:

from location_classes import Location4d
l4 = Location4d(0,0,0,0)
print l4
l3 = Location4d(4,5,6,0)
l4.distance(l3)
l3.distance(l4)
#  notice we called the distance function?   how you say?  simple, we inherited not only the member variables, but also the member functions!   Cool right?

10. What else can you do with classes?
Turns out you can do a lot just with these few things I've showed you... but there is so much more too!  Creating classes of classes of classes, you could model the universe!
Most libraries you use will start with a class as well!  So knowing how to 'instantiate' a class instance is key  * you did this many times when you said l4=Location4d(0,0,0,0) for example!

So, here's your homework!!!

Create a new class called Rectangle...  make sure it inherits from Location or Location4d  (your choice... yes, deep inheritance is possible, as is multiple inheritance..e.g. a location and a location 4d... although that makes no sense here).

Now, write a member function to return the area of the rectangle.

Now, write a member function to 'move' the rectangle from one position to another position at a given speed.

Now, write a program that asks for length and width and prints the area of the rectangle.

That'll do it!  Enjoy!



Saturday, November 9, 2013

Business Use of Patents and Provisional Patents

The raging debate about Patent Trolls and what can and should be patented might lead one to consider, what is the business purpose of a patent?  Particularly if you are a startup (very early stage, perhaps pre-funded) with little cash, little time, and a need for focus, the question of patents, to patent or not, seems to be somewhat common.  This post is a summary of my advice and knowledge on the topic, as I recently provided to a new company called Basedrive who are working on their business plan as part of The University of Texas Longhorn Startup class and program.

Here is my advice...

1. First, don't be a Patent Troll:

A Patent Troll is someone who patents something with no real intention of building it, so that later they can 'claim royalties' or sue big companies for 'stealing their idea'.  This approach is not something upon which to build a true entrepreneurial business; and such loopholes should be looked on with great skepticism.

2. Don't do patent searches...

If you are thinking of writing a patent, and are worried if your patent is truly novel or not, you may be tempted to 'search prior patents'.  DO NOT DO THIS!   You will be required to list all the patents you looked at, and this could taint you or your ideas... further, you WILL likely find something similar.. but it's not your job to know this, or if yours is "different enough".

IF YOU THINK IT MIGHT BE UNIQUE, do not search... just move to step 3, below.


3. Decide if $130 (or so) is worth spending or not...
For $130, all in total amount, you can file a provisional patent.  (See Patent Fee Schedule)

So, what would a $130 Provisional Patent buy you for your business?
a.) You can put the words "Patent Pending" on your product.
b.) Investors will see you as 'better' than companies without a patent pending.
c.) It can lead to a real patent in the future, with a priority date equal to the date you submitted the patent (or earlier).

The downside?  None.  In order to claim the priority date by means of your provisional patent, you need to file the final patent within 12-months of submitting the provisional; but this is not a bad thing... even if you don't write the final patent in the 12-months, you can still write the final patent later with no penalty. (just no claim on the provisional).

If you need to buy food, don't spend the $130... but otherwise, I say do it.. at least for 1 thing!

4. What is Patent-able/What to write?
So, what do you patent?  My best advice is to focus on some implementation detail that you do that helps your product/service be unique.  Got no technology?  Don't bother writing a Patent (IMHO).

What kind of technology?  Hardware?  Yes.   Software?  Yes.  Both?  Ideal!

Even if your use of the technology is in software, I suggest writing the patent as though the software could be implemented "into a device"... (thus covering both hardware and software).  This might require creative thinking, but it might also get you the patent later!

What do you write for a provisional?  SIMPLE:  Just write in plain English how your technology works, and how it might work in software or hardware.  Simple, plain, English.

You will also need 1 drawing.  1.  not 2.  1.  Simple block diagram is ideal, showing the system.

Now, go to uspto.gov and SUBMIT IT YOURSELF!   No need to pay a lawyer to submit or review a provisional patent.  JUST DO IT!

5. Should you file a final, full patent?

Maybe.  But not yet.  Not until either: a.) you can easily afford the $8,000-10,000 for a lawyer to do it right... or  b.) your business really needs it for some reason [e.g. to increase your stock's value even more by having full issued patents ].

When you do a final patent... simply get a lawyer to do it.  Simple.   A real patent lawyer.  You don't want to do a final by yourself.  Just give the lawyer your provisional as a starting place, and off you go!

6. So business value?
Yep.  Provisional = Obvious.  It'll help you stand out and raise money and look good. (that's it really).
Final full patents... = Less Obvious.  It MIGHT help you raise more money at a better price, it MIGHT protect you from getting sued [because you could counter-sue], it MIGHT help you go after someone who is infringing on your patent (doubtful)...

So, Provisional = Yes.  Final = Doubtful (IMHO).

So, get to it!

Friday, October 25, 2013

Python Part 2: Learn a Programming Language.. dang it!

Continuing in my series where I try to convince you to learn a programming language... let me just say that Python can be used for a large number of very useful analytical things... like analyzing sales data, analyzing survey data, and much, much more!  

Without further ado, here is Part 2, to the "Quick Python Training by Harlan" series.
Here's the link to part 1... (prerequisite is required): http://tytusblog.blogspot.com/2013/10/why-everyone-should-learn-programming.html

This week you will learn: Intermediate Python...   Libraries, Dictionaries, Lists, Time, and more.

You will also learn about files, paths, and such...  here we go!


  1. First, you will need to be able to run python from a command line... on a PC, click Start->run->CMD   then in a command shell, type cd c:\python26  <enter>  (or the path to where you installed python), then type python.exe   (you should be at the shell).  type quit() to exit the shell.
    1. on MAC, just open the terminal, and type python, and it should work.
  2. Now, we need to learn how to make a file that python can run...   from command line type:
    1. notepad hi.py (PC)  or    on mac.. do vi hi.py  
    2. in notepad type: print "Hello!" then alt-file-save alt-file-exit.  
      1. on mac, type i  then type print "Hello!", then press escape, then type :wq  <press enter>
    3. now, from your command line type python hi.py
      1. SEE THE OUTPUT! :)  you just made a python program !
  3. Okay, next let's do some FILE INPUT OUTPUT to learn about libraries.
    1. make a file called  helloname.py  that looks like this:
import sys, os, glob

from optparse import OptionParser, make_option
import csv

def main():
    help = "Read the name of person and print hello persons name"
    args = "usage: %prog -n = name"
    parser = OptionParser(args)
    parser.add_option('--path', '-n', dest='name', help='name of person')
    (options, args) = parser.parse_args()
    name = options.name

    print "Hello", name

main()

#run this with python helloname.py -n Harlan

    4.  Now, lets do some outputting to a file!   make a new file called helloname_to_out.py

import sys, os, glob

from optparse import OptionParser, make_option
import csv

def print_hello_name_to_file(name):
    afile=open("namefile.txt", 'wb')
    afile.write("Hello %s!" % name)
    afile.close()
    return afile

def main():
    help = "Read the name of person and print hello persons name"
    args = "usage: %prog -n = name"
    parser = OptionParser(args)
    parser.add_option('--path', '-n', dest='name', help='name of person')
    (options, args) = parser.parse_args()
    name = options.name

    file = print_hello_name_to_file(name)
    print "done check the file", file

main()

#run this with python helloname_to_out.py -n Harlan

   5. Time to play with time... try this file: hitime.py
import sys, os, glob
from datetime import datetime

from optparse import OptionParser, make_option
import csv

def print_hello_name_to_file(name):
    afile=open("namefile.txt", 'wb')
    afile.write("Hello %s! " % name)
    now=datetime.now()
    afile.write("It is now: %s" % now)
    afile.close()
    return afile

def main():
    help = "Read the name of person and print hello persons name"
    args = "usage: %prog -n = name"
    parser = OptionParser(args)
    parser.add_option('--path', '-n', dest='name', help='name of person')
    (options, args) = parser.parse_args()
    name = options.name

    file = print_hello_name_to_file(name)
    print "done check the file", file

main()

#run this with python hitime.py -n Harlan

   6. Okay now time for some lists!  Let's learn these in idle!  start idle in windows start->run->idle   or mac: from terminal type: idle
      #okay, now you can type stuff into idle to go along... and learn about lists
      firstlist = [1,2,3,4]
      print firstlist
      print firstlist[0]
      print firstlist[2]
      print firstlist[4]

      #now try this
      list2=[1,2,"3","hi",["a","b","c"]]
      print list2
      print list2[3]
      print list2[4]
      print list2[4][2]

  7. now then, on to dictionaries
        dict1={1:'one',2:'two',3:'three'}  
        print dict1
        print dict1[2]
        print dict1[0]
   #and an advanced one
       dict2={'numbers':[1,2,3], 'letters':['a','b','c'], 'name':"Harlan", 5:'Five!'}
       print dict2[5]
       print dict2['numbers']
       print dict2['numbers'][0]

   8. finally, lets make our own library and import it!
   #in notepad make a file called: namefromfile.py
import os
 
import os
 
def getname(afilename):
    afile = open(afilename,'r')
    namelist = afile.readline()
    names_in_list = namelist.split(' ')
    if len(names_in_list) > 1:
         name=names_in_list[1]
    else:
         name=names_in_list[0]
    return name          

   #save this, now make a new file called   hinamefromfile.py
import sys, os, glob

from optparse import OptionParser, make_option
from namefromfile import getname
import csv

def main():
    #help = "Read the name of person and print hello persons name"
    #args = "usage: %prog -n = name"
    #parser = OptionParser(args)
    #parser.add_option('--path', '-n', dest='name', help='name of person')
    #(options, args) = parser.parse_args()
    #name = options.name

    name = getname('namefile.txt')

    print "Hello", name

main()

  #run this with: python  hinamefromfile.py
 



9. OKAY HOMEWORK TIME!!!  This will require research... which is a MAJOR part of any programming language!!!  but you have the basics to do this!

first, create this file called "harlansdictionary.csv", it should contain the following
Hungry,Honkin Hungry
Angry,Mad As Hell
Happy,Gleed Myself
Sad,Sobbin Myself


Now, write a program that takes any sentence, and replaces any word found in the first column, with Harlan's version on the right.  For fun, feel free to add to the dictionary!

NOTE: you must load the dictionary fresh on each time the program runs!
HINT: you might use    import csv   (research it!)  will help a lot.
HINT2: you might use dictionaries
HINT3: you might use split() function as in today's teaching.

YOU CAN DO IT!
   


Friday, October 18, 2013

Why everyone should learn a Programming Language & How to learn Python!

I think everyone should learn a programming language.  It teaches the importance of order, of 'proper' order.  It teaches good planning skills.  It teaches discipline.  It teaches self-learning... and IT IS PRACTICAL!    You would be surprised how often it could be helpful for you to know how to program something up real quick!

So, which language should you learn? My opinion: Python!   Specifically Python 2.6.    I will be posting here in my blog a mini-series of how to learn python.  This is part 1 of 4:  Basic Python

Python Basics  "Hello World",  If I am Cool, "Hello World",  Forever "Hello World", 100 "Hello Worlds".


This whole thing should take you no more than 30 minutes....

1.  Download and install python for your MAC or PC:  (just use the installer!)
http://www.python.org/download/releases/2.6/

2. NEVER BE AFRAID TO SEARCH THE DOCUMENTATION!!!!
http://docs.python.org/2.6/index.html

3. Breeze through a few of these Python Training Slides.. (just go through quickly....  you only learn programming by doing... so go do #4 ASAP!)
http://www.slideshare.net/ahmetbulut/programming-with-python-week-1
http://www.slideshare.net/ahmetbulut/programming-with-python-week-2
http://www.slideshare.net/ahmetbulut/programming-with-python-week-3
http://www.slideshare.net/amiable_indian/introduction-to-python
http://www.slideshare.net/amiable_indian/introduction-to-python-part-two

4. Do the following code in a file for practice... and do the homework below.

print "hello world"

a=1
print a
a="b"
print a
b=5
print b
a=b
print a

message="harlan is cool"
cool=True
if cool:
    print message

cool=not cool
if cool:
    print message

cool=not cool
if cool:
    print message

dancer=True
if cool and dancer:
    print message
    

if cool or dancer:
    print message


#while True:
#    print "hello world"

#for i in range(1,101):
    #print i, "hello world"


name=raw_input("what is your name?")
print "hello %s" % name

number=raw_input("how old are you?")
if int(number) < 5:
    print "you are younger than 5"
elif int(number) < 25:
    print "you are younger than 25"
else:
    print "you are older than 25"
    

'''Homework
Due by next week... write a program that prints    ___ is an even number...
   for every number from 1 to 1000.. then asks user to put in any number
      checks if it is even, and if so.. prints  __ is an even number
       if not prints ___ is NOT an even number.
       * bonus points if you handle 0 correctly!
'''

Friday, October 11, 2013

SPIN Selling for Engineers: How to teach Engineers to Sell!

"Wow, that was so cool, it really works!" - University of Texas Engineering Undergraduate

This was the general sentiment this week when I demonstrated the SPIN Selling technique to a group of undergraduates (mostly engineering-types) who are studying entrepreneurship at The University of Texas in the 1 Semester Startup Class (now called Longhorn Startup).  I volunteered to demonstrate the approach on their very first sales call (yes they are really that far along, and I'm so proud of them!  They have overcome the first and second hurdle of entrepreneurship: 1. Selecting a Target Market.  2. Getting over their Fear.).

So what is SPIN Selling?  And why is it a great technique for Engineers?  Read on My Friends!

First, SPIN Selling is a technique originally developed by Neil Rackham.. in his book SPIN Selling.
If you don't like reading, this site has a nice summary of the book on 1 page: http://wolfram.org/writing/howto/sell/spin_selling.html

However, I'll also summarize SPIN Selling in my own words below with one major tweak: from the perspective of an Engineer trying to make his/her first sale...

  1. SPIN Selling is great for engineers because it is an easy to understand acronym: S=Situation Questions, P=Problem Questions, I=Implication Questions, N=Need-Payoff Questions
  2. One of the best approaches to sales naturally emerges by "following the process" which, following processes is easy for engineers to do.
    1. This process is one of 'connecting to the client', 'understanding their needs', and 'fitting or not fitting your product to satisfy their true needs'....   if you can connect the dots for the prospect: the sale is just a natural thing!
      1. And they'll want to buy from YOU specifically, not necessarily because your product is superior (a concept Engineers need to not focus on), but because you understand them best, and have built a rapport with them through "the process".
  3. The Process:
    1. Ask a few "Situation Questions" to get them thinking about their business, not yours: Initially on the call or in the meeting, simply ask how his/her business or life is going and uncover the specifics of their business as it might relate to your product. 
      1. Examples:  How is your business going?  How do you measure success?  What kinds of files do you use?  Who are your clients?  etc.
    2. Ask a few "Problem Questions" until you uncover a problem you might be able to solve: Basically try to uncover what problems they have (not if, we all have problems)..  Focusing on Throughput or Cost (throughput questions are ones of ability to deliver product/service, or inability to get new clients/customers)... cost is cost and headache (mental cost).  Obviously, focus on those areas which your product/service might solve...
      1. Examples: Do you feel you have plenty of clients?  Do you have any major cost problems?  Are you able to fulfill all your orders on time?  What is preventing you from being more successful today?  What gives you the biggest headaches today?
    3. Ask enough "Implication Questions" such that they agree that the problem is serious: Try to get them to see the light that the problem has real consequences.  To understand, for example, that those extra costs are cutting in to margins, which slows growth.  Or that the lack of enough customers means you are wasting resources from under-utilization.
      1. Examples: Do you agree that the lack of customers means you are under-utilizing your fixed resources?  Do you agree that the extra costs you are incurring is hitting your bottom line, and that extra cash you could have had would be useful to help you grow?  Do you agree that your headaches might be making you distracted on other issues?
    4. Ask enough "Need-Payoff Questions" such that they agree a solution has real value.  Need-Payoff sort-of restates the Implication question in such a way that a solution has real value.  Once they agree to real value... then, and ONLY THEN, can you pitch your product/service.... and it will be in their terms...  
      1. Examples: Do you agree that getting rid of that headache would let you be more productive at other more important things?   Do you agree that your increased productivity is worth real value?  In hours per day?  In Dollars per day?  Do you agree that being able to get more customers has real value?  In Dollars per Customer?  Do you agree that reducing costs impacts the bottom line directly?  In real profit dollars?
    5. Now, and only now that they agree there is real value in a potenial solution, are you permitted to pitch your idea... AND ONLY PITCH IT IF YOU CAN GIVE THE PAYOFF (or a part of it) THEY AGREED TO IN STEP 4.  If not, continue with Steps 2-4, until you can or until they hang up!
      1. The pitch should be short, just 3 slides (more on this next time): Benefits, Tech, Price.
      2. Don't talk to the slides, talk to how YOUR PRODUCT might help solve THEIR PROBLEM... And point back to those NEED-PAYOFF questions you asked.
    6. Finally, Ask a few "Qualifying Questions", and then "ASK FOR THE SALE": You need to "flip the conversation" to be more about potentially fitting them to your business....   Now, they need to SELL YOU!
      1. You truly want it to seem like buying your product/service means belonging to an exclusive club.. and only some people are PERMITTED TO BUY!
      2. You questions now are "Qualifying Questions"... here is some good ones:
        1. We want to work with 'thought leaders' and 'early adopters', how forward-thinking about new stuff is your company?
        2. It is important that we work with companies of just the right size, how big is your business?
        3. We want partners who will become our reference customers, if things we work together to solve your problems, would you be willing to be a reference customer?
        4. Alright... it seems like we might be a good fit... it also seems that OUR PRODUCT/SERVICE will really help SOLVE YOUR PROBLEM and has a REAL DOLLAR IMPACT TO YOUR BUSINESS... 
          1. ASK FOR THE ORDER!!!!
            1. How many units can we sell you today to see how well this works?  or  
            2. What size initial order can you place today to test our ability to deliver?  or
            3. Who in your organization needs to sign off on this deal?
    7. Level Up!
      1. Regardless of the answers to step 6... be sure you try to "level up".
      2. Often-times in a big sale, it takes many approvals and other folks to help decide.
      3. Leave EACH MEETING with a date/time for the next meeting and try to "level-up" the meeting....  TRY TO ATTEND ANY APPROVAL MEETINGS IN PERSON.
      4. Bring up all you have learned about their problem and the NEED-PAYOFF in REAL DOLLARS! (I hope you took notes).
And that's it my friends!
Go out and sell!  But remember, only sell IF you can make a real dollar impact... if not, trust me, you don't want them as a customer.... they won't be happy, and neither will you.




Saturday, September 28, 2013

How to Avoid Fistfights with Co-Founders: Founder Equity Split Suggestions

Fistfights with Co-Founders can be avoided!  Here are some tips for founding your company with partners, such that later on, when things get complicated (like founders quitting, etc.), ya'll don't kill each other.   Nothing feels more frustrating than a founder that quits, and takes a bunch of stock with him....  A big benefit of this method is also: many VCs will prefer this type of structure (vesting)!  And.. the IRS might prefer it too... so, here goes!


  1. First, decide who is bringing "value" to the company at this point... (like who is bringing 'the idea', or 'some tech', or contributing 'some gear', or contributing 'some money').  If nobody is bringing anything, skip to step 3.
  2. Set aside 10-30% of stock to give to people who 'brought something' to the team...   Rule of thumb: 5% for money or stuff, 10% for tech, 20% for idea.
  3. Now take the remainder (90-70%) and set that aside to distribute evenly to the whole team for "work on the business plan prior to formation".
  4. Okay, now assign the remainder amount evenly with all founders (example 7 founders, 70% means 10% per founder).
  5. Next assign the 'brought something' extra stock to the given founders (example idea will have 30%, tech guy has 20%, and the rest have 10%).
  6. Agree on a vesting term (3 year, monthly vesting is common).
  7. Now, write a VERY short Memorandum of understanding with everyone's name, the date, signature places, and most importantly the vesting terms.
  8. Pick a CEO!  (the 1 person who shall be the CEO and in the drivers seat!  All other roles could be identified too, but the CEO role is a must.).  It does not have to be the idea guys, but it's nice if it is.


Here's an example Memorandum (note: I'm not a lawyer, and this wasn't written by one: use at your own discretion).  (names are made up, except mine)

Memorandum of Understanding

We, who plan to found company ______ each agree that when this founding occurs we will split the shares of the company as follows:
   Joe Smith:  30%, Whom we agree shall be the CEO of the company.
   Frank Toe:  20%
   Alan Man:   10%
   Harlan Beverly: 10%
   Sally Jenson: 10%
   Erin Klause: 10%
   Jessica Stower: 10%

We agree that these shares should have a vesting period of 3 years, whereby vesting happens evenly, monthly, over a period of 3 years.  the company shall have the right to any stock not vested in the event that any founder leaves the company (voluntarily or involuntarily).  We, agree that this vesting shall begin on this day ________.

Signed,
______________________________, Date ______________
______________________________, Date ______________
______________________________, Date ______________
______________________________, Date ______________
______________________________, Date ______________
______________________________, Date ______________
______________________________, Date ______________

That's about it!

Now, get it done right, so that you don't have to fight!

Later on, when you actually found the company (as in incorporate), this document will go away... and be replaced with real shareholders agreements and so forth.

Thursday, September 19, 2013

Great Products Need Little Marketing

Do truly great products need a lot of advertising help? Will lots of advertising expense overcome a bad product?  I intend to find out, at least in one vertical: video games.

The presentation below is a presentation I gave which outlines my research goal and motivation around how products succeed in the marketplace.  Specifically Product Conception Quality, or how well a product is conceived during the Fuzzy Front End of product development, is a moderator on product success controlling for advertising expenditure.

What do you think will be the answer of my research?   Will products that were better conceived perform better in the marketplace when we control for ad spend?  Or is it purely a factor of how hard companies 'push' their bad products?

Do you have a Purple Cow?  Or are you shoving a Normal Cow down peoples throats?


Friday, September 6, 2013

Engaging Social Posts that Don't Suck

Social Posts onto Facebook and Twitter are important for companies... they serve many purposes, but first and foremost of those purposes should be ENGAGEMENT.

What the heck is engagement?  This picture should tell the story.. or click it or the presentation below to learn more.   Engagement, as you can see, leads to success... which is what Business is supposed to be about.

So, how do you write engaging posts on Facebook, Twitter, Pinterest, and so forth, without them sucking?
Well I've put together a little training presentation on just that.

Enjoy!  Comments welcome!

Friday, August 30, 2013

How to Do Google Adwords and Google Adsense Marketing Right

I was speaking to my students this week at http://stedwards.edu, and realized I have never posted this short training on Google Adwords I put together.

It's a quick read and I think highly useful... so check it out!
http://www.slideshare.net/hbombers/how-to-do-adwords-and-facebook-marketing




Slideshare is Cool!

You will see a number of new blog posts coming up today, all because I recently decided to post every personal training presentation I could find in my old inbox.

I hope you will find some of these useful.

You can see all my presentations here:
http://www.slideshare.net/hbombers

Meanwhile, I am continually impressed with Slideshare: http://www.slideshare.net/

They somehow have figured out a way to really make it easy for people to upload Powerpoint in a useful way to share with the world.

Let the knowledge be unlocked!

Who's with me?

What PPT have you uploaded recently?

Friday, August 16, 2013

Unlikely Sources of Professional Creative Inspiration

This summer at Oklahoma State University in the PhD in Business for Executives program, me and my fellow teammates did a preliminary study into the sources of Professional Creativity in the workplace.  Our goal was to try to begin to understand how and where professionals become inspired for creativity.  We uncovered some interesting results...

Below, have a look at our final presentation to get a deeper understanding of our study (my co-authors agreed to allow me to publish this on my blog). We interviewed 8 professionals, 4 who work in 'traditionally creative roles', and 4 who work in what many might consider 'not very creative roles'...

Here are some of the big surprises:

  1. All 8 of our informants thought they were highly creative... leading us to think that role doesn't matter in terms of how people perceive themselves as creative.
  2. Most of our informants found themselves to be "Struck by Deep Creative Inspiration" while OUT OF THE OFFICE!
  3. Common activities that generated creative ideas were: walking, exercising, sleeping and bathroom activities (showering, brushing teeth, etc.).
  4. Common locations for inspiration were: outdoors in nature, bathroom, and relaxing with friends.
  5. One surprisingly insightful moment was when one of our informants mentioned the idea of "vulnerability" as a catalyst to inspiration... this idea seemed new and worthy of further study.... looking at our commonalities between informants we saw many examples of this vulnerability: showering, sleeping, etc., and could not find any prior research that explored the topic of vulnerability helping to inspire creativity.
What about you?  Where are you when you find that 'inspiration' strikes most often?  Driving? In Bed?  I'd love to hear from you in the comments below.


Thursday, August 15, 2013

Why it's nice to know a CEO...

I am a CEO.  I hire people... a lot of people... at all levels.  I am desperately trying to find people to fill my 4 open positions (as of 8/15/13)... http://keyingredient.com/blog/jobs .   And I know a lot of people.  So why is it nice to know me???
The answer is simple.  The same reason it is nice to know any CEO:

  1. Because if you know one, and they know you, you've got a leg up on ANY job role they are trying to fill.
  2. If they know you well enough, the CEO might even reach out to you pro-actively!
  3. Because a CEO of a company today, will very likely be a CEO of a different company tomorrow... e.g. they will likely be in future hiring positions as well.
  4. If you know them, you know what they are like to work with, and the kind of culture they build at companies.
  5. Because there are plenty of Business Development opportunities that come up all the time with the CEO.
  6. Because we are cool (see the picture from my most recent family hiking picture above!)
So, come on people, get to know a CEO!  They just might be able to actually help you with your career some day!  * I'd be glad to help any of my friends or acquaintances as best I can, for example.

Saturday, August 10, 2013

The Importance of Ethics: Engineering Ethics vs. Business Ethics

When I was CEO of Bigfoot Networks, I rarely encountered ethical 'problems' of any kind; I thought business ethics were a fairly useless thing to learn.  Now after being involved in many different start-ups and companies, I find that ethical issues can and do actually come up quite often... and I realize that I was addressing ethical issues at Bigfoot, even though I didn't realize it.

As a student of engineering and business, I've been exposed to two very different interpretations of ethics.  In Engineering, we talk about the ethics of "bad calculations", "building a bridge with errors", "cutting corners", or other things that can actually get people KILLED.  This kind of ethics always seemed like "real ethics" to me.  Business ethics seemed like a silly thing in compared to people dying.

I guess I'm starting to finally understand the importance of Business ethics.  I realize now, that I've always had good business ethics, and that's why I never had to deal with ethical problems.

At Bigfoot Networks, I was using very ethical business practices without realizing it:
  1. I never even considered buying stuff without some form of purchasing/payment contract or pre-paid:
    1. thus avoiding the ethical issue of "no contract"
  2. I always treated partners and customers as valuable customers and nothing else.
    1. thus avoiding potential conflicts of interest and complex issues like "customers as investors" or "partners determining our product direction".
  3. I avoided making promises I couldn't keep, or would not put in writing.
    1. Thus avoiding confusion and frustration.
  4. I always treated people with respect and courtesy.
    1. Thus avoiding employee issues and problems.
While I can't say specifically all the ethical issues I am facing today... I am glad that:
  • The issues are not "Engineering Ethical issues"!!!  e.g. they are not life or death issues, thank goodness.
  • I do know how to avoid business ethical issues, even though dealing with the problems themselves are a challenge.
  • My 7-Habits training and my years of running companies has prepared me to handle these issues, so I am confident I will do my very best to resolve them.
My advice for everyone: JUST AVOID THESE KINDS OF ISSUES!  It's way easier than dealing with them.

Saturday, July 20, 2013

Green and Clean: A Management Empowerment Philosophy

One of the hardest things to do as a Manager is to empower, or trust, a subordinate or co-worker to be responsible, truly responsible, for decisions or stewardship of some aspect of work.  In my case, I am constantly struggling not to "take over", "over-ride decisions", and "hover over the shoulder".  In truth, this is a big struggle for, I have to really fight it.  But this idea, the idea of empowerment, is one that research has shown is an important factor in: a.) building teams, b.) building a great company culture, and c.) having the best possible business outcomes.   

If you think about it, very few people want a manager that 'hovers' and over-rides decisions, and never allows you to have responsibility for anything.  And on top of that there are two practical concerns: you, an individual, simply can't make every decision and be responsible for everything.... no person scales infinitely.  Second, your decisions will probably not be the best ones in every situation.  

Do you want unthinking automatons, or do you want an organization with people that love their job (a side-effect of true empowerment), and scale the organization into a well-oiled and grow-able machine?

One of the tools that helps me to remember to empower, and not 'hover' is the story of "Green and Clean" from from Stephen Covey's The 7 Habits of Highly Effective People. I have excerpted the entire Green and Clean story from here below.  This story not only reminds me about the importance of Empowerment but also gives me (and hopefully you) the following tools to help me as a manager do Empowerment better:
  1. The principle of Stewardship (Empowerment) can be a very powerful bonding agent and growth agent for individuals.
  2. The first rule is to explain what Stewardship (Empowerment / Ownership) means...  I do this by making it a key component of company culture (or department culture).
  3. The second rule is to explain what Successful Stewardship looks like... get an agreement, ideally on paper, about what success looks like.
  4. The third rule is to pre-establish the "monitoring" or accounting policy, including frequency and type of reporting or inspection.  (this is the contract!)   This is the "Green and Clean" concept... defining success and empowering others to see it done.
  5. Fourth, offer help or assistance as a 'virtual employee' whenever it is needed... (but don't let them ask you what to do!)!  Only let them ask you to do something. (this is a fine balance if dealing with children or young employees, since I try to do this with my kids as well... sometimes they need a little guidance about how to go about getting to success).
  6. Finally, don't break the contract!  Don't hover.... and most importantly DO NOT DICTATE THE METHODS!  Stick to the contract (this is hard to do).
Now, please, read the little story below from Dr. Covey, and I think you will not only see where the 6 points above come from, but also, be rewarded by understanding the powerful impact that this can have on an individual... and I can tell you from my experience... it has a powerful impact also on an organization.

Some years ago, I had an interesting experience in delegation with one of my sons. We were having a family meeting, and we had our mission statement up on the wall to make sure our plans were in harmony with our values. Everybody was there. 

I set up a big blackboard and we wrote down our goals- the key things we wanted to do - and the jobs that flowed out of those goals. Then I asked for volunteers to do the job. 

"Who wants to pay the mortgage?" I asked. I noticed I was the only one with my hand up. 

"Who wants to pay for the insurance? The food? The cars?" I seemed to have a real monopoly on the opportunities. 

"Who wants to feed the new baby?" There was more interest here, but my wife was the only one with the right qualifications for the job. 

As we went down the list, job by job, it was soon evident that Mom and Dad had more than sixty-hour work weeks. With that paradigm in mind, some of the other jobs took on a more proper perspective. 

My seven-year-old son, Stephen, volunteered to take care of the yard. Before I actually gave him a job, I began a thorough training process. I wanted him to have a clear picture in his mind of what a well-cared-for yard was like, so I took him next door to our neighbor's. 

"Look, son," I said. "See how our neighbor's yard is green and clean? That's what we're after: green and clean. Now come look at our yard. See the mixed colors? That's not it; that's not green. Green and clean is what we want. Now how you get it green is up to you. You're free to do it any way you want, except paint it. But I'll tell you how I'd do it if it were up to me." 

"How would you do it, Dad?" 

"I 'd turn on the sprinklers. But you may want to use buckets or a hose. It makes no difference to me. All we care about is that the color is green. Okay?" 

"Okay." 

"Now let's talk about 'clean,' Son. Clean means no messes around - no paper, strings, bones, sticks, or anything that messes up the place. I'll tell you what let's do. Let's just clean up half of the yard right now and look at the difference." 

So we got out two paper sacks and picked up one side of the yard. "Now look at this side. Look at the other side. See the difference? That's called clean." 

"Wait!" he called. "I see some paper behind that bush!" 

"Oh, good! I didn't notice that newspaper back there. You have good eyes, Son." 

"Now before you decide whether or not you're going to take the job, let me tell you a few more things. Because when you take the job, I don't do it anymore. It's your job. It's called a stewardship. Stewardship means 'a job with a trust.' I trust you to do the job, to get it done. Now who's going to be your boss?" 

'You, Dad?" 

"No, not me. You're the boss. You boss yourself. How do you like Mom and Dad nagging you all the time?" 

"I don't." 

"We don't like doing it either. It sometimes causes a bad feeling doesn't it? So you boss yourself. Now, guess who your helper is." 

"Who?" 

"I am," I said. 'You boss me." 

"I do?" 

'That's right. But my time to help is limited. Sometimes I'm away. But when I'm here, you tell me how I can help. I'll do anything you want me to do." 

"Okay!" 

"Now guess who judges you." 

"Who?" 

'You judge yourself." 

"I do?" 

'That's right. Twice a week the two of us will walk around the yard and you can show me how it's coming. H ow are you going to judge?" 

"Green and clean." 

"Right!" 

I trained him with those two words for two weeks before I felt he was ready to take the job. Finally, the big day came. 

"Is it a deal, Son?" 

"It's a deal." 

"What's the job?" 

"Green and clean." 

"What's green?" 

He looked at our yard, which was beginning to look better. Then he pointed next door. 'That's the color of his yard." 

"What's clean?" 

"No messes." 

"Who's the boss?" 

"I am." 

"Who's your helper?" 

'You are, when you have time." 

"Who's the judge?" 

"I am. We'll walk around two times a week and I can show you how it's coming." 

"And what will we look for?" 

"Green and clean." 

At that time I didn't mention an allowance. But I wouldn't hesitate to attach an allowance to such a stewardship. 

Two weeks and two words. I thought he was ready. 

It was Saturday. And he did nothing. Sunday.. .nothing. Monday. ..nothing. As I pulled out of the driveway on my way to work on Tuesday, I looked at the yellow, cluttered yard and the hot July sun on its way up. "Surely he'll do it today," I thought. I could rationalize Saturday because that was the day we made the agreement. I could rationalize Sunday; Sunday was for other things. But I couldn't rationalize Monday. And now it was Tuesday. Certainly he'd do it today. It was 
summertime. What else did he have to do? 

All day I could hardly wait to return home to see what happened. As I rounded the corner, I was met with the same picture I left that morning. And there was my son at the park across the street playing. 

This was not acceptable. I was upset and disillusioned by his performance after two weeks of training and all those commitments. We had a lot of effort, pride, and money invested in the yard and I could see it going down the drain. Besides, my neighbor's yard was manicured and beautiful, and the situation was beginning to get embarrassing. 

I was ready to go back to gofer delegation. Son, you get over here and pick up this garbage right now or else! I knew I could get the golden egg that way. But what about the goose? What would happen to his internal commitment? 

So I faked a smile and yelled across the street, "Hi, Son. How's it going?" 

"Fine!" he returned. 

"How's the yard coming?" I knew the minute I said it I had broken our agreement. That's not the way we had set up an accounting. That's not what we had agreed. 

So he felt justified in breaking it, too. "Fine, Dad." 

I bit my tongue and waited until after dinner. Then I said, "Son, let's do as we agreed. Let's walk around the yard together and you can show me how it's going in your stewardship." 

As we started out the door, his chin began to quiver. Tears welled up in his eyes and, by the time we got out to the middle of the yard, he was whimpering. 

"It's so hard, Dad!" 

What's so hard? I thought to myself. You haven't done a single thing! But I knew what was hard - self management, self-supervision. So I said, "Is there anything I can do to help?" 

"Would you, Dad?" he sniffed 

"What was our agreement?" 

'You said you'd help me if you had time." 

"I have time." 

So he ran into the house and came back with two sacks. He handed me one. "Will you pick that stuff up?" He pointed to the garbage from Saturday night's barbecue. "It makes me sick!" 

So I did. I did exactly what he asked me to do. And that was when he signed the agreement in his heart. It became his yard, his stewardship. 

H e only asked for help two or three more times that entire summer. He took care of that yard . He kept it greener and cleaner than it had ever been under my stewardship. He even reprimanded his brothers and sisters if they left so much as a gum wrapper on the lawn. 

Trust is the highest form of human motivation. It brings out the very best in people. But it takes time and patience, and it doesn't preclude the necessity to train and develop people so that their competency can rise to the level of that trust. 

I am convinced that if stewardship delegation is done correctly, both parties will benefit and ultimately much more work will get done in much less time. I believe that a family that is well organized, whose time has been spent effectively delegating on a one-to-one basis, can organize the work so that everyone can do everything in about an hour a day. But that takes the internal capacity to want to manage, not just produce. The focus is on effectiveness, not efficiency. 

Certainly you can pick up that room better than a child, but the key is that you want to empower the child to do it. It takes time. You have to get involved in the training and development. It takes time, but how valuable that time is downstream! It saves you so much in the long run. 

This approach involves an entirely new paradigm of delegation. I n effect, it changes the nature of the relationship: The steward becomes his own boss, governed by a conscience that contains the commitment to agreed upon desired results. But it also releases his creative energies toward doing whatever is necessary in harmony with correct principles to achieve those desired results. 

The principles involved in stewardship delegation are correct and applicable to any kind of person or situation. With immature people, you specify fewer desired results and more guidelines, identify more resources, conduct more frequent accountability interviews, and apply more immediate consequences. With more mature people, you have more challenging desired results, fewer guidelines, less frequent accountability, and less measurable but more discernible criteria. 

Effective delegation is perhaps the best indicator of effective management simply because it is so basic to both personal and organizational growth. 

The key to effective management of self, or of others through delegation, is not in any technique or tool or extrinsic factor. It is intrinsic-- in the Quadrant II paradigm that empowers you to see through the lens of importance rather than urgency.

Story by Dr. Stephen Covey The 7 Habits of Highly Effective People

Monday, July 15, 2013

Health in the Workplace (Urgent and Important)

You are young... maybe 25.  Healthy as a bull (or healthy as a young filly)...  Either way, workplace health is not something you think about.  Maybe you are a programmer, maybe you are an accountant, marketing manager, or whatever.... but did you know that you are probably doing SERIOUS damage to yourself at work?  I didn't know it.. and now I'm paying for it.  This topic (Workplace Health) is URGENT and IMPORTANT, according to Stephen Covey's 7-Habits Principles... you need to act now!  Here's my story, and some tips for how you can avoid workplace health problems.

My Story:
I have had at least 3 careers in my 20+ years of working.  First, I was a lifeguard and paper-boy.  These jobs were great.  The only problem is I was out in the sun... a lot... and usually without sunblock... so who knows what kind of skin damage I did.  One year as a lifeguard, my skin was so dark as to seem "grey" and flaky to the touch.  Very bad.

Next, I became an engineer/programmer.  I spent 10-12 hours every day, sitting at my desk, eating meals like (see picture) and generally slouching.  This has led to a very bad situation.  Not only does my wrist hurt after using the computer for 10-20minutes... my lower back has decided to age much much faster than it should.  My discs are degenerating much faster for someone of my age, and recently, I've had to have Chiropractic and other medical care related to my back.  Worse than that, when my back hurts, I can't play with my kinds, exercise, or do any of the fun weekend-warrior stuff I used to do.

Now, I'm an executive.  Again, I spend a lot of time on my computer (8-10 hours a day)... one thing has changed though, I am now more aware than ever of my health.  Here are tips for what I should have been doing my whole life, but sadly only recently started doing.


  1. Get Proper Posture:  Sitting at your desk, your knees should be at 90degrees, your feet flat on the floor, your arms at 90-degrees, with fingers on the keyboard, and your eyes should be even with the BOTTOM of your screen.  Sit up straight, don't slouch, and don't be tempted to lower everything.
  2. Take Proper Breaks: Every hour at least, get up and walk around for just 5-minutes.  Look at something more than 10 feet away for 10 seconds every 10 minutes.  And most importantly, don't just sit there for hour after hour!  (especially not in a slouched position as I did, which caused all this back trouble I have now).
  3. Eat Right:  Take the time to eat a healthy lunch.  Fast-food is killing our nation. Eat a good balanced healthy lunch... not too much.  Salad is the best.  My propensity to eat meals like the above is a problem.. it's way too much for lunch and far too few greens.... it's still better than Fast food though.
  4. Try A Standing Desk or Ball: I use both now.  Standing desks keep you moving around (just don't slouch!), and Exercise Balls are great for core strength (again NO SLOUCHING).
I guess the moral of this whole story is: if you work in an office, for the love of your back.. and take it from me:

DON'T SLOUCH

Wednesday, June 12, 2013

Business Modeling for Engineers

So, you have a whiz-bang idea huh?  Working on that "business plan"?  Well, you are going to need a BUSINESS MODEL to go with that idea... and this little post will help you get started.   You can also download this little Excel .xlxs file I made that has the bare-bones of a Business Model for you.

A Revenue Model:

You are going to need a model for revenue.  Revenue is the top-line, what people pay you.  To create a model follow these simple steps:

  1. Decide the "Value" of what you are selling (Product or Service).. in terms of your TARGET MARKET AUDIENCE.
  2. Set a "Price" for your product that is less than the Value:
    1. this might be recurring (e.g. monthly) or one-time (transnational)
    2. Value has NOTHING to do with COST. (ignore cost).
    3. Value can be calculated as either:
      1. the price of an alternative +/- some premium (because yours is better/worse)
      2. the sum of 'savings' that a user experiences with your product/service
      3. the sum of 'benefits' that a user gets, in terms of a number of alternative products/services.
  3. Now, figure out a Quantity you think you can sell.
    1. Bottoms-up: Use some model of Customer Acquistion (like impressions->clicks->sales)
    2. or Tops-down: Use some model of Target Market Size (like 1% market penetration in year 1 of your target market).
  4. Now, simply multiply the monthly Quantity * the Price, and you have a Revenue Model.
  5. Show some scale/growth in subsequent months according to some formula (like 5% annual growth or as a complex model with advertising causing growth)

A Cost Model:

Next, you are going to need a cost model simply:
  1. Calculate the cost per unit by summing the cost of it's parts + the sum of the cost of the labor to 'produce it' (or in the case of a service, the labor cost of providing the service).
  2. Multiply the monthly Quantity (above) with the monthly Cost, to get Monthly Costs.
  3. NOTE: COSTS ARE NOT EXPENSES!!!  Costs, are purely the VARIABLE costs that it takes to produce a good/provide a service.

Gross Profit:

   This is simply Revenue - Costs

Expenses:

Estimate monthly expenses for operating the business....  here's a rule of thumb:
  1. Use $4000 for rent, $2000 for Legal, $1000 for Misc.  (or do a better job than me at estimating your actual costs!)
  2. Use at least 5% of Revenue as a Marketing Allotment (or do a better job than me at estimating your marketing expenses).
  3. Scale expenses yearly to increase by 10%.
  4. Any employees you have are also here as an expense. (yourself for example).
  5. Use the monthly salary * 1.17 (for benefits/taxes)

Net Income:

Net Income is simply Revenue - Costs - Expenses.
(it gets more complex if you have loans and other stuff... but for now this is a simple model).

Cash:

Take your starting cash, then add your Net Income to it each month.
(this is not precise at all, but also not a bad model).

Done.  You have a model.

Enjoy!  Feedback/suggestions welcome!



* photo courtesy of: http://www.geograph.org.uk/photo/2824035

Saturday, May 18, 2013

How to Brainstorm Effectively

Most people suck at Brainstorming.  Most companies suck at Brainstorming.  Through experience and study I have collected a set of ideas/methods that will teach you how to Brainstorm Effectively.

Brainstorming is the process of thinking up new ideas for a challenging problem or question.  Usually, the problem has already been considered for some time, but the answer is not obvious, or is out of bounds of some constraints.

Effectiveness in Brainstorming means that the number of ideas generated were high, and that at least one idea was selected as a good one, and that when implemented, the idea worked to solve the problem/question.

Here's my collection of ideas for how to Brainstorm effectively:

  1. Choose a Diverse group with as many Experts as possible to help you Brainstorm.  People with Diverse backgrounds, diverse life experiences, and from diverse cultures will bring more unique ideas. Experts are people with 10,000 hours of experience in their field.  In business, at least one person with Marketing Expertise, and at least one person with Engineering Expertise is ideal.
  2. Get in the right frame of mind: Have everyone on the team do something to try to get them into a creative frame of mind.  Stretch, go to a fun location, play a game, think like you are a kid... something.  BRAINSTORMING IS SUPPOSED TO BE FUN!!!  (Fun unleashes creativity).
  3. First ask everyone to Brainstorm Individually.  Have them write at least 3 ideas and send it to you.
  4. Now schedule a meeting (at least 2 hours, 3 hours is ideal; and have it span a lunch hour).  Plan to bring in food or go out as a group.  [this downtime is essential to the creative process]
  5. Open the meeting with "THE BRAINSTORMING RULES"... (write them on the wall)
    1. You MAY NOT Criticize ideas or even say "I like that"... save all comments till the end of the Brainstorming.  WRITE: "No Criticism"
    2. However, you CAN AND SHOULD build on ideas that others have put forth.  Write: "Build on Ideas"
    3. You SHOULD say many ideas, no matter how crazy.  Write: "Quantity and Crazy Desired"
    4. Keep it "light" and Fun!  Write: "Make it Fun"
  6. Start Phase 1 (out of two): 
    1. Write some of the ideas that people had individually on the board.
    2. For 30min to 1hr... ask the group to throw out ideas... and write them on the board.  If people get stuck, ask the question differently, or ask about a sub-part of the question... don't give up after just a few minutes.. force the team to give ideas for the full time.
    3. Break for lunch...  [eat as a group]
    4. Resume the Brainstorm for an additional 30min to 1hr.  (because of the break, there is likely to be another burst of good ideas!).
    5. If the board gets filled... take a picture and clear some space and keep going.
  7. Finish now with Phase 2:
    1. Ask the team to vote for their favorite ideas...  let them pick three, put a * next to the idea for every vote cast.  During this phase, ENCOURAGE DISCUSSION about the ideas (but not about 'who gave what idea').  Remind the team that its not about 'who's idea is better'... only than that 'we' got to a good idea.
    2. Now look at the board... what is the best answer?  Is it feasible?  If not, why?  Either brainstorm on how to make it feasible, or see if the 2nd best idea is better in light of considering Feasibility.
I hope this helps in your Brainstorming!  Let me know if you try this and it works?  Also let me know what you do, if it's different than my ideas here.

Monday, May 6, 2013

How Intel Corp. Won my Heart as an Employee

Have you ever had that feeling that "work sucks"?  Ever felt 'stuck' in a job and wishing you had a better boss, a better role, a better pay, etc.?   Now, when you changed jobs... ever wish for the old days?   I can tell you unequivocally that I have felt both feelings, but my time as a Chip Designer and Chip Architect at Intel Corp. was most decidedly different than any job hence.

So, what was it about working at Intel Corp. that won my heart?

I began working at Intel in Oregon in 1999.  I quickly learned 3 things: 1. Intel takes training seriously.  2. Intel cares a lot about their employees.  3. Intel truly does believe in culture.

The New Hire Orientation at Intel was extensive and serious.  They taught you all about the Intel Corporate Values and the Intel Benefits and such...  It was 3 days of serious reading, lecture and work... all well organized and seemingly useful.  I had serious doubts about Intel's supposed "Values" however.... did companies really do that?

Well, I was wrong. Intel takes values very seriously.  Not only did they pass out a badge with their values on the back, hang signs everywhere, and talk about their values constantly... but also:
    1. their 360 feedback process for raises and evaluation was centered primarily on our adherence to Intel's Values.
   2. The training didn't end.  I was required to take 1 or 2 courses from "Intel U" every quarter...and sometimes more.
   3. As I proceeded into more management type roles, I was required to take a course that stuck with me to this day: 7-Habits of Highly Effective People.  An excellent course, from Dr. Stephen Covey himself.

And then I realized suddenly, I was LIVING Intel's Values:
   1. I was taking smart risks at work, and getting rewarded with promotions.
   2. I was helping keep Intel a great place to work, participating in and organizing company-sponsored events and joining the Emergency Response Team.
   3. I was involved in Intel organized community events and "clean-ups".
   4. I was focused on Quality and Innovation.
   5. I was keeping open and direct in my communications.

Wow, this culture of Intel had invaded my soul... and everyone around me, from my coworkers to my bosses to Executive VPs were doing the same.  All on the same page about what makes Intel Great.

So now, as I reflect on those days, I realize, what made Intel win my heart was simple... they really meant those "core values" they preached to us in orientation.  They LIVED by those values, and so did I.  It felt good to be part of something "real"... that was just what they said it was: they practiced what they preached: and that's how they've kept a lead on an industry for more than 50 years.


Monday, April 15, 2013

Facebook vs. Google. Direct Internet Marketing (Advertising)

Which is better for Advertising?  Facebook or Google?  Hell if I know!  What is better anyways?  Different... would be a better way to explain Facebook vs. Google, so here goes how I see them as different from a Direct Internet Marketing perspective.

Here is the main difference: The Targeting is Different.

  • Facebook lets you target Age/Gender/Location/Likes, and more,  because it knows "who it's users are".
  • Google lets you target Location and "Search Term Keywords" only.
From a direct marketer's perspective Facebook might seem better. Marketers usually think of segmentation in terms of "demographics" and "psycho-graphics', and with Facebook's tools, you can really target a "market segment".

The problem with Facebook Targeting is that you have no idea of "buying intent".  You don't know if they are interested or care about your offer.

For Google, you target the key words that a person is searching for AT THAT MOMENT.  There is some kind of intent implied in the act of searching.  While this doesn't jive with Marketers view of segmentation, it certainly does have an impact on relevance to the user.

The difference in the CTR and CVR between the two platforms shows what I mean.
  • "Averages" from some of my own Facebook campaigns:   CTR: 0.025%   CVR: 0.012%  (yes a tenth of a percent)
  • "Averages" from some of my own Google Adwords campaigns:   CTR: 0.6%  CVR: 0.06%  (yes 6 tenths of a percent).
Meaning Google is between 20x better at click-through-rate, and at least 6x better at CVR.

Another big difference is the "Ad Frequency" settings of the two tools.
  • On Facebook, the ads are shown in smallish quantities until one of the ads in an ad group takes off... then the others get virtually no traffic.
  • On Google, you can SET the system to show ads evenly (when you are A/B testing, this is really really important).
So doing A/B testing on Facebook is almost impossible... (I havn't figured out a way to do it in a statistically meaningful way).

Instead, on Facebook, I do "Survival Testing"... ads that Survive (get impressions and seem to keep working at a decent rate) go into my "good group"  and ads that do not get enough testing, stay in the testing group until I have enough data to "kill them".   It's a very slow and tedious process.

I'm sure there is more differences as well... what differences do you think are key?

Wednesday, April 3, 2013

Our Brain on Infinity

This is a little thought experiment I adapted from a book (see below).

Write an infinity symbol with your writing hand (something you've probably done before).  Now switch and write it with your left hand (something you've probably NOT done before).  See, it can be done with your left hand without any practice, or without too much stumbling (although not perfect, see my attempt below).  How is that?   What did we learn about the brain that said, hey, something we've done with our right hand before, we can do with our left, on the first try!


To me, this example proves that the human mind "has representations" for things in it.  It proves that those representations can be passed and used by different brain systems.  And it proves that it is not a rote mechanical memorization; but rather an impression of vectors of what something should be.  It also kind-of shows how the human brain has "daemons" running that handle different tasks.  That the left hand could do what the right hand can do, means that the symbols for doing that were connected to neither.  That neither hand had the "motor memory" permanent in storage... and that the symbol itself was stored.  That the left hand could do it without practice shows that there must be a left-hand system in your brain that knows how to draw curves... and that that system was activated in order to draw the infinity symbol stored in your brain.

How is this useful to Marketing or Management... I'm not sure just yet.  But that is the beauty of learning new things... you just don't know how or when or even if it will be useful.  I suspect that this little tid-bit will be useful to me in the future though... if it ever is, if I use it to help me manage people or do some marketing magic, I'll let you know!

I adapted this idea form a book I'm reading the book called "How the Mind Works" by Steven Pinker.   This and so much more can be found in it!  I highly encourage you to read it.








Wednesday, March 20, 2013

Experimenting with Facebook Ads

I've run literally many hundreds of thousands of dollars ($200,000+) of Facebook Ads, and I'm still experimenting.

Yes, I have a formula that works well... and it's called "experimenting".

See, even the most successful mix of target, photo, image, link, landing page, etc... that works this week will lose its effectiveness over time (sometimes in a matter of weeks!)!

So, what I do is religiously experiment... to do this right, I change just 1 variable at at time.

The hard part: measuring actual effectiveness.... to do this: I try to look not just at clicks, but also at conversions.  There is a fine balance between conversion rate and click rate.  Generally you want to optimize for conversions, but on Facebook, getting a click often means getting viral impressions as well.. and that can lead to 'pseudo-organic' conversion that you don't realize came from viral impressions...

Anyways, for those of you out there experimenting with Facebook Ads.. don't give up.  Experimentation is the name of the game.

Thursday, March 14, 2013

Marketing CEOs vs Engineering CEOs

There are pros and cons to both/either.

Pros:
Marketing CEOs might be more likely to inspire market/customer orientation, differentiation, and brand equity focus.  This kind of leadership might seek to inspire cooperation and collaboration across departments.

Engineering CEOs may empower development teams to be more creative, have more power, and reduce "feature creep".  This kind of leadership might be more organized and measured.

Cons:
Marketing CEOs might put too much fluff into products, and not truly enable disruptive innovation.  This kind of leader may also have trouble leading engineers, and other technical types.

Engineering CEOs may invest too heavily in non-market-driven ideas and be inclined to ignore customer needs in favor of their own ideas.  This kind of leader may be too rigid for creative types.

Which am I?
Early in my career I would say I was definitely an Engineering CEO.  I had a vision where I wanted to go; and the market be damned (disruptive technology is like that).  Now, I lean more towards Marketing CEO... with a tighter focus on customer/market, and more faith in the power of brand.  However, having experience in both, I think I also have a good ability to know when to be which.  I can work with engineers or creative types equally well, and see a disruptive idea (and support it) when needed.

Best of both worlds? :)

Blog Archive

Followers